diff --git a/.cursorrules b/.cursorrules new file mode 100644 index 00000000000..a561180ab91 --- /dev/null +++ b/.cursorrules @@ -0,0 +1,23 @@ +Care is a React Typescript Project, built with Vite and styled with TailwindCSS. + +Care uses a Plugin Architecture. Apps are installed in /apps. + +Care uses a custom useQuery hook to fetch data from the API. APIs are defined in the api.tsx file + +Here's an example of how to use the useQuery hook to fetch data from the API: + +``` +useQuery from "@/Common/hooks/useQuery"; +const { data, loading, error } = useQuery(routes.getFacilityUsers, { + facility_id: "1", +}); + +request from "@/Common/utils/request"; +const { res } = await request(routes.partialUpdateAsset, { + pathParams: { external_id: assetId }, + body: data, +}); +``` + + + diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 4fe94183a2f..40e5259b1c6 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -26,7 +26,7 @@ "cpus": 4 }, "waitFor": "onCreateCommand", - "postCreateCommand": "npm install", + "postCreateCommand": "npm run install-all", "postAttachCommand": { "server": "npm run dev" }, diff --git a/.env b/.env index 8b3b02b3d97..6b3e9013d81 100644 --- a/.env +++ b/.env @@ -12,3 +12,4 @@ REACT_CARE_API_URL=https://careapi.ohc.network # Dev envs ESLINT_NO_DEV_ERRORS=true CARE_CDN_URL="https://egov-s3-facility-10bedicu.s3.amazonaws.com https://egov-s3-patient-data-10bedicu.s3.amazonaws.com http://localhost:4566" +REACT_ALLOWED_LOCALES="en,hi,ta,ml,mr,kn" \ No newline at end of file diff --git a/.env.docker b/.env.docker new file mode 100644 index 00000000000..fb5179c6c50 --- /dev/null +++ b/.env.docker @@ -0,0 +1,2 @@ +# Care API URL without the /api prefix +REACT_CARE_API_URL=http://localhost:9000 \ No newline at end of file diff --git a/.example.env b/.example.env index dd4a8865878..0ce9043b9a3 100644 --- a/.example.env +++ b/.example.env @@ -16,6 +16,8 @@ REACT_PLAUSIBLE_SITE_DOMAIN= # Plausible server URL (default: https://plausible.10bedicu.in) REACT_PLAUSIBLE_SERVER_URL= +# Care Apps. repo@branch seperated by commas +REACT_ENABLED_APPS="ohcnetwork/care_livekit_fe@main,ohcnetwork/care_scribe" # Main logo (JSON string with light and dark properties) REACT_HEADER_LOGO= @@ -58,7 +60,6 @@ REACT_KASP_FULL_STRING=Karunya Arogya Suraksha Padhathi # Sample format file paths REACT_SAMPLE_FORMAT_ASSET_IMPORT=/asset-import-template.xlsx -REACT_SAMPLE_FORMAT_EXTERNAL_RESULT_IMPORT=/External-Results-Template.csv # Camera feed, still watching idle timeout (in seconds; default: 180) REACT_STILL_WATCHING_IDLE_TIMEOUT= @@ -69,7 +70,6 @@ REACT_STILL_WATCHING_PROMPT_DURATION= # Feature flags REACT_ENABLE_HCX=true REACT_ENABLE_ABDM=true -REACT_ENABLE_SCRIBE=true REACT_WARTIME_SHIFTING=true # JWT token refresh interval (in milliseconds) (default: 5 minutes) @@ -77,3 +77,6 @@ REACT_JWT_TOKEN_REFRESH_INTERVAL= # Minimum encounter date (default: 2020-01-01) REACT_MIN_ENCOUNTER_DATE= + +# Available languages to switch between (2 Digit language code seperated by comas. See src->Locale->config.ts for available codes) +REACT_ALLOWED_LOCALES="en,hi,ta,ml,mr,kn" \ No newline at end of file diff --git a/.github/workflows/cypress.yaml b/.github/workflows/cypress.yaml index 500dbd92be0..0f588568bbc 100644 --- a/.github/workflows/cypress.yaml +++ b/.github/workflows/cypress.yaml @@ -70,7 +70,7 @@ jobs: node-version: "20" - name: Install dependencies 📦 - run: npm install + run: npm run install-all - name: Build ⚙️ run: npm run build diff --git a/.gitignore b/.gitignore index d8e2615c727..000a965c44a 100644 --- a/.gitignore +++ b/.gitignore @@ -58,3 +58,7 @@ bun.lockb # Cypress cypress/downloads cypress/fixtures/token.json + +# Care Apps +/apps/* +src/pluginMap.ts diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 00000000000..2edeafb09db --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +20 \ No newline at end of file diff --git a/.prettierrc.json b/.prettierrc.json index e3a9c2acae9..ba722afdd73 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -5,7 +5,6 @@ "semi": true, "jsxSingleQuote": false, "arrowParens": "always", - "tailwindFunctions": [ - "classNames" - ] -} \ No newline at end of file + "tailwindFunctions": ["classNames"], + "plugins": ["prettier-plugin-tailwindcss"] +} diff --git a/Dockerfile b/Dockerfile index 5061a977585..3a96ab3c28a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,6 +13,8 @@ RUN npm install COPY . . +RUN npm run setup + RUN npm run build diff --git a/README.md b/README.md index fd5328150f2..2504bf47fb7 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,29 @@

- - CARE Logo + + CARE Logo

Our goal is to continuously improve the quality and accessibility of public healthcare services using digital tools.

-

🚀 Staging Deploy

-

+

🚀 Staging Deployment

+
+ +[![Netlify Status](https://api.netlify.com/api/v1/badges/de76351f-b1f0-4bf8-8445-d9faf6391b13/deploy-status)](https://app.netlify.com/sites/care-ohc/deploys) + +

Auto deployed to care.ohc.network for develop branch. All pull requests have preview builds powered by Netlify.

[![](https://sourcerer.io/fame/tomahawk-pilot/ohcnetwork/care_fe/images/0)](https://sourcerer.io/fame/tomahawk-pilot/ohcnetwork/care_fe/links/0)[![](https://sourcerer.io/fame/tomahawk-pilot/ohcnetwork/care_fe/images/1)](https://sourcerer.io/fame/tomahawk-pilot/ohcnetwork/care_fe/links/1)[![](https://sourcerer.io/fame/tomahawk-pilot/ohcnetwork/care_fe/images/2)](https://sourcerer.io/fame/tomahawk-pilot/ohcnetwork/care_fe/links/2)[![](https://sourcerer.io/fame/tomahawk-pilot/ohcnetwork/care_fe/images/3)](https://sourcerer.io/fame/tomahawk-pilot/ohcnetwork/care_fe/links/3)[![](https://sourcerer.io/fame/tomahawk-pilot/ohcnetwork/care_fe/images/4)](https://sourcerer.io/fame/tomahawk-pilot/ohcnetwork/care_fe/links/4)[![](https://sourcerer.io/fame/tomahawk-pilot/ohcnetwork/care_fe/images/5)](https://sourcerer.io/fame/tomahawk-pilot/ohcnetwork/care_fe/links/5)[![](https://sourcerer.io/fame/tomahawk-pilot/ohcnetwork/care_fe/images/6)](https://sourcerer.io/fame/tomahawk-pilot/ohcnetwork/care_fe/links/6)[![](https://sourcerer.io/fame/tomahawk-pilot/ohcnetwork/care_fe/images/7)](https://sourcerer.io/fame/tomahawk-pilot/ohcnetwork/care_fe/links/7) -[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=coronasafe_care_fe&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=coronasafe_care_fe) ![Code scanning - action](https://github.com/ohcnetwork/care_fe/workflows/Code%20scanning%20-%20action/badge.svg) ![OSSAR](https://github.com/ohcnetwork/care_fe/workflows/OSSAR/badge.svg) [![Cypress Tests](https://img.shields.io/endpoint?url=https://cloud.cypress.io/badge/simple/wf7d2m/develop&style=flat&logo=cypress)](https://cloud.cypress.io/projects/wf7d2m/runs) ![Staging Release](https://github.com/ohcnetwork/care_fe/workflows/CARE%20Develop%20Registry/badge.svg) ![Production Release](https://github.com/ohcnetwork/care_fe/workflows/Production%20Release/badge.svg) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/200482ab117e4b5397ff3f5ae5719aa2)](https://www.codacy.com/gh/ohcnetwork/care_fe?utm_source=github.com&utm_medium=referral&utm_content=ohcnetwork/care_fe&utm_campaign=Badge_Grade) -[![CircleCI](https://circleci.com/gh/ohcnetwork/care_fe.svg?style=svg)](https://circleci.com/gh/ohcnetwork/care_fe) [![Maintainability](https://api.codeclimate.com/v1/badges/f1438f693aa459805301/maintainability)](https://codeclimate.com/github/ohcnetwork/care_fe/maintainability) ## Getting started @@ -33,7 +35,14 @@ #### Install the required dependencies ```sh -npm install +npm run install-all +``` +#### First-time setup + +For first-time setup, run the following command to generate the pluginMap and install plugin configurations: + +```sh +npm run setup ``` #### 🏃 Run the app in development mode @@ -70,6 +79,10 @@ Authenticate to staging API with any of the following credentials - Once the code review is done, the PR will be marked with a "Needs Testing" label where it'll be queued for QA testing. - Once tested, the PR would be marked with a "Tested" label and would be queued for merge. +### Translations + +All strings must be encased in i18n translations. New translation strings must be specified in `src`->`Locale`->`en`. Do not add translations for languages other than english through pull requests. Other language translations can be contributed through [Crowdin](https://crowdin.com/project/ohccarefe) + ### Testing To ensure the quality of our pull requests, we use a variety of tools: diff --git a/care.config.ts b/care.config.ts index 4341a03dd48..ed82d69554a 100644 --- a/care.config.ts +++ b/care.config.ts @@ -31,13 +31,16 @@ const careConfig = { dark: "https://cdn.ohc.network/header_logo.png", }), mainLogo: logo(env.REACT_MAIN_LOGO, { - light: "https://cdn.ohc.network/light-logo.svg", - dark: "https://cdn.ohc.network/black-logo.svg", + light: "/images/care_logo.svg", + dark: "/images/care_logo.svg", }), stateLogo: logo(env.REACT_STATE_LOGO), customLogo: logo(env.REACT_CUSTOM_LOGO), customLogoAlt: logo(env.REACT_CUSTOM_LOGO_ALT), customDescription: env.REACT_CUSTOM_DESCRIPTION, + availableLocales: (env.REACT_ALLOWED_LOCALES || "") + .split(",") + .map((l) => l.trim()), gmapsApiKey: env.REACT_GMAPS_API_KEY || "AIzaSyDsBAc3y7deI5ZO3NtK5GuzKwtUzQNJNUk", @@ -58,9 +61,6 @@ const careConfig = { sampleFormats: { assetImport: env.REACT_SAMPLE_FORMAT_ASSET_IMPORT || "/asset-import-template.xlsx", - externalResultImport: - env.REACT_SAMPLE_FORMAT_EXTERNAL_RESULT_IMPORT || - "/External-Results-Template.csv", }, wartimeShifting: env.REACT_WARTIME_SHIFTING === "true", @@ -104,9 +104,12 @@ const careConfig = { enabled: (env.REACT_ENABLE_ABDM ?? "true") === "true", }, - scribe: { - enabled: env.REACT_ENABLE_SCRIBE === "true", - }, + careApps: env.REACT_ENABLED_APPS + ? env.REACT_ENABLED_APPS.split(",").map((app) => ({ + branch: app.split("@")[1], + package: app.split("@")[0], + })) + : [], } as const; export default careConfig; diff --git a/components.json b/components.json new file mode 100644 index 00000000000..6a89a958128 --- /dev/null +++ b/components.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "new-york", + "rsc": false, + "tsx": true, + "tailwind": { + "config": "tailwind.config.js", + "css": "src/style/index.css", + "baseColor": "gray", + "cssVariables": false, + "prefix": "" + }, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + } +} diff --git a/cypress/e2e/assets_spec/AssetHomepage.cy.ts b/cypress/e2e/assets_spec/AssetHomepage.cy.ts index f462bda4327..57c315bb0c4 100644 --- a/cypress/e2e/assets_spec/AssetHomepage.cy.ts +++ b/cypress/e2e/assets_spec/AssetHomepage.cy.ts @@ -99,9 +99,9 @@ describe("Asset Tab", () => { it("Export asset", () => { assetPage.selectassetimportbutton(); cy.wait(2000); - assetPage.selectjsonexportbutton(); + assetPage.selectJsonExportButton(); assetPage.selectassetimportbutton(); - assetPage.selectcsvexportbutton(); + assetPage.selectCsvExportButton(); }); afterEach(() => { diff --git a/cypress/e2e/assets_spec/AssetsCreation.cy.ts b/cypress/e2e/assets_spec/AssetsCreation.cy.ts index 1bcd984a7a3..6d94108b362 100644 --- a/cypress/e2e/assets_spec/AssetsCreation.cy.ts +++ b/cypress/e2e/assets_spec/AssetsCreation.cy.ts @@ -129,7 +129,7 @@ describe("Asset", () => { "d5694af2-21e2-4a39-9bad-2fb98d9818bd", ); assetPage.clickConfigureAsset(); - assetPage.verifyAssetConfiguration(200); + assetPage.verifyAssetConfiguration(); }); it("Add an vital monitor asset and configure it", () => { diff --git a/cypress/e2e/auth_spec/auth.cy.ts b/cypress/e2e/auth_spec/auth.cy.ts index 61708bc029a..b2bd7b634c0 100644 --- a/cypress/e2e/auth_spec/auth.cy.ts +++ b/cypress/e2e/auth_spec/auth.cy.ts @@ -6,7 +6,8 @@ describe("Authorisation/Authentication", () => { it("Try login as admin with correct password", () => { cy.loginByApi("devdistrictadmin", "Coronasafe@123"); cy.awaitUrl("/facility"); - cy.get("p").contains("Sign Out").click(); + cy.get("#user-profile-name").click(); + cy.get("#sign-out-button").contains("Sign Out").click(); cy.url().should("include", "/"); }); diff --git a/cypress/e2e/auth_spec/roles.cy.ts b/cypress/e2e/auth_spec/roles.cy.ts index 07fe3c3d1fb..c84679de943 100644 --- a/cypress/e2e/auth_spec/roles.cy.ts +++ b/cypress/e2e/auth_spec/roles.cy.ts @@ -11,7 +11,7 @@ describe("authentication", () => { }); afterEach(() => { cy.log("Logging out"); - cy.get("p").contains("Sign Out").click(); + cy.get("#sign-out-button").contains("Sign Out").click(); cy.getLocalStorage("care_access_token").should("be.null"); cy.getLocalStorage("care_refresh_token").should("be.null"); cy.url().should("include", "/"); diff --git a/cypress/e2e/external_results_spec/ExternalResultsAdvanceFilters.ts b/cypress/e2e/external_results_spec/ExternalResultsAdvanceFilters.ts deleted file mode 100644 index 45c050cad8c..00000000000 --- a/cypress/e2e/external_results_spec/ExternalResultsAdvanceFilters.ts +++ /dev/null @@ -1,41 +0,0 @@ -describe("External Results Filters", () => { - before(() => { - cy.loginByApi("devdistrictadmin", "Coronasafe@123"); - cy.saveLocalStorage(); - }); - - beforeEach(() => { - cy.restoreLocalStorage(); - cy.clearLocalStorage(/filters--.+/); - cy.awaitUrl("/external_results"); - cy.contains("Filters").click(); - }); - - it("Advance Filter", () => { - cy.clickAndSelectOption("#local_bodies", "Aluva"); - cy.get("#local_bodies").click(); - cy.clickAndSelectOption("#wards", "4"); - cy.get("#wards").click(); - cy.contains("Apply").click(); - }); - - it("filter by date", () => { - cy.get("input[name='created_date_start']").click(); - cy.get("[id^='headlessui-popover-panel-'] .care-l-angle-left-b").click(); - cy.get("div[id='date-1']").click(); - cy.get("div[id='date-8']").click(); - cy.get("input[name='result_date_start']").click(); - cy.get("[id^='headlessui-popover-panel-'] .care-l-angle-left-b").click(); - cy.get("div[id='date-1']").click(); - cy.get("div[id='date-8']").click(); - cy.get("input[name='sample_collection_date_start']").click(); - cy.get("[id^='headlessui-popover-panel-'] .care-l-angle-left-b").click(); - cy.get("div[id='date-1']").click(); - cy.get("div[id='date-8']").click(); - cy.contains("Apply").click(); - }); - - afterEach(() => { - cy.saveLocalStorage(); - }); -}); diff --git a/cypress/e2e/external_results_spec/ExternalResultsHomepage.cy.ts b/cypress/e2e/external_results_spec/ExternalResultsHomepage.cy.ts deleted file mode 100644 index 6a37d8fb2d0..00000000000 --- a/cypress/e2e/external_results_spec/ExternalResultsHomepage.cy.ts +++ /dev/null @@ -1,68 +0,0 @@ -describe("Edit Profile Testing", () => { - before(() => { - cy.loginByApi("devdistrictadmin", "Coronasafe@123"); - cy.saveLocalStorage(); - }); - - beforeEach(() => { - cy.restoreLocalStorage(); - cy.clearLocalStorage(/filters--.+/); - cy.awaitUrl("/external_results"); - }); - - it("Search by Sample name", () => { - cy.intercept(/\/api\/v1\/external_result/).as("external_result"); - cy.get("[name='name']").type("akhil"); - cy.wait("@external_result").then((interception) => { - expect(interception.response.statusCode).to.equal(200); - }); - cy.url().should("include", "akhil"); - }); - - it("Search by phone number", () => { - cy.intercept(/\/api\/v1\/external_result/).as("external_result"); - cy.get("[placeholder='Search by Phone Number']").type("7387434255"); - cy.wait("@external_result").then((interception) => { - expect(interception.response.statusCode).to.equal(200); - }); - cy.url().should("include", "%2B917387434255"); - }); - - it("import", () => { - cy.intercept("POST", "/api/v1/external_result/bulk_upsert").as("import"); - cy.get("div").contains("Import/Export").click(); - cy.get("div").contains("Import Results").click(); - cy.get("[data-testid=import-file]") - .selectFile("cypress/fixtures/external-result-sample.csv", { - force: true, - }) - .wait(100); - cy.submitButton("Import"); - cy.wait("@import").then((interception) => { - expect(interception.response.statusCode).to.equal(202); - }); - }); - - it("export", () => { - cy.intercept("**", (req) => { - const url = new URL(req.url); - const params = new URLSearchParams(url.search); - if ( - req.method === "GET" && - url.pathname === "/api/v1/external_result/" && - params.get("csv") === "true" - ) { - req.alias = "export"; - } - }); - cy.contains("Import/Export").click().wait(100); - cy.contains("Export Results").click(); - cy.wait("@export").then((interception) => { - expect(interception.response.statusCode).to.equal(200); - }); - }); - - afterEach(() => { - cy.saveLocalStorage(); - }); -}); diff --git a/cypress/e2e/facility_spec/FacilityLocation.cy.ts b/cypress/e2e/facility_spec/FacilityLocation.cy.ts index 113a5e3eaab..d29ee95e873 100644 --- a/cypress/e2e/facility_spec/FacilityLocation.cy.ts +++ b/cypress/e2e/facility_spec/FacilityLocation.cy.ts @@ -193,12 +193,16 @@ describe("Location Management Section", () => { facilityLocation.clickAddNewLocationButton(); facilityLocation.enterLocationName("Test Location with Beds"); facilityLocation.selectLocationType("OTHER"); - assetPage.clickassetupdatebutton(); + cy.submitButton("Add Location"); + cy.verifyNotification("Location created successfully"); + cy.closeNotification(); facilityLocation.clickManageBedButton(); facilityLocation.clickAddBedButton(); facilityLocation.enterBedName("Bed 1"); facilityLocation.selectBedType("Regular"); - assetPage.clickassetupdatebutton(); + cy.submitButton("Add Bed(s)"); + cy.verifyNotification("1 Bed created successfully"); + cy.closeNotification(); facilityLocation.loadLocationManagementPage("Dummy Shifting Center"); facilityLocation.deleteLocation("Test Location with Beds"); assetPage.clickassetupdatebutton(); diff --git a/cypress/e2e/patient_spec/PatientBedManagement.cy.ts b/cypress/e2e/patient_spec/PatientBedManagement.cy.ts index d9453806c9f..1964f913a03 100644 --- a/cypress/e2e/patient_spec/PatientBedManagement.cy.ts +++ b/cypress/e2e/patient_spec/PatientBedManagement.cy.ts @@ -10,7 +10,7 @@ describe("Patient swtich bed functionality", () => { const patientConsultationPage = new PatientConsultationPage(); const switchBedOne = "Dummy Bed 4"; const switchBedTwo = "Dummy Bed 1"; - const switchBedThree = "Dummy Bed 3"; + const switchBedThree = "Dummy Bed 7"; const switchPatientOne = "Dummy Patient 6"; const switchPatientTwo = "Dummy Patient 7"; diff --git a/cypress/e2e/patient_spec/PatientDoctorConnect.cy.ts b/cypress/e2e/patient_spec/PatientDoctorConnect.cy.ts new file mode 100644 index 00000000000..c1362c328c0 --- /dev/null +++ b/cypress/e2e/patient_spec/PatientDoctorConnect.cy.ts @@ -0,0 +1,55 @@ +import { DoctorConnect } from "pageobject/Patient/PatientDoctorConnect"; +import LoginPage from "../../pageobject/Login/LoginPage"; +import { PatientPage } from "../../pageobject/Patient/PatientCreation"; + +describe("Patient Doctor Connect in consultation page", () => { + const loginPage = new LoginPage(); + const patientPage = new PatientPage(); + const doctorconnect = new DoctorConnect(); + const patientName = "Dummy Patient 11"; + const doctorUser = "Dev Doctor"; + const nurseUser = "Dev Staff"; + const teleIcuUser = "Dev Doctor Two"; + + before(() => { + loginPage.loginAsDisctrictAdmin(); + cy.saveLocalStorage(); + }); + + beforeEach(() => { + cy.restoreLocalStorage(); + cy.clearLocalStorage(/filters--.+/); + cy.awaitUrl("/patients"); + }); + + it("Patient Doctor connect phone redirection and sort by filter", () => { + // click on the slideover and verify icon redirection + patientPage.visitPatient(patientName); + doctorconnect.clickDoctorConnectButton(); + // verify all the users are visible under the all section + cy.verifyContentPresence("#doctor-connect-home-doctor", [doctorUser]); + cy.verifyContentPresence("#doctor-connect-home-nurse", [nurseUser]); + cy.verifyContentPresence("#doctor-connect-remote-doctor", [teleIcuUser]); + // verify copy content button functionality + doctorconnect.CopyFunctionTrigger(); + doctorconnect.clickCopyPhoneNumber( + "#doctor-connect-home-doctor", + doctorUser, + ); + doctorconnect.verifyCopiedContent(); + // verify the whatsapp and phone number icon presence + doctorconnect.verifyIconVisible("#whatsapp-icon"); + doctorconnect.verifyIconVisible("#phone-icon"); + // sort the each datas based on user type + doctorconnect.clickUsersSortBy("Doctor"); + cy.verifyContentPresence("#doctor-connect-home-doctor", [doctorUser]); + doctorconnect.clickUsersSortBy("Nurse"); + cy.verifyContentPresence("#doctor-connect-home-nurse", [nurseUser]); + doctorconnect.clickUsersSortBy("TeleICU Doctor"); + cy.verifyContentPresence("#doctor-connect-remote-doctor", [teleIcuUser]); + }); + + afterEach(() => { + cy.saveLocalStorage(); + }); +}); diff --git a/cypress/e2e/patient_spec/PatientDoctorNotes.cy.ts b/cypress/e2e/patient_spec/PatientDoctorNotes.cy.ts index 5b0ceac0c8e..9a21eaea51f 100644 --- a/cypress/e2e/patient_spec/PatientDoctorNotes.cy.ts +++ b/cypress/e2e/patient_spec/PatientDoctorNotes.cy.ts @@ -37,7 +37,7 @@ describe("Patient Discussion notes in the consultation page", () => { cy.verifyNotification(discussionNotesSuccessMessage); cy.closeNotification(); // verify the auto-switching of tab to nurse notes if the user is a nurse - cy.get("p").contains("Sign Out").click(); + patientDoctorNotes.signout(); loginPage.loginManuallyAsNurse(); loginPage.ensureLoggedIn(); cy.visit("/patients"); diff --git a/cypress/e2e/patient_spec/PatientFileUpload.ts b/cypress/e2e/patient_spec/PatientFileUpload.ts index 9d6852d16e7..7e5a3073179 100644 --- a/cypress/e2e/patient_spec/PatientFileUpload.ts +++ b/cypress/e2e/patient_spec/PatientFileUpload.ts @@ -5,7 +5,10 @@ const loginPage = new LoginPage(); const patientPage = new PatientPage(); const patientFileUpload = new PatientFileUpload(); -function runTests(testDescription, visitPatientFileUploadSection) { +function runTests( + testDescription: string, + visitPatientFileUploadSection: () => void, +) { describe(testDescription, () => { const cypressAudioName = "cypress audio"; const cypressFileName = "cypress name"; diff --git a/cypress/e2e/patient_spec/PatientHomepage.cy.ts b/cypress/e2e/patient_spec/PatientHomepage.cy.ts index c1575057fe4..188b6bc9457 100644 --- a/cypress/e2e/patient_spec/PatientHomepage.cy.ts +++ b/cypress/e2e/patient_spec/PatientHomepage.cy.ts @@ -4,6 +4,24 @@ import PatientHome from "../../pageobject/Patient/PatientHome"; describe("Patient Homepage present functionalities", () => { const loginPage = new LoginPage(); const patientHome = new PatientHome(); + const patientGender = "Male"; + const patientCategory = "Moderate"; + const patientMinimumAge = "18"; + const patientMaximumAge = "24"; + const patientLastAdmittedBed = "No bed assigned"; + const PatientLastConsentType = "No consents"; + const patientTelemedicinePerference = "No"; + const patientReviewStatus = "No"; + const patientMedicoStatus = "Non-Medico-Legal"; + const patientIcdDiagnosis = "1A00"; + const facilityName = "Dummy Facility 40"; + const facilityType = "Private Hospital"; + const facilityLsgBody = "Aikaranad Grama Panchayat, Ernakulam District"; + const facilityDistrict = "Ernakulam"; + const patientFromDate = "01122023"; + const patientToDate = "07122023"; + const patientFromDateBadge = "2023-12-01"; + const patientToDateBadge = "2023-12-07"; before(() => { loginPage.loginAsDisctrictAdmin(); @@ -16,6 +34,128 @@ describe("Patient Homepage present functionalities", () => { cy.awaitUrl("/patients"); }); + it("Date based advance filters applied in the patient tab", () => { + patientHome.clickPatientAdvanceFilters(); + patientHome.typePatientCreatedBeforeDate(patientFromDate); + patientHome.typePatientCreatedAfterDate(patientToDate); + patientHome.typePatientModifiedBeforeDate(patientFromDate); + patientHome.typePatientModifiedAfterDate(patientToDate); + patientHome.typePatientAdmitedBeforeDate(patientFromDate); + patientHome.typePatientAdmitedAfterDate(patientToDate); + patientHome.clickPatientFilterApply(); + patientHome.verifyTotalPatientCount("1"); + // verify the badge and clear the count + patientHome.verifyPatientCreatedBeforeDate(patientToDateBadge); + patientHome.verifyPatientCreatedAfterDate(patientFromDateBadge); + patientHome.verifyPatientModifiedBeforeDate(patientToDateBadge); + patientHome.verifyPatientModifiedAfterDate(patientFromDateBadge); + patientHome.verifyPatientAdmittedBeforeDate(patientToDateBadge); + patientHome.verifyPatientAdmittedAfterDate(patientFromDateBadge); + cy.clearAllFilters(); + patientHome.verifyTotalPatientCount("1"); + }); + + it("Facility Geography based advance filters applied in the patient tab", () => { + patientHome.clickPatientAdvanceFilters(); + patientHome.typeFacilityName(facilityName); + patientHome.selectFacilityType(facilityType); + patientHome.typeFacilityLsgBody(facilityLsgBody); + patientHome.typeFacilityDistrict(facilityDistrict); + patientHome.clickPatientFilterApply(); + patientHome.verifyTotalPatientCount("1"); + // Clear the badges and verify the patient count along with badges + patientHome.verifyFacilityNameBadgeContent(facilityName); + patientHome.verifyFacilityTypeBadgeContent(facilityType); + patientHome.verifyFacilityLsgBadgeContent(facilityLsgBody); + patientHome.verifyFacilityDistrictContent(facilityDistrict); + cy.clearAllFilters(); + patientHome.verifyTotalPatientCount("1"); + }); + + it("Patient diagnosis based advance filters applied in the patient tab", () => { + // Patient Filtering based on icd-11 data + patientHome.clickPatientAdvanceFilters(); + patientHome.selectAnyIcdDiagnosis(patientIcdDiagnosis, patientIcdDiagnosis); + patientHome.selectConfirmedIcdDiagnosis( + patientIcdDiagnosis, + patientIcdDiagnosis, + ); + patientHome.selectUnconfirmedIcdDiagnosis( + patientIcdDiagnosis, + patientIcdDiagnosis, + ); + patientHome.selectProvisionalIcdDiagnosis( + patientIcdDiagnosis, + patientIcdDiagnosis, + ); + patientHome.selectDifferentialIcdDiagnosis( + patientIcdDiagnosis, + patientIcdDiagnosis, + ); + patientHome.clickPatientFilterApply(); + patientHome.verifyTotalPatientCount("0"); + // verify the badges presence in the platform + patientHome.verifyAnyDiagnosisBadgeContent(patientIcdDiagnosis); + patientHome.verifyConfirmedDiagnosisBadgeContent(patientIcdDiagnosis); + patientHome.verifyUnconfirmedDiagnosisBadgeContent(patientIcdDiagnosis); + patientHome.verifyProvisionalDiagnosisBadgeContent(patientIcdDiagnosis); + patientHome.verifyDifferentialDiagnosisBadgeContent(patientIcdDiagnosis); + // Clear the badges and verify the patient count along with badges + cy.clearAllFilters(); + patientHome.verifyTotalPatientCount("1"); + // Apply Any and confirmed diagonsis to verify patient count 17 + patientHome.clickPatientAdvanceFilters(); + patientHome.selectAnyIcdDiagnosis(patientIcdDiagnosis, patientIcdDiagnosis); + patientHome.selectConfirmedIcdDiagnosis( + patientIcdDiagnosis, + patientIcdDiagnosis, + ); + patientHome.clickPatientFilterApply(); + patientHome.verifyTotalPatientCount("1"); + }); + + it("Patient Details based advance filters applied in the patient tab", () => { + // Patient Filtering based on patient details + patientHome.clickPatientAdvanceFilters(); + patientHome.selectPatientGenderfilter(patientGender); + patientHome.selectPatientCategoryfilter(patientCategory); + patientHome.typePatientMinimumAgeFilter(patientMinimumAge); + patientHome.typePatientMaximumAgeFilter(patientMaximumAge); + patientHome.selectPatientLastAdmittedBed(patientLastAdmittedBed); + patientHome.selectPatientLastConsentType(PatientLastConsentType); + patientHome.selectPatientTelemedicineFilter(patientTelemedicinePerference); + patientHome.selectPatientReviewFilter(patientReviewStatus); + patientHome.selectPatientMedicoFilter(patientMedicoStatus); + patientHome.clickPatientFilterApply(); + cy.get("a[data-cy='patient']").should("contain.text", "Dummy Patient"); + patientHome.verifyTotalPatientCount("1"); + // Verify the presence of badges + patientHome.verifyGenderBadgeContent(patientGender); + patientHome.verifyCategoryBadgeContent(patientCategory); + patientHome.verifyMinAgeBadgeContent(patientMinimumAge); + patientHome.verifyMaxAgeBadgeContent(patientMaximumAge); + patientHome.verifyLastAdmittedBedBadgeContent(patientLastAdmittedBed); + patientHome.verifyLastConsentTypeBadgeContent("No Consents"); + patientHome.verifyTelemedicineBadgeContent("false"); + patientHome.verifyReviewMissedBadgeContent("false"); + patientHome.verifyMedicoBadgeContent("false"); + // Clear the badges and verify the patient count along with badges + cy.clearAllFilters(); + patientHome.verifyTotalPatientCount("1"); + }); + + it("Export the live patient list based on a date range", () => { + patientHome.clickPatientExport(); + cy.verifyNotification("Please select a seven day period"); + cy.closeNotification(); + patientHome.typePatientModifiedBeforeDate("01122023"); + patientHome.typePatientModifiedAfterDate("07122023"); + patientHome.clickPatientFilterApply(); + patientHome.interceptPatientExportRequest(); + patientHome.clickPatientExport(); + patientHome.verifyPatientExportRequest(); + }); + it("Verify the functionality of the patient tab pagination", () => { let firstPatientPageOne: string; cy.get('[data-cy="patient"]') diff --git a/cypress/e2e/patient_spec/PatientLogUpdate.cy.ts b/cypress/e2e/patient_spec/PatientLogUpdate.cy.ts index 7faaeed5a9f..3907784b4b7 100644 --- a/cypress/e2e/patient_spec/PatientLogUpdate.cy.ts +++ b/cypress/e2e/patient_spec/PatientLogUpdate.cy.ts @@ -302,9 +302,9 @@ describe("Patient Log Update in Normal, Critical and TeleIcu", () => { patientRhythm, ]); patientLogupdate.clickUpdateDetail(); - patientLogupdate.clickClearButtonInElement("#systolic"); + patientLogupdate.clearIntoElementById("#systolic"); patientLogupdate.typeSystolic(patientModifiedSystolic); - patientLogupdate.clickClearButtonInElement("#diastolic"); + patientLogupdate.clearIntoElementById("#diastolic"); patientLogupdate.typeDiastolic(patientModifiedDiastolic); cy.submitButton("Continue"); cy.verifyNotification("Brief Update updated successfully"); diff --git a/cypress/e2e/patient_spec/PatientRegistration.cy.ts b/cypress/e2e/patient_spec/PatientRegistration.cy.ts index 589b60f1830..26adc7c882b 100644 --- a/cypress/e2e/patient_spec/PatientRegistration.cy.ts +++ b/cypress/e2e/patient_spec/PatientRegistration.cy.ts @@ -3,7 +3,6 @@ import { PatientPage } from "../../pageobject/Patient/PatientCreation"; import FacilityPage from "../../pageobject/Facility/FacilityCreation"; import { generatePhoneNumber } from "../../pageobject/utils/constants"; import PatientTransfer from "../../pageobject/Patient/PatientTransfer"; -import PatientExternal from "../../pageobject/Patient/PatientExternal"; import PatientInsurance from "../../pageobject/Patient/PatientInsurance"; import PatientMedicalHistory from "../../pageobject/Patient/PatientMedicalHistory"; @@ -34,7 +33,6 @@ describe("Patient Creation with consultation", () => { const patientPage = new PatientPage(); const facilityPage = new FacilityPage(); const patientTransfer = new PatientTransfer(); - const patientExternal = new PatientExternal(); const patientInsurance = new PatientInsurance(); const patientMedicalHistory = new PatientMedicalHistory(); const phone_number = generatePhoneNumber(); @@ -70,7 +68,6 @@ describe("Patient Creation with consultation", () => { const patientTransferPhoneNumber = "9849511866"; const patientTransferFacility = "Dummy Shifting Center"; const patientTransferName = "Dummy Patient 10"; - const patientExternalName = "Patient 20"; const patientOccupation = "Student"; before(() => { @@ -304,31 +301,6 @@ describe("Patient Creation with consultation", () => { ); }); - it("Patient Registration using External Result Import", () => { - // copy the patient external ID from external results - cy.awaitUrl("/external_results"); - patientExternal.verifyExternalListPatientName(patientExternalName); - patientExternal.verifyExternalIdVisible(); - // cypress have a limitation to work only asynchronously - // import the result and create a new patient - let extractedId = ""; - cy.get("#patient-external-id") - .invoke("text") - .then((text) => { - extractedId = text.split("Care external results ID: ")[1]; - cy.log(`Extracted Care external results ID: ${extractedId}`); - cy.awaitUrl("/patients"); - patientPage.createPatient(); - patientPage.selectFacility(patientFacility); - patientPage.patientformvisibility(); - patientExternal.clickImportFromExternalResultsButton(); - patientExternal.typeCareExternalResultId(extractedId); - patientExternal.clickImportPatientData(); - }); - // verify the patient is successfully created - patientExternal.verifyExternalPatientName(patientExternalName); - }); - afterEach(() => { cy.saveLocalStorage(); }); diff --git a/cypress/e2e/sample_test_spec/SampleTestHomepage.cy.ts b/cypress/e2e/sample_test_spec/SampleTestHomepage.cy.ts index 1af1cfc5cb4..98d69ccff41 100644 --- a/cypress/e2e/sample_test_spec/SampleTestHomepage.cy.ts +++ b/cypress/e2e/sample_test_spec/SampleTestHomepage.cy.ts @@ -13,18 +13,14 @@ describe("Sample List", () => { it("Search by District name", () => { cy.intercept(/\/api\/v1\/test_sample/).as("test_sample"); cy.get("[name='district_name']").type("Test"); - cy.wait("@test_sample").then((interception) => { - expect(interception.response.statusCode).to.equal(200); - }); + cy.wait("@test_sample").its("response.statusCode").should("eq", 200); cy.url().should("include", "Test"); }); it("Search by Patient Name", () => { cy.intercept(/\/api\/v1\/test_sample/).as("test_sample"); cy.get("[name='patient_name']").type("Test"); - cy.wait("@test_sample").then((interception) => { - expect(interception.response.statusCode).to.equal(200); - }); + cy.wait("@test_sample").its("response.statusCode").should("eq", 200); cy.url().should("include", "Test"); }); diff --git a/cypress/e2e/users_spec/UsersCreation.cy.ts b/cypress/e2e/users_spec/UsersCreation.cy.ts index e24fdeca9e2..2c5797fefa7 100644 --- a/cypress/e2e/users_spec/UsersCreation.cy.ts +++ b/cypress/e2e/users_spec/UsersCreation.cy.ts @@ -66,7 +66,8 @@ describe("User Creation", () => { }); it("Update the existing user profile and verify its reflection", () => { - userCreationPage.clickElementById("profilenamelink"); + userCreationPage.clickElementById("user-profile-name"); + userCreationPage.clickElementById("profile-button"); userCreationPage.verifyElementContainsText( "username-profile-details", "devdistrictadmin", @@ -128,7 +129,8 @@ describe("User Creation", () => { }); it("Update the existing user profile Form Mandatory File Error", () => { - userCreationPage.clickElementById("profilenamelink"); + userCreationPage.clickElementById("user-profile-name"); + userCreationPage.clickElementById("profile-button"); userCreationPage.clickElementById("edit-cancel-profile-button"); userCreationPage.clearIntoElementById("firstName"); userCreationPage.clearIntoElementById("lastName"); @@ -149,7 +151,7 @@ describe("User Creation", () => { userCreationPage.setInputDate("date_of_birth", "date-input", "25081999"); userCreationPage.selectDropdownOption("user_type", "Doctor"); userCreationPage.typeIntoElementById("c_password", "Test@123"); - userCreationPage.typeIntoElementById("doctor_qualification", "MBBS"); + userCreationPage.typeIntoElementById("qualification", "MBBS"); userCreationPage.typeIntoElementById("doctor_experience_commenced_on", "2"); userCreationPage.typeIntoElementById( "doctor_medical_council_registration", @@ -172,7 +174,7 @@ describe("User Creation", () => { "home_facility", "Dummy Shifting Center", ); - userCreationPage.verifyElementContainsText("doctor-qualification", "MBBS"); + userCreationPage.verifyElementContainsText("qualification", "MBBS"); userCreationPage.verifyElementContainsText("doctor-experience", "2"); userCreationPage.verifyElementContainsText( "medical-council-registration", diff --git a/cypress/e2e/users_spec/UsersHomepage.cy.ts b/cypress/e2e/users_spec/UsersHomepage.cy.ts index 0cf25cacfc8..634336a4ef9 100644 --- a/cypress/e2e/users_spec/UsersHomepage.cy.ts +++ b/cypress/e2e/users_spec/UsersHomepage.cy.ts @@ -14,7 +14,7 @@ describe("User Homepage", () => { const altPhoneNumber = "8878825662"; const homeFacility = "Dummy Facility 40"; const nurseUserName = "dummynurse1"; - const doctorUserName = "devdoctor"; + const doctorUserName = "devdoctor1"; before(() => { loginPage.loginAsDisctrictAdmin(); diff --git a/cypress/e2e/users_spec/UsersProfile.cy.ts b/cypress/e2e/users_spec/UsersProfile.cy.ts index 2672cccad7e..63fd71f5793 100644 --- a/cypress/e2e/users_spec/UsersProfile.cy.ts +++ b/cypress/e2e/users_spec/UsersProfile.cy.ts @@ -12,7 +12,7 @@ describe("Manage User Profile", () => { const email = "test@example.com"; const phone = "+918899887788"; const workinghours = "8"; - const doctorQualification = "MBBS"; + const qualification = "MBBS"; const doctorYoE = "10"; const medicalCouncilRegistration = "1234567890"; @@ -40,7 +40,7 @@ describe("Manage User Profile", () => { userProfilePage.typePhone(phone); userProfilePage.typeWhatsApp(phone); userProfilePage.typeWorkingHours(workinghours); - userProfilePage.typeDoctorQualification(doctorQualification); + userProfilePage.typeQualification(qualification); userProfilePage.typeDoctorYoE(doctorYoE); userProfilePage.typeMedicalCouncilRegistration(medicalCouncilRegistration); diff --git a/cypress/pageobject/Asset/AssetCreation.ts b/cypress/pageobject/Asset/AssetCreation.ts index 41d3c4ca8d0..d6991e82ff0 100644 --- a/cypress/pageobject/Asset/AssetCreation.ts +++ b/cypress/pageobject/Asset/AssetCreation.ts @@ -149,10 +149,8 @@ export class AssetPage { cy.intercept(/\/api\/v1\/asset/).as("asset"); } - verifyAssetConfiguration(statusCode: number) { - cy.wait("@asset").then((interception) => { - expect(interception.response.statusCode).to.equal(statusCode); - }); + verifyAssetConfiguration() { + cy.wait("@asset").its("response.statusCode").should("eq", 200); } clickConfigureAsset() { @@ -222,22 +220,16 @@ export class AssetPage { cy.get("[data-testid=import-asset-button]").click(); } - selectjsonexportbutton() { + selectJsonExportButton() { cy.intercept("GET", "**/api/v1/asset/?**json=true**").as("getJsonexport"); cy.get("#export-json-option").click(); - cy.wait("@getJsonexport").then(({ request, response }) => { - expect(response.statusCode).to.eq(200); - expect(request.url).to.include("json=true"); - }); + cy.wait("@getJsonexport").its("response.statusCode").should("eq", 200); } - selectcsvexportbutton() { + selectCsvExportButton() { cy.intercept("GET", "**/api/v1/asset/?**csv=true**").as("getCsvexport"); cy.get("#export-csv-option").click(); - cy.wait("@getCsvexport").then(({ request, response }) => { - expect(response.statusCode).to.eq(200); - expect(request.url).to.include("csv=true"); - }); + cy.wait("@getCsvexport").its("response.statusCode").should("eq", 200); } selectImportOption() { diff --git a/cypress/pageobject/Asset/AssetFilters.ts b/cypress/pageobject/Asset/AssetFilters.ts index ac83ca97c0b..5a942b22f47 100644 --- a/cypress/pageobject/Asset/AssetFilters.ts +++ b/cypress/pageobject/Asset/AssetFilters.ts @@ -56,16 +56,16 @@ export class AssetFilters { cy.get("#close-slide-over").click(); } // Assertions - assertFacilityText(text) { + assertFacilityText(text: string) { cy.get("[data-testid=Facility]").should("contain", text); } - assertAssetClassText(text) { + assertAssetClassText(text: string) { cy.get("[data-testid='Asset Class']").should("contain", text); } - assertStatusText(text) { + assertStatusText(text: string) { cy.get("[data-testid=Status]").should("contain", text); } - assertLocationText(text) { + assertLocationText(text: string) { cy.get("[data-testid=Location]").should("contain", text); } } diff --git a/cypress/pageobject/Facility/FacilityCreation.ts b/cypress/pageobject/Facility/FacilityCreation.ts index a1676e625dd..fe838a88f41 100644 --- a/cypress/pageobject/Facility/FacilityCreation.ts +++ b/cypress/pageobject/Facility/FacilityCreation.ts @@ -9,7 +9,7 @@ class FacilityPage { .should("eq", 200); } - typeFacilitySearch(facilityName) { + typeFacilitySearch(facilityName: string) { cy.get("#search").click().clear(); cy.get("#search").click().type(facilityName); } @@ -21,7 +21,7 @@ class FacilityPage { cy.get("#manage-facility-dropdown button").should("be.visible"); } - clickUpdateFacilityType(facilityType) { + clickUpdateFacilityType(facilityType: string) { cy.get("#facility_type") .click() .then(() => { @@ -225,11 +225,11 @@ class FacilityPage { } fillTriageEntryFields( - visited, - homeQuarantine, - isolation, - referred, - confirmedPositive, + visited: string, + homeQuarantine: string, + isolation: string, + referred: string, + confirmedPositive: string, ) { cy.get("#num_patients_visited").clear().click().type(visited); cy.get("#num_patients_home_quarantine") @@ -244,7 +244,7 @@ class FacilityPage { .type(confirmedPositive); } - fillEntryDate(date) { + fillEntryDate(date: string) { cy.get("#entry_date").click(); cy.get("#date-input").click().type(date); } @@ -253,13 +253,13 @@ class FacilityPage { cy.get("#edit-button").click(); } - clickButtonsMultipleTimes(selector) { + clickButtonsMultipleTimes(selector: string) { cy.get(selector).each(($button) => { cy.wrap($button).click(); }); } - verifyTriageTableContains(value) { + verifyTriageTableContains(value: string) { cy.get("#triage-table").contains(value); } @@ -297,7 +297,7 @@ class FacilityPage { selectLocation(location: string) { cy.intercept("https://maps.googleapis.com/**").as("mapApi"); - cy.get("span > svg.care-svg-icon__baseline.care-l-map-marker").click(); + cy.get("#facility-location-button").click(); cy.wait("@mapApi").its("response.statusCode").should("eq", 200); cy.get("input#pac-input").type(location).type("{enter}"); cy.wait(2000); @@ -430,7 +430,7 @@ class FacilityPage { return cy.get("#district"); } - selectStateOnPincode(stateName) { + selectStateOnPincode(stateName: string) { this.getStateElement() .scrollIntoView() .wait(2000) @@ -444,7 +444,7 @@ class FacilityPage { }); } - selectDistrictOnPincode(districtName) { + selectDistrictOnPincode(districtName: string) { this.getDistrictElement() .scrollIntoView() .wait(2000) diff --git a/cypress/pageobject/Facility/FacilityHome.ts b/cypress/pageobject/Facility/FacilityHome.ts index 956c374ada4..dea7de0e7b6 100644 --- a/cypress/pageobject/Facility/FacilityHome.ts +++ b/cypress/pageobject/Facility/FacilityHome.ts @@ -53,7 +53,7 @@ class FacilityHome { cy.get("#facility-detailspage-cns").click(); } - selectLocation(location) { + selectLocation(location: string) { cy.get("#location").click().type(location); cy.get("li[role=option]").contains(location).click(); } @@ -72,7 +72,7 @@ class FacilityHome { } verifyOccupancyBadgeVisibility() { - cy.get("#occupany-badge").should("be.visible"); + cy.get('[data-test-id="occupancy-badge"]').should("be.visible"); } verifyAndCloseNotifyModal() { @@ -99,7 +99,7 @@ class FacilityHome { return cy.url(); } - verifyURLContains(searchText) { + verifyURLContains(searchText: string) { const encodedText = encodeURIComponent(searchText).replace(/%20/g, "+"); this.getURL().should("include", `search=${encodedText}`); } diff --git a/cypress/pageobject/Facility/FacilityManage.ts b/cypress/pageobject/Facility/FacilityManage.ts index 9e41d5d0290..52a432abe59 100644 --- a/cypress/pageobject/Facility/FacilityManage.ts +++ b/cypress/pageobject/Facility/FacilityManage.ts @@ -7,17 +7,17 @@ class FacilityManage { cy.get("#upload-cover-image").should("be.visible"); } - uploadCoverImage(fileName) { + uploadCoverImage(fileName: string) { cy.get("#upload-cover-image") .selectFile(`cypress/fixtures/${fileName}`, { force: true }) .wait(100); // Adjust the wait time as needed } - verifyTotalDoctorCapacity(expectedCapacity) { + verifyTotalDoctorCapacity(expectedCapacity: string) { cy.get("#facility-doctor-totalcapacity").contains(expectedCapacity); } - verifyFacilityBedCapacity(expectedCapacity) { + verifyFacilityBedCapacity(expectedCapacity: string) { cy.get("#facility-bed-capacity-details").contains(expectedCapacity); } @@ -51,15 +51,15 @@ class FacilityManage { cy.get("#middleware_address").should("be.visible"); } - clickButtonWithText(text) { + clickButtonWithText(text: string) { cy.get("button#submit").contains(text).click(); } - checkErrorMessageVisibility(text) { + checkErrorMessageVisibility(text: string) { cy.get(".error-text").contains(text).should("be.visible"); } - typeMiddlewareAddress(address) { + typeMiddlewareAddress(address: string) { cy.get("#middleware_address").click().clear().click().type(address); } @@ -67,11 +67,14 @@ class FacilityManage { cy.get("#hf_id").click().clear(); } - typeHfrId(address) { + typeHfrId(address: string) { cy.get("#hf_id").click().clear().click().type(address); } - verifySuccessMessageVisibilityAndContent(text, isRegex = false) { + verifySuccessMessageVisibilityAndContent( + text: string | RegExp, + isRegex = false, + ) { if (isRegex) { cy.get(".pnotify-text").should("be.visible").contains(text); } else { @@ -79,11 +82,11 @@ class FacilityManage { } } - verifyMiddlewareAddressValue(expectedValue) { + verifyMiddlewareAddressValue(expectedValue: string) { cy.get("#middleware_address").should("have.value", expectedValue); } - verifyHfrIdValue(expectedValue) { + verifyHfrIdValue(expectedValue: string) { cy.get("#hf_id").should("have.value", expectedValue); } diff --git a/cypress/pageobject/Login/LoginPage.ts b/cypress/pageobject/Login/LoginPage.ts index 3dfd267fab2..06bd165c9ac 100644 --- a/cypress/pageobject/Login/LoginPage.ts +++ b/cypress/pageobject/Login/LoginPage.ts @@ -30,7 +30,9 @@ class LoginPage { } ensureLoggedIn(): void { - cy.get("p").contains("Sign Out").should("exist"); + cy.get("#user-profile-name").click(); + cy.get("#sign-out-button").scrollIntoView(); + cy.get("#sign-out-button").contains("Sign Out").should("exist"); } } diff --git a/cypress/pageobject/Patient/PatientConsultation.ts b/cypress/pageobject/Patient/PatientConsultation.ts index cc5b8e19465..71a0fbb3909 100644 --- a/cypress/pageobject/Patient/PatientConsultation.ts +++ b/cypress/pageobject/Patient/PatientConsultation.ts @@ -6,9 +6,10 @@ export class PatientConsultationPage { cy.clickAndSelectOption("#route_to_facility", status); } - typeAndMultiSelectSymptoms(input, symptoms) { + typeAndMultiSelectSymptoms(input: string, symptoms: string[]) { cy.typeAndMultiSelectOption("#additional_symptoms", input, symptoms); } + selectSymptomsDate(date: string) { cy.clickAndTypeDate("#symptoms_onset_date", date); } @@ -25,15 +26,15 @@ export class PatientConsultationPage { } selectPatientReferance(referance: string) { - cy.searchAndSelectOption("#referred_to", referance); + cy.typeAndSelectOption("#referred_to", referance); } selectBed(bedNo: string) { - cy.searchAndSelectOption("#bed", bedNo); + cy.typeAndSelectOption("#bed", bedNo); } selectPatientWard(ward: string) { - cy.searchAndSelectOption("#transferred_from_location", ward); + cy.typeAndSelectOption("#transferred_from_location", ward); } selectPatientSuggestion(suggestion: string) { @@ -48,8 +49,8 @@ export class PatientConsultationPage { cy.get("#death_confirmed_doctor").click().type(doctor); } - selectPatientDiagnosis(icdCode, statusId) { - cy.searchAndSelectOption("#icd11-search", icdCode); + selectPatientDiagnosis(icdCode: string, statusId: string) { + cy.typeAndSelectOption("#icd11-search", icdCode); cy.get("#diagnosis-list") .contains("Add as") .scrollIntoView() @@ -92,13 +93,13 @@ export class PatientConsultationPage { cy.clickAndSelectOption("#principal-diagnosis-select", diagnosis); } - verifyTextInConsultation(selector, text) { + verifyTextInConsultation(selector: string, text: string) { cy.get(selector).scrollIntoView(); cy.get(selector).contains(text).should("be.visible"); } typeReferringFacility(referringFacility: string) { - cy.searchAndSelectOption("#referred_from_facility", referringFacility); + cy.typeAndSelectOption("#referred_from_facility", referringFacility); } clickEditConsultationButton() { diff --git a/cypress/pageobject/Patient/PatientCreation.ts b/cypress/pageobject/Patient/PatientCreation.ts index e037f0888f0..a583844a632 100644 --- a/cypress/pageobject/Patient/PatientCreation.ts +++ b/cypress/pageobject/Patient/PatientCreation.ts @@ -10,7 +10,7 @@ export class PatientPage { cy.wait("@getFacilities").its("response.statusCode").should("eq", 200); } - visitPatient(patientName) { + visitPatient(patientName: string) { cy.get("#name").click().type(patientName); cy.intercept("GET", "**/api/v1/consultation/**").as("getPatient"); cy.get("#patient-name-list").contains(patientName).click(); @@ -22,7 +22,7 @@ export class PatientPage { } selectFacility(facilityName: string) { - cy.searchAndSelectOption("input[name='facilities']", facilityName); + cy.typeAndSelectOption("input[name='facilities']", facilityName); cy.submitButton("Select"); } @@ -114,7 +114,7 @@ export class PatientPage { } selectPatientOccupation(occupation: string) { - cy.searchAndSelectOption("#occupation", occupation); + cy.typeAndSelectOption("#occupation", occupation); } selectSocioeconomicStatus(value: string) { @@ -165,16 +165,16 @@ export class PatientPage { } verifyPatientDashboardDetails( - gender, - age, - patientName, - phoneNumber, - emergencyPhoneNumber, - yearOfBirth, - bloodGroup, - occupation, - socioeconomicStatus = null, - domesticHealthcareSupport = null, + gender: string, + age: number, + patientName: string, + phoneNumber: string, + emergencyPhoneNumber: string, + yearOfBirth: string, + bloodGroup: string, + occupation: string, + socioeconomicStatus: string | null = null, + domesticHealthcareSupport: string | null = null, isAntenatal = false, isPostPartum = false, ) { @@ -202,12 +202,12 @@ export class PatientPage { } verifyPatientLocationDetails( - patientAddress, - patientPincode, - patientState, - patientDistrict, - patientLocalbody, - patientWard, + patientAddress: string, + patientPincode: number, + patientState: string, + patientDistrict: string, + patientLocalbody: string, + patientWard: string, ) { cy.get("[data-testid=patient-details]").then(($dashboard) => { cy.url().should("include", "/facility/"); diff --git a/cypress/pageobject/Patient/PatientDischarge.ts b/cypress/pageobject/Patient/PatientDischarge.ts index eda6a379a3f..70a6d550887 100644 --- a/cypress/pageobject/Patient/PatientDischarge.ts +++ b/cypress/pageobject/Patient/PatientDischarge.ts @@ -14,7 +14,7 @@ class PatientDischarge { } typeReferringFacility(facility: string) { - cy.searchAndSelectOption("#facility-referredto", facility); + cy.typeAndSelectOption("#facility-referredto", facility); } clickClearButton() { diff --git a/cypress/pageobject/Patient/PatientDoctorConnect.ts b/cypress/pageobject/Patient/PatientDoctorConnect.ts new file mode 100644 index 00000000000..9933c3a1dec --- /dev/null +++ b/cypress/pageobject/Patient/PatientDoctorConnect.ts @@ -0,0 +1,32 @@ +export class DoctorConnect { + clickDoctorConnectButton() { + cy.get("#doctor-connect-button").scrollIntoView(); + cy.get("#doctor-connect-button").click(); + } + + CopyFunctionTrigger() { + cy.window().then((win) => { + cy.stub(win.navigator.clipboard, "writeText").as("clipboardStub"); + }); + } + + verifyCopiedContent() { + cy.get("@clipboardStub").should("be.calledWithMatch", /^\+91\d{10}$/); + } + + verifyIconVisible(selector: string) { + cy.get(selector).should("be.visible"); + } + + clickCopyPhoneNumber(element: string, text: string) { + cy.get(element) + .contains(text) // Find the element containing "dev doctor" + .parent() // Move up to the parent element (if necessary) + .find("#copy-phoneicon") // Find the #copy-phoneicon within that context + .click(); + } + + clickUsersSortBy(text: string) { + cy.get("#doctor-connect-filter-tabs").contains(text).click(); + } +} diff --git a/cypress/pageobject/Patient/PatientDoctorNotes.ts b/cypress/pageobject/Patient/PatientDoctorNotes.ts index 9538b0eed3b..157f35d47d9 100644 --- a/cypress/pageobject/Patient/PatientDoctorNotes.ts +++ b/cypress/pageobject/Patient/PatientDoctorNotes.ts @@ -26,4 +26,10 @@ export class PatientDoctorNotes { .its("response.statusCode") .should("eq", 201); } + + signout() { + cy.get("#user-profile-name").click(); + cy.get("#sign-out-button").scrollIntoView(); + cy.get("#sign-out-button").contains("Sign Out").click(); + } } diff --git a/cypress/pageobject/Patient/PatientExternal.ts b/cypress/pageobject/Patient/PatientExternal.ts deleted file mode 100644 index 138c212a377..00000000000 --- a/cypress/pageobject/Patient/PatientExternal.ts +++ /dev/null @@ -1,28 +0,0 @@ -class PatientExternal { - verifyExternalListPatientName(patientName: string) { - cy.get("#external-result-table").contains(patientName).click(); - } - - verifyExternalIdVisible() { - cy.get("#patient-external-id").contains("Care external results ID"); - } - - clickImportFromExternalResultsButton() { - cy.get("#import-externalresult-button").click(); - } - - typeCareExternalResultId(externalId) { - cy.get("#care-external-results-id").scrollIntoView(); - cy.get("#care-external-results-id").should("be.visible"); - cy.get("#care-external-results-id").type(externalId); - } - - clickImportPatientData() { - cy.get("#submit-importexternalresult-button").click(); - } - - verifyExternalPatientName(patientName: string) { - cy.get("#name", { timeout: 10000 }).should("have.value", patientName); - } -} -export default PatientExternal; diff --git a/cypress/pageobject/Patient/PatientHome.ts b/cypress/pageobject/Patient/PatientHome.ts index 94801cd4bb8..a69a96c3f77 100644 --- a/cypress/pageobject/Patient/PatientHome.ts +++ b/cypress/pageobject/Patient/PatientHome.ts @@ -10,5 +10,246 @@ class PatientHome { clickPreviousPage() { cy.get("#prev-pages").click(); } + + clickPatientExport() { + cy.get("#patient-export").click(); + } + + clickPatientFilterApply() { + cy.get("#apply-filter").click(); + } + + interceptPatientExportRequest() { + cy.intercept({ + method: "GET", + url: "/api/v1/patient/*", + }).as("getPatients"); + } + + verifyPatientExportRequest() { + cy.wait("@getPatients").its("response.statusCode").should("eq", 200); + } + + typePatientCreatedBeforeDate(startDate: string) { + cy.clickAndTypeDate("input[name='created_date_start']", startDate); + } + + typePatientCreatedAfterDate(endDate: string) { + cy.clickAndTypeDate("input[name='created_date_end']", endDate); + } + + typePatientModifiedBeforeDate(startDate: string) { + cy.clickAndTypeDate("input[name='modified_date_start']", startDate); + } + + typePatientModifiedAfterDate(endDate: string) { + cy.clickAndTypeDate("input[name='modified_date_end']", endDate); + } + + typePatientAdmitedBeforeDate(startDate: string) { + cy.clickAndTypeDate( + "input[name='last_consultation_encounter_date_start']", + startDate, + ); + } + + typePatientAdmitedAfterDate(endDate: string) { + cy.clickAndTypeDate( + "input[name='last_consultation_encounter_date_end']", + endDate, + ); + } + + clickPatientAdvanceFilters() { + cy.get("#advanced-filter").click(); + } + + selectPatientGenderfilter(gender: string) { + cy.clickAndSelectOption("#gender-advancefilter", gender); + } + + selectPatientCategoryfilter(category: string) { + cy.clickAndSelectOption("#category-advancefilter", category); + } + + typePatientMinimumAgeFilter(minage: string) { + cy.get("#age_min").type(minage); + } + + typePatientMaximumAgeFilter(maxage: string) { + cy.get("#age_max").type(maxage); + } + + selectPatientLastAdmittedBed(bed: string) { + cy.clickAndMultiSelectOption( + "#last_consultation_admitted_bed_type_list", + bed, + ); + } + + selectPatientLastConsentType(consent: string) { + cy.clickAndMultiSelectOption("#last_consultation__consent_types", consent); + } + + selectPatientTelemedicineFilter(telemedicine: string) { + cy.clickAndSelectOption("#telemedicine-advancefilter", telemedicine); + } + + selectPatientReviewFilter(review: string) { + cy.clickAndSelectOption("#review-advancefilter", review); + } + + selectPatientMedicoFilter(medico: string) { + cy.clickAndSelectOption("#medico-advancefilter", medico); + } + + verifyGenderBadgeContent(expectedText: string) { + cy.get("[data-testid='Gender']").should("contain", expectedText); + } + + verifyCategoryBadgeContent(expectedText: string) { + cy.get("[data-testid='Category']").should("contain", expectedText); + } + + verifyMinAgeBadgeContent(expectedText: string) { + cy.get("[data-testid='Age min']").should("contain", expectedText); + } + + verifyMaxAgeBadgeContent(expectedText: string) { + cy.get("[data-testid='Age max']").should("contain", expectedText); + } + + verifyLastAdmittedBedBadgeContent(expectedText: string) { + cy.get("[data-testid='Bed Type']").should("contain", expectedText); + } + + verifyLastConsentTypeBadgeContent(expectedText: string) { + cy.get("[data-testid='Has Consent']").should("contain", expectedText); + } + + verifyTelemedicineBadgeContent(expectedText: string) { + cy.get("[data-testid='Telemedicine']").should("contain", expectedText); + } + + verifyReviewMissedBadgeContent(expectedText: string) { + cy.get("[data-testid='Review Missed']").should("contain", expectedText); + } + + verifyMedicoBadgeContent(expectedText: string) { + cy.get("[data-testid='Is Medico-Legal Case']").should( + "contain", + expectedText, + ); + } + + verifyTotalPatientCount(count: string) { + cy.get("#total-patientcount").should("contain", count); + } + + selectAnyIcdDiagnosis(input: string, random: string) { + cy.typeAndMultiSelectOption("#diagnoses", input, random); + } + + selectConfirmedIcdDiagnosis(input: string, confirmed: string) { + cy.typeAndMultiSelectOption("#diagnoses_confirmed", input, confirmed); + } + + selectUnconfirmedIcdDiagnosis(input: string, unconfirmed: string) { + cy.typeAndMultiSelectOption("#diagnoses_unconfirmed", input, unconfirmed); + } + + selectProvisionalIcdDiagnosis(input: string, unconfirmed: string) { + cy.typeAndMultiSelectOption("#diagnoses_provisional", input, unconfirmed); + } + + selectDifferentialIcdDiagnosis(input: string, unconfirmed: string) { + cy.typeAndMultiSelectOption("#diagnoses_differential", input, unconfirmed); + } + + typeFacilityName(facilityName: string) { + cy.typeAndSelectOption("input[name='facility']", facilityName); + } + + selectFacilityType(facilityType: string) { + cy.clickAndSelectOption("#facility-type", facilityType); + } + + typeFacilityLsgBody(lsgbody: string) { + cy.typeAndSelectOption("#facility-lsgbody", lsgbody); + } + + typeFacilityDistrict(district: string) { + cy.typeAndSelectOption("#facility-district", district); + } + + verifyAnyDiagnosisBadgeContent(expectedText: string) { + cy.get("[data-testid='Diagnoses (of any verification status)']").should( + "contain", + expectedText, + ); + } + + verifyConfirmedDiagnosisBadgeContent(expectedText: string) { + cy.get("[data-testid='Confirmed Diagnoses']").should( + "contain", + expectedText, + ); + } + + verifyUnconfirmedDiagnosisBadgeContent(expectedText: string) { + cy.get("[data-testid='Unconfirmed Diagnoses']").should( + "contain", + expectedText, + ); + } + + verifyProvisionalDiagnosisBadgeContent(expectedText: string) { + cy.get("[data-testid='Provisional Diagnoses']").should( + "contain", + expectedText, + ); + } + + verifyDifferentialDiagnosisBadgeContent(expectedText: string) { + cy.get("[data-testid='Differential Diagnoses']").should( + "contain", + expectedText, + ); + } + + verifyFacilityNameBadgeContent(expectedText: string) { + cy.get("[data-testid='Facility']").should("contain", expectedText); + } + + verifyFacilityTypeBadgeContent(expectedText: string) { + cy.get("[data-testid='Facility Type']").should("contain", expectedText); + } + + verifyFacilityLsgBadgeContent(expectedText: string) { + cy.get("[data-testid='LSG Body']").should("contain", expectedText); + } + + verifyFacilityDistrictContent(expectedText: string) { + cy.get("[data-testid='District']").should("contain", expectedText); + } + + verifyPatientCreatedAfterDate(expectedText: string) { + cy.get("[data-testid='Created after']").should("contain", expectedText); + } + verifyPatientCreatedBeforeDate(expectedText: string) { + cy.get("[data-testid='Created before']").should("contain", expectedText); + } + verifyPatientModifiedAfterDate(expectedText: string) { + cy.get("[data-testid='Modified after']").should("contain", expectedText); + } + verifyPatientModifiedBeforeDate(expectedText: string) { + cy.get("[data-testid='Modified before']").should("contain", expectedText); + } + verifyPatientAdmittedBeforeDate(expectedText: string) { + cy.get("[data-testid='Admitted before']").should("contain", expectedText); + } + verifyPatientAdmittedAfterDate(expectedText: string) { + cy.get("[data-testid='Admitted after']").should("contain", expectedText); + } } export default PatientHome; diff --git a/cypress/pageobject/Patient/PatientInsurance.ts b/cypress/pageobject/Patient/PatientInsurance.ts index bdd571e9d0c..1b91d27b629 100644 --- a/cypress/pageobject/Patient/PatientInsurance.ts +++ b/cypress/pageobject/Patient/PatientInsurance.ts @@ -47,11 +47,11 @@ class PatientInsurance { } verifyPatientPolicyDetails( - subscriberId, - policyId, - insurerId, - insurerName, - isHcxEnabled, + subscriberId: string, + policyId: string, + insurerId: string, + insurerName: string, + isHcxEnabled: string, ) { cy.get("[data-testid=patient-details]").then(($dashboard) => { cy.url().should("include", "/facility/"); diff --git a/cypress/pageobject/Patient/PatientLogupdate.ts b/cypress/pageobject/Patient/PatientLogupdate.ts index add3fbb0590..d7b49fde05e 100644 --- a/cypress/pageobject/Patient/PatientLogupdate.ts +++ b/cypress/pageobject/Patient/PatientLogupdate.ts @@ -14,7 +14,7 @@ class PatientLogupdate { } selectBed(bed: string) { - cy.searchAndSelectOption("input[name='bed']", bed); + cy.typeAndSelectOption("input[name='bed']", bed); cy.get("#update-switchbed").click(); cy.wait(2000); } @@ -32,7 +32,7 @@ class PatientLogupdate { cy.get("#other_details").click().type(details); } - typeAndMultiSelectSymptoms(input, symptoms) { + typeAndMultiSelectSymptoms(input: string, symptoms: string[]) { cy.typeAndMultiSelectOption("#additional_symptoms", input, symptoms); } selectSymptomsDate(date: string) { @@ -43,27 +43,27 @@ class PatientLogupdate { } typeSystolic(systolic: string) { - cy.searchAndSelectOption("#systolic", systolic); + cy.get("#systolic").click().type(systolic); } typeDiastolic(diastolic: string) { - cy.searchAndSelectOption("#diastolic", diastolic); + cy.get("#diastolic").click().type(diastolic); } typePulse(pulse: string) { - cy.searchAndSelectOption("#pulse", pulse); + cy.typeAndSelectOption("#pulse", pulse); } typeTemperature(temperature: string) { - cy.searchAndSelectOption("#temperature", temperature); + cy.get("#temperature").click().type(temperature); } typeRespiratory(respiratory: string) { - cy.searchAndSelectOption("#resp", respiratory); + cy.typeAndSelectOption("#resp", respiratory); } typeSpo2(spo: string) { - cy.searchAndSelectOption("#ventilator_spo2", spo); + cy.typeAndSelectOption("#ventilator_spo2", spo); } selectRhythm(rhythm: string) { @@ -74,14 +74,14 @@ class PatientLogupdate { cy.get("#rhythm_detail").click().type(rhythm); } - clickLogUpdateViewDetails(element, patientCategory) { + clickLogUpdateViewDetails(element: string, patientCategory: string) { cy.get(element).scrollIntoView(); cy.verifyContentPresence(element, [patientCategory]); cy.get(element).first().contains("View Details").click(); cy.wait(3000); } - clickLogUpdateUpdateLog(element, patientCategory) { + clickLogUpdateUpdateLog(element: string, patientCategory: string) { cy.get(element).scrollIntoView(); cy.verifyContentPresence(element, [patientCategory]); cy.get(element).first().contains("Update Log").click(); @@ -93,8 +93,8 @@ class PatientLogupdate { cy.wait(3000); } - clickClearButtonInElement(elementId) { - cy.get(elementId).find("#clear-button").click(); + clearIntoElementById(elementId) { + cy.get(elementId).click().clear(); } clickVitals() { diff --git a/cypress/pageobject/Patient/PatientMedicalHistory.ts b/cypress/pageobject/Patient/PatientMedicalHistory.ts index a0dbdd0131a..93fdd1b38b3 100644 --- a/cypress/pageobject/Patient/PatientMedicalHistory.ts +++ b/cypress/pageobject/Patient/PatientMedicalHistory.ts @@ -11,7 +11,7 @@ class PatientMedicalHistory { cy.get("#allergies").click().type(allergies); } - typeMedicalHistory(index, text) { + typeMedicalHistory(index: number, text: string) { cy.get(`#medical_history_check_${index}`).click(); cy.get(`#medical_history_${index}`).click().type(text); } @@ -22,16 +22,16 @@ class PatientMedicalHistory { } verifyPatientMedicalDetails( - patientPresentHealth, - patientOngoingMedication, - patientAllergies, - patientSymptoms1, - patientSymptoms2, - patientSymptoms3, - patientSymptoms4, - patientSymptoms5, - patientSymptoms6, - patientSymptoms7, + patientPresentHealth: string, + patientOngoingMedication: string, + patientAllergies: string, + patientSymptoms1: string, + patientSymptoms2: string, + patientSymptoms3: string, + patientSymptoms4: string, + patientSymptoms5: string, + patientSymptoms6: string, + patientSymptoms7: string, ) { cy.get("[data-testid=patient-details]").then(($dashboard) => { cy.url().should("include", "/facility/"); diff --git a/cypress/pageobject/Patient/PatientPrescription.ts b/cypress/pageobject/Patient/PatientPrescription.ts index 403d361e55c..d801b360aba 100644 --- a/cypress/pageobject/Patient/PatientPrescription.ts +++ b/cypress/pageobject/Patient/PatientPrescription.ts @@ -16,7 +16,7 @@ export class PatientPrescription { } selectMedicine(medicine: string) { - cy.searchAndSelectOption( + cy.typeAndSelectOption( "div#medicine_object input[placeholder='Select'][role='combobox']", medicine, ); diff --git a/cypress/pageobject/Patient/PatientTreatmentPlan.ts b/cypress/pageobject/Patient/PatientTreatmentPlan.ts index 70af5604776..0bbddbf70bc 100644 --- a/cypress/pageobject/Patient/PatientTreatmentPlan.ts +++ b/cypress/pageobject/Patient/PatientTreatmentPlan.ts @@ -4,7 +4,7 @@ class PatientTreatmentPlan { } fillTreatingPhysican(doctor: string) { - cy.searchAndSelectOption("#treating_physician", doctor); + cy.typeAndSelectOption("#treating_physician", doctor); } selectReviewAfter(time: string) { @@ -20,7 +20,7 @@ class PatientTreatmentPlan { } assignTelemedicineDoctor(doctor: string) { - cy.searchAndSelectOption("#assigned_to", doctor); + cy.typeAndSelectOption("#assigned_to", doctor); } clickAddProcedure() { diff --git a/cypress/pageobject/Resource/ResourcePage.ts b/cypress/pageobject/Resource/ResourcePage.ts index e4078fcb317..730d3dd9148 100644 --- a/cypress/pageobject/Resource/ResourcePage.ts +++ b/cypress/pageobject/Resource/ResourcePage.ts @@ -4,9 +4,9 @@ class ResourcePage { cy.get("svg.care-svg-icon__baseline.care-l-export").each(($button) => { cy.intercept(/\/api\/v1\/resource/).as("resource_download"); cy.wrap($button).click({ force: true }); - cy.wait("@resource_download").then((interception) => { - expect(interception.response.statusCode).to.equal(200); - }); + cy.wait("@resource_download") + .its("response.statusCode") + .should("eq", 200); }); } @@ -19,9 +19,7 @@ class ResourcePage { } verifyCompletedResources() { - cy.wait("@resource").then((interception) => { - expect(interception.response.statusCode).to.equal(200); - }); + cy.wait("@resource").its("response.statusCode").should("eq", 200); cy.contains("button", "Active").should("have.class", "text-primary-500"); cy.contains("button", "Completed").should("have.class", "text-white"); } @@ -31,9 +29,7 @@ class ResourcePage { } verifyActiveResources() { - cy.wait("@resource").then((interception) => { - expect(interception.response.statusCode).to.equal(200); - }); + cy.wait("@resource").its("response.statusCode").should("eq", 200); cy.contains("button", "Active").should("have.class", "text-white"); cy.contains("button", "Completed").should("have.class", "text-primary-500"); } diff --git a/cypress/pageobject/Users/ManageUserPage.ts b/cypress/pageobject/Users/ManageUserPage.ts index 41d41d218d4..470862693a8 100644 --- a/cypress/pageobject/Users/ManageUserPage.ts +++ b/cypress/pageobject/Users/ManageUserPage.ts @@ -1,5 +1,5 @@ export class ManageUserPage { - assertHomeFacility(expectedText) { + assertHomeFacility(expectedText: string) { cy.get("#home_facility").should("contain.text", expectedText); } @@ -7,23 +7,23 @@ export class ManageUserPage { cy.get("#facilities").click(); } - selectFacilityFromDropdown(facilityName) { - cy.searchAndSelectOption("input[name='facility']", facilityName); + selectFacilityFromDropdown(facilityName: string) { + cy.typeAndSelectOption("input[name='facility']", facilityName); } - selectSkillFromDropdown(skill) { - cy.searchAndSelectOption("input[name='skill']", skill); + selectSkillFromDropdown(skill: string) { + cy.typeAndSelectOption("input[name='skill']", skill); } clickLinkFacility() { cy.get("#link-facility").click(); } - assertLinkedFacility(facilityName) { + assertLinkedFacility(facilityName: string) { cy.get("#linked-facility-list").should("contain.text", facilityName); } - assertnotLinkedFacility(facilityName) { + assertnotLinkedFacility(facilityName: string) { cy.get("#linked-facility-list").should("not.contain", facilityName); } @@ -31,11 +31,11 @@ export class ManageUserPage { cy.get("#linked-facility-list").should("not.exist"); } - assertHomeFacilitylink(facilityName) { + assertHomeFacilitylink(facilityName: string) { cy.get("#home-facility").should("contain.text", facilityName); } - assertFacilityNotInDropdown(facilityName) { + assertFacilityNotInDropdown(facilityName: string) { cy.get("input[name='facility']").click().type(facilityName); cy.get("[role='option']").should("not.exist"); } @@ -74,7 +74,8 @@ export class ManageUserPage { navigateToProfile() { cy.intercept("GET", "**/api/v1/users/**").as("getUsers"); - cy.get("#profilenamelink").click(); + cy.get("#user-profile-name").click(); + cy.get("#profile-button").click(); cy.wait("@getUsers").its("response.statusCode").should("eq", 200); } @@ -93,12 +94,12 @@ export class ManageUserPage { cy.visit("/facility"); } - typeFacilitySearch(facilityName) { + typeFacilitySearch(facilityName: string) { cy.get("#search").click().clear(); cy.get("#search").click().type(facilityName); } - assertFacilityInCard(facilityName) { + assertFacilityInCard(facilityName: string) { cy.get("#facility-name-card").should("contain", facilityName); } @@ -117,13 +118,13 @@ export class ManageUserPage { cy.wait("@getSkills").its("response.statusCode").should("eq", 200); } - assertSkillInAlreadyLinkedSkills(skillName) { + assertSkillInAlreadyLinkedSkills(skillName: string) { cy.get("#already-linked-skills") .contains(skillName) .should("have.length", 1); } - assertSkillIndoctorconnect(skillName) { + assertSkillIndoctorconnect(skillName: string) { cy.get("#doctor-connect-home-doctor") .contains(skillName) .should("have.length", 1); @@ -137,11 +138,11 @@ export class ManageUserPage { cy.get("#unlink-skill").click(); } - assertSkillInAddedUserSkills(skillName) { + assertSkillInAddedUserSkills(skillName: string) { cy.get("#added-user-skills").should("contain", skillName); } - assertDoctorConnectVisibility(realName) { + assertDoctorConnectVisibility(realName: string) { cy.get('*[id="doctor-connect-home-doctor"]').should( "contain.text", realName, diff --git a/cypress/pageobject/Users/UserProfilePage.ts b/cypress/pageobject/Users/UserProfilePage.ts index c3de5035dc7..20fd1911c49 100644 --- a/cypress/pageobject/Users/UserProfilePage.ts +++ b/cypress/pageobject/Users/UserProfilePage.ts @@ -42,8 +42,8 @@ export default class UserProfilePage { cy.get("#weekly_working_hours").click().clear().type(workinghours); } - typeDoctorQualification = (doctorQualification: string) => { - cy.get("#doctor_qualification").click().clear().type(doctorQualification); + typeQualification = (qualification: string) => { + cy.get("#qualification").click().clear().type(qualification); }; typeDoctorYoE = (doctorYoE: string) => { diff --git a/cypress/pageobject/Users/UserSearch.ts b/cypress/pageobject/Users/UserSearch.ts index 0c214e92706..d72c00c0de7 100644 --- a/cypress/pageobject/Users/UserSearch.ts +++ b/cypress/pageobject/Users/UserSearch.ts @@ -53,11 +53,11 @@ export class UserPage { } selectState(state: string) { - cy.searchAndSelectOption("#state input", state); + cy.typeAndSelectOption("#state input", state); } selectDistrict(district: string) { - cy.searchAndSelectOption("#district input", district); + cy.typeAndSelectOption("#district input", district); } typeInPhoneNumber(phone: string) { @@ -69,7 +69,7 @@ export class UserPage { } selectHomeFacility(facility: string) { - cy.searchAndSelectOption("input[name='home_facility']", facility); + cy.typeAndSelectOption("input[name='home_facility']", facility); } applyFilter() { diff --git a/cypress/support/commands.ts b/cypress/support/commands.ts index 86d048e5f41..da78361f6e8 100644 --- a/cypress/support/commands.ts +++ b/cypress/support/commands.ts @@ -38,8 +38,8 @@ Cypress.Commands.add("refreshApiLogin", (username, password) => { Cypress.Commands.add("loginByApi", (username, password) => { cy.log(`Logging in the user: ${username}:${password}`); cy.task("readFileMaybe", "cypress/fixtures/token.json").then( - (tkn: string) => { - const token = JSON.parse(tkn); + (tkn: unknown) => { + const token = JSON.parse(tkn as string); // Cast tkn to string if (tkn && token.access && token.username === username) { cy.request({ method: "POST", @@ -66,21 +66,6 @@ Cypress.Commands.add("loginByApi", (username, password) => { ); }); -Cypress.Commands.add( - "awaitUrl", - (url: string, disableLoginVerification = false) => { - cy.intercept(/getcurrentuser/).as("currentuser"); - cy.visit(url); - disableLoginVerification - ? cy.wait("@currentuser") - : cy.wait("@currentuser").its("response.statusCode").should("eq", 200); - }, -); - -Cypress.Commands.add("verifyNotification", (text) => { - return cy.get(".pnotify-container").should("exist").contains(text); -}); - Cypress.on("uncaught:exception", () => { // returning false here prevents Cypress from // failing the test @@ -94,19 +79,44 @@ Cypress.on("uncaught:exception", () => { * Waits until the selector finds an attached element, then yields it (wrapped). * selectorFn, if provided, is passed $(document). Don't use cy methods inside selectorFn. */ -Cypress.Commands.add("getAttached", (selector) => { +Cypress.Commands.add("getAttached", (selector: string) => { const getElement = - typeof selector === "function" ? selector : ($d) => $d.find(selector); - let $el = null; + typeof selector === "function" + ? selector + : ($d: JQuery) => + $d.find(selector) as unknown as JQuery; + + let $el: JQuery | null = null; + return cy .document() - .should(($d) => { + .should(($d: Document) => { $el = getElement(Cypress.$($d)); - expect(Cypress.dom.isDetached($el)).to.be.false; + // Ensure $el is an HTMLElement before checking if it is detached + if ($el.length && $el[0] instanceof HTMLElement) { + expect(Cypress.dom.isDetached($el[0])).to.be.false; // Access the first HTMLElement + } else { + throw new Error("Element is not an HTMLElement or is detached."); + } }) .then(() => cy.wrap($el)); }); +Cypress.Commands.add( + "awaitUrl", + (url: string, disableLoginVerification = false) => { + cy.intercept(/getcurrentuser/).as("currentuser"); + cy.visit(url); + disableLoginVerification + ? cy.wait("@currentuser") + : cy.wait("@currentuser").its("response.statusCode").should("eq", 200); + }, +); + +Cypress.Commands.add("verifyNotification", (text) => { + return cy.get(".pnotify-container").should("exist").contains(text); +}); + Cypress.Commands.add("clearAllFilters", () => { return cy.get("#clear-all-filters").click(); }); @@ -117,7 +127,7 @@ Cypress.Commands.add("submitButton", (buttonText = "Submit") => { }); Cypress.Commands.add( - "searchAndSelectOption", + "typeAndSelectOption", (element: string, referance: string) => { cy.get(element) .click() diff --git a/cypress/support/index.ts b/cypress/support/index.ts index d660246324f..b2895871872 100644 --- a/cypress/support/index.ts +++ b/cypress/support/index.ts @@ -15,7 +15,7 @@ declare global { getAttached(selector: string): Chainable; clearAllFilters(): Chainable; submitButton(buttonText?: string): Chainable; - searchAndSelectOption( + typeAndSelectOption( element: string, referance: string, ): Chainable; diff --git a/cypress/tsconfig.json b/cypress/tsconfig.json index 9c019786170..114000b60f0 100644 --- a/cypress/tsconfig.json +++ b/cypress/tsconfig.json @@ -1,11 +1,10 @@ { "compilerOptions": { - "baseUrl": "../node_modules", + "baseUrl": "./", "target": "es5", "lib": ["es5", "dom", "es2015", "es2016", "es2017", "es2018", "es2019", "es2020"], - "types": ["cypress"], "typeRoots": ["./support"], "resolveJsonModule": true }, - "include": ["**/*.ts", "support/commands.js"], -} + "include": ["**/*.cy.ts", "support/commands.ts","**/*.ts"], +} \ No newline at end of file diff --git a/index.html b/index.html index 6d2c83a0a99..0e302341c85 100644 --- a/index.html +++ b/index.html @@ -70,7 +70,7 @@
diff --git a/package-lock.json b/package-lock.json index 051c12bd2b4..aa99337d8d6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,22 +8,35 @@ "name": "care_fe", "version": "2.5.4", "license": "MIT", + "workspaces": [ + "apps/*" + ], "dependencies": { - "@fontsource/inter": "^5.0.21", + "@fontsource/figtree": "^5.1.0", "@googlemaps/react-wrapper": "^1.1.35", "@googlemaps/typescript-guards": "^2.0.3", "@headlessui/react": "^2.1.2", + "@hello-pangea/dnd": "^17.0.0", "@pnotify/core": "^5.2.0", "@pnotify/mobile": "^5.2.0", - "@sentry/browser": "^8.29.0", - "@yudiel/react-qr-scanner": "^2.0.0-beta.3", + "@radix-ui/react-dropdown-menu": "^2.1.2", + "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/react-slot": "^1.1.0", + "@radix-ui/react-toast": "^1.2.2", + "@radix-ui/react-tooltip": "^1.1.3", + "@sentry/browser": "^8.33.0", + "@yudiel/react-qr-scanner": "^2.0.8", "axios": "^1.7.7", "bowser": "^2.11.0", "browser-image-compression": "^2.0.2", + "browserslist": "^4.24.0", "browserslist-useragent-regexp": "^4.1.3", + "class-variance-authority": "^0.7.0", + "clsx": "^2.1.1", "cross-env": "^7.0.3", + "cypress": "^13.14.2", "dayjs": "^1.11.11", - "echarts": "^5.5.0", + "echarts": "^5.5.1", "echarts-for-react": "^3.0.2", "events": "^3.3.0", "hi-profiles": "^1.0.6", @@ -35,12 +48,9 @@ "raviger": "^4.1.2", "react": "18.3.1", "react-copy-to-clipboard": "^5.1.0", - "react-dnd": "^16.0.1", - "react-dnd-html5-backend": "^16.0.1", - "react-dnd-scrolling": "^1.3.8", "react-dom": "18.3.1", "react-google-recaptcha": "^3.1.0", - "react-i18next": "^13.0.1", + "react-i18next": "^15.0.2", "react-infinite-scroll-component": "^6.1.0", "react-markdown": "^8.0.7", "react-pdf": "^9.1.0", @@ -49,6 +59,8 @@ "redux": "^4.2.1", "redux-thunk": "^2.4.2", "rehype-raw": "^6.1.1", + "tailwind-merge": "^2.5.2", + "tailwindcss-animate": "^1.0.7", "use-keyboard-shortcut": "^1.1.6", "xlsx": "^0.18.5" }, @@ -56,29 +68,29 @@ "@tailwindcss/container-queries": "^0.1.1", "@tailwindcss/forms": "^0.5.7", "@tailwindcss/typography": "^0.5.13", - "@types/cypress": "^1.1.3", "@types/events": "^3.0.3", "@types/google.maps": "^3.55.8", "@types/lodash-es": "^4.17.12", + "@types/node": "^22.7.4", "@types/qrcode.react": "^1.0.5", - "@types/react": "18.3.2", + "@types/react": "^18.3.11", "@types/react-copy-to-clipboard": "^5.0.7", "@types/react-csv": "^1.1.10", "@types/react-dom": "^18.3.0", "@types/react-google-recaptcha": "^2.1.9", + "@types/uuid": "^10.0.0", "@typescript-eslint/eslint-plugin": "^7.18.0", "@vitejs/plugin-react-swc": "^3.6.0", "autoprefixer": "^10.4.19", - "cypress": "^13.14.2", "cypress-localstorage-commands": "^2.2.5", "cypress-split": "^1.23.2", + "dotenv": "^16.4.5", "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", - "gentype": "^4.5.0", "glob": "^11.0.0", "husky": "^8.0.3", "lint-staged": "^13.2.3", @@ -86,7 +98,6 @@ "postcss": "^8.4.38", "prettier": "^3.3.3", "prettier-plugin-tailwindcss": "^0.6.5", - "prop-types": "^15.8.1", "redux-devtools-extension": "^2.13.9", "snyk": "^1.1291.0", "tailwindcss": "^3.4.3", @@ -101,50 +112,63 @@ "node": ">=20.12.0" } }, - "node_modules/@aashutoshrathi/word-wrap": { - "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" + "apps/care_livekit_fe": { + "name": "care-livekit", + "version": "0.0.1", + "license": "ISC", + "dependencies": { + "@livekit/components-react": "^2.6.2", + "@livekit/components-styles": "^1.1.3", + "livekit-client": "^2.5.5" + }, + "devDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + }, + "peerDependencies": { + "react": "18.3.1", + "react-dom": "18.3.1" } }, "node_modules/@actions/core": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.1.tgz", - "integrity": "sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.11.1.tgz", + "integrity": "sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A==", "dev": true, "dependencies": { - "@actions/http-client": "^2.0.1", - "uuid": "^8.3.2" + "@actions/exec": "^1.1.1", + "@actions/http-client": "^2.0.1" } }, - "node_modules/@actions/core/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "node_modules/@actions/exec": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.1.1.tgz", + "integrity": "sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==", "dev": true, - "bin": { - "uuid": "dist/bin/uuid" + "dependencies": { + "@actions/io": "^1.0.1" } }, "node_modules/@actions/http-client": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.1.tgz", - "integrity": "sha512-KhC/cZsq7f8I4LfZSJKgCvEwfkE8o1538VoBeoGzokVLLnbFDEAdFD3UhoMklxo2un9NJVBdANOresx7vTHlHw==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.3.tgz", + "integrity": "sha512-mx8hyJi/hjFvbPokCg4uRd4ZX78t+YyRPtnKWwIl+RzNaVuFpQHfmlGVfsKEJN8LwTCvL+DfVgAM04XaHkm6bA==", "dev": true, "dependencies": { "tunnel": "^0.0.6", "undici": "^5.25.4" } }, + "node_modules/@actions/io": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.3.tgz", + "integrity": "sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q==", + "dev": true + }, "node_modules/@alloc/quick-lru": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true, "engines": { "node": ">=10" }, @@ -165,29 +189,12 @@ "node": ">=6.0.0" } }, - "node_modules/@apideck/better-ajv-errors": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", - "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", - "dev": true, - "dependencies": { - "json-schema": "^0.4.0", - "jsonpointer": "^5.0.0", - "leven": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "ajv": ">=8" - } - }, "node_modules/@babel/code-frame": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", - "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.7.tgz", + "integrity": "sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==", "dependencies": { - "@babel/highlight": "^7.24.2", + "@babel/highlight": "^7.25.7", "picocolors": "^1.0.0" }, "engines": { @@ -195,30 +202,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz", - "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.8.tgz", + "integrity": "sha512-ZsysZyXY4Tlx+Q53XdnOFmqwfB9QDTHYxaZYajWRoBLuLEAwI2UIbtxOjWh/cFaa9IKUlcB+DDuoskLuKu56JA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.5.tgz", - "integrity": "sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.8.tgz", + "integrity": "sha512-Oixnb+DzmRT30qu9d3tJSQkxuygWm32DFykT4bRoORPa9hZ/L4KhVB/XiRm6KG+roIEM7DBQlmg27kw2HZkdZg==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.5", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.24.5", - "@babel/helpers": "^7.24.5", - "@babel/parser": "^7.24.5", - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.5", - "@babel/types": "^7.24.5", + "@babel/code-frame": "^7.25.7", + "@babel/generator": "^7.25.7", + "@babel/helper-compilation-targets": "^7.25.7", + "@babel/helper-module-transforms": "^7.25.7", + "@babel/helpers": "^7.25.7", + "@babel/parser": "^7.25.8", + "@babel/template": "^7.25.7", + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.8", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -233,54 +240,64 @@ "url": "https://opencollective.com/babel" } }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/generator": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz", - "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.7.tgz", + "integrity": "sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==", "dev": true, "dependencies": { - "@babel/types": "^7.24.5", + "@babel/types": "^7.25.7", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.7.tgz", + "integrity": "sha512-4xwU8StnqnlIhhioZf1tqnVWeQ9pvH/ujS8hRfw/WOza+/a+1qv69BWNy+oY231maTCWgKWhfBU7kDpsds6zAA==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", - "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.7.tgz", + "integrity": "sha512-12xfNeKNH7jubQNm7PAkzlLwEmCs1tfuX3UjIw6vP6QXi+leKh6+LyC/+Ed4EIQermwd58wsyh070yjDHFlNGg==", "dev": true, "dependencies": { - "@babel/types": "^7.22.15" + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.7.tgz", + "integrity": "sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.25.7", + "@babel/helper-validator-option": "^7.25.7", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -288,20 +305,27 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.5.tgz", - "integrity": "sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-member-expression-to-functions": "^7.24.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.24.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.24.5", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.7.tgz", + "integrity": "sha512-bD4WQhbkx80mAyj/WCm4ZHcF4rDxkoLFO6ph8/5/mQ3z4vAzltQXAmbc7GvVJx5H+lk5Mi5EmbTeox5nMGCsbw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.7", + "@babel/helper-member-expression-to-functions": "^7.25.7", + "@babel/helper-optimise-call-expression": "^7.25.7", + "@babel/helper-replace-supers": "^7.25.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7", + "@babel/traverse": "^7.25.7", "semver": "^6.3.1" }, "engines": { @@ -311,14 +335,23 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", - "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.7.tgz", + "integrity": "sha512-byHhumTj/X47wJ6C6eLpK7wW/WBEcnUeb7D0FNc/jFQnQVw7DOso3Zz5u9x/zLrFVkHa89ZGDbkAa1D54NdrCQ==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "regexpu-core": "^5.3.1", + "@babel/helper-annotate-as-pure": "^7.25.7", + "regexpu-core": "^6.1.1", "semver": "^6.3.1" }, "engines": { @@ -328,10 +361,19 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.1.tgz", - "integrity": "sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", "dev": true, "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", @@ -344,75 +386,59 @@ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "node_modules/@babel/helper-define-polyfill-provider/node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" + "bin": { + "resolve": "bin/resolve" }, - "engines": { - "node": ">=6.9.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.5.tgz", - "integrity": "sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.7.tgz", + "integrity": "sha512-O31Ssjd5K6lPbTX9AAYpSKrZmLeagt9uwschJd+Ixo6QiRyfpvgtVQp8qrDR9UNFjZ8+DO34ZkdrN+BnPXemeA==", "dev": true, "dependencies": { - "@babel/types": "^7.24.5" + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", - "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.7.tgz", + "integrity": "sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==", "dev": true, "dependencies": { - "@babel/types": "^7.24.0" + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz", - "integrity": "sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.7.tgz", + "integrity": "sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.24.3", - "@babel/helper-simple-access": "^7.24.5", - "@babel/helper-split-export-declaration": "^7.24.5", - "@babel/helper-validator-identifier": "^7.24.5" + "@babel/helper-module-imports": "^7.25.7", + "@babel/helper-simple-access": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.7", + "@babel/traverse": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -422,35 +448,35 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.7.tgz", + "integrity": "sha512-VAwcwuYhv/AT+Vfr28c9y6SHzTan1ryqrydSTFGjU0uDJHw3uZ+PduI8plCLkRsDnqK2DMEDmwrOQRsK/Ykjng==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz", - "integrity": "sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz", + "integrity": "sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", - "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.7.tgz", + "integrity": "sha512-kRGE89hLnPfcz6fTrlNU+uhgcwv0mBE4Gv3P9Ke9kLVJYpi4AMVVEElXvB5CabrPZW4nCM8P8UyyjrzCM0O2sw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-wrap-function": "^7.22.20" + "@babel/helper-annotate-as-pure": "^7.25.7", + "@babel/helper-wrap-function": "^7.25.7", + "@babel/traverse": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -460,14 +486,14 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz", - "integrity": "sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.7.tgz", + "integrity": "sha512-iy8JhqlUW9PtZkd4pHM96v6BdJ66Ba9yWSE4z0W4TvSZwLBPkyDsiIU3ENe4SmrzRBs76F7rQXTy1lYC49n6Lw==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.23.0", - "@babel/helper-optimise-call-expression": "^7.22.5" + "@babel/helper-member-expression-to-functions": "^7.25.7", + "@babel/helper-optimise-call-expression": "^7.25.7", + "@babel/traverse": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -477,101 +503,90 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz", - "integrity": "sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz", + "integrity": "sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==", "dev": true, "dependencies": { - "@babel/types": "^7.24.5" + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", - "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.7.tgz", + "integrity": "sha512-pPbNbchZBkPMD50K0p3JGcFMNLVUCuU/ABybm/PGNj4JiHrpmNyqqCphBk4i19xXtNV0JhldQJJtbSW5aUvbyA==", "dev": true, "dependencies": { - "@babel/types": "^7.24.5" + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz", + "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", - "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz", + "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.7.tgz", + "integrity": "sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.7.tgz", + "integrity": "sha512-MA0roW3JF2bD1ptAaJnvcabsVlNQShUaThyJbCDD4bCp8NEgiFvpoqRI2YS22hHlc2thjO/fTg2ShLMC3jygAg==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" + "@babel/template": "^7.25.7", + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.5.tgz", - "integrity": "sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.7.tgz", + "integrity": "sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==", "dev": true, "dependencies": { - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.5", - "@babel/types": "^7.24.5" + "@babel/template": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", - "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.7.tgz", + "integrity": "sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-validator-identifier": "^7.25.7", "chalk": "^2.4.2", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" @@ -645,10 +660,13 @@ } }, "node_modules/@babel/parser": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz", - "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.8.tgz", + "integrity": "sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==", "dev": true, + "dependencies": { + "@babel/types": "^7.25.8" + }, "bin": { "parser": "bin/babel-parser.js" }, @@ -657,13 +675,28 @@ } }, "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.5.tgz", - "integrity": "sha512-LdXRi1wEMTrHVR4Zc9F8OewC3vdm5h4QB6L71zy6StmYeqGi1b3ttIO8UC+BfZKcH9jdr4aI249rBkm+3+YvHw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.7.tgz", + "integrity": "sha512-UV9Lg53zyebzD1DwQoT9mzkEKa922LNUp5YkTJ6Uta0RbyXaQNUgcvSt7qIu1PpPzVb6rd10OVNTzkyBGeVmxQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/traverse": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.7.tgz", + "integrity": "sha512-GDDWeVLNxRIkQTnJn2pDOM1pkCgYdSqPeT1a9vh9yIqu2uzzgw1zcqEb+IJOhy+dTBMlNdThrDIksr2o09qrrQ==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.24.5" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -673,12 +706,12 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.1.tgz", - "integrity": "sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.7.tgz", + "integrity": "sha512-wxyWg2RYaSUYgmd9MR0FyRGyeOMQE/Uzr1wzd/g5cf5bwi9A4v6HFdDm7y1MgDtod/fLOSTZY6jDgV0xU9d5bA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -688,14 +721,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz", - "integrity": "sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.7.tgz", + "integrity": "sha512-Xwg6tZpLxc4iQjorYsyGMyfJE7nP5MV8t/Ka58BgiA7Jw0fRqQNcANlLfdJ/yvBt9z9LD2We+BEkT7vLqZRWng==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.24.1" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7", + "@babel/plugin-transform-optional-chaining": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -705,13 +738,13 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz", - "integrity": "sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.7.tgz", + "integrity": "sha512-UVATLMidXrnH+GMUIuxq55nejlj02HP7F5ETyBONzP6G87fPBogG4CH6kxrSrdIuAjdwNO9VzyaYsrZPscWUrw==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/traverse": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -732,37 +765,28 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.25.7.tgz", + "integrity": "sha512-ZvZQRmME0zfJnDQnVBKYzHxXT7lYBB3Revz1GuS7oLXWMgqUPX4G+DDbT30ICClht9WKV34QVrZhSw6WdklwZQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.25.7" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.7.tgz", + "integrity": "sha512-AqVo+dguCgmpi/3mYBdu9lkngOBlQ2w2vnNpa6gfiCxQZLzV4ZbhsXitJ2Yblkoe1VQwtHSaNmIaGll/26YWRw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -771,37 +795,44 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.7.tgz", + "integrity": "sha512-ruZOnKO+ajVL/MVx+PwNBPOkrnXTXoWMtte1MBpegfCArhqOe3Bj52avVj1huLLxNKYKXYaSxZ2F+woK1ekXfw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz", - "integrity": "sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==", + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.7.tgz", + "integrity": "sha512-EJN2mKxDwfOUCPxMO6MUI58RN3ganiRAG/MS/S3HfB6QFNjroAMelQo/gybyYq97WerCBAZoyrAoW8Tzdq2jWg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -810,13 +841,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz", - "integrity": "sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==", + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.8.tgz", + "integrity": "sha512-9ypqkozyzpG+HxlH4o4gdctalFGIjjdufzo7I2XPda0iBnZ6a+FO0rIEQcdSPXp02CkvGsII1exJhmROPQd5oA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-remap-async-to-generator": "^7.25.7", + "@babel/traverse": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -825,37 +858,45 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.7.tgz", + "integrity": "sha512-ZUCjAavsh5CESCmi/xCpX1qcCaAglzs/7tmuvoFnJgA1dM7gQplsguljoTg+Ru8WENpX89cQyAtWoaE0I3X3Pg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-module-imports": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-remap-async-to-generator": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.7.tgz", + "integrity": "sha512-xHttvIM9fvqW+0a3tZlYcZYSBpSWzGBFIt/sYG3tcdSzBB8ZeVgz2gBP7Df+sM0N1850jrviYSSeUuc+135dmQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz", - "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==", + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.7.tgz", + "integrity": "sha512-ZEPJSkVZaeTFG/m2PARwLZQ+OG0vFIhPlKHK/JdIMy8DbRJ/htz6LRrTFtdzxi9EHmcwbNPAKDnadpNSIW+Aow==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -864,85 +905,106 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.7.tgz", + "integrity": "sha512-mhyfEW4gufjIqYFo9krXHJ3ElbFLIze5IDp+wQTxoPd+mwFb1NxatNAwmv8Q8Iuxv7Zc+q8EkiMQwc9IhyGf4g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-class-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.25.8.tgz", + "integrity": "sha512-e82gl3TCorath6YLf9xUwFehVvjvfqFhdOo4+0iVIVju+6XOi5XHkqB3P2AXnSwoeTX0HBoXq5gJFtvotJzFnQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-create-class-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.12.0" } }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "node_modules/@babel/plugin-transform-classes": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.7.tgz", + "integrity": "sha512-9j9rnl+YCQY0IGoeipXvnk3niWicIB6kCsWRGLwX241qSXpbA4MKxtp/EdvFxsc4zI5vqfLxzOd0twIJ7I99zg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-annotate-as-pure": "^7.25.7", + "@babel/helper-compilation-targets": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-replace-supers": "^7.25.7", + "@babel/traverse": "^7.25.7", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "node_modules/@babel/plugin-transform-classes/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=4" } }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.7.tgz", + "integrity": "sha512-QIv+imtM+EtNxg/XBKL3hiWjgdLjMOmZ+XzQwSgmBfKbfxUjBzGgVPklUuE55eq5/uVoh8gg3dqlrwR/jw3ZeA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/template": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.7.tgz", + "integrity": "sha512-xKcfLTlJYUczdaM1+epcdh1UGewJqr9zATgrNHcLBcV2QmfvPPEixo/sK/syql9cEmbr7ulu5HMFG5vbbt/sEA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.7.tgz", + "integrity": "sha512-kXzXMMRzAtJdDEgQBLF4oaiT6ZCU3oWHgpARnTKDAqPkDJ+bs3NrZb310YYevR5QlRo3Kn7dzzIdHbZm1VzJdQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-create-regexp-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -951,13 +1013,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.7.tgz", + "integrity": "sha512-by+v2CjoL3aMnWDOyCIg+yxU9KXSRa9tN6MbqggH5xvymmr9p4AMjYkNlQy4brMceBnUyHZ9G8RnpvT8wP7Cfg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -966,14 +1028,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.7.tgz", + "integrity": "sha512-HvS6JF66xSS5rNKXLqkk7L9c/jZ/cdIVIcoPVrnl8IsVpLggTjXs8OWekbLHs/VtYDDh5WXnQyeE3PPUGm22MA==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -982,13 +1044,13 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz", - "integrity": "sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==", + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.8.tgz", + "integrity": "sha512-gznWY+mr4ZQL/EWPcbBQUP3BXS5FwZp8RUOw06BaRn8tQLzN4XLIxXejpHN9Qo8x8jjBmAAKp6FoS51AgkSA/A==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -997,16 +1059,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.3.tgz", - "integrity": "sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==", + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.7.tgz", + "integrity": "sha512-yjqtpstPfZ0h/y40fAXRv2snciYr0OAoMXY/0ClC7tm4C/nG5NJKmIItlaYlLbIVAWNfrYuy9dq1bE0SbX0PEg==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-remap-async-to-generator": "^7.22.20", - "@babel/plugin-syntax-async-generators": "^7.8.4" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1015,15 +1075,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.1.tgz", - "integrity": "sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==", + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.8.tgz", + "integrity": "sha512-sPtYrduWINTQTW7FtOy99VCTWp4H23UX7vYcut7S4CIMEXU+54zKX9uCoGkLsWXteyaMXzVHgzWbLfQ1w4GZgw==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.24.1", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-remap-async-to-generator": "^7.22.20" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1032,13 +1090,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz", - "integrity": "sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==", + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.7.tgz", + "integrity": "sha512-n/TaiBGJxYFWvpJDfsxSj9lEEE44BFM1EPGz4KEiTipTgkoFVVcCmzAL3qA7fdQU96dpo4gGf5HBx/KnDvqiHw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1047,13 +1106,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.5.tgz", - "integrity": "sha512-sMfBc3OxghjC95BkYrYocHL3NaOplrcaunblzwXhGmlPwpmfsxr4vK+mBBt49r+S240vahmv+kUxkeKgs+haCw==", + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.7.tgz", + "integrity": "sha512-5MCTNcjCMxQ63Tdu9rxyN6cAWurqfrDZ76qvVPrGYdBxIj+EawuuxTu/+dgJlhK5eRz3v1gLwp6XwS8XaX2NiQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.5" + "@babel/helper-compilation-targets": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/traverse": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1062,14 +1123,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz", - "integrity": "sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==", + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.8.tgz", + "integrity": "sha512-4OMNv7eHTmJ2YXs3tvxAfa/I43di+VcF+M4Wt66c88EAED1RoGaf1D64cL5FkRpNL+Vx9Hds84lksWvd/wMIdA==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.1", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1078,37 +1138,28 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.4.tgz", - "integrity": "sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==", + "node_modules/@babel/plugin-transform-literals": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.7.tgz", + "integrity": "sha512-fwzkLrSu2fESR/cm4t6vqd7ebNIopz2QHGtjoU+dswQo/P6lwAG04Q98lliE3jkz/XqnbGFLnUcE0q0CVUf92w==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.4", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-class-static-block": "^7.14.5" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.12.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.5.tgz", - "integrity": "sha512-gWkLP25DFj2dwe9Ck8uwMOpko4YsqyfZJrOmqqcegeDYEbp7rmn4U6UQZNj08UF6MaX39XenSpKRCvpDRBtZ7Q==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.24.5", - "@babel/helper-replace-supers": "^7.24.1", - "@babel/helper-split-export-declaration": "^7.24.5", - "globals": "^11.1.0" + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.8.tgz", + "integrity": "sha512-f5W0AhSbbI+yY6VakT04jmxdxz+WsID0neG7+kQZbCOjuyJNdL5Nn4WIBm4hRpKnUcO9lP0eipUhFN12JpoH8g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1117,14 +1168,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz", - "integrity": "sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==", + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.7.tgz", + "integrity": "sha512-Std3kXwpXfRV0QtQy5JJcRpkqP8/wG4XL7hSKZmGlxPlDqmpXtEPRmhF7ztnlTCtUN3eXRUJp+sBEZjaIBVYaw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/template": "^7.24.0" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1133,13 +1183,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.5.tgz", - "integrity": "sha512-SZuuLyfxvsm+Ah57I/i1HVjveBENYK9ue8MJ7qkc7ndoNjqquJiElzA7f5yaAXjyW2hKojosOTAQQRX50bPSVg==", + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.7.tgz", + "integrity": "sha512-CgselSGCGzjQvKzghCvDTxKHP3iooenLpJDO842ehn5D2G5fJB222ptnDwQho0WjEvg7zyoxb9P+wiYxiJX5yA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.5" + "@babel/helper-module-transforms": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1148,14 +1199,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz", - "integrity": "sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==", + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.7.tgz", + "integrity": "sha512-L9Gcahi0kKFYXvweO6n0wc3ZG1ChpSFdgG+eV1WYZ3/dGbJK7vvk91FgGgak8YwRgrCuihF8tE/Xg07EkL5COg==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-module-transforms": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-simple-access": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1164,13 +1216,16 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz", - "integrity": "sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==", + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.7.tgz", + "integrity": "sha512-t9jZIvBmOXJsiuyOwhrIGs8dVcD6jDyg2icw1VL4A/g+FnWyJKwUfSSU2nwJuMV2Zqui856El9u+ElB+j9fV1g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-module-transforms": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.7", + "@babel/traverse": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1179,14 +1234,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz", - "integrity": "sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==", + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.7.tgz", + "integrity": "sha512-p88Jg6QqsaPh+EB7I9GJrIqi1Zt4ZBHUQtjw3z1bzEXcLh6GfPqzZJ6G+G1HBGKUNukT58MnKG7EN7zXQBCODw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" + "@babel/helper-module-transforms": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1195,30 +1250,29 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz", - "integrity": "sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==", + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.7.tgz", + "integrity": "sha512-BtAT9LzCISKG3Dsdw5uso4oV1+v2NlVXIIomKJgQybotJY3OwCwJmkongjHgwGKoZXd0qG5UZ12JUlDQ07W6Ow==", "dev": true, "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-create-regexp-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz", - "integrity": "sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==", + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.7.tgz", + "integrity": "sha512-CfCS2jDsbcZaVYxRFo2qtavW8SpdzmBXC2LOI4oO0rP+JSRDxxF3inF4GcPsLgfb5FjkhXG5/yR/lxuRs2pySA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1227,14 +1281,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz", - "integrity": "sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==", + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.8.tgz", + "integrity": "sha512-Z7WJJWdQc8yCWgAmjI3hyC+5PXIubH9yRKzkl9ZEG647O9szl9zvmKLzpbItlijBnVhTUf1cpyWBsZ3+2wjWPQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1243,15 +1296,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz", - "integrity": "sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==", + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.8.tgz", + "integrity": "sha512-rm9a5iEFPS4iMIy+/A/PiS0QN0UyjPIeVvbU5EMZFKJZHt8vQnasbpo3T3EFcxzCeYO0BHfc4RqooCZc51J86Q==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1260,14 +1311,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz", - "integrity": "sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==", + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.8.tgz", + "integrity": "sha512-LkUu0O2hnUKHKE7/zYOIjByMa4VRaV2CD/cdGz0AxU9we+VA3kDDggKEzI0Oz1IroG+6gUP6UmWEHBMWZU316g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-json-strings": "^7.8.3" + "@babel/helper-compilation-targets": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/plugin-transform-parameters": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1276,13 +1328,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz", - "integrity": "sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==", + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.7.tgz", + "integrity": "sha512-pWT6UXCEW3u1t2tcAGtE15ornCBvopHj9Bps9D2DsH15APgNVOTwwczGckX+WkAvBmuoYKRCFa4DK+jM8vh5AA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-replace-supers": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1291,14 +1344,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz", - "integrity": "sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==", + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.8.tgz", + "integrity": "sha512-EbQYweoMAHOn7iJ9GgZo14ghhb9tTjgOc88xFgYngifx7Z9u580cENCV159M4xDh3q/irbhSjZVpuhpC2gKBbg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1307,13 +1359,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz", - "integrity": "sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==", + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.8.tgz", + "integrity": "sha512-q05Bk7gXOxpTHoQ8RSzGSh/LHVB9JEIkKnk3myAWwZHnYiTGYtbdrYkIsS8Xyh4ltKf7GNUSgzs/6P2bJtBAQg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1322,210 +1375,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz", - "integrity": "sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==", + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.7.tgz", + "integrity": "sha512-FYiTvku63me9+1Nz7TOx4YMtW3tWXzfANZtrzHhUZrz4d47EEtMQhzFoZWESfXuAMMT5mwzD4+y1N8ONAX6lMQ==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.24.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz", - "integrity": "sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-simple-access": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz", - "integrity": "sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz", - "integrity": "sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.24.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz", - "integrity": "sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz", - "integrity": "sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz", - "integrity": "sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.5.tgz", - "integrity": "sha512-7EauQHszLGM3ay7a161tTQH7fj+3vVM/gThlz5HpFtnygTxjrlvoeq7MPVA1Vy9Q555OB8SnAOsMkLShNkkrHA==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-plugin-utils": "^7.24.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.24.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz", - "integrity": "sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-replace-supers": "^7.24.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz", - "integrity": "sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.5.tgz", - "integrity": "sha512-xWCkmwKT+ihmA6l7SSTpk8e4qQl/274iNbSKRRS8mpqFR32ksy36+a+LWY8OXCCEefF8WFlnOHVsaDI2231wBg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.5.tgz", - "integrity": "sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.5" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1535,13 +1391,13 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.1.tgz", - "integrity": "sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.7.tgz", + "integrity": "sha512-KY0hh2FluNxMLwOCHbxVOKfdB5sjWG4M183885FmaqWWiGMhRZq4DQRKH6mHdEucbJnyDyYiZNwNG424RymJjA==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.1", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-create-class-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1551,15 +1407,14 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.5.tgz", - "integrity": "sha512-JM4MHZqnWR04jPMujQDTBVRnqxpLLpx2tkn7iPn+Hmsc0Gnb79yvRWOkvqFOx3Z7P7VxiRIR22c4eGSNj87OBQ==", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.8.tgz", + "integrity": "sha512-8Uh966svuB4V8RHHg0QJOB32QK287NBksJOByoKmHMp1TAobNniNalIkI2i5IPj5+S9NYCG4VIjbEuiSN8r+ow==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.24.5", - "@babel/helper-plugin-utils": "^7.24.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + "@babel/helper-annotate-as-pure": "^7.25.7", + "@babel/helper-create-class-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1569,12 +1424,12 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz", - "integrity": "sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.7.tgz", + "integrity": "sha512-lQEeetGKfFi0wHbt8ClQrUSUMfEeI3MMm74Z73T9/kuz990yYVtfofjf3NuA42Jy3auFOpbjDyCSiIkTs1VIYw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1584,12 +1439,12 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz", - "integrity": "sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.7.tgz", + "integrity": "sha512-mgDoQCRjrY3XK95UuV60tZlFCQGXEtMg8H+IsW72ldw1ih1jZhzYXbJvghmAEpg5UVhhnCeia1CkGttUvCkiMQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-plugin-utils": "^7.25.7", "regenerator-transform": "^0.15.2" }, "engines": { @@ -1600,12 +1455,12 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz", - "integrity": "sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.7.tgz", + "integrity": "sha512-3OfyfRRqiGeOvIWSagcwUTVk2hXBsr/ww7bLn6TRTuXnexA+Udov2icFOxFX9abaj4l96ooYkcNN1qi2Zvqwng==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1615,12 +1470,12 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz", - "integrity": "sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.7.tgz", + "integrity": "sha512-uBbxNwimHi5Bv3hUccmOFlUy3ATO6WagTApenHz9KzoIdn0XeACdB12ZJ4cjhuB2WSi80Ez2FWzJnarccriJeA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1630,13 +1485,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz", - "integrity": "sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.7.tgz", + "integrity": "sha512-Mm6aeymI0PBh44xNIv/qvo8nmbkpZze1KvR8MkEqbIREDxoiWTi18Zr2jryfRMwDfVZF9foKh060fWgni44luw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1646,12 +1501,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.1.tgz", - "integrity": "sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.7.tgz", + "integrity": "sha512-ZFAeNkpGuLnAQ/NCsXJ6xik7Id+tHuS+NT+ue/2+rn/31zcdnupCdmunOizEaP0JsUmTFSTOPoQY7PkK2pttXw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1661,12 +1516,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz", - "integrity": "sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.7.tgz", + "integrity": "sha512-SI274k0nUsFFmyQupiO7+wKATAmMFf8iFgq2O+vVFXZ0SV9lNfT1NGzBEhjquFmD8I9sqHLguH+gZVN3vww2AA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1676,12 +1531,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.5.tgz", - "integrity": "sha512-UTGnhYVZtTAjdwOTzT+sCyXmTn8AhaxOS/MjG9REclZ6ULHWF9KoCZur0HSGU7hk8PdBFKKbYe6+gqdXWz84Jg==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.7.tgz", + "integrity": "sha512-OmWmQtTHnO8RSUbL0NTdtpbZHeNTnm68Gj5pA4Y2blFNh+V4iZR68V1qL9cI37J21ZN7AaCnkfdHtLExQPf2uA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.5" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1691,12 +1546,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz", - "integrity": "sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.7.tgz", + "integrity": "sha512-BN87D7KpbdiABA+t3HbVqHzKWUDN3dymLaTnPFAMyc8lV+KN3+YzNhVRNdinaCPA4AUqx7ubXbQ9shRjYBl3SQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1706,13 +1561,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz", - "integrity": "sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.7.tgz", + "integrity": "sha512-IWfR89zcEPQGB/iB408uGtSPlQd3Jpq11Im86vUgcmSTcoWAiQMCTOa2K2yNNqFJEBVICKhayctee65Ka8OB0w==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-create-regexp-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1722,13 +1577,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz", - "integrity": "sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.7.tgz", + "integrity": "sha512-8JKfg/hiuA3qXnlLx8qtv5HWRbgyFx2hMMtpDDuU2rTckpKkGu4ycK5yYHwuEa16/quXfoxHBIApEsNyMWnt0g==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-create-regexp-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1738,13 +1593,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz", - "integrity": "sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.7.tgz", + "integrity": "sha512-YRW8o9vzImwmh4Q3Rffd09bH5/hvY0pxg+1H1i0f7APoUeg12G7+HhLj9ZFNIrYkgBXhIijPJ+IXypN0hLTIbw==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-create-regexp-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1754,91 +1609,78 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.5.tgz", - "integrity": "sha512-UGK2ifKtcC8i5AI4cH+sbLLuLc2ktYSFJgBAXorKAsHUZmrQ1q6aQ6i3BvU24wWs2AAKqQB6kq3N9V9Gw1HiMQ==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.24.4", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-plugin-utils": "^7.24.5", - "@babel/helper-validator-option": "^7.23.5", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.1", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.1", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.1", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.8.tgz", + "integrity": "sha512-58T2yulDHMN8YMUxiLq5YmWUnlDCyY1FsHM+v12VMx+1/FlrUj5tY50iDCpofFQEM8fMYOaY9YRvym2jcjn1Dg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.25.8", + "@babel/helper-compilation-targets": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-validator-option": "^7.25.7", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.7", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.7", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.24.1", - "@babel/plugin-syntax-import-attributes": "^7.24.1", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-import-assertions": "^7.25.7", + "@babel/plugin-syntax-import-attributes": "^7.25.7", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.24.1", - "@babel/plugin-transform-async-generator-functions": "^7.24.3", - "@babel/plugin-transform-async-to-generator": "^7.24.1", - "@babel/plugin-transform-block-scoped-functions": "^7.24.1", - "@babel/plugin-transform-block-scoping": "^7.24.5", - "@babel/plugin-transform-class-properties": "^7.24.1", - "@babel/plugin-transform-class-static-block": "^7.24.4", - "@babel/plugin-transform-classes": "^7.24.5", - "@babel/plugin-transform-computed-properties": "^7.24.1", - "@babel/plugin-transform-destructuring": "^7.24.5", - "@babel/plugin-transform-dotall-regex": "^7.24.1", - "@babel/plugin-transform-duplicate-keys": "^7.24.1", - "@babel/plugin-transform-dynamic-import": "^7.24.1", - "@babel/plugin-transform-exponentiation-operator": "^7.24.1", - "@babel/plugin-transform-export-namespace-from": "^7.24.1", - "@babel/plugin-transform-for-of": "^7.24.1", - "@babel/plugin-transform-function-name": "^7.24.1", - "@babel/plugin-transform-json-strings": "^7.24.1", - "@babel/plugin-transform-literals": "^7.24.1", - "@babel/plugin-transform-logical-assignment-operators": "^7.24.1", - "@babel/plugin-transform-member-expression-literals": "^7.24.1", - "@babel/plugin-transform-modules-amd": "^7.24.1", - "@babel/plugin-transform-modules-commonjs": "^7.24.1", - "@babel/plugin-transform-modules-systemjs": "^7.24.1", - "@babel/plugin-transform-modules-umd": "^7.24.1", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.24.1", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.1", - "@babel/plugin-transform-numeric-separator": "^7.24.1", - "@babel/plugin-transform-object-rest-spread": "^7.24.5", - "@babel/plugin-transform-object-super": "^7.24.1", - "@babel/plugin-transform-optional-catch-binding": "^7.24.1", - "@babel/plugin-transform-optional-chaining": "^7.24.5", - "@babel/plugin-transform-parameters": "^7.24.5", - "@babel/plugin-transform-private-methods": "^7.24.1", - "@babel/plugin-transform-private-property-in-object": "^7.24.5", - "@babel/plugin-transform-property-literals": "^7.24.1", - "@babel/plugin-transform-regenerator": "^7.24.1", - "@babel/plugin-transform-reserved-words": "^7.24.1", - "@babel/plugin-transform-shorthand-properties": "^7.24.1", - "@babel/plugin-transform-spread": "^7.24.1", - "@babel/plugin-transform-sticky-regex": "^7.24.1", - "@babel/plugin-transform-template-literals": "^7.24.1", - "@babel/plugin-transform-typeof-symbol": "^7.24.5", - "@babel/plugin-transform-unicode-escapes": "^7.24.1", - "@babel/plugin-transform-unicode-property-regex": "^7.24.1", - "@babel/plugin-transform-unicode-regex": "^7.24.1", - "@babel/plugin-transform-unicode-sets-regex": "^7.24.1", + "@babel/plugin-transform-arrow-functions": "^7.25.7", + "@babel/plugin-transform-async-generator-functions": "^7.25.8", + "@babel/plugin-transform-async-to-generator": "^7.25.7", + "@babel/plugin-transform-block-scoped-functions": "^7.25.7", + "@babel/plugin-transform-block-scoping": "^7.25.7", + "@babel/plugin-transform-class-properties": "^7.25.7", + "@babel/plugin-transform-class-static-block": "^7.25.8", + "@babel/plugin-transform-classes": "^7.25.7", + "@babel/plugin-transform-computed-properties": "^7.25.7", + "@babel/plugin-transform-destructuring": "^7.25.7", + "@babel/plugin-transform-dotall-regex": "^7.25.7", + "@babel/plugin-transform-duplicate-keys": "^7.25.7", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.7", + "@babel/plugin-transform-dynamic-import": "^7.25.8", + "@babel/plugin-transform-exponentiation-operator": "^7.25.7", + "@babel/plugin-transform-export-namespace-from": "^7.25.8", + "@babel/plugin-transform-for-of": "^7.25.7", + "@babel/plugin-transform-function-name": "^7.25.7", + "@babel/plugin-transform-json-strings": "^7.25.8", + "@babel/plugin-transform-literals": "^7.25.7", + "@babel/plugin-transform-logical-assignment-operators": "^7.25.8", + "@babel/plugin-transform-member-expression-literals": "^7.25.7", + "@babel/plugin-transform-modules-amd": "^7.25.7", + "@babel/plugin-transform-modules-commonjs": "^7.25.7", + "@babel/plugin-transform-modules-systemjs": "^7.25.7", + "@babel/plugin-transform-modules-umd": "^7.25.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.7", + "@babel/plugin-transform-new-target": "^7.25.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.8", + "@babel/plugin-transform-numeric-separator": "^7.25.8", + "@babel/plugin-transform-object-rest-spread": "^7.25.8", + "@babel/plugin-transform-object-super": "^7.25.7", + "@babel/plugin-transform-optional-catch-binding": "^7.25.8", + "@babel/plugin-transform-optional-chaining": "^7.25.8", + "@babel/plugin-transform-parameters": "^7.25.7", + "@babel/plugin-transform-private-methods": "^7.25.7", + "@babel/plugin-transform-private-property-in-object": "^7.25.8", + "@babel/plugin-transform-property-literals": "^7.25.7", + "@babel/plugin-transform-regenerator": "^7.25.7", + "@babel/plugin-transform-reserved-words": "^7.25.7", + "@babel/plugin-transform-shorthand-properties": "^7.25.7", + "@babel/plugin-transform-spread": "^7.25.7", + "@babel/plugin-transform-sticky-regex": "^7.25.7", + "@babel/plugin-transform-template-literals": "^7.25.7", + "@babel/plugin-transform-typeof-symbol": "^7.25.7", + "@babel/plugin-transform-unicode-escapes": "^7.25.7", + "@babel/plugin-transform-unicode-property-regex": "^7.25.7", + "@babel/plugin-transform-unicode-regex": "^7.25.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.25.7", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-corejs3": "^0.10.6", "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.31.0", + "core-js-compat": "^3.38.1", "semver": "^6.3.1" }, "engines": { @@ -1848,6 +1690,15 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/preset-modules": { "version": "0.1.6-no-external-plugins", "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", @@ -1862,16 +1713,10 @@ "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true - }, "node_modules/@babel/runtime": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.1.tgz", - "integrity": "sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.7.tgz", + "integrity": "sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -1880,33 +1725,30 @@ } }, "node_modules/@babel/template": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.7.tgz", + "integrity": "sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" + "@babel/code-frame": "^7.25.7", + "@babel/parser": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz", - "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.24.5", - "@babel/parser": "^7.24.5", - "@babel/types": "^7.24.5", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.7.tgz", + "integrity": "sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.25.7", + "@babel/generator": "^7.25.7", + "@babel/parser": "^7.25.7", + "@babel/template": "^7.25.7", + "@babel/types": "^7.25.7", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -1914,35 +1756,47 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/types": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", - "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.8.tgz", + "integrity": "sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.24.1", - "@babel/helper-validator-identifier": "^7.24.5", + "@babel/helper-string-parser": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.7", "to-fast-properties": "^2.0.0" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@bufbuild/protobuf": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-1.10.0.tgz", + "integrity": "sha512-QDdVFLoN93Zjg36NoQPZfsVH9tZew7wKDKyV5qRdj8ntT4wQCOradQjRaTdwMhWUYsgKsvCINKKm87FdEk96Ag==" + }, "node_modules/@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "dev": true, "optional": true, "engines": { "node": ">=0.1.90" } }, "node_modules/@cypress/request": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.1.tgz", - "integrity": "sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==", - "dev": true, + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.5.tgz", + "integrity": "sha512-v+XHd9XmWbufxF1/bTaVm2yhbxY+TB4YtWRqF2zaXBlDNMkls34KiATz0AVDLavL3iB6bQk9/7n3oY1EoLSWGA==", "dependencies": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -1950,14 +1804,14 @@ "combined-stream": "~1.0.6", "extend": "~3.0.2", "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "http-signature": "~1.3.6", + "form-data": "~4.0.0", + "http-signature": "~1.4.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", "json-stringify-safe": "~5.0.1", "mime-types": "~2.1.19", "performance-now": "^2.1.0", - "qs": "6.10.4", + "qs": "6.13.0", "safe-buffer": "^5.1.2", "tough-cookie": "^4.1.3", "tunnel-agent": "^0.6.0", @@ -1967,40 +1821,10 @@ "node": ">= 6" } }, - "node_modules/@cypress/request/node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/@cypress/request/node_modules/qs": { - "version": "6.10.4", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz", - "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/@cypress/request/node_modules/uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, "bin": { "uuid": "dist/bin/uuid" } @@ -2009,7 +1833,6 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", - "dev": true, "dependencies": { "debug": "^3.1.0", "lodash.once": "^4.1.1" @@ -2019,28 +1842,43 @@ "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/@dependents/detective-less": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@dependents/detective-less/-/detective-less-4.1.0.tgz", - "integrity": "sha512-KrkT6qO5NxqNfy68sBl6CTSoJ4SNDIS5iQArkibhlbGU4LaDukZ3q2HIkh8aUKDio6o4itU4xDR7t82Y2eP1Bg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@dependents/detective-less/-/detective-less-5.0.0.tgz", + "integrity": "sha512-D/9dozteKcutI5OdxJd8rU+fL6XgaaRg60sPPJWkT33OCiRfkCu5wO5B/yXTaaL2e6EB0lcCBGe5E0XscZCvvQ==", "dev": true, "dependencies": { "gonzales-pe": "^4.3.0", - "node-source-walk": "^6.0.1" + "node-source-walk": "^7.0.0" }, "engines": { - "node": ">=14" + "node": ">=18" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", + "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/android-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", - "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz", + "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==", "cpu": [ "arm" ], @@ -2050,13 +1888,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", - "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz", + "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==", "cpu": [ "arm64" ], @@ -2066,13 +1904,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", - "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz", + "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==", "cpu": [ "x64" ], @@ -2082,13 +1920,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", - "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz", + "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==", "cpu": [ "arm64" ], @@ -2098,13 +1936,13 @@ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", - "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz", + "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==", "cpu": [ "x64" ], @@ -2114,13 +1952,13 @@ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", - "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz", + "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==", "cpu": [ "arm64" ], @@ -2130,13 +1968,13 @@ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", - "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz", + "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==", "cpu": [ "x64" ], @@ -2146,13 +1984,13 @@ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", - "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz", + "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==", "cpu": [ "arm" ], @@ -2162,13 +2000,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", - "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz", + "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==", "cpu": [ "arm64" ], @@ -2178,13 +2016,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", - "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz", + "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==", "cpu": [ "ia32" ], @@ -2194,13 +2032,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", - "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz", + "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==", "cpu": [ "loong64" ], @@ -2210,13 +2048,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", - "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz", + "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==", "cpu": [ "mips64el" ], @@ -2226,13 +2064,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", - "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz", + "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==", "cpu": [ "ppc64" ], @@ -2242,13 +2080,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", - "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz", + "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==", "cpu": [ "riscv64" ], @@ -2258,13 +2096,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", - "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz", + "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==", "cpu": [ "s390x" ], @@ -2274,13 +2112,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", - "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz", + "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==", "cpu": [ "x64" ], @@ -2290,13 +2128,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", - "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz", + "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==", "cpu": [ "x64" ], @@ -2306,15 +2144,15 @@ "netbsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", - "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz", + "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==", "cpu": [ - "x64" + "arm64" ], "dev": true, "optional": true, @@ -2322,13 +2160,29 @@ "openbsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", - "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "node_modules/@esbuild/openbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz", + "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz", + "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==", "cpu": [ "x64" ], @@ -2338,13 +2192,13 @@ "sunos" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", - "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz", + "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==", "cpu": [ "arm64" ], @@ -2354,13 +2208,13 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", - "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz", + "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==", "cpu": [ "ia32" ], @@ -2370,13 +2224,13 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", - "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz", + "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==", "cpu": [ "x64" ], @@ -2386,7 +2240,7 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@eslint-community/eslint-utils": { @@ -2405,9 +2259,9 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", - "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz", + "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" @@ -2437,50 +2291,34 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/@eslint/eslintrc/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "peer": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "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==", + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "peer": true, "dependencies": { - "type-fest": "^0.20.2" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "*" } }, - "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==", - "dev": true, - "peer": true - }, "node_modules/@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", "dev": true, "peer": true, "engines": { @@ -2497,32 +2335,29 @@ } }, "node_modules/@floating-ui/core": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.6.tgz", - "integrity": "sha512-Vkvsw6EcpMHjvZZdMkSY+djMGFbt7CRssW99Ne8tar2WLnZ/l3dbxeTShbLQj+/s35h+Qb4cmnob+EzwtjrXGQ==", - "license": "MIT", + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.8.tgz", + "integrity": "sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==", "dependencies": { - "@floating-ui/utils": "^0.2.6" + "@floating-ui/utils": "^0.2.8" } }, "node_modules/@floating-ui/dom": { - "version": "1.6.9", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.9.tgz", - "integrity": "sha512-zB1PcI350t4tkm3rvUhSRKa9sT7vH5CrAbQxW+VaPYJXKAO0gsg4CTueL+6Ajp7XzAQC8CW4Jj1Wgqc0sB6oUQ==", - "license": "MIT", + "version": "1.6.11", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.11.tgz", + "integrity": "sha512-qkMCxSR24v2vGkhYDo/UzxfJN3D4syqSjyuTFz6C7XcpU1pASPRieNI0Kj5VP3/503mOfYiGY891ugBX1GlABQ==", "dependencies": { "@floating-ui/core": "^1.6.0", - "@floating-ui/utils": "^0.2.6" + "@floating-ui/utils": "^0.2.8" } }, "node_modules/@floating-ui/react": { - "version": "0.26.21", - "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.26.21.tgz", - "integrity": "sha512-7P5ncDIiYd6RrwpCDbKyFzvabM014QlzlumtDbK3Bck0UueC+Rp8BLS34qcGBcN1pZCTodl4QNnCVmKv4tSxfQ==", - "license": "MIT", + "version": "0.26.25", + "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.26.25.tgz", + "integrity": "sha512-hZOmgN0NTOzOuZxI1oIrDu3Gcl8WViIkvPMpB4xdd4QD6xAMtwgwr3VPoiyH/bLtRcS1cDnhxLSD1NsMJmwh/A==", "dependencies": { - "@floating-ui/react-dom": "^2.1.1", - "@floating-ui/utils": "^0.2.6", + "@floating-ui/react-dom": "^2.1.2", + "@floating-ui/utils": "^0.2.8", "tabbable": "^6.0.0" }, "peerDependencies": { @@ -2531,10 +2366,9 @@ } }, "node_modules/@floating-ui/react-dom": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.1.tgz", - "integrity": "sha512-4h84MJt3CHrtG18mGsXuLCHMrug49d7DFkU0RMIyshRveBeyV2hmV/pDaF2Uxtu8kgq5r46llp5E5FQiR0K2Yg==", - "license": "MIT", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz", + "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==", "dependencies": { "@floating-ui/dom": "^1.0.0" }, @@ -2544,28 +2378,24 @@ } }, "node_modules/@floating-ui/utils": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.6.tgz", - "integrity": "sha512-0KI3zGxIUs1KDR/pjQPdJH4Z8nGBm0yJ5WRoRfdw1Kzeh45jkIfA0rmD0kBF6fKHH+xaH7g8y4jIXyAV5MGK3g==", - "license": "MIT" + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.8.tgz", + "integrity": "sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==" }, - "node_modules/@fontsource/inter": { - "version": "5.0.21", - "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-5.0.21.tgz", - "integrity": "sha512-Y4Ph0bYD5IfW8r9PSeiNjLvM6D/Bh5+YT9jOKiBqW3YS+AEBlmy8v74TpTNeZAvL3zHmikHCnzaKw7ob8LZiKQ==" + "node_modules/@fontsource/figtree": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@fontsource/figtree/-/figtree-5.1.1.tgz", + "integrity": "sha512-jVxgbCrtag/f6FYauu+DbQJR7TvM43IyX2iNcx8QmmEluzyPZ+FVRul5t0OV9k52fDi6nBLF/8709AAGYv7ZmA==" }, "node_modules/@googlemaps/js-api-loader": { - "version": "1.16.6", - "resolved": "https://registry.npmjs.org/@googlemaps/js-api-loader/-/js-api-loader-1.16.6.tgz", - "integrity": "sha512-V8p5W9DbPQx74jWUmyYJOerhiB4C+MHekaO0ZRmc6lrOYrvY7+syLhzOWpp55kqSPeNb+qbC2h8i69aLIX6krQ==", - "dependencies": { - "fast-deep-equal": "^3.1.3" - } + "version": "1.16.8", + "resolved": "https://registry.npmjs.org/@googlemaps/js-api-loader/-/js-api-loader-1.16.8.tgz", + "integrity": "sha512-CROqqwfKotdO6EBjZO/gQGVTbeDps5V7Mt9+8+5Q+jTg5CRMi3Ii/L9PmV3USROrt2uWxtGzJHORmByxyo9pSQ==" }, "node_modules/@googlemaps/react-wrapper": { - "version": "1.1.35", - "resolved": "https://registry.npmjs.org/@googlemaps/react-wrapper/-/react-wrapper-1.1.35.tgz", - "integrity": "sha512-vK+BDQMHN0Oqr66cW3ZPWVK43BUmJJBu6P8T74tc6/fKpUJUlFEaZsupgIIRRRDW9ejB8uGagUmwOnA2gdcvbw==", + "version": "1.1.42", + "resolved": "https://registry.npmjs.org/@googlemaps/react-wrapper/-/react-wrapper-1.1.42.tgz", + "integrity": "sha512-rZBqreFTpHmNgB4vYBFkWPjXrjg3HDRmCSQFugCJ7wT45B+Ueh3pzjSvvHHGGIqtSJ3nS5VXRqBhRgpanP0saw==", "dependencies": { "@googlemaps/js-api-loader": "^1.13.2" }, @@ -2579,10 +2409,9 @@ "integrity": "sha512-3iHuO8H0jPehftsMK0kgyJzPYU/g/oiTRw+wu/yltqSZ7wJPt3vfsJHkPiuRpQjbnnWygX+T3mkRGyK/eyZ/lw==" }, "node_modules/@headlessui/react": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-2.1.2.tgz", - "integrity": "sha512-Kb3hgk9gRNRcTZktBrKdHhF3xFhYkca1Rk6e1/im2ENf83dgN54orMW0uSKTXFnUpZOUFZ+wcY05LlipwgZIFQ==", - "license": "MIT", + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-2.1.10.tgz", + "integrity": "sha512-6mLa2fjMDAFQi+/R10B+zU3edsUk/MDtENB2zHho0lqKU1uzhAfJLUduWds4nCo8wbl3vULtC5rJfZAQ1yqIng==", "dependencies": { "@floating-ui/react": "^0.26.16", "@react-aria/focus": "^3.17.1", @@ -2597,15 +2426,60 @@ "react-dom": "^18" } }, + "node_modules/@hello-pangea/dnd": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@hello-pangea/dnd/-/dnd-17.0.0.tgz", + "integrity": "sha512-LDDPOix/5N0j5QZxubiW9T0M0+1PR0rTDWeZF5pu1Tz91UQnuVK4qQ/EjY83Qm2QeX0eM8qDXANfDh3VVqtR4Q==", + "dependencies": { + "@babel/runtime": "^7.25.6", + "css-box-model": "^1.2.1", + "memoize-one": "^6.0.0", + "raf-schd": "^4.0.3", + "react-redux": "^9.1.2", + "redux": "^5.0.1", + "use-memo-one": "^1.1.3" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@hello-pangea/dnd/node_modules/react-redux": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.1.2.tgz", + "integrity": "sha512-0OA4dhM1W48l3uzmv6B7TXPCGmokUU4p1M44DGN2/D9a1FjVPukVjER1PcPX97jIg6aUeLq1XJo1IpfbgULn0w==", + "dependencies": { + "@types/use-sync-external-store": "^0.0.3", + "use-sync-external-store": "^1.0.0" + }, + "peerDependencies": { + "@types/react": "^18.2.25", + "react": "^18.0", + "redux": "^5.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "redux": { + "optional": true + } + } + }, + "node_modules/@hello-pangea/dnd/node_modules/redux": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==" + }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", "deprecated": "Use @eslint/config-array instead", "dev": true, "peer": true, "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", + "@humanwhocodes/object-schema": "^2.0.3", "debug": "^4.3.1", "minimatch": "^3.0.5" }, @@ -2613,6 +2487,30 @@ "node": ">=10.10.0" } }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", @@ -2639,7 +2537,6 @@ "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -2653,10 +2550,9 @@ } }, "node_modules/@isaacs/cliui/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, + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "engines": { "node": ">=12" }, @@ -2664,11 +2560,15 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, "node_modules/@isaacs/cliui/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", @@ -2685,7 +2585,6 @@ "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" }, @@ -2735,9 +2634,9 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", @@ -2748,6 +2647,64 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@livekit/components-core": { + "version": "0.11.9", + "resolved": "https://registry.npmjs.org/@livekit/components-core/-/components-core-0.11.9.tgz", + "integrity": "sha512-LPE1BZ+YTaqsVqGy/GAlpiO5rEI8XpEaf1TQcGdZN1BCBas9hTHt7/aHMbHQJ0K5xuAFQx8is6dFe451T4qXIQ==", + "dependencies": { + "@floating-ui/dom": "1.6.11", + "loglevel": "1.9.1", + "rxjs": "7.8.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "livekit-client": "^2.5.7", + "tslib": "^2.6.2" + } + }, + "node_modules/@livekit/components-react": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@livekit/components-react/-/components-react-2.6.5.tgz", + "integrity": "sha512-G3BpBlKy+lWTV9MH3/oBTBC17Z8CWqZ9GnjcG/xmYI0IvqmY89tVWph7cj2Bq0taniA+mD3U9EMPr68fOb1m1g==", + "dependencies": { + "@livekit/components-core": "0.11.9", + "clsx": "2.1.1", + "usehooks-ts": "3.1.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@livekit/krisp-noise-filter": "^0.2.12", + "livekit-client": "^2.5.7", + "react": ">=18", + "react-dom": ">=18", + "tslib": "^2.6.2" + }, + "peerDependenciesMeta": { + "@livekit/krisp-noise-filter": { + "optional": true + } + } + }, + "node_modules/@livekit/components-styles": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@livekit/components-styles/-/components-styles-1.1.4.tgz", + "integrity": "sha512-QCupn7tQ/dy/WZclrfsgtDe8peiGYS6Ied1IGkKOysaXo04l90t62SIUTKyxgd0dNDhUDC0p34qCggGZs/44lQ==", + "engines": { + "node": ">=18" + } + }, + "node_modules/@livekit/protocol": { + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/@livekit/protocol/-/protocol-1.24.0.tgz", + "integrity": "sha512-9dCsqnkMn7lvbI4NGh18zhLDsrXyUcpS++TEFgEk5Xv1WM3R2kT3EzqgL1P/mr3jaabM6rJ8wZA/KJLuQNpF5w==", + "dependencies": { + "@bufbuild/protobuf": "^1.10.0" + } + }, "node_modules/@mapbox/node-pre-gyp": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", @@ -2768,23 +2725,10 @@ "node-pre-gyp": "bin/node-pre-gyp" } }, - "node_modules/@mapbox/node-pre-gyp/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "optional": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -2797,7 +2741,6 @@ "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" } @@ -2806,7 +2749,6 @@ "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" @@ -2882,18 +2824,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@npmcli/config/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/git": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.8.tgz", @@ -2938,18 +2868,6 @@ "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" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@npmcli/git/node_modules/which": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", @@ -2980,15 +2898,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@npmcli/map-workspaces/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/@npmcli/map-workspaces/node_modules/glob": { "version": "10.4.5", "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", @@ -3030,21 +2939,6 @@ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true }, - "node_modules/@npmcli/map-workspaces/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/@npmcli/map-workspaces/node_modules/path-scurry": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", @@ -3071,9 +2965,9 @@ } }, "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==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.2.1.tgz", + "integrity": "sha512-f7zYC6kQautXHvNbLEWgD/uGu1+xCn9izgqBfgItWSx22U0ZDekxN08A1vM8cTxj/cRVe0Q94Ode+tdoYmIOOQ==", "dev": true, "dependencies": { "@npmcli/git": "^5.0.0", @@ -3088,15 +2982,6 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@npmcli/package-json/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/@npmcli/package-json/node_modules/glob": { "version": "10.4.5", "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", @@ -3117,18 +3002,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "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/jackspeak": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", @@ -3159,67 +3032,26 @@ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true }, - "node_modules/@npmcli/package-json/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "node_modules/@npmcli/package-json/node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, "dependencies": { - "brace-expansion": "^2.0.1" + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "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/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "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==", + "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" @@ -3256,7 +3088,6 @@ "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, "optional": true, "engines": { "node": ">=14" @@ -3287,236 +3118,749 @@ "@pnotify/core": "^5.2.0" } }, - "node_modules/@react-aria/focus": { - "version": "3.18.1", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.18.1.tgz", - "integrity": "sha512-N0Cy61WCIv+57mbqC7hiZAsB+3rF5n4JKabxUmg/2RTJL6lq7hJ5N4gx75ymKxkN8GnVDwt4pKZah48Wopa5jw==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/interactions": "^3.22.1", - "@react-aria/utils": "^3.25.1", - "@react-types/shared": "^3.24.1", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" - } + "node_modules/@radix-ui/primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.0.tgz", + "integrity": "sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==" }, - "node_modules/@react-aria/interactions": { - "version": "3.22.1", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.22.1.tgz", - "integrity": "sha512-5TLzQaDAQQ5C70yG8GInbO4wIylKY67RfTIIwQPGR/4n5OIjbUD8BOj3NuSsuZ/frUPaBXo1VEBBmSO23fxkjw==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.5", - "@react-aria/utils": "^3.25.1", - "@react-types/shared": "^3.24.1", - "@swc/helpers": "^0.5.0" + "node_modules/@radix-ui/react-arrow": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.0.tgz", + "integrity": "sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@react-aria/ssr": { - "version": "3.9.5", - "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.5.tgz", - "integrity": "sha512-xEwGKoysu+oXulibNUSkXf8itW0npHHTa6c4AyYeZIJyRoegeteYuFpZUBPtIDE8RfHdNsSmE1ssOkxRnwbkuQ==", - "license": "Apache-2.0", + "node_modules/@radix-ui/react-collection": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.0.tgz", + "integrity": "sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==", "dependencies": { - "@swc/helpers": "^0.5.0" - }, - "engines": { - "node": ">= 12" + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@react-aria/utils": { - "version": "3.25.1", - "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.25.1.tgz", - "integrity": "sha512-5Uj864e7T5+yj78ZfLnfHqmypLiqW2mN+nsdslog2z5ssunTqjolVeM15ootXskjISlZ7MojLpq97kIC4nlnAw==", - "license": "Apache-2.0", - "dependencies": { - "@react-aria/ssr": "^3.9.5", - "@react-stately/utils": "^3.10.2", - "@react-types/shared": "^3.24.1", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, + "node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-context": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", + "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@react-dnd/asap": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@react-dnd/asap/-/asap-5.0.2.tgz", - "integrity": "sha512-WLyfoHvxhs0V9U+GTsGilGgf2QsPl6ZZ44fnv0/b8T3nQyvzxidxsg/ZltbWssbsRDlYW8UKSQMTGotuTotZ6A==" - }, - "node_modules/@react-dnd/invariant": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@react-dnd/invariant/-/invariant-4.0.2.tgz", - "integrity": "sha512-xKCTqAK/FFauOM9Ta2pswIyT3D8AQlfrYdOi/toTPEhqCuAs1v5tcJ3Y08Izh1cJ5Jchwy9SeAXmMg6zrKs2iw==" - }, - "node_modules/@react-dnd/shallowequal": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@react-dnd/shallowequal/-/shallowequal-4.0.2.tgz", - "integrity": "sha512-/RVXdLvJxLg4QKvMoM5WlwNR9ViO9z8B/qPcc+C0Sa/teJY7QG7kJ441DwzOjMYEY7GmU4dj5EcGHIkKZiQZCA==" - }, - "node_modules/@react-stately/utils": { - "version": "3.10.2", - "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.2.tgz", - "integrity": "sha512-fh6OTQtbeQC0ywp6LJuuKs6tKIgFvt/DlIZEcIpGho6/oZG229UnIk6TUekwxnDbumuYyan6D9EgUtEMmT8UIg==", - "license": "Apache-2.0", - "dependencies": { - "@swc/helpers": "^0.5.0" + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.0.tgz", + "integrity": "sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.1.tgz", + "integrity": "sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==", "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@react-types/shared": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.24.1.tgz", - "integrity": "sha512-AUQeGYEm/zDTN6zLzdXolDxz3Jk5dDL7f506F07U8tBwxNNI3WRdhU84G0/AaFikOZzDXhOZDr3MhQMzyE7Ydw==", - "license": "Apache-2.0", + "node_modules/@radix-ui/react-direction": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.0.tgz", + "integrity": "sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==", "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@rollup/plugin-babel": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", - "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", - "dev": true, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.1.tgz", + "integrity": "sha512-QSxg29lfr/xcev6kSz7MAlmDnzbP1eI/Dwn3Tp1ip0KT5CUELsxkekFEMVBEoykI3oV39hKT4TKZzBNMbcTZYQ==", "dependencies": { - "@babel/helper-module-imports": "^7.10.4", - "@rollup/pluginutils": "^3.1.0" - }, - "engines": { - "node": ">= 10.0.0" + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-escape-keydown": "1.1.0" }, "peerDependencies": { - "@babel/core": "^7.0.0", - "@types/babel__core": "^7.1.9", - "rollup": "^1.20.0||^2.0.0" + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { - "@types/babel__core": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { "optional": true } } }, - "node_modules/@rollup/plugin-babel/node_modules/@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "dev": true, + "node_modules/@radix-ui/react-dropdown-menu": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.2.tgz", + "integrity": "sha512-GVZMR+eqK8/Kes0a36Qrv+i20bAPXSn8rCBTHx30w+3ECnR5o3xixAlqcVaYvLeyKUsm0aqyhWfmUcqufM8nYA==", "dependencies": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-menu": "2.1.2", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-controllable-state": "1.1.0" }, "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@rollup/plugin-babel/node_modules/@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "dev": true - }, - "node_modules/@rollup/plugin-babel/node_modules/estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "dev": true + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.1.tgz", + "integrity": "sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "15.2.3", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz", - "integrity": "sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==", - "dev": true, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.0.tgz", + "integrity": "sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==", "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "@types/resolve": "1.20.2", - "deepmerge": "^4.2.2", - "is-builtin-module": "^3.2.1", - "is-module": "^1.0.0", - "resolve": "^1.22.1" - }, - "engines": { - "node": ">=14.0.0" + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0" }, "peerDependencies": { - "rollup": "^2.78.0||^3.0.0||^4.0.0" + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { - "rollup": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { "optional": true } } }, - "node_modules/@rollup/plugin-node-resolve/node_modules/@types/resolve": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", - "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", - "dev": true + "node_modules/@radix-ui/react-icons": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-icons/-/react-icons-1.3.0.tgz", + "integrity": "sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==", + "peerDependencies": { + "react": "^16.x || ^17.x || ^18.x" + } }, - "node_modules/@rollup/plugin-replace": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", - "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", - "dev": true, + "node_modules/@radix-ui/react-id": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz", + "integrity": "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==", "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "magic-string": "^0.25.7" + "@radix-ui/react-use-layout-effect": "1.1.0" }, "peerDependencies": { - "rollup": "^1.20.0 || ^2.0.0" + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@rollup/plugin-replace/node_modules/@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "dev": true, - "dependencies": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" + "node_modules/@radix-ui/react-menu": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.2.tgz", + "integrity": "sha512-lZ0R4qR2Al6fZ4yCCZzu/ReTFrylHFxIqy7OezIpWF4bL0o9biKo0pFIvkaew3TyZ9Fy5gYVrR5zCGZBVbO1zg==", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-focus-guards": "1.1.1", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.2", + "@radix-ui/react-presence": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-roving-focus": "1.1.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.6.0" }, - "engines": { - "node": ">= 8.0.0" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popper": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.0.tgz", + "integrity": "sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==", + "dependencies": { + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-rect": "1.1.0", + "@radix-ui/react-use-size": "1.1.0", + "@radix-ui/rect": "1.1.0" }, "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@rollup/plugin-replace/node_modules/@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "dev": true + "node_modules/@radix-ui/react-popper/node_modules/@radix-ui/react-context": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", + "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } }, - "node_modules/@rollup/plugin-replace/node_modules/estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "dev": true + "node_modules/@radix-ui/react-portal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.2.tgz", + "integrity": "sha512-WeDYLGPxJb/5EGBoedyJbT0MpoULmwnIPMJMSldkuiMsBAv7N1cRdsTWZWht9vpPOiN3qyiGAtbK2is47/uMFg==", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } }, - "node_modules/@rollup/plugin-replace/node_modules/magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "node_modules/@radix-ui/react-presence": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.1.tgz", + "integrity": "sha512-IeFXVi4YS1K0wVZzXNrbaaUvIJ3qdY+/Ih4eHFhWA9SwGR9UDX7Ck8abvL57C4cv3wwMvUE0OG69Qc3NCcTe/A==", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", + "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", + "dependencies": { + "@radix-ui/react-slot": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.0.tgz", + "integrity": "sha512-EA6AMGeq9AEeQDeSH0aZgG198qkfHSbvWTf1HvoDmOB5bBG/qTxjYMWUKMnYiV6J/iP/J8MEFSuB2zRU2n7ODA==", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-context": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", + "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.0.tgz", + "integrity": "sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-toast": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.2.tgz", + "integrity": "sha512-Z6pqSzmAP/bFJoqMAston4eSNa+ud44NSZTiZUmUen+IOZ5nBY8kzuU5WDBVyFXPtcW6yUalOHsxM/BP6Sv8ww==", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-portal": "1.1.2", + "@radix-ui/react-presence": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-visually-hidden": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tooltip": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.1.3.tgz", + "integrity": "sha512-Z4w1FIS0BqVFI2c1jZvb/uDVJijJjJ2ZMuPV81oVgTZ7g3BZxobplnMVvXtFWgtozdvYJ+MFWtwkM5S2HnAong==", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.2", + "@radix-ui/react-presence": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-visually-hidden": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz", + "integrity": "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz", + "integrity": "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz", + "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz", + "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-rect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz", + "integrity": "sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==", + "dependencies": { + "@radix-ui/rect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-size": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.0.tgz", + "integrity": "sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-visually-hidden": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.0.tgz", + "integrity": "sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/rect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.0.tgz", + "integrity": "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==" + }, + "node_modules/@react-aria/focus": { + "version": "3.18.4", + "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.18.4.tgz", + "integrity": "sha512-91J35077w9UNaMK1cpMUEFRkNNz0uZjnSwiyBCFuRdaVuivO53wNC9XtWSDNDdcO5cGy87vfJRVAiyoCn/mjqA==", + "dependencies": { + "@react-aria/interactions": "^3.22.4", + "@react-aria/utils": "^3.25.3", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0", + "clsx": "^2.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/interactions": { + "version": "3.22.4", + "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.22.4.tgz", + "integrity": "sha512-E0vsgtpItmknq/MJELqYJwib+YN18Qag8nroqwjk1qOnBa9ROIkUhWJerLi1qs5diXq9LHKehZDXRlwPvdEFww==", + "dependencies": { + "@react-aria/ssr": "^3.9.6", + "@react-aria/utils": "^3.25.3", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/ssr": { + "version": "3.9.6", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.6.tgz", + "integrity": "sha512-iLo82l82ilMiVGy342SELjshuWottlb5+VefO3jOQqQRNYnJBFpUSadswDPbRimSgJUZuFwIEYs6AabkP038fA==", + "dependencies": { + "@swc/helpers": "^0.5.0" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-aria/utils": { + "version": "3.25.3", + "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.25.3.tgz", + "integrity": "sha512-PR5H/2vaD8fSq0H/UB9inNbc8KDcVmW6fYAfSWkkn+OAdhTTMVKqXXrZuZBWyFfSD5Ze7VN6acr4hrOQm2bmrA==", + "dependencies": { + "@react-aria/ssr": "^3.9.6", + "@react-stately/utils": "^3.10.4", + "@react-types/shared": "^3.25.0", + "@swc/helpers": "^0.5.0", + "clsx": "^2.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-stately/utils": { + "version": "3.10.4", + "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.4.tgz", + "integrity": "sha512-gBEQEIMRh5f60KCm7QKQ2WfvhB2gLUr9b72sqUdIZ2EG+xuPgaIlCBeSicvjmjBvYZwOjoOEnmIkcx2GHp/HWw==", + "dependencies": { + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@react-types/shared": { + "version": "3.25.0", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.25.0.tgz", + "integrity": "sha512-OZSyhzU6vTdW3eV/mz5i6hQwQUhkRs7xwY2d1aqPvTdMe0+2cY7Fwp45PAiwYLEj73i9ro2FxF9qC4DvHGSCgQ==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.0.tgz", + "integrity": "sha512-9eO5McEICxMzJpDW9OnMYSv4Sta3hmt7VtBFz5zR9273suNOydOyq/FrGeGy+KsTRFm8w0SLVhzig2ILFT63Ag==", "dev": true, "dependencies": { - "sourcemap-codec": "^1.4.8" + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve/node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "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/@rollup/plugin-terser": { @@ -3542,9 +3886,9 @@ } }, "node_modules/@rollup/pluginutils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", - "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.2.tgz", + "integrity": "sha512-/FIdS3PyZ39bjZlwqFnWqCOVnW7o963LtKMwQOD0NhQqw22gSr2YY1afu3FxRip4ZCZNsD5jq6Aaz6QV3D/Njw==", "dev": true, "dependencies": { "@types/estree": "^1.0.0", @@ -3563,16 +3907,10 @@ } } }, - "node_modules/@rollup/pluginutils/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/@rollup/rollup-android-arm-eabi": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.2.tgz", - "integrity": "sha512-3XFIDKWMFZrMnao1mJhnOT1h2g0169Os848NhhmGweEcfJ4rCi+3yMCOLG4zA61rbJdkcrM/DjVZm9Hg5p5w7g==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", + "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", "cpu": [ "arm" ], @@ -3583,9 +3921,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.2.tgz", - "integrity": "sha512-GdxxXbAuM7Y/YQM9/TwwP+L0omeE/lJAR1J+olu36c3LqqZEBdsIWeQ91KBe6nxwOnb06Xh7JS2U5ooWU5/LgQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", + "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", "cpu": [ "arm64" ], @@ -3596,9 +3934,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.2.tgz", - "integrity": "sha512-mCMlpzlBgOTdaFs83I4XRr8wNPveJiJX1RLfv4hggyIVhfB5mJfN4P8Z6yKh+oE4Luz+qq1P3kVdWrCKcMYrrA==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", + "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", "cpu": [ "arm64" ], @@ -3609,9 +3947,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.2.tgz", - "integrity": "sha512-yUoEvnH0FBef/NbB1u6d3HNGyruAKnN74LrPAfDQL3O32e3k3OSfLrPgSJmgb3PJrBZWfPyt6m4ZhAFa2nZp2A==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", + "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", "cpu": [ "x64" ], @@ -3622,9 +3960,22 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.2.tgz", - "integrity": "sha512-GYbLs5ErswU/Xs7aGXqzc3RrdEjKdmoCrgzhJWyFL0r5fL3qd1NPcDKDowDnmcoSiGJeU68/Vy+OMUluRxPiLQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", + "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", + "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", "cpu": [ "arm" ], @@ -3635,9 +3986,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.2.tgz", - "integrity": "sha512-L1+D8/wqGnKQIlh4Zre9i4R4b4noxzH5DDciyahX4oOz62CphY7WDWqJoQ66zNR4oScLNOqQJfNSIAe/6TPUmQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", + "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", "cpu": [ "arm64" ], @@ -3648,9 +3999,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.2.tgz", - "integrity": "sha512-tK5eoKFkXdz6vjfkSTCupUzCo40xueTOiOO6PeEIadlNBkadH1wNOH8ILCPIl8by/Gmb5AGAeQOFeLev7iZDOA==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", + "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", "cpu": [ "arm64" ], @@ -3661,11 +4012,11 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.13.2.tgz", - "integrity": "sha512-zvXvAUGGEYi6tYhcDmb9wlOckVbuD+7z3mzInCSTACJ4DQrdSLPNUeDIcAQW39M3q6PDquqLWu7pnO39uSMRzQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", + "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", "cpu": [ - "ppc64le" + "ppc64" ], "dev": true, "optional": true, @@ -3674,9 +4025,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.2.tgz", - "integrity": "sha512-C3GSKvMtdudHCN5HdmAMSRYR2kkhgdOfye4w0xzyii7lebVr4riCgmM6lRiSCnJn2w1Xz7ZZzHKuLrjx5620kw==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", + "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", "cpu": [ "riscv64" ], @@ -3687,9 +4038,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.13.2.tgz", - "integrity": "sha512-l4U0KDFwzD36j7HdfJ5/TveEQ1fUTjFFQP5qIt9gBqBgu1G8/kCaq5Ok05kd5TG9F8Lltf3MoYsUMw3rNlJ0Yg==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", + "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", "cpu": [ "s390x" ], @@ -3700,9 +4051,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.2.tgz", - "integrity": "sha512-xXMLUAMzrtsvh3cZ448vbXqlUa7ZL8z0MwHp63K2IIID2+DeP5iWIT6g1SN7hg1VxPzqx0xZdiDM9l4n9LRU1A==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", + "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", "cpu": [ "x64" ], @@ -3713,9 +4064,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.2.tgz", - "integrity": "sha512-M/JYAWickafUijWPai4ehrjzVPKRCyDb1SLuO+ZyPfoXgeCEAlgPkNXewFZx0zcnoIe3ay4UjXIMdXQXOZXWqA==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", + "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", "cpu": [ "x64" ], @@ -3726,9 +4077,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.2.tgz", - "integrity": "sha512-2YWwoVg9KRkIKaXSh0mz3NmfurpmYoBBTAXA9qt7VXk0Xy12PoOP40EFuau+ajgALbbhi4uTj3tSG3tVseCjuA==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", + "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", "cpu": [ "arm64" ], @@ -3739,9 +4090,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.2.tgz", - "integrity": "sha512-2FSsE9aQ6OWD20E498NYKEQLneShWes0NGMPQwxWOdws35qQXH+FplabOSP5zEe1pVjurSDOGEVCE2agFwSEsw==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", + "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", "cpu": [ "ia32" ], @@ -3752,9 +4103,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.2.tgz", - "integrity": "sha512-7h7J2nokcdPePdKykd8wtc8QqqkqxIrUz7MHj6aNr8waBRU//NLDVnNjQnqQO6fqtjrtCdftpbTuOKAyrAQETQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", + "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", "cpu": [ "x64" ], @@ -3765,292 +4116,252 @@ ] }, "node_modules/@sentry-internal/browser-utils": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-8.29.0.tgz", - "integrity": "sha512-6HpyQkaqPvK6Lnigjlarq/LDYgXT2OBNf24RK7z0ipJSxSIpmtelfzHbnwWYnypNDXfTDdPm97fZEenQHryYJA==", + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-8.34.0.tgz", + "integrity": "sha512-4AcYOzPzD1tL5eSRQ/GpKv5enquZf4dMVUez99/Bh3va8qiJrNP55AcM7UzZ7WZLTqKygIYruJTU5Zu2SpEAPQ==", "dependencies": { - "@sentry/core": "8.29.0", - "@sentry/types": "8.29.0", - "@sentry/utils": "8.29.0" + "@sentry/core": "8.34.0", + "@sentry/types": "8.34.0", + "@sentry/utils": "8.34.0" }, "engines": { "node": ">=14.18" } }, - "node_modules/@sentry-internal/browser-utils/node_modules/@sentry/core": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.29.0.tgz", - "integrity": "sha512-scMbZaJ0Ov8NPgWn86EdjhyTLrhvRVbTxjg0imJAvhIvRbblH3xyqye/17Qnk2fOp8TNDOl7TBZHi0NCFQ5HUw==", + "node_modules/@sentry-internal/feedback": { + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-8.34.0.tgz", + "integrity": "sha512-aYSM2KPUs0FLPxxbJCFSwCYG70VMzlT04xepD1Y/tTlPPOja/02tSv2tyOdZbv8Uw7xslZs3/8Lhj74oYcTBxw==", "dependencies": { - "@sentry/types": "8.29.0", - "@sentry/utils": "8.29.0" + "@sentry/core": "8.34.0", + "@sentry/types": "8.34.0", + "@sentry/utils": "8.34.0" }, "engines": { "node": ">=14.18" } }, - "node_modules/@sentry-internal/browser-utils/node_modules/@sentry/types": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-8.29.0.tgz", - "integrity": "sha512-j4gX3ctzgD4xVWllXAhm6M+kHFEvrFoUPFq60X/pgkjsWCocGuhtNfB0rW43ICG8hCnlz8IYl7O7b8V8qY7SPg==", - "engines": { - "node": ">=14.18" - } - }, - "node_modules/@sentry-internal/browser-utils/node_modules/@sentry/utils": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-8.29.0.tgz", - "integrity": "sha512-nb93/m3SjQChQJFqJj3oNW3Rz/12yrT7jypTCire3c2hpYWG2uR5n8VY9UUMTA6HLNvdom6tckK7p3bXGXlF0w==", + "node_modules/@sentry-internal/replay": { + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-8.34.0.tgz", + "integrity": "sha512-EoMh9NYljNewZK1quY23YILgtNdGgrkzJ9TPsj6jXUG0LZ0Q7N7eFWd0xOEDBvFxrmI3cSXF1i4d1sBb+eyKRw==", "dependencies": { - "@sentry/types": "8.29.0" + "@sentry-internal/browser-utils": "8.34.0", + "@sentry/core": "8.34.0", + "@sentry/types": "8.34.0", + "@sentry/utils": "8.34.0" }, "engines": { "node": ">=14.18" } }, - "node_modules/@sentry-internal/feedback": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-8.29.0.tgz", - "integrity": "sha512-yAL5YMEFk4XaeVRUGEguydahRzaQrNPAaWRv6k+XRzCv9CGBhxb14KXQc9X/penlauMFcDfgelCPKcTqcf6wDw==", + "node_modules/@sentry-internal/replay-canvas": { + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-8.34.0.tgz", + "integrity": "sha512-x8KhZcCDpbKHqFOykYXiamX6x0LRxv6N1OJHoH+XCrMtiDBZr4Yo30d/MaS6rjmKGMtSRij30v+Uq+YWIgxUrg==", "dependencies": { - "@sentry/core": "8.29.0", - "@sentry/types": "8.29.0", - "@sentry/utils": "8.29.0" + "@sentry-internal/replay": "8.34.0", + "@sentry/core": "8.34.0", + "@sentry/types": "8.34.0", + "@sentry/utils": "8.34.0" }, "engines": { "node": ">=14.18" } }, - "node_modules/@sentry-internal/feedback/node_modules/@sentry/core": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.29.0.tgz", - "integrity": "sha512-scMbZaJ0Ov8NPgWn86EdjhyTLrhvRVbTxjg0imJAvhIvRbblH3xyqye/17Qnk2fOp8TNDOl7TBZHi0NCFQ5HUw==", + "node_modules/@sentry-internal/tracing": { + "version": "7.119.2", + "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.119.2.tgz", + "integrity": "sha512-V2W+STWrafyGJhQv3ulMFXYDwWHiU6wHQAQBShsHVACiFaDrJ2kPRet38FKv4dMLlLlP2xN+ss2e5zv3tYlTiQ==", + "dev": true, "dependencies": { - "@sentry/types": "8.29.0", - "@sentry/utils": "8.29.0" + "@sentry/core": "7.119.2", + "@sentry/types": "7.119.2", + "@sentry/utils": "7.119.2" }, "engines": { - "node": ">=14.18" - } - }, - "node_modules/@sentry-internal/feedback/node_modules/@sentry/types": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-8.29.0.tgz", - "integrity": "sha512-j4gX3ctzgD4xVWllXAhm6M+kHFEvrFoUPFq60X/pgkjsWCocGuhtNfB0rW43ICG8hCnlz8IYl7O7b8V8qY7SPg==", - "engines": { - "node": ">=14.18" + "node": ">=8" } }, - "node_modules/@sentry-internal/feedback/node_modules/@sentry/utils": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-8.29.0.tgz", - "integrity": "sha512-nb93/m3SjQChQJFqJj3oNW3Rz/12yrT7jypTCire3c2hpYWG2uR5n8VY9UUMTA6HLNvdom6tckK7p3bXGXlF0w==", + "node_modules/@sentry-internal/tracing/node_modules/@sentry/core": { + "version": "7.119.2", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.119.2.tgz", + "integrity": "sha512-hQr3d2yWq/2lMvoyBPOwXw1IHqTrCjOsU1vYKhAa6w9vGbJZFGhKGGE2KEi/92c3gqGn+gW/PC7cV6waCTDuVA==", + "dev": true, "dependencies": { - "@sentry/types": "8.29.0" + "@sentry/types": "7.119.2", + "@sentry/utils": "7.119.2" }, "engines": { - "node": ">=14.18" + "node": ">=8" } }, - "node_modules/@sentry-internal/replay": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-8.29.0.tgz", - "integrity": "sha512-Xgv/eYucsm7GaGKms2ClQ02NpD07MxjoTjp1/vYZm0H4Q08dVphVZrQp7hL1oX/VD9mb5SFyyKuuIRqIu7S8RA==", - "dependencies": { - "@sentry-internal/browser-utils": "8.29.0", - "@sentry/core": "8.29.0", - "@sentry/types": "8.29.0", - "@sentry/utils": "8.29.0" - }, + "node_modules/@sentry-internal/tracing/node_modules/@sentry/types": { + "version": "7.119.2", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.119.2.tgz", + "integrity": "sha512-ydq1tWsdG7QW+yFaTp0gFaowMLNVikIqM70wxWNK+u98QzKnVY/3XTixxNLsUtnAB4Y+isAzFhrc6Vb5GFdFeg==", + "dev": true, "engines": { - "node": ">=14.18" + "node": ">=8" } }, - "node_modules/@sentry-internal/replay-canvas": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-8.29.0.tgz", - "integrity": "sha512-W2YbZRvp2lYC50V51fNLcnoIiK1Km4vSc+v6SL7c//lv2qpyumoUAAIDKY+14s8Lgt1RsR6rfZhfheD4O/6WSQ==", + "node_modules/@sentry-internal/tracing/node_modules/@sentry/utils": { + "version": "7.119.2", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.119.2.tgz", + "integrity": "sha512-TLdUCvcNgzKP0r9YD7tgCL1PEUp42TObISridsPJ5rhpVGQJvpr+Six0zIkfDUxerLYWZoK8QMm9KgFlPLNQzA==", + "dev": true, "dependencies": { - "@sentry-internal/replay": "8.29.0", - "@sentry/core": "8.29.0", - "@sentry/types": "8.29.0", - "@sentry/utils": "8.29.0" + "@sentry/types": "7.119.2" }, "engines": { - "node": ">=14.18" + "node": ">=8" } }, - "node_modules/@sentry-internal/replay-canvas/node_modules/@sentry/core": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.29.0.tgz", - "integrity": "sha512-scMbZaJ0Ov8NPgWn86EdjhyTLrhvRVbTxjg0imJAvhIvRbblH3xyqye/17Qnk2fOp8TNDOl7TBZHi0NCFQ5HUw==", + "node_modules/@sentry/browser": { + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-8.34.0.tgz", + "integrity": "sha512-3HHG2NXxzHq1lVmDy2uRjYjGNf9NsJsTPlOC70vbQdOb+S49EdH/XMPy+J3ruIoyv6Cu0LwvA6bMOM6rHZOgNQ==", "dependencies": { - "@sentry/types": "8.29.0", - "@sentry/utils": "8.29.0" + "@sentry-internal/browser-utils": "8.34.0", + "@sentry-internal/feedback": "8.34.0", + "@sentry-internal/replay": "8.34.0", + "@sentry-internal/replay-canvas": "8.34.0", + "@sentry/core": "8.34.0", + "@sentry/types": "8.34.0", + "@sentry/utils": "8.34.0" }, "engines": { "node": ">=14.18" } }, - "node_modules/@sentry-internal/replay-canvas/node_modules/@sentry/types": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-8.29.0.tgz", - "integrity": "sha512-j4gX3ctzgD4xVWllXAhm6M+kHFEvrFoUPFq60X/pgkjsWCocGuhtNfB0rW43ICG8hCnlz8IYl7O7b8V8qY7SPg==", - "engines": { - "node": ">=14.18" - } - }, - "node_modules/@sentry-internal/replay-canvas/node_modules/@sentry/utils": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-8.29.0.tgz", - "integrity": "sha512-nb93/m3SjQChQJFqJj3oNW3Rz/12yrT7jypTCire3c2hpYWG2uR5n8VY9UUMTA6HLNvdom6tckK7p3bXGXlF0w==", + "node_modules/@sentry/core": { + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.34.0.tgz", + "integrity": "sha512-adrXCTK/zsg5pJ67lgtZqdqHvyx6etMjQW3P82NgWdj83c8fb+zH+K79Z47pD4zQjX0ou2Ws5nwwi4wJbz4bfA==", "dependencies": { - "@sentry/types": "8.29.0" + "@sentry/types": "8.34.0", + "@sentry/utils": "8.34.0" }, "engines": { "node": ">=14.18" } }, - "node_modules/@sentry-internal/replay/node_modules/@sentry/core": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.29.0.tgz", - "integrity": "sha512-scMbZaJ0Ov8NPgWn86EdjhyTLrhvRVbTxjg0imJAvhIvRbblH3xyqye/17Qnk2fOp8TNDOl7TBZHi0NCFQ5HUw==", + "node_modules/@sentry/integrations": { + "version": "7.119.2", + "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-7.119.2.tgz", + "integrity": "sha512-dCuXKvbUE3gXVVa696SYMjlhSP6CxpMH/gl4Jk26naEB8Xjsn98z/hqEoXLg6Nab73rjR9c/9AdKqBbwVMHyrQ==", + "dev": true, "dependencies": { - "@sentry/types": "8.29.0", - "@sentry/utils": "8.29.0" + "@sentry/core": "7.119.2", + "@sentry/types": "7.119.2", + "@sentry/utils": "7.119.2", + "localforage": "^1.8.1" }, "engines": { - "node": ">=14.18" - } - }, - "node_modules/@sentry-internal/replay/node_modules/@sentry/types": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-8.29.0.tgz", - "integrity": "sha512-j4gX3ctzgD4xVWllXAhm6M+kHFEvrFoUPFq60X/pgkjsWCocGuhtNfB0rW43ICG8hCnlz8IYl7O7b8V8qY7SPg==", - "engines": { - "node": ">=14.18" + "node": ">=8" } }, - "node_modules/@sentry-internal/replay/node_modules/@sentry/utils": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-8.29.0.tgz", - "integrity": "sha512-nb93/m3SjQChQJFqJj3oNW3Rz/12yrT7jypTCire3c2hpYWG2uR5n8VY9UUMTA6HLNvdom6tckK7p3bXGXlF0w==", + "node_modules/@sentry/integrations/node_modules/@sentry/core": { + "version": "7.119.2", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.119.2.tgz", + "integrity": "sha512-hQr3d2yWq/2lMvoyBPOwXw1IHqTrCjOsU1vYKhAa6w9vGbJZFGhKGGE2KEi/92c3gqGn+gW/PC7cV6waCTDuVA==", + "dev": true, "dependencies": { - "@sentry/types": "8.29.0" + "@sentry/types": "7.119.2", + "@sentry/utils": "7.119.2" }, "engines": { - "node": ">=14.18" + "node": ">=8" } }, - "node_modules/@sentry-internal/tracing": { - "version": "7.109.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.109.0.tgz", - "integrity": "sha512-PzK/joC5tCuh2R/PRh+7dp+uuZl7pTsBIjPhVZHMTtb9+ls65WkdZJ1/uKXPouyz8NOo9Xok7aEvEo9seongyw==", + "node_modules/@sentry/integrations/node_modules/@sentry/types": { + "version": "7.119.2", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.119.2.tgz", + "integrity": "sha512-ydq1tWsdG7QW+yFaTp0gFaowMLNVikIqM70wxWNK+u98QzKnVY/3XTixxNLsUtnAB4Y+isAzFhrc6Vb5GFdFeg==", "dev": true, - "dependencies": { - "@sentry/core": "7.109.0", - "@sentry/types": "7.109.0", - "@sentry/utils": "7.109.0" - }, "engines": { "node": ">=8" } }, - "node_modules/@sentry/browser": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-8.29.0.tgz", - "integrity": "sha512-aKTy4H/3RI0q9LIeepesjWGlGNeh4HGFfwQjzHME8gcWCQ5LSlzYX4U+hu2yp7r1Jfd9MUTFfOuuLih2HGLGsQ==", + "node_modules/@sentry/integrations/node_modules/@sentry/utils": { + "version": "7.119.2", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.119.2.tgz", + "integrity": "sha512-TLdUCvcNgzKP0r9YD7tgCL1PEUp42TObISridsPJ5rhpVGQJvpr+Six0zIkfDUxerLYWZoK8QMm9KgFlPLNQzA==", + "dev": true, "dependencies": { - "@sentry-internal/browser-utils": "8.29.0", - "@sentry-internal/feedback": "8.29.0", - "@sentry-internal/replay": "8.29.0", - "@sentry-internal/replay-canvas": "8.29.0", - "@sentry/core": "8.29.0", - "@sentry/types": "8.29.0", - "@sentry/utils": "8.29.0" + "@sentry/types": "7.119.2" }, "engines": { - "node": ">=14.18" + "node": ">=8" } }, - "node_modules/@sentry/browser/node_modules/@sentry/core": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.29.0.tgz", - "integrity": "sha512-scMbZaJ0Ov8NPgWn86EdjhyTLrhvRVbTxjg0imJAvhIvRbblH3xyqye/17Qnk2fOp8TNDOl7TBZHi0NCFQ5HUw==", + "node_modules/@sentry/node": { + "version": "7.119.2", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.119.2.tgz", + "integrity": "sha512-TPNnqxh+Myooe4jTyRiXrzrM2SH08R4+nrmBls4T7lKp2E5R/3mDSe/YTn5rRcUt1k1hPx1NgO/taG0DoS5cXA==", + "dev": true, "dependencies": { - "@sentry/types": "8.29.0", - "@sentry/utils": "8.29.0" + "@sentry-internal/tracing": "7.119.2", + "@sentry/core": "7.119.2", + "@sentry/integrations": "7.119.2", + "@sentry/types": "7.119.2", + "@sentry/utils": "7.119.2" }, "engines": { - "node": ">=14.18" - } - }, - "node_modules/@sentry/browser/node_modules/@sentry/types": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-8.29.0.tgz", - "integrity": "sha512-j4gX3ctzgD4xVWllXAhm6M+kHFEvrFoUPFq60X/pgkjsWCocGuhtNfB0rW43ICG8hCnlz8IYl7O7b8V8qY7SPg==", - "engines": { - "node": ">=14.18" + "node": ">=8" } }, - "node_modules/@sentry/browser/node_modules/@sentry/utils": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-8.29.0.tgz", - "integrity": "sha512-nb93/m3SjQChQJFqJj3oNW3Rz/12yrT7jypTCire3c2hpYWG2uR5n8VY9UUMTA6HLNvdom6tckK7p3bXGXlF0w==", + "node_modules/@sentry/node/node_modules/@sentry/core": { + "version": "7.119.2", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.119.2.tgz", + "integrity": "sha512-hQr3d2yWq/2lMvoyBPOwXw1IHqTrCjOsU1vYKhAa6w9vGbJZFGhKGGE2KEi/92c3gqGn+gW/PC7cV6waCTDuVA==", + "dev": true, "dependencies": { - "@sentry/types": "8.29.0" + "@sentry/types": "7.119.2", + "@sentry/utils": "7.119.2" }, "engines": { - "node": ">=14.18" + "node": ">=8" } }, - "node_modules/@sentry/core": { - "version": "7.109.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.109.0.tgz", - "integrity": "sha512-xwD4U0IlvvlE/x/g/W1I8b4Cfb16SsCMmiEuBf6XxvAa3OfWBxKoqLifb3GyrbxMC4LbIIZCN/SvLlnGJPgszA==", + "node_modules/@sentry/node/node_modules/@sentry/types": { + "version": "7.119.2", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.119.2.tgz", + "integrity": "sha512-ydq1tWsdG7QW+yFaTp0gFaowMLNVikIqM70wxWNK+u98QzKnVY/3XTixxNLsUtnAB4Y+isAzFhrc6Vb5GFdFeg==", "dev": true, - "dependencies": { - "@sentry/types": "7.109.0", - "@sentry/utils": "7.109.0" - }, "engines": { "node": ">=8" } }, - "node_modules/@sentry/node": { - "version": "7.109.0", - "resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.109.0.tgz", - "integrity": "sha512-tqMNAES4X/iBl1eZRCmc29p//0id01FBLEiesNo5nk6ECl6/SaGMFAEwu1gsn90h/Bjgr04slwFOS4cR45V2PQ==", + "node_modules/@sentry/node/node_modules/@sentry/utils": { + "version": "7.119.2", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.119.2.tgz", + "integrity": "sha512-TLdUCvcNgzKP0r9YD7tgCL1PEUp42TObISridsPJ5rhpVGQJvpr+Six0zIkfDUxerLYWZoK8QMm9KgFlPLNQzA==", "dev": true, "dependencies": { - "@sentry-internal/tracing": "7.109.0", - "@sentry/core": "7.109.0", - "@sentry/types": "7.109.0", - "@sentry/utils": "7.109.0" + "@sentry/types": "7.119.2" }, "engines": { "node": ">=8" } }, "node_modules/@sentry/types": { - "version": "7.109.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.109.0.tgz", - "integrity": "sha512-egCBnDv3YpVFoNzRLdP0soVrxVLCQ+rovREKJ1sw3rA2/MFH9WJ+DZZexsX89yeAFzy1IFsCp7/dEqudusml6g==", - "dev": true, + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-8.34.0.tgz", + "integrity": "sha512-zLRc60CzohGCo6zNsNeQ9JF3SiEeRE4aDCP9fDDdIVCOKovS+mn1rtSip0qd0Vp2fidOu0+2yY0ALCz1A3PJSQ==", "engines": { - "node": ">=8" + "node": ">=14.18" } }, "node_modules/@sentry/utils": { - "version": "7.109.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.109.0.tgz", - "integrity": "sha512-3RjxMOLMBwZ5VSiH84+o/3NY2An4Zldjz0EbfEQNRY9yffRiCPJSQiCJID8EoylCFOh/PAhPimBhqbtWJxX6iw==", - "dev": true, + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-8.34.0.tgz", + "integrity": "sha512-W1KoRlFUjprlh3t86DZPFxLfM6mzjRzshVfMY7vRlJFymBelJsnJ3A1lPeBZM9nCraOSiw6GtOWu6k5BAkiGIg==", "dependencies": { - "@sentry/types": "7.109.0" + "@sentry/types": "8.34.0" }, "engines": { - "node": ">=8" + "node": ">=14.18" } }, "node_modules/@surma/rollup-plugin-off-main-thread": { @@ -4075,14 +4386,14 @@ } }, "node_modules/@swc/core": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.4.11.tgz", - "integrity": "sha512-WKEakMZxkVwRdgMN4AMJ9K5nysY8g8npgQPczmjBeNK5In7QEAZAJwnyccrWwJZU0XjVeHn2uj+XbOKdDW17rg==", + "version": "1.7.36", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.7.36.tgz", + "integrity": "sha512-bu7ymMX+LCJOSSrKank25Jaq66ymLVA9fOUuy4ck3/6rbXdLw+pIJPnIDKQ9uNcxww8KDxOuJk9Ui9pqR+aGFw==", "dev": true, "hasInstallScript": true, "dependencies": { - "@swc/counter": "^0.1.2", - "@swc/types": "^0.1.5" + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.13" }, "engines": { "node": ">=10" @@ -4092,19 +4403,19 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-darwin-arm64": "1.4.11", - "@swc/core-darwin-x64": "1.4.11", - "@swc/core-linux-arm-gnueabihf": "1.4.11", - "@swc/core-linux-arm64-gnu": "1.4.11", - "@swc/core-linux-arm64-musl": "1.4.11", - "@swc/core-linux-x64-gnu": "1.4.11", - "@swc/core-linux-x64-musl": "1.4.11", - "@swc/core-win32-arm64-msvc": "1.4.11", - "@swc/core-win32-ia32-msvc": "1.4.11", - "@swc/core-win32-x64-msvc": "1.4.11" + "@swc/core-darwin-arm64": "1.7.36", + "@swc/core-darwin-x64": "1.7.36", + "@swc/core-linux-arm-gnueabihf": "1.7.36", + "@swc/core-linux-arm64-gnu": "1.7.36", + "@swc/core-linux-arm64-musl": "1.7.36", + "@swc/core-linux-x64-gnu": "1.7.36", + "@swc/core-linux-x64-musl": "1.7.36", + "@swc/core-win32-arm64-msvc": "1.7.36", + "@swc/core-win32-ia32-msvc": "1.7.36", + "@swc/core-win32-x64-msvc": "1.7.36" }, "peerDependencies": { - "@swc/helpers": "^0.5.0" + "@swc/helpers": "*" }, "peerDependenciesMeta": { "@swc/helpers": { @@ -4113,9 +4424,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.4.11.tgz", - "integrity": "sha512-C1j1Qp/IHSelVWdEnT7f0iONWxQz6FAqzjCF2iaL+0vFg4V5f2nlgrueY8vj5pNNzSGhrAlxsMxEIp4dj1MXkg==", + "version": "1.7.36", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.7.36.tgz", + "integrity": "sha512-8vDczXzCgv3ceTPhEivlpGprN44YlrCK1nbfU9g2TrhV/Aiqi09W/eM5zLesdoM1Z3mJl492gc/8nlTkpDdusw==", "cpu": [ "arm64" ], @@ -4129,9 +4440,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.4.11.tgz", - "integrity": "sha512-0TTy3Ni8ncgaMCchSQ7FK8ZXQLlamy0FXmGWbR58c+pVZWYZltYPTmheJUvVcR0H2+gPAymRKyfC0iLszDALjg==", + "version": "1.7.36", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.7.36.tgz", + "integrity": "sha512-Pa2Gao7+Wf5m3SsK4abKRtd48AtoUnJInvaC3d077swBfgZjbjUbQvcpdc2dOeQtWwo49rFqUZJonMsL0jnPgQ==", "cpu": [ "x64" ], @@ -4145,9 +4456,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.4.11.tgz", - "integrity": "sha512-XJLB71uw0rog4DjYAPxFGAuGCBQpgJDlPZZK6MTmZOvI/1t0+DelJ24IjHIxk500YYM26Yv47xPabqFPD7I2zQ==", + "version": "1.7.36", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.7.36.tgz", + "integrity": "sha512-3YsMWd7V+WZEjbfBnLkkz/olcRBa8nyoK0iIOnNARJBMcYaJxjkJSMZpmSojCnIVwvjA1N83CPAbUL+W+fCnHg==", "cpu": [ "arm" ], @@ -4161,9 +4472,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.4.11.tgz", - "integrity": "sha512-vYQwzJvm/iu052d5Iw27UFALIN5xSrGkPZXxLNMHPySVko2QMNNBv35HLatkEQHbQ3X+VKSW9J9SkdtAvAVRAQ==", + "version": "1.7.36", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.7.36.tgz", + "integrity": "sha512-lqM3aBB7kJazJYOwHeA5OGNLqXoQPZ/76b3dV+XcjN1GhD0CcXz6mW5PRYVin6OSN1eKrKBKJjtDA1mqADDEvw==", "cpu": [ "arm64" ], @@ -4177,9 +4488,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.4.11.tgz", - "integrity": "sha512-eV+KduiRYUFjPsvbZuJ9aknQH9Tj0U2/G9oIZSzLx/18WsYi+upzHbgxmIIHJ2VJgfd7nN40RI/hMtxNsUzR/g==", + "version": "1.7.36", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.7.36.tgz", + "integrity": "sha512-bqei2YDzvUfG0pth5W2xJaj0eG4XWYk0d/NJ75vBX6bkIzK6dC8iuKQ41jOfUWonnrAs7rTDDJW0sTn/evvRdw==", "cpu": [ "arm64" ], @@ -4193,9 +4504,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.4.11.tgz", - "integrity": "sha512-WA1iGXZ2HpqM1OR9VCQZJ8sQ1KP2or9O4bO8vWZo6HZJIeoQSo7aa9waaCLRpkZvkng1ct/TF/l6ymqSNFXIzQ==", + "version": "1.7.36", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.7.36.tgz", + "integrity": "sha512-03maXTUyaBjeCxlDltmdzHje1ryQt1C4OWmmNgSSRXjLb+GNnAenwOJMSrcvHP/aNClD2pwsFCnYKDGy+sYE6w==", "cpu": [ "x64" ], @@ -4209,9 +4520,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.4.11.tgz", - "integrity": "sha512-UkVJToKf0owwQYRnGvjHAeYVDfeimCEcx0VQSbJoN7Iy0ckRZi7YPlmWJU31xtKvikE2bQWCOVe0qbSDqqcWXA==", + "version": "1.7.36", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.7.36.tgz", + "integrity": "sha512-XXysqLkvjtQnXm1zHqLhy00UYPv/gk5OtwR732X+piNisnEbcJBqI8Qp9O7YvLWllRcoP8IMBGDWLGdGLSpViA==", "cpu": [ "x64" ], @@ -4225,9 +4536,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.4.11.tgz", - "integrity": "sha512-35khwkyly7lF5NDSyvIrukBMzxPorgc5iTSDfVO/LvnmN5+fm4lTlrDr4tUfTdOhv3Emy7CsKlsNAeFRJ+Pm+w==", + "version": "1.7.36", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.7.36.tgz", + "integrity": "sha512-k7+dmb13a/zPw+E4XYfPmLZFWJgcOcBRKIjYl9nQErtYsgsg3Ji6TBbsvJVETy23lNHyewZ17V5Vq6NzaG0hzg==", "cpu": [ "arm64" ], @@ -4241,9 +4552,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.4.11.tgz", - "integrity": "sha512-Wx8/6f0ufgQF2pbVPsJ2dAmFLwIOW+xBE5fxnb7VnEbGkTgP1qMDWiiAtD9rtvDSuODG3i1AEmAak/2HAc6i6A==", + "version": "1.7.36", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.7.36.tgz", + "integrity": "sha512-ridD3ay6YM2PEYHZXXFN+edYEv0FOynaqOBP+NSnGNHA35azItIjoIe+KNi4WltGtAjpKCHSpjGCNfna12wdYQ==", "cpu": [ "ia32" ], @@ -4257,9 +4568,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.4.11.tgz", - "integrity": "sha512-0xRFW6K9UZQH2NVC/0pVB0GJXS45lY24f+6XaPBF1YnMHd8A8GoHl7ugyM5yNUTe2AKhSgk5fJV00EJt/XBtdQ==", + "version": "1.7.36", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.7.36.tgz", + "integrity": "sha512-j1z2Z1Ln9d0E3dHsPkC1K9XDh0ojhRPwV+GfRTu4D61PE+aYhYLvbJC6xPvL4/204QrStRS7eDu3m+BcDp3rgQ==", "cpu": [ "x64" ], @@ -4279,18 +4590,17 @@ "dev": true }, "node_modules/@swc/helpers": { - "version": "0.5.12", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.12.tgz", - "integrity": "sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==", - "license": "Apache-2.0", + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.13.tgz", + "integrity": "sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==", "dependencies": { "tslib": "^2.4.0" } }, "node_modules/@swc/types": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.6.tgz", - "integrity": "sha512-/JLo/l2JsT/LRd80C3HfbmVpxOAJ11FO2RCEslFrgzLltoP9j8XIbsyDcfCt2WWyX+CM96rBoNM+IToAkFOugg==", + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.13.tgz", + "integrity": "sha512-JL7eeCk6zWCbiYQg2xQSdLXQJl8Qoc9rXmG2cEKvHe3CKwMHwHGpfOb8frzNLmbycOo6I51qxnLnn9ESf4I20Q==", "dev": true, "dependencies": { "@swc/counter": "^0.1.3" @@ -4306,21 +4616,21 @@ } }, "node_modules/@tailwindcss/forms": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.7.tgz", - "integrity": "sha512-QE7X69iQI+ZXwldE+rzasvbJiyV/ju1FGHH0Qn2W3FKbuYtqp8LKcy6iSw79fVUT5/Vvf+0XgLCeYVG+UV6hOw==", + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.9.tgz", + "integrity": "sha512-tM4XVr2+UVTxXJzey9Twx48c1gcxFStqn1pQz0tRsX8o3DvxhN5oY5pvyAbUx7VTaZxpej4Zzvc6h+1RJBzpIg==", "dev": true, "dependencies": { "mini-svg-data-uri": "^1.2.3" }, "peerDependencies": { - "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1" + "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20" } }, "node_modules/@tailwindcss/typography": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.13.tgz", - "integrity": "sha512-ADGcJ8dX21dVVHIwTRgzrcunY6YY9uSlAHHGVKvkA+vLc5qLwEszvKts40lx7z0qc4clpjclwLeK5rVCV2P/uw==", + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.15.tgz", + "integrity": "sha512-AqhlCXl+8grUz8uqExv5OTtgpjuVIwFTSXTrh8y9/pw6q2ek7fJ+Y8ZEVw7EB2DCcuCOtEjf9w3+J3rzts01uA==", "dev": true, "dependencies": { "lodash.castarray": "^4.4.0", @@ -4329,16 +4639,15 @@ "postcss-selector-parser": "6.0.10" }, "peerDependencies": { - "tailwindcss": ">=3.0.0 || insiders" + "tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20" } }, "node_modules/@tanstack/react-virtual": { - "version": "3.8.4", - "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.8.4.tgz", - "integrity": "sha512-Dq0VQr3QlTS2qL35g360QaJWBt7tCn/0xw4uZ0dHXPLO1Ak4Z4nVX4vuj1Npg1b/jqNMDToRtR5OIxM2NXRBWg==", - "license": "MIT", + "version": "3.10.8", + "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.10.8.tgz", + "integrity": "sha512-VbzbVGSsZlQktyLrP5nxE+vE1ZR+U0NFAWPbJLoG2+DKPwd2D7dVICTVIIaYlJqX1ZCEnYDbaOpmMwbsyhBoIA==", "dependencies": { - "@tanstack/virtual-core": "3.8.4" + "@tanstack/virtual-core": "3.10.8" }, "funding": { "type": "github", @@ -4350,10 +4659,9 @@ } }, "node_modules/@tanstack/virtual-core": { - "version": "3.8.4", - "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.8.4.tgz", - "integrity": "sha512-iO5Ujgw3O1yIxWDe9FgUPNkGjyT657b1WNX52u+Wv1DyBFEpdCdGkuVaky0M3hHFqNWjAmHWTn4wgj9rTr7ZQg==", - "license": "MIT", + "version": "3.10.8", + "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.10.8.tgz", + "integrity": "sha512-PBu00mtt95jbKFi6Llk9aik8bnR3tR/oQP1o3TSi+iG//+Q2RTIzCEgKkHG8BB86kxMNW6O8wku+Lmi+QFR6jA==", "funding": { "type": "github", "url": "https://github.com/sponsors/tannerlinsley" @@ -4368,55 +4676,6 @@ "@types/estree": "*" } }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", - "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.20.7" - } - }, "node_modules/@types/concat-stream": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-2.0.3.tgz", @@ -4426,16 +4685,6 @@ "@types/node": "*" } }, - "node_modules/@types/cypress": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@types/cypress/-/cypress-1.1.3.tgz", - "integrity": "sha512-OXe0Gw8LeCflkG1oPgFpyrYWJmEKqYncBsD/J0r17r0ETx/TnIGDNLwXt/pFYSYuYTpzcq1q3g62M9DrfsBL4g==", - "deprecated": "This is a stub types definition for cypress (https://cypress.io). cypress provides its own type definitions, so you don't need @types/cypress installed!", - "dev": true, - "dependencies": { - "cypress": "*" - } - }, "node_modules/@types/debug": { "version": "4.1.12", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", @@ -4444,23 +4693,20 @@ "@types/ms": "*" } }, - "node_modules/@types/eslint": { - "version": "8.56.10", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", - "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } + "node_modules/@types/dom-webcodecs": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/@types/dom-webcodecs/-/dom-webcodecs-0.1.13.tgz", + "integrity": "sha512-O5hkiFIcjjszPIYyUSyvScyvrBoV3NOEEZx/pMlsu44TKzWNkLVBBxnxJz42in5n3QIolYOcBYFCPZZ0h8SkwQ==" + }, + "node_modules/@types/emscripten": { + "version": "1.39.13", + "resolved": "https://registry.npmjs.org/@types/emscripten/-/emscripten-1.39.13.tgz", + "integrity": "sha512-cFq+fO/isvhvmuP/+Sl4K4jtU6E23DoivtbO4r50e3odaxAiVdbfSYRDdJ4gCdxx+3aRjhphS5ZMwIH4hFy/Cw==" }, "node_modules/@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", - "dev": true + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==" }, "node_modules/@types/estree-jsx": { "version": "1.0.5", @@ -4478,9 +4724,9 @@ "dev": true }, "node_modules/@types/google.maps": { - "version": "3.55.8", - "resolved": "https://registry.npmjs.org/@types/google.maps/-/google.maps-3.55.8.tgz", - "integrity": "sha512-aSyvlCRXzF9Jtjqq4zmA24sczKZ0QWJnn4zRrkufCoohHulS6LCf4KsF22eAlnHBuVYwEhQoMXIufUS7kXF5uA==", + "version": "3.58.1", + "resolved": "https://registry.npmjs.org/@types/google.maps/-/google.maps-3.58.1.tgz", + "integrity": "sha512-X9QTSvGJ0nCfMzYOnaVs/k6/4L+7F5uCS+4iUmkLEls6J9S/Phv+m/i3mDeyc49ZBgwab3EFO1HEoBY7k98EGQ==", "dev": true }, "node_modules/@types/hast": { @@ -4492,9 +4738,9 @@ } }, "node_modules/@types/hast/node_modules/@types/unist": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", - "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" }, "node_modules/@types/hoist-non-react-statics": { "version": "3.3.5", @@ -4518,9 +4764,9 @@ "peer": true }, "node_modules/@types/lodash": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.0.tgz", - "integrity": "sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==", + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-YpS0zzoduEhuOWjAotS6A5AVCva7X4lVlYLF0FYHAY9sdraBfnatttHItlWeZdGhuEkf+OzMNg2ZYAx8t+52uQ==", "dev": true }, "node_modules/@types/lodash-es": { @@ -4541,9 +4787,9 @@ } }, "node_modules/@types/mdast/node_modules/@types/unist": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", - "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" }, "node_modules/@types/ms": { "version": "0.7.34", @@ -4551,11 +4797,11 @@ "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" }, "node_modules/@types/node": { - "version": "20.12.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.2.tgz", - "integrity": "sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ==", + "version": "22.7.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz", + "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==", "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.19.2" } }, "node_modules/@types/parse5": { @@ -4564,9 +4810,9 @@ "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==" }, "node_modules/@types/prop-types": { - "version": "15.7.12", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", - "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==" + "version": "15.7.13", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", + "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==" }, "node_modules/@types/qrcode.react": { "version": "1.0.5", @@ -4578,9 +4824,9 @@ } }, "node_modules/@types/react": { - "version": "18.3.2", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.2.tgz", - "integrity": "sha512-Btgg89dAnqD4vV7R3hlwOxgqobUQKgx3MmrQRi0yYbs/P0ym8XozIAlkqVilPqHQwXs4e9Tf63rrCgl58BcO4w==", + "version": "18.3.11", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.11.tgz", + "integrity": "sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==", "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" @@ -4605,9 +4851,9 @@ } }, "node_modules/@types/react-dom": { - "version": "18.3.0", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", - "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==", "devOptional": true, "dependencies": { "@types/react": "*" @@ -4622,17 +4868,21 @@ "@types/react": "*" } }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true + }, "node_modules/@types/sinonjs__fake-timers": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", - "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", - "dev": true + "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==" }, "node_modules/@types/sizzle": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.8.tgz", - "integrity": "sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==", - "dev": true + "integrity": "sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==" }, "node_modules/@types/supports-color": { "version": "8.1.3", @@ -4647,9 +4897,9 @@ "dev": true }, "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==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", "dev": true }, "node_modules/@types/use-sync-external-store": { @@ -4657,102 +4907,35 @@ "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz", "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==" }, - "node_modules/@types/yauzl": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", - "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "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.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.3.1", - "natural-compare": "^1.4.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "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/typescript-estree": "7.18.0", - "@typescript-eslint/utils": "7.18.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } + "node_modules/@types/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==", + "dev": true }, - "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, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "optional": true, + "dependencies": { + "@types/node": "*" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { + "node_modules/@typescript-eslint/eslint-plugin": { "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==", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz", + "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.18.0", + "@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", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", "ts-api-utils": "^1.3.0" }, "engines": { @@ -4762,22 +4945,28 @@ "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, + "peerDependencies": { + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + }, "peerDependenciesMeta": { "typescript": { "optional": true } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { + "node_modules/@typescript-eslint/parser": { "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==", + "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": { - "@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" + "@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" @@ -4788,16 +4977,21 @@ }, "peerDependencies": { "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "node_modules/@typescript-eslint/scope-manager": { "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==", + "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", - "eslint-visitor-keys": "^3.4.3" + "@typescript-eslint/visitor-keys": "7.18.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -4807,54 +5001,16 @@ "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": { + "node_modules/@typescript-eslint/type-utils": { "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz", - "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", + "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, - "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" + "@typescript-eslint/utils": "7.18.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -4872,12 +5028,11 @@ } } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { + "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": "^18.18.0 || >=20.0.0" }, @@ -4886,12 +5041,11 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { + "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": "7.18.0", "@typescript-eslint/visitor-keys": "7.18.0", @@ -4915,71 +5069,16 @@ } } }, - "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": { - "@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/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": { - "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" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/scope-manager": { + "node_modules/@typescript-eslint/utils": { "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==", + "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/visitor-keys": "7.18.0" + "@typescript-eslint/typescript-estree": "7.18.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -4987,22 +5086,12 @@ "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" + "peerDependencies": { + "eslint": "^8.56.0" } }, - "node_modules/@typescript-eslint/scope-manager/node_modules/@typescript-eslint/visitor-keys": { + "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==", @@ -5019,115 +5108,81 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "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==", - "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==", + "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==", "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@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" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } + "peer": true }, - "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/@vitejs/plugin-react-swc": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.7.1.tgz", + "integrity": "sha512-vgWOY0i1EROUK0Ctg1hwhtC3SdcDjZcdit4Ups4aPkDcB1jYhmo+RMYWY87cmXMhvtD5uf8lV89j2w16vkdSVg==", "dev": true, "dependencies": { - "yallist": "^4.0.0" + "@swc/core": "^1.7.26" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "vite": "^4 || ^5" } }, - "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/@vue/compiler-core": { + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.12.tgz", + "integrity": "sha512-ISyBTRMmMYagUxhcpyEH0hpXRd/KqDU4ymofPgl2XAkY9ZhQ+h0ovEZJIiPop13UmR/54oA2cgMDjgroRelaEw==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "@babel/parser": "^7.25.3", + "@vue/shared": "3.5.12", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" } }, - "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/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "node_modules/@vue/compiler-dom": { + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.12.tgz", + "integrity": "sha512-9G6PbJ03uwxLHKQ3P42cMTi85lDRvGLB2rSGOiQqtXELat6uI4n8cNz9yjfVHRPIu+MsK6TE418Giruvgptckg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "@vue/compiler-core": "3.5.12", + "@vue/shared": "3.5.12" } }, - "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==", + "node_modules/@vue/compiler-sfc": { + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.12.tgz", + "integrity": "sha512-2k973OGo2JuAa5+ZlekuQJtitI5CgLMOwgl94BzMCsKZCX/xiqzJYzapl4opFogKHqwJk34vfsaKpfEhd1k5nw==", "dev": true, - "peer": true + "dependencies": { + "@babel/parser": "^7.25.3", + "@vue/compiler-core": "3.5.12", + "@vue/compiler-dom": "3.5.12", + "@vue/compiler-ssr": "3.5.12", + "@vue/shared": "3.5.12", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.11", + "postcss": "^8.4.47", + "source-map-js": "^1.2.0" + } }, - "node_modules/@vitejs/plugin-react-swc": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.6.0.tgz", - "integrity": "sha512-XFRbsGgpGxGzEV5i5+vRiro1bwcIaZDIdBRP16qwm+jP68ue/S8FJTBEgOeojtVDYrbSua3XFp71kC8VJE6v+g==", + "node_modules/@vue/compiler-ssr": { + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.12.tgz", + "integrity": "sha512-eLwc7v6bfGBSM7wZOGPmRavSWzNFF6+PdRhE+VFJhNCgHiF8AM7ccoqcv5kBXA2eWUfigD7byekvf/JsOfKvPA==", "dev": true, "dependencies": { - "@swc/core": "^1.3.107" - }, - "peerDependencies": { - "vite": "^4 || ^5" + "@vue/compiler-dom": "3.5.12", + "@vue/shared": "3.5.12" } }, + "node_modules/@vue/shared": { + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.12.tgz", + "integrity": "sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==", + "dev": true + }, "node_modules/@webassemblyjs/ast": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", @@ -5287,37 +5342,18 @@ "peer": true }, "node_modules/@yudiel/react-qr-scanner": { - "version": "2.0.0-beta.3", - "resolved": "https://registry.npmjs.org/@yudiel/react-qr-scanner/-/react-qr-scanner-2.0.0-beta.3.tgz", - "integrity": "sha512-3zGssNoBXpSUdVmNPGhlyQS1V9snzKPlGk5JGOjNXPNUqVYjf/m8TTrU6cskPbL3dRUOGFctAs5rLeVB1UEhXw==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@yudiel/react-qr-scanner/-/react-qr-scanner-2.0.8.tgz", + "integrity": "sha512-/7WHsdC1a/Z909J2zZxqgpUQ1iI554fZxIagucH/tFu1MhZkNIeykYI1OdZgDEwV4CzuSi+h90wwNrhmETcmRw==", "dependencies": { - "@zxing/library": "^0.20.0" + "barcode-detector": "^2.2.7", + "webrtc-adapter": "9.0.1" }, "peerDependencies": { - "react": "^18.2.0", - "react-dom": "^18.2.0" - } - }, - "node_modules/@zxing/library": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/@zxing/library/-/library-0.20.0.tgz", - "integrity": "sha512-6Ev6rcqVjMakZFIDvbUf0dtpPGeZMTfyxYg4HkVWioWeN7cRcnUWT3bU6sdohc82O1nPXcjq6WiGfXX2Pnit6A==", - "dependencies": { - "ts-custom-error": "^3.2.1" - }, - "engines": { - "node": ">= 10.4.0" - }, - "optionalDependencies": { - "@zxing/text-encoding": "~0.9.0" + "react": "^17 || ^18", + "react-dom": "^17 || ^18" } }, - "node_modules/@zxing/text-encoding": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", - "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", - "optional": true - }, "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -5325,9 +5361,9 @@ "optional": true }, "node_modules/acorn": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.13.0.tgz", + "integrity": "sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==", "bin": { "acorn": "bin/acorn" }, @@ -5353,6 +5389,18 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dev": true, + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/adler-32": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz", @@ -5377,7 +5425,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -5387,26 +5434,34 @@ } }, "node_modules/ajv": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz", - "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==", - "dev": true, + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "peer": true, "dependencies": { - "fast-deep-equal": "^3.1.3", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peer": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, "node_modules/ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true, "engines": { "node": ">=6" } @@ -5415,7 +5470,6 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, "dependencies": { "type-fest": "^0.21.3" }, @@ -5430,7 +5484,6 @@ "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, "engines": { "node": ">=10" }, @@ -5450,7 +5503,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -5464,14 +5516,12 @@ "node_modules/any-promise": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -5496,7 +5546,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", - "dev": true, "funding": [ { "type": "github", @@ -5529,8 +5578,7 @@ "node_modules/arg": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" }, "node_modules/argparse": { "version": "2.0.1", @@ -5545,6 +5593,17 @@ "node": ">=14.0.0" } }, + "node_modules/aria-hidden": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", + "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/array-buffer-byte-length": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", @@ -5688,7 +5747,6 @@ "version": "0.2.6", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dev": true, "dependencies": { "safer-buffer": "~2.1.0" } @@ -5697,34 +5755,31 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "dev": true, "engines": { "node": ">=0.8" } }, "node_modules/ast-module-types": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-5.0.0.tgz", - "integrity": "sha512-JvqziE0Wc0rXQfma0HZC/aY7URXHFuZV84fJRtP8u+lhp0JYCNd5wJzVXP45t0PH0Mej3ynlzvdyITYIu0G4LQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-6.0.0.tgz", + "integrity": "sha512-LFRg7178Fw5R4FAEwZxVqiRI8IxSM+Ay2UBrHoCerXNme+kMMMfz7T3xDGV/c2fer87hcrtgJGsnSOfUrPK6ng==", "dev": true, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, "engines": { "node": ">=8" } }, "node_modules/async": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", - "dev": true + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==" }, "node_modules/asynckit": { "version": "0.4.0", @@ -5735,15 +5790,14 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, "engines": { "node": ">= 4.0.0" } }, "node_modules/autoprefixer": { - "version": "10.4.19", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", - "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", "dev": true, "funding": [ { @@ -5760,11 +5814,11 @@ } ], "dependencies": { - "browserslist": "^4.23.0", - "caniuse-lite": "^1.0.30001599", + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", + "picocolors": "^1.0.1", "postcss-value-parser": "^4.2.0" }, "bin": { @@ -5796,16 +5850,14 @@ "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "dev": true, "engines": { "node": "*" } }, "node_modules/aws4": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", - "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", - "dev": true + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", + "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==" }, "node_modules/axios": { "version": "1.7.7", @@ -5818,39 +5870,48 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.10", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.10.tgz", - "integrity": "sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==", + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", "dev": true, "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.1", + "@babel/helper-define-polyfill-provider": "^0.6.2", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", - "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", + "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.1", - "core-js-compat": "^3.36.1" + "@babel/helper-define-polyfill-provider": "^0.6.2", + "core-js-compat": "^3.38.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.1.tgz", - "integrity": "sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.1" + "@babel/helper-define-polyfill-provider": "^0.6.2" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -5868,14 +5929,21 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "devOptional": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/barcode-detector": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/barcode-detector/-/barcode-detector-2.2.11.tgz", + "integrity": "sha512-N50XZ6Rav2sxTgHXOc38/mkpVJMan11GZ8Yqi1pPMZpTJSXuZ/FpIee6OtLehZX/Vs4ZOzGbp1DgXzFCfKggWA==", + "dependencies": { + "@types/dom-webcodecs": "^0.1.13", + "zxing-wasm": "1.2.14" + } }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, "funding": [ { "type": "github", @@ -5895,7 +5963,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "dev": true, "dependencies": { "tweetnacl": "^0.14.3" } @@ -5904,7 +5971,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, "engines": { "node": ">=8" }, @@ -5915,14 +5981,12 @@ "node_modules/blob-util": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", - "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==", - "dev": true + "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==" }, "node_modules/bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" }, "node_modules/boolean": { "version": "3.2.0", @@ -5933,24 +5997,20 @@ "node_modules/bowser": { "version": "2.11.0", "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", - "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==", - "license": "MIT" + "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==" }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "devOptional": true, + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^1.0.0" } }, "node_modules/braces": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, "dependencies": { "fill-range": "^7.1.1" }, @@ -5967,9 +6027,9 @@ } }, "node_modules/browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", + "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", "funding": [ { "type": "opencollective", @@ -5985,10 +6045,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" + "caniuse-lite": "^1.0.30001663", + "electron-to-chromium": "^1.5.28", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" }, "bin": { "browserslist": "cli.js" @@ -6005,7 +6065,6 @@ "https://opencollective.com/browserslist-useragent-regexp", "https://ko-fi.com/dangreen" ], - "license": "MIT", "dependencies": { "argue-cli": "^2.1.0", "easy-table": "^1.2.0", @@ -6024,23 +6083,10 @@ "browserslist": ">=4.0.0" } }, - "node_modules/browserslist-useragent-regexp/node_modules/easy-table": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.2.0.tgz", - "integrity": "sha512-OFzVOv03YpvtcWGe5AayU5G2hgybsg3iqA6drU8UaoZyB9jLGMTrz9+asnLp/E+6qPh88yEI1gvyZFZ41dmgww==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "optionalDependencies": { - "wcwidth": "^1.0.1" - } - }, "node_modules/buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, "funding": [ { "type": "github", @@ -6064,7 +6110,6 @@ "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, "engines": { "node": "*" } @@ -6074,23 +6119,10 @@ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, - "node_modules/builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/cachedir": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz", "integrity": "sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==", - "dev": true, "engines": { "node": ">=6" } @@ -6099,7 +6131,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "dev": true, "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -6126,15 +6157,14 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true, "engines": { "node": ">= 6" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001663", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001663.tgz", - "integrity": "sha512-o9C3X27GLKbLeTYZ6HBOLU1tsAcBZsLis28wrVzddShCS16RujjHp9GDHKZqrB3meE0YjhawvMFsGb/igqiPzA==", + "version": "1.0.30001669", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001669.tgz", + "integrity": "sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==", "funding": [ { "type": "opencollective", @@ -6165,11 +6195,14 @@ "node": ">=6" } }, + "node_modules/care-livekit": { + "resolved": "apps/care_livekit_fe", + "link": true + }, "node_modules/caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", - "dev": true + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" }, "node_modules/ccount": { "version": "2.0.1", @@ -6197,7 +6230,6 @@ "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" @@ -6209,6 +6241,17 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/character-entities": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", @@ -6253,7 +6296,6 @@ "version": "2.24.0", "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==", - "dev": true, "engines": { "node": ">= 0.8.0" } @@ -6262,7 +6304,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -6286,7 +6327,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -6316,7 +6356,6 @@ "version": "3.9.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true, "funding": [ { "type": "github", @@ -6327,11 +6366,29 @@ "node": ">=8" } }, + "node_modules/class-variance-authority": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.0.tgz", + "integrity": "sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==", + "dependencies": { + "clsx": "2.0.0" + }, + "funding": { + "url": "https://joebell.co.uk" + } + }, + "node_modules/class-variance-authority/node_modules/clsx": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", + "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", + "engines": { + "node": ">=6" + } + }, "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, "engines": { "node": ">=6" } @@ -6340,7 +6397,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, "dependencies": { "restore-cursor": "^3.1.0" }, @@ -6349,10 +6405,9 @@ } }, "node_modules/cli-table3": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.4.tgz", - "integrity": "sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==", - "dev": true, + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", "dependencies": { "string-width": "^4.2.0" }, @@ -6367,7 +6422,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", - "dev": true, "dependencies": { "slice-ansi": "^3.0.0", "string-width": "^4.2.0" @@ -6408,7 +6462,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -6419,8 +6472,7 @@ "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/color-support": { "version": "1.1.3", @@ -6434,8 +6486,7 @@ "node_modules/colorette": { "version": "2.0.20", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" }, "node_modules/combined-stream": { "version": "1.0.8", @@ -6461,7 +6512,6 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "dev": true, "engines": { "node": ">= 6" } @@ -6470,7 +6520,6 @@ "version": "1.8.2", "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", - "dev": true, "engines": { "node": ">=4.0.0" } @@ -6514,6 +6563,15 @@ "node": "> 0.10" } }, + "node_modules/console.table/node_modules/easy-table": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.1.0.tgz", + "integrity": "sha512-oq33hWOSSnl2Hoh00tZWaIPi1ievrD9aFG82/IgjlycAnW9hHx5PkJiXpxPsgEE+H7BsbVQXFVFST8TEXS6/pA==", + "dev": true, + "optionalDependencies": { + "wcwidth": ">=1.0.1" + } + }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -6529,12 +6587,12 @@ } }, "node_modules/core-js-compat": { - "version": "3.36.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.1.tgz", - "integrity": "sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==", + "version": "3.38.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.1.tgz", + "integrity": "sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==", "dev": true, "dependencies": { - "browserslist": "^4.23.0" + "browserslist": "^4.23.3" }, "funding": { "type": "opencollective", @@ -6544,8 +6602,7 @@ "node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "dev": true + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" }, "node_modules/cosmiconfig": { "version": "8.3.6", @@ -6622,11 +6679,18 @@ "node": ">=8" } }, + "node_modules/css-box-model": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/css-box-model/-/css-box-model-1.2.1.tgz", + "integrity": "sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==", + "dependencies": { + "tiny-invariant": "^1.0.6" + } + }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, "bin": { "cssesc": "bin/cssesc" }, @@ -6640,13 +6704,12 @@ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, "node_modules/cypress": { - "version": "13.14.2", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.14.2.tgz", - "integrity": "sha512-lsiQrN17vHMB2fnvxIrKLAjOr9bPwsNbPZNrWf99s4u+DVmCY6U+w7O3GGG9FvP4EUVYaDu+guWeNLiUzBrqvA==", - "dev": true, + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.15.0.tgz", + "integrity": "sha512-53aO7PwOfi604qzOkCSzNlWquCynLlKE/rmmpSPcziRH6LNfaDUAklQT6WJIsD8ywxlIy+uVZsnTMCCQVd2kTw==", "hasInstallScript": true, "dependencies": { - "@cypress/request": "^3.0.1", + "@cypress/request": "^3.0.4", "@cypress/xvfb": "^1.2.4", "@types/sinonjs__fake-timers": "8.1.1", "@types/sizzle": "^2.3.2", @@ -6685,123 +6748,58 @@ "request-progress": "^3.0.0", "semver": "^7.5.3", "supports-color": "^8.1.1", - "tmp": "~0.2.3", - "untildify": "^4.0.0", - "yauzl": "^2.10.0" - }, - "bin": { - "cypress": "bin/cypress" - }, - "engines": { - "node": "^16.0.0 || ^18.0.0 || >=20.0.0" - } - }, - "node_modules/cypress-localstorage-commands": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/cypress-localstorage-commands/-/cypress-localstorage-commands-2.2.5.tgz", - "integrity": "sha512-07zpwzWdY+uPi1NEHFhWQNylIJqRxR78Ile05L6WT8h1Gz0OaxgBSZRuzp+pqUni/3Pk4d2ieq/cSh++ZmujEA==", - "dev": true, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "cypress": ">=2.1.0" - } - }, - "node_modules/cypress-split": { - "version": "1.23.2", - "resolved": "https://registry.npmjs.org/cypress-split/-/cypress-split-1.23.2.tgz", - "integrity": "sha512-kJeTgrxfH59nE4XD4ZbS8ZQds7J+ShBjyjaPcKfp3akdxcqT41rK/Io/3f4bsV1xMi7QfywgVAc1FoV2WiCLuw==", - "dev": true, - "dependencies": { - "@actions/core": "^1.10.0", - "arg": "^5.0.2", - "console.table": "^0.10.0", - "debug": "^4.3.4", - "fast-shuffle": "^6.1.0", - "find-cypress-specs": "1.43.2", - "globby": "^11.1.0", - "humanize-duration": "^3.28.0" - }, - "bin": { - "cypress-split-merge": "bin/merge.js", - "cypress-split-preview": "bin/preview.js" - } - }, - "node_modules/cypress/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cypress/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/cypress/node_modules/proxy-from-env": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", - "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==", - "dev": true - }, - "node_modules/cypress/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" + "tmp": "~0.2.3", + "untildify": "^4.0.0", + "yauzl": "^2.10.0" }, "bin": { - "semver": "bin/semver.js" + "cypress": "bin/cypress" }, "engines": { - "node": ">=10" + "node": "^16.0.0 || ^18.0.0 || >=20.0.0" } }, - "node_modules/cypress/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "node_modules/cypress-localstorage-commands": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/cypress-localstorage-commands/-/cypress-localstorage-commands-2.2.6.tgz", + "integrity": "sha512-l3nZ+Lu6YbBWk4UIfNrRkNK56BkF8zVbCrqzCf35x4Nlx2wA2r0spBOZXnKjbutQZgo6qDqtS8uXoSqV36YM1Q==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { - "node": ">=10" + "node": ">=14.0.0" }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "peerDependencies": { + "cypress": ">=2.1.0" } }, - "node_modules/cypress/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/cypress-split": { + "version": "1.24.4", + "resolved": "https://registry.npmjs.org/cypress-split/-/cypress-split-1.24.4.tgz", + "integrity": "sha512-sKBFQB659Ss5B08GSESeMKXBEpPD2wKNGQR1HYbKT98rnM1x5E+MugzcicqEdsK4T2Ng0feuuZQkz8XniOA18A==", + "dev": true, + "dependencies": { + "@actions/core": "^1.10.0", + "arg": "^5.0.2", + "console.table": "^0.10.0", + "debug": "^4.3.4", + "fast-shuffle": "^6.1.0", + "find-cypress-specs": "1.45.2", + "globby": "^11.1.0", + "humanize-duration": "^3.28.0" + }, + "bin": { + "cypress-split-merge": "bin/merge.js", + "cypress-split-preview": "bin/preview.js" + } + }, + "node_modules/cypress/node_modules/proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==" }, "node_modules/dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "dev": true, "dependencies": { "assert-plus": "^1.0.0" }, @@ -6861,16 +6859,16 @@ } }, "node_modules/dayjs": { - "version": "1.11.11", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.11.tgz", - "integrity": "sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==" + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -6978,7 +6976,6 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -7023,30 +7020,30 @@ "optional": true }, "node_modules/dependency-tree": { - "version": "10.0.9", - "resolved": "https://registry.npmjs.org/dependency-tree/-/dependency-tree-10.0.9.tgz", - "integrity": "sha512-dwc59FRIsht+HfnTVM0BCjJaEWxdq2YAvEDy4/Hn6CwS3CBWMtFnL3aZGAkQn3XCYxk/YcTDE4jX2Q7bFTwCjA==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/dependency-tree/-/dependency-tree-11.0.1.tgz", + "integrity": "sha512-eCt7HSKIC9NxgIykG2DRq3Aewn9UhVS14MB3rEn6l/AsEI1FBg6ZGSlCU0SZ6Tjm2kkhj6/8c2pViinuyKELhg==", "dev": true, "dependencies": { - "commander": "^10.0.1", - "filing-cabinet": "^4.1.6", - "precinct": "^11.0.5", - "typescript": "^5.0.4" + "commander": "^12.0.0", + "filing-cabinet": "^5.0.1", + "precinct": "^12.0.2", + "typescript": "^5.4.5" }, "bin": { "dependency-tree": "bin/cli.js" }, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/dependency-tree/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/dequal": { @@ -7072,111 +7069,140 @@ "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "dev": true }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" + }, "node_modules/detective-amd": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/detective-amd/-/detective-amd-5.0.2.tgz", - "integrity": "sha512-XFd/VEQ76HSpym80zxM68ieB77unNuoMwopU2TFT/ErUk5n4KvUTwW4beafAVUugrjV48l4BmmR0rh2MglBaiA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/detective-amd/-/detective-amd-6.0.0.tgz", + "integrity": "sha512-NTqfYfwNsW7AQltKSEaWR66hGkTeD52Kz3eRQ+nfkA9ZFZt3iifRCWh+yZ/m6t3H42JFwVFTrml/D64R2PAIOA==", "dev": true, "dependencies": { - "ast-module-types": "^5.0.0", - "escodegen": "^2.0.0", - "get-amd-module-type": "^5.0.1", - "node-source-walk": "^6.0.1" + "ast-module-types": "^6.0.0", + "escodegen": "^2.1.0", + "get-amd-module-type": "^6.0.0", + "node-source-walk": "^7.0.0" }, "bin": { "detective-amd": "bin/cli.js" }, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/detective-cjs": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/detective-cjs/-/detective-cjs-5.0.1.tgz", - "integrity": "sha512-6nTvAZtpomyz/2pmEmGX1sXNjaqgMplhQkskq2MLrar0ZAIkHMrDhLXkRiK2mvbu9wSWr0V5/IfiTrZqAQMrmQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/detective-cjs/-/detective-cjs-6.0.0.tgz", + "integrity": "sha512-R55jTS6Kkmy6ukdrbzY4x+I7KkXiuDPpFzUViFV/tm2PBGtTCjkh9ZmTuJc1SaziMHJOe636dtiZLEuzBL9drg==", "dev": true, "dependencies": { - "ast-module-types": "^5.0.0", - "node-source-walk": "^6.0.0" + "ast-module-types": "^6.0.0", + "node-source-walk": "^7.0.0" }, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/detective-es6": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/detective-es6/-/detective-es6-4.0.1.tgz", - "integrity": "sha512-k3Z5tB4LQ8UVHkuMrFOlvb3GgFWdJ9NqAa2YLUU/jTaWJIm+JJnEh4PsMc+6dfT223Y8ACKOaC0qcj7diIhBKw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/detective-es6/-/detective-es6-5.0.0.tgz", + "integrity": "sha512-NGTnzjvgeMW1khUSEXCzPDoraLenWbUjCFjwxReH+Ir+P6LGjYtaBbAvITWn2H0VSC+eM7/9LFOTAkrta6hNYg==", "dev": true, "dependencies": { - "node-source-walk": "^6.0.1" + "node-source-walk": "^7.0.0" }, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/detective-postcss": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/detective-postcss/-/detective-postcss-6.1.3.tgz", - "integrity": "sha512-7BRVvE5pPEvk2ukUWNQ+H2XOq43xENWbH0LcdCE14mwgTBEAMoAx+Fc1rdp76SmyZ4Sp48HlV7VedUnP6GA1Tw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/detective-postcss/-/detective-postcss-7.0.0.tgz", + "integrity": "sha512-pSXA6dyqmBPBuERpoOKKTUUjQCZwZPLRbd1VdsTbt6W+m/+6ROl4BbE87yQBUtLoK7yX8pvXHdKyM/xNIW9F7A==", "dev": true, "dependencies": { "is-url": "^1.2.4", - "postcss": "^8.4.23", "postcss-values-parser": "^6.0.2" }, "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "node": "^14.0.0 || >=16.0.0" + }, + "peerDependencies": { + "postcss": "^8.4.38" } }, "node_modules/detective-sass": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/detective-sass/-/detective-sass-5.0.3.tgz", - "integrity": "sha512-YsYT2WuA8YIafp2RVF5CEfGhhyIVdPzlwQgxSjK+TUm3JoHP+Tcorbk3SfG0cNZ7D7+cYWa0ZBcvOaR0O8+LlA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/detective-sass/-/detective-sass-6.0.0.tgz", + "integrity": "sha512-h5GCfFMkPm4ZUUfGHVPKNHKT8jV7cSmgK+s4dgQH4/dIUNh9/huR1fjEQrblOQNDalSU7k7g+tiW9LJ+nVEUhg==", "dev": true, "dependencies": { "gonzales-pe": "^4.3.0", - "node-source-walk": "^6.0.1" + "node-source-walk": "^7.0.0" }, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/detective-scss": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/detective-scss/-/detective-scss-4.0.3.tgz", - "integrity": "sha512-VYI6cHcD0fLokwqqPFFtDQhhSnlFWvU614J42eY6G0s8c+MBhi9QAWycLwIOGxlmD8I/XvGSOUV1kIDhJ70ZPg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/detective-scss/-/detective-scss-5.0.0.tgz", + "integrity": "sha512-Y64HyMqntdsCh1qAH7ci95dk0nnpA29g319w/5d/oYcHolcGUVJbIhOirOFjfN1KnMAXAFm5FIkZ4l2EKFGgxg==", "dev": true, "dependencies": { "gonzales-pe": "^4.3.0", - "node-source-walk": "^6.0.1" + "node-source-walk": "^7.0.0" }, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/detective-stylus": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detective-stylus/-/detective-stylus-4.0.0.tgz", - "integrity": "sha512-TfPotjhszKLgFBzBhTOxNHDsutIxx9GTWjrL5Wh7Qx/ydxKhwUrlSFeLIn+ZaHPF+h0siVBkAQSuy6CADyTxgQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/detective-stylus/-/detective-stylus-5.0.0.tgz", + "integrity": "sha512-KMHOsPY6aq3196WteVhkY5FF+6Nnc/r7q741E+Gq+Ax9mhE2iwj8Hlw8pl+749hPDRDBHZ2WlgOjP+twIG61vQ==", "dev": true, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/detective-typescript": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-11.2.0.tgz", - "integrity": "sha512-ARFxjzizOhPqs1fYC/2NMC3N4jrQ6HvVflnXBTRqNEqJuXwyKLRr9CrJwkRcV/SnZt1sNXgsF6FPm0x57Tq0rw==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-13.0.0.tgz", + "integrity": "sha512-tcMYfiFWoUejSbvSblw90NDt76/4mNftYCX0SMnVRYzSXv8Fvo06hi4JOPdNvVNxRtCAKg3MJ3cBJh+ygEMH+A==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "^5.62.0", - "ast-module-types": "^5.0.0", - "node-source-walk": "^6.0.2", - "typescript": "^5.4.4" + "@typescript-eslint/typescript-estree": "^7.6.0", + "ast-module-types": "^6.0.0", + "node-source-walk": "^7.0.0" }, "engines": { "node": "^14.14.0 || >=16.0.0" + }, + "peerDependencies": { + "typescript": "^5.4.4" + } + }, + "node_modules/detective-vue2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detective-vue2/-/detective-vue2-2.0.3.tgz", + "integrity": "sha512-AgWdSfVnft8uPGnUkdvE1EDadEENDCzoSRMt2xZfpxsjqVO617zGWXbB8TGIxHaqHz/nHa6lOSgAB8/dt0yEug==", + "dev": true, + "dependencies": { + "@vue/compiler-sfc": "^3.4.27", + "detective-es6": "^5.0.0", + "detective-sass": "^6.0.0", + "detective-scss": "^5.0.0", + "detective-stylus": "^5.0.0", + "detective-typescript": "^13.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "typescript": "^5.4.4" } }, "node_modules/devlop": { @@ -7195,8 +7221,7 @@ "node_modules/didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" }, "node_modules/diff": { "version": "5.2.0", @@ -7221,18 +7246,7 @@ "node_modules/dlv": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true - }, - "node_modules/dnd-core": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/dnd-core/-/dnd-core-16.0.1.tgz", - "integrity": "sha512-HK294sl7tbw6F6IeuK16YSBUoorvHpY8RHO+9yFfaJyCDVb6n7PRcezrOEOa2SBCqiYpemh5Jx20ZcjKdFAVng==", - "dependencies": { - "@react-dnd/asap": "^5.0.1", - "@react-dnd/invariant": "^4.0.1", - "redux": "^4.2.0" - } + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" }, "node_modules/doctrine": { "version": "3.0.0", @@ -7247,38 +7261,50 @@ "node": ">=6.0.0" } }, + "node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" }, "node_modules/easy-table": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.1.0.tgz", - "integrity": "sha512-oq33hWOSSnl2Hoh00tZWaIPi1ievrD9aFG82/IgjlycAnW9hHx5PkJiXpxPsgEE+H7BsbVQXFVFST8TEXS6/pA==", - "dev": true, + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.2.0.tgz", + "integrity": "sha512-OFzVOv03YpvtcWGe5AayU5G2hgybsg3iqA6drU8UaoZyB9jLGMTrz9+asnLp/E+6qPh88yEI1gvyZFZ41dmgww==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, "optionalDependencies": { - "wcwidth": ">=1.0.1" + "wcwidth": "^1.0.1" } }, "node_modules/ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "dev": true, "dependencies": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" } }, "node_modules/echarts": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.5.0.tgz", - "integrity": "sha512-rNYnNCzqDAPCr4m/fqyUFv7fD9qIsd50S6GDFgO1DxZhncCsNsG7IfUlAlvZe5oSEQxtsjnHiUuppzccry93Xw==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.5.1.tgz", + "integrity": "sha512-Fce8upazaAXUVUVsjgV6mBnGuqgO+JNDlcgF79Dksy4+wgGpQB2lmYoO4TSweFg/mZITdpGHomw/cNBJZj1icA==", "dependencies": { "tslib": "2.3.0", - "zrender": "5.5.0" + "zrender": "5.6.0" } }, "node_modules/echarts-for-react": { @@ -7315,21 +7341,19 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.722", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.722.tgz", - "integrity": "sha512-5nLE0TWFFpZ80Crhtp4pIp8LXCztjYX41yUcV6b+bKR2PqzjskTMOOlBi1VjBHlvHwS+4gar7kNKOrsbsewEZQ==" + "version": "1.5.39", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.39.tgz", + "integrity": "sha512-4xkpSR6CjuiaNyvwiWDI85N9AxsvbPawB8xc7yzLPonYTuP19BVgYweKyUMFtHEZgIcHWMt1ks5Cqx2m+6/Grg==" }, "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, "dependencies": { "once": "^1.4.0" } @@ -7350,7 +7374,6 @@ "version": "2.4.1", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", - "dev": true, "dependencies": { "ansi-colors": "^4.1.1", "strip-ansi": "^6.0.1" @@ -7359,6 +7382,18 @@ "node": ">=8.6" } }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/err-code": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", @@ -7437,7 +7472,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dev": true, "dependencies": { "get-intrinsic": "^1.2.4" }, @@ -7449,7 +7483,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, "engines": { "node": ">= 0.4" } @@ -7475,9 +7508,9 @@ } }, "node_modules/es-iterator-helpers": { - "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==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.1.0.tgz", + "integrity": "sha512-/SurEfycdyssORP/E+bj4sEu1CWw4EmLDsHynHwSXQ7utgbrMRWW195pTrCjFgFCddf/UkYm3oqKPRq5i8bJbw==", "dev": true, "dependencies": { "call-bind": "^1.0.7", @@ -7487,12 +7520,12 @@ "es-set-tostringtag": "^2.0.3", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", - "globalthis": "^1.0.3", + "globalthis": "^1.0.4", "has-property-descriptors": "^1.0.2", "has-proto": "^1.0.3", "has-symbols": "^1.0.3", "internal-slot": "^1.0.7", - "iterator.prototype": "^1.1.2", + "iterator.prototype": "^1.1.3", "safe-array-concat": "^1.1.2" }, "engines": { @@ -7500,9 +7533,9 @@ } }, "node_modules/es-module-lexer": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.2.tgz", - "integrity": "sha512-l60ETUTmLqbVbVHv1J4/qj+M8nq7AwMzEcg3kmJDt9dCNrTk+yHcYFf/Kw75pMDwd9mPcIGCG5LcS20SxYRzFA==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", "peer": true }, "node_modules/es-object-atoms": { @@ -7564,63 +7597,48 @@ "dev": true }, "node_modules/esbuild": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", - "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz", + "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==", "dev": true, "hasInstallScript": true, "bin": { "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.20.2", - "@esbuild/android-arm": "0.20.2", - "@esbuild/android-arm64": "0.20.2", - "@esbuild/android-x64": "0.20.2", - "@esbuild/darwin-arm64": "0.20.2", - "@esbuild/darwin-x64": "0.20.2", - "@esbuild/freebsd-arm64": "0.20.2", - "@esbuild/freebsd-x64": "0.20.2", - "@esbuild/linux-arm": "0.20.2", - "@esbuild/linux-arm64": "0.20.2", - "@esbuild/linux-ia32": "0.20.2", - "@esbuild/linux-loong64": "0.20.2", - "@esbuild/linux-mips64el": "0.20.2", - "@esbuild/linux-ppc64": "0.20.2", - "@esbuild/linux-riscv64": "0.20.2", - "@esbuild/linux-s390x": "0.20.2", - "@esbuild/linux-x64": "0.20.2", - "@esbuild/netbsd-x64": "0.20.2", - "@esbuild/openbsd-x64": "0.20.2", - "@esbuild/sunos-x64": "0.20.2", - "@esbuild/win32-arm64": "0.20.2", - "@esbuild/win32-ia32": "0.20.2", - "@esbuild/win32-x64": "0.20.2" - } - }, - "node_modules/esbuild/node_modules/@esbuild/aix-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", - "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" + "@esbuild/aix-ppc64": "0.23.1", + "@esbuild/android-arm": "0.23.1", + "@esbuild/android-arm64": "0.23.1", + "@esbuild/android-x64": "0.23.1", + "@esbuild/darwin-arm64": "0.23.1", + "@esbuild/darwin-x64": "0.23.1", + "@esbuild/freebsd-arm64": "0.23.1", + "@esbuild/freebsd-x64": "0.23.1", + "@esbuild/linux-arm": "0.23.1", + "@esbuild/linux-arm64": "0.23.1", + "@esbuild/linux-ia32": "0.23.1", + "@esbuild/linux-loong64": "0.23.1", + "@esbuild/linux-mips64el": "0.23.1", + "@esbuild/linux-ppc64": "0.23.1", + "@esbuild/linux-riscv64": "0.23.1", + "@esbuild/linux-s390x": "0.23.1", + "@esbuild/linux-x64": "0.23.1", + "@esbuild/netbsd-x64": "0.23.1", + "@esbuild/openbsd-arm64": "0.23.1", + "@esbuild/openbsd-x64": "0.23.1", + "@esbuild/sunos-x64": "0.23.1", + "@esbuild/win32-arm64": "0.23.1", + "@esbuild/win32-ia32": "0.23.1", + "@esbuild/win32-x64": "0.23.1" } }, "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "engines": { "node": ">=6" } @@ -7659,17 +7677,18 @@ } }, "node_modules/eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "@ungap/structured-clone": "^1.2.0", @@ -7759,9 +7778,9 @@ } }, "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==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-i18next/-/eslint-plugin-i18next-6.1.0.tgz", + "integrity": "sha512-upFtY6JyrJk8+nKp7utxlYyq5PMo/+FdgJIXpA29QdAaGR1whVmybUz2F5W+0TQYqIirekq4cSwWlej/ealBuA==", "dev": true, "dependencies": { "lodash": "^4.17.21", @@ -7771,6 +7790,21 @@ "node": ">=0.10.0" } }, + "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, + "dependencies": { + "mdast-util-from-markdown": "^0.8.5" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, "node_modules/eslint-plugin-mdx": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/eslint-plugin-mdx/-/eslint-plugin-mdx-3.1.5.tgz", @@ -7797,21 +7831,6 @@ "eslint": ">=8.0.0" } }, - "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, - "dependencies": { - "mdast-util-from-markdown": "^0.8.5" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, "node_modules/eslint-plugin-prettier": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", @@ -7843,9 +7862,9 @@ } }, "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==", + "version": "7.37.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.1.tgz", + "integrity": "sha512-xwTnwDqzbDRA8uJ7BMxPs/EXRB3i8ZfnOIp8BsxEQkT0nHPp+WWceqGgo6rKb9ctNi8GJLDT4Go5HAWELa/WMg==", "dev": true, "dependencies": { "array-includes": "^3.1.8", @@ -7886,6 +7905,16 @@ "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/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/eslint-plugin-react/node_modules/doctrine": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", @@ -7898,50 +7927,37 @@ "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==", + "node_modules/eslint-plugin-react/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "brace-expansion": "^1.1.7" }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "semver": "bin/semver.js" } }, "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "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": "^4.1.1" + "estraverse": "^5.2.0" }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-scope/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "peer": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint-visitor-keys": { - "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" }, @@ -7949,59 +7965,42 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/eslint-visitor-keys": { + "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, - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "url": "https://opencollective.com/eslint" } }, - "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==", + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "peer": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/eslint/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "peer": true, "dependencies": { - "type-fest": "^0.20.2" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "*" } }, - "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==", - "dev": true, - "peer": true - }, "node_modules/espree": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", @@ -8107,8 +8106,7 @@ "node_modules/eventemitter2": { "version": "6.4.7", "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz", - "integrity": "sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==", - "dev": true + "integrity": "sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==" }, "node_modules/eventemitter3": { "version": "5.0.1", @@ -8128,7 +8126,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, "dependencies": { "cross-spawn": "^7.0.0", "get-stream": "^5.0.0", @@ -8151,7 +8148,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", - "dev": true, "dependencies": { "pify": "^2.2.0" }, @@ -8168,7 +8164,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, "dependencies": { "debug": "^4.1.1", "get-stream": "^5.1.0", @@ -8188,7 +8183,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "dev": true, "engines": [ "node >=0.6.0" ] @@ -8208,7 +8202,6 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -8224,7 +8217,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -8253,11 +8245,16 @@ "pcg": "1.0.0" } }, + "node_modules/fast-uri": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", + "dev": true + }, "node_modules/fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "dev": true, "dependencies": { "reusify": "^1.0.4" } @@ -8266,7 +8263,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, "dependencies": { "pend": "~1.2.0" } @@ -8275,7 +8271,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, "dependencies": { "escape-string-regexp": "^1.0.5" }, @@ -8290,7 +8285,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, "engines": { "node": ">=0.8.0" } @@ -8317,15 +8311,6 @@ "minimatch": "^5.0.1" } }, - "node_modules/filelist/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/filelist/node_modules/minimatch": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", @@ -8339,59 +8324,60 @@ } }, "node_modules/filing-cabinet": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/filing-cabinet/-/filing-cabinet-4.2.0.tgz", - "integrity": "sha512-YZ21ryzRcyqxpyKggdYSoXx//d3sCJzM3lsYoaeg/FyXdADGJrUl+BW1KIglaVLJN5BBcMtWylkygY8zBp2MrQ==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/filing-cabinet/-/filing-cabinet-5.0.2.tgz", + "integrity": "sha512-RZlFj8lzyu6jqtFBeXNqUjjNG6xm+gwXue3T70pRxw1W40kJwlgq0PSWAmh0nAnn5DHuBIecLXk9+1VKS9ICXA==", "dev": true, "dependencies": { "app-module-path": "^2.2.0", - "commander": "^10.0.1", - "enhanced-resolve": "^5.14.1", - "is-relative-path": "^1.0.2", - "module-definition": "^5.0.1", - "module-lookup-amd": "^8.0.5", - "resolve": "^1.22.3", - "resolve-dependency-path": "^3.0.2", - "sass-lookup": "^5.0.1", - "stylus-lookup": "^5.0.1", + "commander": "^12.0.0", + "enhanced-resolve": "^5.16.0", + "module-definition": "^6.0.0", + "module-lookup-amd": "^9.0.1", + "resolve": "^1.22.8", + "resolve-dependency-path": "^4.0.0", + "sass-lookup": "^6.0.1", + "stylus-lookup": "^6.0.0", "tsconfig-paths": "^4.2.0", - "typescript": "^5.0.4" + "typescript": "^5.4.4" }, "bin": { "filing-cabinet": "bin/cli.js" }, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/filing-cabinet/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, "engines": { - "node": ">=14" + "node": ">=18" } }, - "node_modules/filing-cabinet/node_modules/tsconfig-paths": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", - "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "node_modules/filing-cabinet/node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "dependencies": { - "json5": "^2.2.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" }, - "engines": { - "node": ">=6" + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -8400,16 +8386,16 @@ } }, "node_modules/find-cypress-specs": { - "version": "1.43.2", - "resolved": "https://registry.npmjs.org/find-cypress-specs/-/find-cypress-specs-1.43.2.tgz", - "integrity": "sha512-SNXfIy9CuKx/tdwzzn20kc7WxoJXyXmC4vzmttRD/z4qZ8eOxbN6ywmB/fuQtDLLQXncqNA7zLYsymhhIRcvTQ==", + "version": "1.45.2", + "resolved": "https://registry.npmjs.org/find-cypress-specs/-/find-cypress-specs-1.45.2.tgz", + "integrity": "sha512-D289NM0Dpqoz4+yl8oEtbioqm7zPKQo0hLcvwlg5Z9iBm7EioMIFiOYgluthDNPxUES/aJF+1xHRHAJpC3ejcA==", "dev": true, "dependencies": { "@actions/core": "^1.10.0", "arg": "^5.0.1", "console.table": "^0.10.0", "debug": "^4.3.3", - "find-test-names": "1.28.18", + "find-test-names": "1.28.30", "globby": "^11.1.0", "minimatch": "^3.0.4", "pluralize": "^8.0.0", @@ -8425,14 +8411,36 @@ "node": ">=18" } }, + "node_modules/find-cypress-specs/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/find-cypress-specs/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/find-test-names": { - "version": "1.28.18", - "resolved": "https://registry.npmjs.org/find-test-names/-/find-test-names-1.28.18.tgz", - "integrity": "sha512-hhnGdkWK+qEA5Z02Tu0OqGQIUjFZNyOCE4WaJpbhW4hAF1+NZ7OCr0Bss9RCaj7BBtjoIjkU93utobQ8pg2iVg==", + "version": "1.28.30", + "resolved": "https://registry.npmjs.org/find-test-names/-/find-test-names-1.28.30.tgz", + "integrity": "sha512-b5PLJ5WnskdaYHBf+38FN/4TKh5lqwrltITkqxuARsN2bW6civrhqOXbVA+4727YNowYLt/jtIC9Dsn7eJSP6A==", "dev": true, "dependencies": { - "@babel/parser": "^7.23.0", - "@babel/plugin-syntax-jsx": "^7.22.5", + "@babel/parser": "^7.24.7", + "@babel/plugin-syntax-jsx": "^7.24.7", "acorn-walk": "^8.2.0", "debug": "^4.3.3", "globby": "^11.0.4", @@ -8444,15 +8452,6 @@ "update-test-count": "bin/update-test-count.js" } }, - "node_modules/find-test-names/node_modules/acorn-walk": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -8493,9 +8492,9 @@ "peer": true }, "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", "funding": [ { "type": "individual", @@ -8521,10 +8520,9 @@ } }, "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dev": true, + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -8540,7 +8538,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, "engines": { "node": ">=14" }, @@ -8552,15 +8549,14 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "dev": true, "engines": { "node": "*" } }, "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -8592,17 +8588,17 @@ } }, "node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "dev": true, + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dependencies": { + "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" }, "engines": { - "node": ">=14.14" + "node": ">=10" } }, "node_modules/fs-minipass": { @@ -8645,7 +8641,6 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, "hasInstallScript": true, "optional": true, "os": [ @@ -8659,7 +8654,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -8721,34 +8715,23 @@ "node": ">=6.9.0" } }, - "node_modules/gentype": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/gentype/-/gentype-4.5.0.tgz", - "integrity": "sha512-XqHBQPS6Qb2HSgNJAwYRXbQJ4LSvz+MgNvuWnj8bz0teSorsy2kDxA6F1eZx5ft8cnfKAls4uNEgd5uNcPbQDg==", - "dev": true, - "hasInstallScript": true, - "bin": { - "gentype": "gentype.exe" - } - }, "node_modules/get-amd-module-type": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/get-amd-module-type/-/get-amd-module-type-5.0.1.tgz", - "integrity": "sha512-jb65zDeHyDjFR1loOVk0HQGM5WNwoGB8aLWy3LKCieMKol0/ProHkhO2X1JxojuN10vbz1qNn09MJ7tNp7qMzw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-amd-module-type/-/get-amd-module-type-6.0.0.tgz", + "integrity": "sha512-hFM7oivtlgJ3d6XWD6G47l8Wyh/C6vFw5G24Kk1Tbq85yh5gcM8Fne5/lFhiuxB+RT6+SI7I1ThB9lG4FBh3jw==", "dev": true, "dependencies": { - "ast-module-types": "^5.0.0", - "node-source-walk": "^6.0.1" + "ast-module-types": "^6.0.0", + "node-source-walk": "^7.0.0" }, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/get-intrinsic": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "dev": true, "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2", @@ -8763,6 +8746,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "engines": { + "node": ">=6" + } + }, "node_modules/get-own-enumerable-property-symbols": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", @@ -8773,7 +8764,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, "dependencies": { "pump": "^3.0.0" }, @@ -8802,9 +8792,9 @@ } }, "node_modules/get-tsconfig": { - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.3.tgz", - "integrity": "sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", + "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", "dev": true, "dependencies": { "resolve-pkg-maps": "^1.0.0" @@ -8817,7 +8807,6 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", - "dev": true, "dependencies": { "async": "^3.2.0" } @@ -8826,7 +8815,6 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "dev": true, "dependencies": { "assert-plus": "^1.0.0" } @@ -8858,7 +8846,6 @@ "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" }, @@ -8872,15 +8859,6 @@ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "peer": true }, - "node_modules/glob/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/glob/node_modules/minimatch": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", @@ -8913,44 +8891,10 @@ "node": ">=10.0" } }, - "node_modules/global-agent/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/global-agent/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/global-agent/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/global-dirs": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", - "dev": true, "dependencies": { "ini": "2.0.0" }, @@ -8962,21 +8906,29 @@ } }, "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "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": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dev": true, "dependencies": { - "define-properties": "^1.1.3" + "define-properties": "^1.2.1", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -9024,7 +8976,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, "dependencies": { "get-intrinsic": "^1.1.3" }, @@ -9064,7 +9015,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, "dependencies": { "es-define-property": "^1.0.0" }, @@ -9076,7 +9026,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -9088,7 +9037,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -9121,7 +9069,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, "dependencies": { "function-bind": "^1.1.2" }, @@ -9148,9 +9095,9 @@ } }, "node_modules/hast-util-from-parse5/node_modules/@types/unist": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", - "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" }, "node_modules/hast-util-from-parse5/node_modules/unist-util-stringify-position": { "version": "3.0.3", @@ -9227,9 +9174,9 @@ } }, "node_modules/hast-util-raw/node_modules/@types/unist": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", - "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" }, "node_modules/hast-util-raw/node_modules/unist-util-is": { "version": "5.2.1", @@ -9353,9 +9300,9 @@ } }, "node_modules/hi-profiles": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/hi-profiles/-/hi-profiles-1.0.6.tgz", - "integrity": "sha512-CCNbYp8iUBco19dBdpkDxF5RXRQRzfRixBu89A5SZHpPTInHEWynqLZdoCDe2n1bGcD24Lr5NLJB9oBJE4nawg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hi-profiles/-/hi-profiles-1.1.0.tgz", + "integrity": "sha512-xlxkjsjT9dfsent7RnRbBgFpDx++jtErU7Iupnp/GgcDyEFlFbWNiEaxEGepKlZ91Y1XjbhtBzzKRg+7LGQEfg==", "dependencies": { "react": "^18.2.0", "react-dom": "^18.2.0", @@ -9370,6 +9317,24 @@ "react-is": "^16.7.0" } }, + "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/hosted-git-info/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/html-parse-stringify": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz", @@ -9388,14 +9353,13 @@ } }, "node_modules/http-signature": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", - "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", - "dev": true, + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.4.0.tgz", + "integrity": "sha512-G5akfn7eKbpDN+8nPS/cb57YeA1jLTVxjpCj7tmm3QKPdyDy7T+qSC40e9ptydSWvkwjSXw1VbkpyEm39ukeAg==", "dependencies": { "assert-plus": "^1.0.0", "jsprim": "^2.0.2", - "sshpk": "^1.14.1" + "sshpk": "^1.18.0" }, "engines": { "node": ">=0.10" @@ -9418,15 +9382,14 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true, "engines": { "node": ">=8.12.0" } }, "node_modules/humanize-duration": { - "version": "3.32.0", - "resolved": "https://registry.npmjs.org/humanize-duration/-/humanize-duration-3.32.0.tgz", - "integrity": "sha512-6WsXYTHJr7hXKqoqf5zoWza/lANRAqGlbnZnm0cjDykbXuez1JVXOQGmq0EPB45pXYAJyueRA3S3hfhmMbrMEQ==", + "version": "3.32.1", + "resolved": "https://registry.npmjs.org/humanize-duration/-/humanize-duration-3.32.1.tgz", + "integrity": "sha512-inh5wue5XdfObhu/IGEMiA1nUXigSGcaKNemcbLRKa7jXYGDZXr3LoT9pTIzq2hPEbld7w/qv9h+ikWGz8fL1g==", "dev": true }, "node_modules/husky": { @@ -9445,9 +9408,9 @@ } }, "node_modules/i18next": { - "version": "23.11.4", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.11.4.tgz", - "integrity": "sha512-CCUjtd5TfaCl+mLUzAA0uPSN+AVn4fP/kWCYt/hocPUwusTpMVczdrRyOBUwk6N05iH40qiKx6q1DoNJtBIwdg==", + "version": "23.16.0", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.16.0.tgz", + "integrity": "sha512-Ni3CG6c14teOogY19YNRl+kYaE/Rb59khy0VyHVn4uOZ97E2E/Yziyi6r3C3s9+wacjdLZiq/LLYyx+Cgd+FCw==", "funding": [ { "type": "individual", @@ -9484,7 +9447,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, "funding": [ { "type": "github", @@ -9501,14 +9463,20 @@ ] }, "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, "engines": { "node": ">= 4" } }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "dev": true + }, "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", @@ -9516,20 +9484,12 @@ "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + }, "engines": { - "node": ">=4" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/import-meta-resolve": { @@ -9556,7 +9516,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, "engines": { "node": ">=8" } @@ -9565,6 +9524,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "devOptional": true, "dependencies": { "once": "^1.3.0", @@ -9581,7 +9541,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "dev": true, "engines": { "node": ">=10" } @@ -9614,6 +9573,14 @@ "node": ">= 0.10" } }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, "node_modules/is-alphabetical": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", @@ -9706,7 +9673,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, "dependencies": { "binary-extensions": "^2.0.0" }, @@ -9752,21 +9718,6 @@ "node": ">=4" } }, - "node_modules/is-builtin-module": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", - "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", - "dev": true, - "dependencies": { - "builtin-modules": "^3.3.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", @@ -9783,7 +9734,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", - "dev": true, "dependencies": { "ci-info": "^3.2.0" }, @@ -9792,12 +9742,14 @@ } }, "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -9853,7 +9805,6 @@ "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" } @@ -9874,7 +9825,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "devOptional": true, "engines": { "node": ">=8" } @@ -9898,7 +9848,6 @@ "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" }, @@ -9920,7 +9869,6 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "dev": true, "dependencies": { "global-dirs": "^3.0.0", "is-path-inside": "^3.0.2" @@ -9966,7 +9914,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, "engines": { "node": ">=0.12.0" } @@ -9999,7 +9946,6 @@ "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" } @@ -10040,12 +9986,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-relative-path": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-relative-path/-/is-relative-path-1.0.2.tgz", - "integrity": "sha512-i1h+y50g+0hRbBD+dbnInl3JlJ702aar58snAeX+MxBAPvzXGej7sYoPMhlnykabt0ZzCJNBEyzMlekuQZN7fA==", - "dev": true - }, "node_modules/is-set": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", @@ -10077,7 +10017,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, "engines": { "node": ">=8" }, @@ -10133,14 +10072,12 @@ "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" }, "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, "engines": { "node": ">=10" }, @@ -10220,13 +10157,12 @@ "node_modules/isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", - "dev": true + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" }, "node_modules/iterator.prototype": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", - "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz", + "integrity": "sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==", "dev": true, "dependencies": { "define-properties": "^1.2.1", @@ -10234,12 +10170,15 @@ "has-symbols": "^1.0.3", "reflect.getprototypeof": "^1.0.4", "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/jackspeak": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.1.tgz", - "integrity": "sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz", + "integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==", "dev": true, "dependencies": { "@isaacs/cliui": "^8.0.2" @@ -10249,15 +10188,12 @@ }, "funding": { "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" } }, "node_modules/jake": { - "version": "10.8.7", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", - "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", "dev": true, "dependencies": { "async": "^3.2.3", @@ -10272,6 +10208,28 @@ "node": ">=10" } }, + "node_modules/jake/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/jake/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", @@ -10286,25 +10244,10 @@ "node": ">= 10.13.0" } }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "peer": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, "node_modules/jiti": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", - "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", "bin": { "jiti": "bin/jiti.js" } @@ -10328,19 +10271,18 @@ "node_modules/jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "dev": true + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" }, "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", "dev": true, "bin": { "jsesc": "bin/jsesc" }, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/json-buffer": { @@ -10358,14 +10300,13 @@ "node_modules/json-schema": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" }, "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "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==", + "peer": true }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -10377,8 +10318,7 @@ "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" }, "node_modules/json5": { "version": "2.2.3", @@ -10396,7 +10336,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, "dependencies": { "universalify": "^2.0.0" }, @@ -10417,7 +10356,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", - "dev": true, "engines": [ "node >=0.6.0" ], @@ -10453,11 +10391,18 @@ "json-buffer": "3.0.1" } }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "engines": { + "node": ">=6" + } + }, "node_modules/lazy-ass": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", - "dev": true, "engines": { "node": "> 0.8" } @@ -10485,11 +10430,19 @@ "node": ">= 0.8.0" } }, + "node_modules/lie": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", + "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==", + "dev": true, + "dependencies": { + "immediate": "~3.0.5" + } + }, "node_modules/lilconfig": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true, "engines": { "node": ">=10" } @@ -10542,9 +10495,9 @@ } }, "node_modules/lint-staged/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==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, "engines": { "node": ">=12" @@ -10617,6 +10570,29 @@ "node": ">=16" } }, + "node_modules/lint-staged/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/lint-staged/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, "node_modules/lint-staged/node_modules/execa": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", @@ -10729,6 +10705,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/lint-staged/node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, "node_modules/lint-staged/node_modules/mimic-fn": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", @@ -10741,6 +10730,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/lint-staged/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, "node_modules/lint-staged/node_modules/npm-run-path": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", @@ -10899,7 +10894,6 @@ "version": "3.14.0", "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz", "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==", - "dev": true, "dependencies": { "cli-truncate": "^2.1.0", "colorette": "^2.0.16", @@ -10926,7 +10920,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -10939,6 +10932,26 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/livekit-client": { + "version": "2.5.9", + "resolved": "https://registry.npmjs.org/livekit-client/-/livekit-client-2.5.9.tgz", + "integrity": "sha512-oDpK6SKYB1F+mNO+25DA0bF0cD2XoOJeD8ji4YQpzDBQv2IxeyKrQhoqXAqrYgIKuiMNkImSf+yg2v7EHSl4Og==", + "dependencies": { + "@livekit/protocol": "1.24.0", + "events": "^3.3.0", + "loglevel": "^1.8.0", + "sdp-transform": "^2.14.1", + "ts-debounce": "^4.0.0", + "tslib": "2.7.0", + "typed-emitter": "^2.1.0", + "webrtc-adapter": "^9.0.0" + } + }, + "node_modules/livekit-client/node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" + }, "node_modules/load-plugin": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/load-plugin/-/load-plugin-6.0.3.tgz", @@ -10972,6 +10985,38 @@ "debug": "4.3.4" } }, + "node_modules/local-cypress/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/local-cypress/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/localforage": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz", + "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==", + "dev": true, + "dependencies": { + "lie": "3.1.1" + } + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -10991,8 +11036,7 @@ "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "node_modules/lodash-es": { "version": "4.17.21", @@ -11008,8 +11052,7 @@ "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" }, "node_modules/lodash.isplainobject": { "version": "4.0.6", @@ -11026,8 +11069,7 @@ "node_modules/lodash.once": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", - "dev": true + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" }, "node_modules/lodash.sortby": { "version": "4.7.0", @@ -11035,16 +11077,10 @@ "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", "dev": true }, - "node_modules/lodash.throttle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" - }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -11060,7 +11096,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", - "dev": true, "dependencies": { "ansi-escapes": "^4.3.0", "cli-cursor": "^3.1.0", @@ -11078,7 +11113,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -11095,7 +11129,6 @@ "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -11105,6 +11138,18 @@ "node": ">=8" } }, + "node_modules/loglevel": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.1.tgz", + "integrity": "sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg==", + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/loglevel" + } + }, "node_modules/long": { "version": "5.2.3", "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", @@ -11141,6 +11186,15 @@ "yallist": "^3.0.2" } }, + "node_modules/magic-string": { + "version": "0.30.12", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", + "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, "node_modules/make-cancellable-promise": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/make-cancellable-promise/-/make-cancellable-promise-1.3.2.tgz", @@ -11155,33 +11209,100 @@ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "optional": true, "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "optional": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/make-event-props": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/make-event-props/-/make-event-props-1.6.2.tgz", + "integrity": "sha512-iDwf7mA03WPiR8QxvcVHmVWEPfMY1RZXerDVNCRYW7dUr2ppH3J58Rwb39/WG39yTZdRSxr3x+2v22tvI0VEvA==", + "funding": { + "url": "https://github.com/wojtekmaj/make-event-props?sponsor=1" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mdast-util-definitions": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz", + "integrity": "sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-definitions/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" + }, + "node_modules/mdast-util-definitions/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==", + "dependencies": { + "@types/unist": "^2.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/make-event-props": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/make-event-props/-/make-event-props-1.6.2.tgz", - "integrity": "sha512-iDwf7mA03WPiR8QxvcVHmVWEPfMY1RZXerDVNCRYW7dUr2ppH3J58Rwb39/WG39yTZdRSxr3x+2v22tvI0VEvA==", + "node_modules/mdast-util-definitions/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==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + }, "funding": { - "url": "https://github.com/wojtekmaj/make-event-props?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/matcher": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", - "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", - "dev": true, + "node_modules/mdast-util-definitions/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==", "dependencies": { - "escape-string-regexp": "^4.0.0" + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" }, - "engines": { - "node": ">=10" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-from-markdown": { @@ -11219,9 +11340,9 @@ } }, "node_modules/mdast-util-mdx-expression": { - "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==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", + "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", "dev": true, "dependencies": { "@types/estree-jsx": "^1.0.0", @@ -11377,9 +11498,9 @@ } }, "node_modules/mdast-util-mdx-jsx": { - "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==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.3.tgz", + "integrity": "sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==", "dev": true, "dependencies": { "@types/estree-jsx": "^1.0.0", @@ -11392,7 +11513,6 @@ "mdast-util-to-markdown": "^2.0.0", "parse-entities": "^4.0.0", "stringify-entities": "^4.0.0", - "unist-util-remove-position": "^5.0.0", "unist-util-stringify-position": "^4.0.0", "vfile-message": "^4.0.0" }, @@ -11623,9 +11743,9 @@ } }, "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==", + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", "dev": true }, "node_modules/mdast-util-mdx-jsx/node_modules/unist-util-stringify-position": { @@ -11973,23 +12093,9 @@ } }, "node_modules/mdast-util-to-hast/node_modules/@types/unist": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", - "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" - }, - "node_modules/mdast-util-to-hast/node_modules/mdast-util-definitions": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz", - "integrity": "sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==", - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" }, "node_modules/mdast-util-to-hast/node_modules/unist-util-is": { "version": "5.2.1", @@ -12082,6 +12188,11 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" + }, "node_modules/merge-refs": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/merge-refs/-/merge-refs-1.3.0.tgz", @@ -12107,7 +12218,6 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, "engines": { "node": ">= 8" } @@ -12192,16 +12302,10 @@ "micromark-util-types": "^2.0.0" } }, - "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==", - "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==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.1.tgz", + "integrity": "sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==", "dev": true, "dependencies": { "@types/acorn": "^4.0.0", @@ -12211,6 +12315,7 @@ "micromark-factory-mdx-expression": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "vfile-message": "^4.0.0" @@ -12220,12 +12325,6 @@ "url": "https://opencollective.com/unified" } }, - "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==", - "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", @@ -12280,12 +12379,6 @@ "url": "https://opencollective.com/unified" } }, - "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==", - "dev": true - }, "node_modules/micromark-factory-destination": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", @@ -12330,9 +12423,9 @@ } }, "node_modules/micromark-factory-mdx-expression": { - "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==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.2.tgz", + "integrity": "sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw==", "dev": true, "funding": [ { @@ -12347,6 +12440,7 @@ "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", @@ -12355,12 +12449,6 @@ "vfile-message": "^4.0.0" } }, - "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==", - "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", @@ -12587,12 +12675,6 @@ "vfile-message": "^4.0.0" } }, - "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==", - "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", @@ -12771,12 +12853,11 @@ ] }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -12806,7 +12887,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, "engines": { "node": ">=6" } @@ -12833,22 +12913,23 @@ } }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "devOptional": true, + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/minimist": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -12857,7 +12938,6 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, "engines": { "node": ">=16 || 14 >=14.17" } @@ -12906,52 +12986,63 @@ } }, "node_modules/module-definition": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/module-definition/-/module-definition-5.0.1.tgz", - "integrity": "sha512-kvw3B4G19IXk+BOXnYq/D/VeO9qfHaapMeuS7w7sNUqmGaA6hywdFHMi+VWeR9wUScXM7XjoryTffCZ5B0/8IA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/module-definition/-/module-definition-6.0.0.tgz", + "integrity": "sha512-sEGP5nKEXU7fGSZUML/coJbrO+yQtxcppDAYWRE9ovWsTbFoUHB2qDUx564WUzDaBHXsD46JBbIK5WVTwCyu3w==", "dev": true, "dependencies": { - "ast-module-types": "^5.0.0", - "node-source-walk": "^6.0.1" + "ast-module-types": "^6.0.0", + "node-source-walk": "^7.0.0" }, "bin": { "module-definition": "bin/cli.js" }, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/module-lookup-amd": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/module-lookup-amd/-/module-lookup-amd-8.0.5.tgz", - "integrity": "sha512-vc3rYLjDo5Frjox8NZpiyLXsNWJ5BWshztc/5KSOMzpg9k5cHH652YsJ7VKKmtM4SvaxuE9RkrYGhiSjH3Ehow==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/module-lookup-amd/-/module-lookup-amd-9.0.2.tgz", + "integrity": "sha512-p7PzSVEWiW9fHRX9oM+V4aV5B2nCVddVNv4DZ/JB6t9GsXY4E+ZVhPpnwUX7bbJyGeeVZqhS8q/JZ/H77IqPFA==", "dev": true, "dependencies": { - "commander": "^10.0.1", + "commander": "^12.1.0", "glob": "^7.2.3", - "requirejs": "^2.3.6", + "requirejs": "^2.3.7", "requirejs-config-file": "^4.0.0" }, "bin": { "lookup-amd": "bin/cli.js" }, "engines": { - "node": ">=14" + "node": ">=18" + } + }, + "node_modules/module-lookup-amd/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, "node_modules/module-lookup-amd/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/module-lookup-amd/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", @@ -12968,6 +13059,18 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/module-lookup-amd/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/mri": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", @@ -12977,15 +13080,14 @@ } }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "node_modules/mz": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", @@ -12993,9 +13095,9 @@ } }, "node_modules/nan": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.20.0.tgz", - "integrity": "sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==", + "version": "2.22.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.22.0.tgz", + "integrity": "sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw==", "optional": true }, "node_modules/nanoid": { @@ -13048,20 +13150,20 @@ } }, "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==" }, "node_modules/node-source-walk": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-6.0.2.tgz", - "integrity": "sha512-jn9vOIK/nfqoFCcpK89/VCVaLg1IHE6UVfDOzvqmANaJ/rWCTEdH8RZ1V278nv2jr36BJdyQXIAavBLXpzdlag==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-7.0.0.tgz", + "integrity": "sha512-1uiY543L+N7Og4yswvlm5NCKgPKDEXd9AUR9Jh3gen6oOeBsesr6LqhXom1er3eRzSUcVRWXzhv8tSNrIfGHKw==", "dev": true, "dependencies": { - "@babel/parser": "^7.21.8" + "@babel/parser": "^7.24.4" }, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/nopt": { @@ -13079,11 +13181,24 @@ "node": ">=6" } }, + "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/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -13109,18 +13224,6 @@ "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", @@ -13145,36 +13248,6 @@ "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", @@ -13190,23 +13263,10 @@ "node": "^16.14.0 || >=18.0.0" } }, - "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": ">=10" - } - }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, "dependencies": { "path-key": "^3.0.0" }, @@ -13239,16 +13299,17 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true, "engines": { "node": ">= 6" } }, "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "dev": true, + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -13349,7 +13410,6 @@ "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" } @@ -13358,7 +13418,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, "dependencies": { "mimic-fn": "^2.1.0" }, @@ -13370,18 +13429,18 @@ } }, "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "peer": true, "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" @@ -13390,8 +13449,7 @@ "node_modules/ospath": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", - "integrity": "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==", - "dev": true + "integrity": "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==" }, "node_modules/p-limit": { "version": "3.1.0", @@ -13429,7 +13487,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, "dependencies": { "aggregate-error": "^3.0.0" }, @@ -13441,10 +13498,9 @@ } }, "node_modules/package-json-from-dist": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", - "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", - "dev": true + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==" }, "node_modules/parent-module": { "version": "1.0.1", @@ -13527,8 +13583,7 @@ "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-scurry": { "version": "2.0.0", @@ -13547,9 +13602,9 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.0.tgz", - "integrity": "sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.1.tgz", + "integrity": "sha512-CgeuL5uom6j/ZVrg7G/+1IXqRY8JXX4Hghfy5YE0EhoYQWvndP1kufu58cmZLNIDKnRhZrXfdS9urVWx98AipQ==", "dev": true, "engines": { "node": "20 || >=22" @@ -13597,8 +13652,7 @@ "node_modules/pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" }, "node_modules/performance-now": { "version": "2.1.0", @@ -13606,15 +13660,14 @@ "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==" }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, "engines": { "node": ">=8.6" }, @@ -13638,7 +13691,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -13647,7 +13699,6 @@ "version": "4.0.6", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, "engines": { "node": ">= 6" } @@ -13671,9 +13722,9 @@ } }, "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", "funding": [ { "type": "opencollective", @@ -13690,8 +13741,8 @@ ], "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.2.0" + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" @@ -13701,7 +13752,6 @@ "version": "15.1.0", "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dev": true, "dependencies": { "postcss-value-parser": "^4.0.0", "read-cache": "^1.0.0", @@ -13714,11 +13764,26 @@ "postcss": "^8.0.0" } }, + "node_modules/postcss-import/node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "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/postcss-js": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dev": true, "dependencies": { "camelcase-css": "^2.0.1" }, @@ -13737,7 +13802,6 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "dev": true, "funding": [ { "type": "opencollective", @@ -13769,10 +13833,9 @@ } }, "node_modules/postcss-load-config/node_modules/lilconfig": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", - "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", - "dev": true, + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", "engines": { "node": ">=14" }, @@ -13780,11 +13843,10 @@ "url": "https://github.com/sponsors/antonk52" } }, - "node_modules/postcss-load-config/node_modules/yaml": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz", - "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==", - "dev": true, + "node_modules/postcss-load-config/node_modules/yaml": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.0.tgz", + "integrity": "sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==", "bin": { "yaml": "bin.mjs" }, @@ -13813,60 +13875,34 @@ "webpack": "^5.0.0" } }, - "node_modules/postcss-loader/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/postcss-loader/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==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/postcss-loader/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, "node_modules/postcss-nested": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", - "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", - "dev": true, + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "postcss-selector-parser": "^6.0.11" + "postcss-selector-parser": "^6.1.1" }, "engines": { "node": ">=12.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, "peerDependencies": { "postcss": "^8.2.14" } }, "node_modules/postcss-nested/node_modules/postcss-selector-parser": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", - "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", - "dev": true, + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -13891,8 +13927,7 @@ "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, "node_modules/postcss-values-parser": { "version": "6.0.2", @@ -13912,38 +13947,41 @@ } }, "node_modules/precinct": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/precinct/-/precinct-11.0.5.tgz", - "integrity": "sha512-oHSWLC8cL/0znFhvln26D14KfCQFFn4KOLSw6hmLhd+LQ2SKt9Ljm89but76Pc7flM9Ty1TnXyrA2u16MfRV3w==", - "dev": true, - "dependencies": { - "@dependents/detective-less": "^4.1.0", - "commander": "^10.0.1", - "detective-amd": "^5.0.2", - "detective-cjs": "^5.0.1", - "detective-es6": "^4.0.1", - "detective-postcss": "^6.1.3", - "detective-sass": "^5.0.3", - "detective-scss": "^4.0.3", - "detective-stylus": "^4.0.0", - "detective-typescript": "^11.1.0", - "module-definition": "^5.0.1", - "node-source-walk": "^6.0.2" + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/precinct/-/precinct-12.1.2.tgz", + "integrity": "sha512-x2qVN3oSOp3D05ihCd8XdkIPuEQsyte7PSxzLqiRgktu79S5Dr1I75/S+zAup8/0cwjoiJTQztE9h0/sWp9bJQ==", + "dev": true, + "dependencies": { + "@dependents/detective-less": "^5.0.0", + "commander": "^12.1.0", + "detective-amd": "^6.0.0", + "detective-cjs": "^6.0.0", + "detective-es6": "^5.0.0", + "detective-postcss": "^7.0.0", + "detective-sass": "^6.0.0", + "detective-scss": "^5.0.0", + "detective-stylus": "^5.0.0", + "detective-typescript": "^13.0.0", + "detective-vue2": "^2.0.3", + "module-definition": "^6.0.0", + "node-source-walk": "^7.0.0", + "postcss": "^8.4.40", + "typescript": "^5.5.4" }, "bin": { "precinct": "bin/cli.js" }, "engines": { - "node": "^14.14.0 || >=16.0.0" + "node": ">=18" } }, "node_modules/precinct/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/prelude-ls": { @@ -13984,9 +14022,9 @@ } }, "node_modules/prettier-plugin-tailwindcss": { - "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==", + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.6.8.tgz", + "integrity": "sha512-dGu3kdm7SXPkiW4nzeWKCl3uoImdd5CTZEJGxyypEPL37Wj0HT2pLqjrvSei1nTeuQfO4PUfjeW5cTUNRLZ4sA==", "dev": true, "engines": { "node": ">=14.21.3" @@ -14003,6 +14041,7 @@ "prettier-plugin-import-sort": "*", "prettier-plugin-jsdoc": "*", "prettier-plugin-marko": "*", + "prettier-plugin-multiline-arrays": "*", "prettier-plugin-organize-attributes": "*", "prettier-plugin-organize-imports": "*", "prettier-plugin-sort-imports": "*", @@ -14040,6 +14079,9 @@ "prettier-plugin-marko": { "optional": true }, + "prettier-plugin-multiline-arrays": { + "optional": true + }, "prettier-plugin-organize-attributes": { "optional": true }, @@ -14061,7 +14103,6 @@ "version": "5.6.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", - "dev": true, "engines": { "node": ">=6" }, @@ -14082,7 +14123,6 @@ "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "dev": true, "engines": { "node": ">= 0.6.0" } @@ -14117,9 +14157,9 @@ } }, "node_modules/property-information": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.4.1.tgz", - "integrity": "sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -14133,14 +14173,12 @@ "node_modules/psl": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" }, "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -14155,24 +14193,36 @@ } }, "node_modules/qrcode.react": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/qrcode.react/-/qrcode.react-3.1.0.tgz", - "integrity": "sha512-oyF+Urr3oAMUG/OiOuONL3HXM+53wvuH3mtIWQrYmsXoAq0DkvZp2RYUWFSMFtbdOpuS++9v+WAkzNVkMlNW6Q==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/qrcode.react/-/qrcode.react-3.2.0.tgz", + "integrity": "sha512-YietHHltOHA4+l5na1srdaMx4sVSOjV9tamHs+mwiLWAMr6QVACRUw1Neax5CptFILcNoITctJY0Ipyn5enQ8g==", "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/querystringify": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, "funding": [ { "type": "github", @@ -14194,13 +14244,10 @@ "integrity": "sha512-twwRO/ilhlG/FIgYeKGFqyHhoEhqgnKVkcmqMKi2r524gz3ZbDTcyFt38E9xjJI2vT+KbRNHVbnJ/e0I25Azwg==", "dev": true }, - "node_modules/raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "dependencies": { - "performance-now": "^2.1.0" - } + "node_modules/raf-schd": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/raf-schd/-/raf-schd-4.0.3.tgz", + "integrity": "sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ==" }, "node_modules/ramda": { "version": "0.29.0", @@ -14266,59 +14313,6 @@ "react": "^15.3.0 || 16 || 17 || 18" } }, - "node_modules/react-dnd": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/react-dnd/-/react-dnd-16.0.1.tgz", - "integrity": "sha512-QeoM/i73HHu2XF9aKksIUuamHPDvRglEwdHL4jsp784BgUuWcg6mzfxT0QDdQz8Wj0qyRKx2eMg8iZtWvU4E2Q==", - "dependencies": { - "@react-dnd/invariant": "^4.0.1", - "@react-dnd/shallowequal": "^4.0.1", - "dnd-core": "^16.0.1", - "fast-deep-equal": "^3.1.3", - "hoist-non-react-statics": "^3.3.2" - }, - "peerDependencies": { - "@types/hoist-non-react-statics": ">= 3.3.1", - "@types/node": ">= 12", - "@types/react": ">= 16", - "react": ">= 16.14" - }, - "peerDependenciesMeta": { - "@types/hoist-non-react-statics": { - "optional": true - }, - "@types/node": { - "optional": true - }, - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-dnd-html5-backend": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/react-dnd-html5-backend/-/react-dnd-html5-backend-16.0.1.tgz", - "integrity": "sha512-Wu3dw5aDJmOGw8WjH1I1/yTH+vlXEL4vmjk5p+MHxP8HuHJS1lAGeIdG/hze1AvNeXWo/JgULV87LyQOr+r5jw==", - "dependencies": { - "dnd-core": "^16.0.1" - } - }, - "node_modules/react-dnd-scrolling": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/react-dnd-scrolling/-/react-dnd-scrolling-1.3.8.tgz", - "integrity": "sha512-XcvmrTsQrPNry7jkY8RkNAZ2HZIiLiUzOSUltkW6eOhNjkKfivnPEhkj9hZf1JP4C32zxDsjN26xoBy7puZXoA==", - "dependencies": { - "hoist-non-react-statics": "3.x", - "lodash.throttle": "^4.1.1", - "prop-types": "15.x", - "raf": "^3.4.1" - }, - "peerDependencies": { - "react": "16.x || 17.x || 18.x", - "react-dnd": "10.x || 11.x || 14.x || 15.x || 16.x", - "react-dom": "16.x || 17.x || 18.x" - } - }, "node_modules/react-dom": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", @@ -14344,11 +14338,11 @@ } }, "node_modules/react-i18next": { - "version": "13.5.0", - "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-13.5.0.tgz", - "integrity": "sha512-CFJ5NDGJ2MUyBohEHxljOq/39NQ972rh1ajnadG9BjTk+UXbHLq4z5DKEbEQBDoIhUmmbuS/fIMJKo6VOax1HA==", + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-15.0.3.tgz", + "integrity": "sha512-BlO1P+oLKjjIxDBQ0GkAIMacgjfMbnvops+3Y5nZXF7UJ99v4KCWr0Na1azJXC8AMiNWp4kgUcFCJM7U9ZsUDg==", "dependencies": { - "@babel/runtime": "^7.22.5", + "@babel/runtime": "^7.25.0", "html-parse-stringify": "^3.0.1" }, "peerDependencies": { @@ -14419,9 +14413,9 @@ } }, "node_modules/react-markdown/node_modules/@types/unist": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", - "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" }, "node_modules/react-markdown/node_modules/mdast-util-from-markdown": { "version": "1.3.1", @@ -14845,9 +14839,9 @@ ] }, "node_modules/react-markdown/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" }, "node_modules/react-markdown/node_modules/remark-parse": { "version": "10.0.2", @@ -14961,9 +14955,9 @@ } }, "node_modules/react-pdf": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/react-pdf/-/react-pdf-9.1.0.tgz", - "integrity": "sha512-KhPDQE3QshkLdS3b48S5Bldv0N5flob6qwvsiADWdZOS5TMDaIrkRtEs+Dyl6ubRf2jTf9jWmFb6RjWu46lSSg==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/react-pdf/-/react-pdf-9.1.1.tgz", + "integrity": "sha512-Cn3RTJZMqVOOCgLMRXDamLk4LPGfyB2Np3OwQAUjmHIh47EpuGW1OpAA1Z1GVDLoHx4d5duEDo/YbUkDbr4QFQ==", "dependencies": { "clsx": "^2.0.0", "dequal": "^2.0.3", @@ -15027,9 +15021,76 @@ } }, "node_modules/react-redux/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + }, + "node_modules/react-remove-scroll": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.0.tgz", + "integrity": "sha512-I2U4JVEsQenxDAKaVa3VZ/JeJZe0/2DxPWL8Tj8yLKctQJQiZM52pn/GWFpSp8dftjM3pSAHVJZscAnC/y+ySQ==", + "dependencies": { + "react-remove-scroll-bar": "^2.3.6", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", + "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", + "dependencies": { + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "dependencies": { + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } }, "node_modules/react-webcam": { "version": "7.2.0", @@ -15044,7 +15105,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, "dependencies": { "pify": "^2.3.0" } @@ -15089,7 +15149,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, "dependencies": { "picomatch": "^2.2.1" }, @@ -15109,6 +15168,23 @@ "node": ">= 0.10" } }, + "node_modules/rechoir/node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "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/redux": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", @@ -15163,9 +15239,9 @@ "dev": true }, "node_modules/regenerate-unicode-properties": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", "dev": true, "dependencies": { "regenerate": "^1.4.2" @@ -15192,21 +15268,20 @@ "version": "0.1.27", "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==", - "license": "MIT", "bin": { "regexp-tree": "bin/regexp-tree" } }, "node_modules/regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", + "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.6", + "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" + "set-function-name": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -15216,15 +15291,15 @@ } }, "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.1.1.tgz", + "integrity": "sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==", "dev": true, "dependencies": { - "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.11.0", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.1.0" }, @@ -15232,27 +15307,24 @@ "node": ">=4" } }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true + }, "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.11.1.tgz", + "integrity": "sha512-1DHODs4B8p/mQHU9kr+jv8+wIC9mtG4eBHxWxIq5mhjE3D5oORhCc6deRKzTjs9DcfRFmj9BHSDguZklqCGFWQ==", "dev": true, "dependencies": { - "jsesc": "~0.5.0" + "jsesc": "~3.0.2" }, "bin": { "regjsparser": "bin/parser" } }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, "node_modules/rehype-raw": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-6.1.1.tgz", @@ -15268,9 +15340,9 @@ } }, "node_modules/rehype-raw/node_modules/@types/unist": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", - "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" }, "node_modules/rehype-raw/node_modules/unified": { "version": "10.1.2", @@ -15507,9 +15579,9 @@ } }, "node_modules/remark-rehype/node_modules/@types/unist": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", - "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" }, "node_modules/remark-rehype/node_modules/unified": { "version": "10.1.2", @@ -15597,7 +15669,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", "integrity": "sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==", - "dev": true, "dependencies": { "throttleit": "^1.0.0" } @@ -15614,6 +15685,29 @@ "node": ">=6" } }, + "node_modules/require-and-forget/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/require-and-forget/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", @@ -15661,13 +15755,12 @@ "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" }, "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "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", @@ -15682,12 +15775,20 @@ } }, "node_modules/resolve-dependency-path": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/resolve-dependency-path/-/resolve-dependency-path-3.0.2.tgz", - "integrity": "sha512-Tz7zfjhLfsvR39ADOSk9us4421J/1ztVBo4rWUkF38hgHK5m0OCZ3NxFVpqHRkjctnwVa15igEUHFJp8MCS7vA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-dependency-path/-/resolve-dependency-path-4.0.0.tgz", + "integrity": "sha512-hlY1SybBGm5aYN3PC4rp15MzsJLM1w+MEA/4KU3UBPfz4S0lL3FL6mgv7JgaA8a+ZTeEQAiF1a1BuN2nkqiIlg==", "dev": true, "engines": { - "node": ">=14" + "node": ">=18" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" } }, "node_modules/resolve-pkg-maps": { @@ -15703,7 +15804,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -15725,22 +15825,21 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" } }, "node_modules/rfdc": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", - "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", - "dev": true + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==" }, "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "devOptional": true, "dependencies": { "glob": "^7.1.3" @@ -15752,10 +15851,21 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "devOptional": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/rimraf/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "devOptional": true, "dependencies": { "fs.realpath": "^1.0.0", @@ -15772,6 +15882,18 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/minimatch": { + "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" + }, + "engines": { + "node": "*" + } + }, "node_modules/roarr": { "version": "2.15.4", "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", @@ -15789,24 +15911,38 @@ "node": ">=8.0" } }, - "node_modules/roarr/node_modules/sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", - "dev": true - }, "node_modules/rollup": { - "version": "2.79.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", - "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", + "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", "dev": true, + "dependencies": { + "@types/estree": "1.0.6" + }, "bin": { "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=10.0.0" + "node": ">=18.0.0", + "npm": ">=8.0.0" }, "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.24.0", + "@rollup/rollup-android-arm64": "4.24.0", + "@rollup/rollup-darwin-arm64": "4.24.0", + "@rollup/rollup-darwin-x64": "4.24.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", + "@rollup/rollup-linux-arm-musleabihf": "4.24.0", + "@rollup/rollup-linux-arm64-gnu": "4.24.0", + "@rollup/rollup-linux-arm64-musl": "4.24.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", + "@rollup/rollup-linux-riscv64-gnu": "4.24.0", + "@rollup/rollup-linux-s390x-gnu": "4.24.0", + "@rollup/rollup-linux-x64-gnu": "4.24.0", + "@rollup/rollup-linux-x64-musl": "4.24.0", + "@rollup/rollup-win32-arm64-msvc": "4.24.0", + "@rollup/rollup-win32-ia32-msvc": "4.24.0", + "@rollup/rollup-win32-x64-msvc": "4.24.0", "fsevents": "~2.3.2" } }, @@ -15814,7 +15950,6 @@ "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", @@ -15837,7 +15972,6 @@ "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dev": true, "dependencies": { "tslib": "^2.1.0" } @@ -15910,31 +16044,30 @@ "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/sass-lookup": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/sass-lookup/-/sass-lookup-5.0.1.tgz", - "integrity": "sha512-t0X5PaizPc2H4+rCwszAqHZRtr4bugo4pgiCvrBFvIX0XFxnr29g77LJcpyj9A0DcKf7gXMLcgvRjsonYI6x4g==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/sass-lookup/-/sass-lookup-6.0.1.tgz", + "integrity": "sha512-nl9Wxbj9RjEJA5SSV0hSDoU2zYGtE+ANaDS4OFUR7nYrquvBFvPKZZtQHe3lvnxCcylEDV00KUijjdMTUElcVQ==", "dev": true, "dependencies": { - "commander": "^10.0.1" + "commander": "^12.0.0" }, "bin": { "sass-lookup": "bin/cli.js" }, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/sass-lookup/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/scheduler": { @@ -15963,44 +16096,28 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/schema-utils/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } + "node_modules/sdp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/sdp/-/sdp-3.2.0.tgz", + "integrity": "sha512-d7wDPgDV3DDiqulJjKiV2865wKsJ34YI+NDREbm+FySq6WuKOikwyNQcm+doLAZ1O6ltdO0SeKle2xMpN3Brgw==" }, - "node_modules/schema-utils/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "peer": true, - "peerDependencies": { - "ajv": "^6.9.1" + "node_modules/sdp-transform": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/sdp-transform/-/sdp-transform-2.14.2.tgz", + "integrity": "sha512-icY6jVao7MfKCieyo1AyxFYm1baiM+fA00qW/KrNNVlkxHAd34riEKuEkUe4bBb3gJwLJZM+xT60Yj1QL8rHiA==", + "bin": { + "sdp-verify": "checker.js" } }, - "node_modules/schema-utils/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==", - "peer": true - }, "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "devOptional": true, + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "bin": { "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/semver-compare": { @@ -16054,7 +16171,6 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -16118,10 +16234,21 @@ "node": ">=4" } }, + "node_modules/shelljs/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/shelljs/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", @@ -16138,11 +16265,22 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/shelljs/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/side-channel": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "dev": true, "dependencies": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", @@ -16159,8 +16297,7 @@ "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "devOptional": true + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "node_modules/simple-bin-help": { "version": "1.8.0", @@ -16220,7 +16357,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", - "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -16237,9 +16373,9 @@ "dev": true }, "node_modules/snyk": { - "version": "1.1291.0", - "resolved": "https://registry.npmjs.org/snyk/-/snyk-1.1291.0.tgz", - "integrity": "sha512-CNm2VGBLMACNfmPcM1ByF9tpGlJUL7AlPFpwqqVKlLNnFIQk6o7EjmYJtQZzV6xbBy3+h2jWVh/OwfhFV/BeFg==", + "version": "1.1293.1", + "resolved": "https://registry.npmjs.org/snyk/-/snyk-1.1293.1.tgz", + "integrity": "sha512-CnbNrsEUMGfajfJ5/03BIgx1ixWKr9Kk+9xDw6sZqKy4K5K01DkyUp/V+WjbCfjr0li9+aE7u70s276KEOuiNA==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -16262,9 +16398,9 @@ } }, "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "engines": { "node": ">=0.10.0" } @@ -16321,23 +16457,23 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", - "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", + "version": "3.0.20", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", + "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", "dev": true }, "node_modules/spec-change": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/spec-change/-/spec-change-1.11.1.tgz", - "integrity": "sha512-yH38HD5KaWssNJORlvPT9+dFB9B1RCCppnSZsqSb4JXcbOboQCsqd2miGfdXyxZIywOCwnds5/fTtY5/ZuOozA==", + "version": "1.11.11", + "resolved": "https://registry.npmjs.org/spec-change/-/spec-change-1.11.11.tgz", + "integrity": "sha512-wSxi1XKeNr8JxBlYj13Lw8TTMpojYU2zRlkmyXl0kHp+xGkwYUpXaVXcofiEmEqrq1HoGg7pwKEzvMjYcQubtw==", "dev": true, "dependencies": { "arg": "^5.0.2", "debug": "^4.3.4", "deep-equal": "^2.2.3", - "dependency-tree": "^10.0.9", - "globby": "^11.1.0", - "lazy-ass": "^2.0.3" + "dependency-tree": "^11.0.0", + "lazy-ass": "^2.0.3", + "tinyglobby": "^0.2.0" }, "bin": { "spec-change": "bin/spec-change.js" @@ -16352,6 +16488,12 @@ "node": "> 0.8" } }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true + }, "node_modules/ssf": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz", @@ -16367,7 +16509,6 @@ "version": "1.18.0", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", - "dev": true, "dependencies": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -16422,7 +16563,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "devOptional": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -16437,7 +16577,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -16447,18 +16586,6 @@ "node": ">=8" } }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/string-width/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "devOptional": true - }, "node_modules/string.prototype.matchall": { "version": "4.0.11", "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", @@ -16586,7 +16713,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "devOptional": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -16599,7 +16725,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -16629,7 +16754,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, "engines": { "node": ">=6" } @@ -16656,34 +16780,33 @@ } }, "node_modules/stylus-lookup": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/stylus-lookup/-/stylus-lookup-5.0.1.tgz", - "integrity": "sha512-tLtJEd5AGvnVy4f9UHQMw4bkJJtaAcmo54N+ovQBjDY3DuWyK9Eltxzr5+KG0q4ew6v2EHyuWWNnHeiw/Eo7rQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/stylus-lookup/-/stylus-lookup-6.0.0.tgz", + "integrity": "sha512-RaWKxAvPnIXrdby+UWCr1WRfa+lrPMSJPySte4Q6a+rWyjeJyFOLJxr5GrAVfcMCsfVlCuzTAJ/ysYT8p8do7Q==", "dev": true, "dependencies": { - "commander": "^10.0.1" + "commander": "^12.0.0" }, "bin": { "stylus-lookup": "bin/cli.js" }, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/stylus-lookup/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/sucrase": { "version": "3.35.0", "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", @@ -16701,20 +16824,10 @@ "node": ">=16 || 14 >=14.17" } }, - "node_modules/sucrase/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/sucrase/node_modules/commander": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, "engines": { "node": ">= 6" } @@ -16723,7 +16836,6 @@ "version": "10.4.5", "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", @@ -16743,7 +16855,6 @@ "version": "3.4.3", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -16757,29 +16868,12 @@ "node_modules/sucrase/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/sucrase/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" - } + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" }, "node_modules/sucrase/node_modules/path-scurry": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -16792,22 +16886,23 @@ } }, "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dependencies": { "has-flag": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -16816,9 +16911,9 @@ } }, "node_modules/synckit": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz", - "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==", + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz", + "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==", "dev": true, "dependencies": { "@pkgr/core": "^0.1.0", @@ -16834,14 +16929,21 @@ "node_modules/tabbable": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", - "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==", - "license": "MIT" + "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==" + }, + "node_modules/tailwind-merge": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.5.4.tgz", + "integrity": "sha512-0q8cfZHMu9nuYP/b5Shb7Y7Sh1B7Nnl5GqNr1U+n2p6+mybvRtayrQ+0042Z5byvTA8ihjlP8Odo8/VnHbZu4Q==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } }, "node_modules/tailwindcss": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz", - "integrity": "sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==", - "dev": true, + "version": "3.4.14", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.14.tgz", + "integrity": "sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==", "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", @@ -16874,11 +16976,18 @@ "node": ">=14.0.0" } }, + "node_modules/tailwindcss-animate": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", + "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, "node_modules/tailwindcss/node_modules/postcss-selector-parser": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", - "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", - "dev": true, + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -16887,6 +16996,22 @@ "node": ">=4" } }, + "node_modules/tailwindcss/node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "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/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -16936,10 +17061,40 @@ "node": ">=8" } }, + "node_modules/tempy": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", + "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", + "dev": true, + "dependencies": { + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/terser": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.30.0.tgz", - "integrity": "sha512-Y/SblUl5kEyEFzhMAQdsxVHh+utAxd4IuRNJzKywY/4uzSogh3G219jqbDDxYu4MXO9CzY3tSEqmZvW6AoEDJw==", + "version": "5.34.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.34.1.tgz", + "integrity": "sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==", "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -17003,7 +17158,6 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, "dependencies": { "any-promise": "^1.0.0" } @@ -17012,7 +17166,6 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, "dependencies": { "thenify": ">= 3.1.0 < 4" }, @@ -17032,7 +17185,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.1.tgz", "integrity": "sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ==", - "dev": true, "funding": { "url": "https://github.com/sponsors/sindresorhus" } @@ -17040,19 +17192,56 @@ "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, "node_modules/tiny-invariant": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==" }, + "node_modules/tinyglobby": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.9.tgz", + "integrity": "sha512-8or1+BGEdk1Zkkw2ii16qSS7uVrQJPre5A9o/XkWPATkk23FZh/15BKFxPnlTy6vkljZxLqYCzzBMj30ZrSvjw==", + "dev": true, + "dependencies": { + "fdir": "^6.4.0", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.0.tgz", + "integrity": "sha512-3oB133prH1o4j/L5lLW7uOCF1PlD+/It2L0eL/iAqWMB91RBbqTewABqxhj0ibBd90EEmWZq7ntIWzVaWcXTGQ==", + "dev": true, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/tmp": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", - "dev": true, "engines": { "node": ">=14.14" } @@ -17070,7 +17259,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "dependencies": { "is-number": "^7.0.0" }, @@ -17084,10 +17272,9 @@ "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==" }, "node_modules/tough-cookie": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", - "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", - "dev": true, + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", @@ -17102,7 +17289,6 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "dev": true, "engines": { "node": ">= 4.0.0" } @@ -17143,54 +17329,43 @@ "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", - "integrity": "sha512-5OX1tzOjxWEgsr/YEUWSuPrQ00deKLh6D7OTWcvNHm12/7QPyRh8SYpyWvA4IZv8H/+GQWQEh/kwo95Q9OVW1A==", - "engines": { - "node": ">=14.0.0" - } + "node_modules/ts-debounce": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ts-debounce/-/ts-debounce-4.0.0.tgz", + "integrity": "sha512-+1iDGY6NmOGidq7i7xZGA4cm8DAa6fqdYcvO5Z6yBevH++Bdo9Qt/mN0TzHUgcCcKv1gmh9+W5dHqz8pMWbCbg==" }, "node_modules/ts-interface-checker": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true - }, - "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-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", "dev": true, "dependencies": { - "tslib": "^1.8.1" + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" }, "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + "node": ">=6" } }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "node_modules/tslib": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz", + "integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==" }, "node_modules/tsx": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.9.3.tgz", - "integrity": "sha512-czVbetlILiyJZI5zGlj2kw9vFiSeyra9liPD4nG+Thh4pKTi0AmMEQ8zdV/L2xbIVKrIqif4sUNrsMAOksx9Zg==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.1.tgz", + "integrity": "sha512-0flMz1lh74BR4wOvBjuh9olbnwqCPc35OOlfyzHba0Dc+QNUeWX/Gq2YTbnwcWPO3BMd8fkzRVrHcsR+a7z7rA==", "dev": true, "dependencies": { - "esbuild": "~0.20.2", - "get-tsconfig": "^4.7.3" + "esbuild": "~0.23.0", + "get-tsconfig": "^4.7.5" }, "bin": { "tsx": "dist/cli.mjs" @@ -17215,7 +17390,6 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "dev": true, "dependencies": { "safe-buffer": "^5.0.1" }, @@ -17226,8 +17400,7 @@ "node_modules/tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "dev": true + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" }, "node_modules/type-check": { "version": "0.4.0", @@ -17328,6 +17501,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/typed-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/typed-emitter/-/typed-emitter-2.1.0.tgz", + "integrity": "sha512-g/KzbYKbH5C2vPkaXGu8DJlHrGKHLsM25Zg9WuC9pMGfuvT+X25tZQWo5fK1BjBm8+UrVE9LDCvaY0CQk+fXDA==", + "optionalDependencies": { + "rxjs": "*" + } + }, "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", @@ -17335,9 +17516,9 @@ "dev": true }, "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", "devOptional": true, "bin": { "tsc": "bin/tsc", @@ -17387,14 +17568,14 @@ } }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==" }, "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", "dev": true, "engines": { "node": ">=4" @@ -17414,9 +17595,9 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", "dev": true, "engines": { "node": ">=4" @@ -17483,13 +17664,13 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/unified-engine/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==", + "node_modules/unified-engine/node_modules/@types/node": { + "version": "20.16.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.11.tgz", + "integrity": "sha512-y+cTCACu92FyA5fgQSAI8A1H429g7aSK2HsO7K4XYUWc4dY5IUz55JSDIYT6/VsOLfGy8vmvQYC2hfb0iF16Uw==", "dev": true, "dependencies": { - "balanced-match": "^1.0.0" + "undici-types": "~6.19.2" } }, "node_modules/unified-engine/node_modules/glob": { @@ -17551,21 +17732,6 @@ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true }, - "node_modules/unified-engine/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/unified-engine/node_modules/parse-json": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.1.1.tgz", @@ -17686,23 +17852,9 @@ } }, "node_modules/unist-util-position/node_modules/@types/unist": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", - "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" - }, - "node_modules/unist-util-remove-position": { - "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" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" }, "node_modules/unist-util-stringify-position": { "version": "2.0.3", @@ -17718,9 +17870,9 @@ } }, "node_modules/unist-util-stringify-position/node_modules/@types/unist": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", - "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", "dev": true }, "node_modules/unist-util-visit": { @@ -17756,7 +17908,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, "engines": { "node": ">= 10.0.0" } @@ -17765,7 +17916,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", - "dev": true, "engines": { "node": ">=8" } @@ -17781,9 +17931,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "funding": [ { "type": "opencollective", @@ -17799,8 +17949,8 @@ } ], "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.0" }, "bin": { "update-browserslist-db": "cli.js" @@ -17813,6 +17963,7 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "peer": true, "dependencies": { "punycode": "^2.1.0" } @@ -17821,12 +17972,31 @@ "version": "1.5.10", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dev": true, "dependencies": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" } }, + "node_modules/use-callback-ref": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz", + "integrity": "sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/use-keyboard-shortcut": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/use-keyboard-shortcut/-/use-keyboard-shortcut-1.1.6.tgz", @@ -17836,19 +18006,61 @@ "react-dom": ">=16.8" } }, + "node_modules/use-memo-one": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.3.tgz", + "integrity": "sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/use-sidecar": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/use-sync-external-store": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", - "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", + "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, + "node_modules/usehooks-ts": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/usehooks-ts/-/usehooks-ts-3.1.0.tgz", + "integrity": "sha512-bBIa7yUyPhE1BCc0GmR96VU/15l/9gP1Ch5mYdLcFBaFGQsdmXkvjV0TtOqW1yUd6VjIwDunm+flSciCQXujiw==", + "dependencies": { + "lodash.debounce": "^4.0.8" + }, + "engines": { + "node": ">=16.15.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18" + } + }, "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==", - "devOptional": true + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "node_modules/uuid": { "version": "10.0.0", @@ -17880,60 +18092,244 @@ "node": ">=8" } }, - "node_modules/uvu/node_modules/kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "node_modules/uzip": { + "version": "0.20201231.0", + "resolved": "https://registry.npmjs.org/uzip/-/uzip-0.20201231.0.tgz", + "integrity": "sha512-OZeJfZP+R0z9D6TmBgLq2LHzSSptGMGDGigGiEe0pr8UBe/7fdflgHlHBNDASTXB5jnFuxHpNaJywSg8YFeGng==" + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "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/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.1.0.tgz", + "integrity": "sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==", + "dependencies": { + "@types/unist": "^2.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" + }, + "node_modules/vfile-location/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==", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location/node_modules/vfile": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", + "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", + "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/vfile-location/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==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message/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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-reporter": { + "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", + "supports-color": "^9.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile": "^6.0.0", + "vfile-message": "^4.0.0", + "vfile-sort": "^4.0.0", + "vfile-statistics": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-reporter/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/vfile-reporter/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "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", + "strip-ansi": "^7.0.1" + }, "engines": { - "node": ">=6" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/uzip": { - "version": "0.20201231.0", - "resolved": "https://registry.npmjs.org/uzip/-/uzip-0.20201231.0.tgz", - "integrity": "sha512-OZeJfZP+R0z9D6TmBgLq2LHzSSptGMGDGigGiEe0pr8UBe/7fdflgHlHBNDASTXB5jnFuxHpNaJywSg8YFeGng==" - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "node_modules/vfile-reporter/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": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "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==", + "node_modules/vfile-reporter/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": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "node_modules/vfile-reporter/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, - "engines": [ - "node >=0.6.0" - ], "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/vfile": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.2.tgz", - "integrity": "sha512-zND7NlS8rJYb/sPqkb13ZvbbUoExdbi4w3SfRrMq6R3FvnLQmmfpajJNITuuYm6AZ5uao9vy4BAos3EXBPf2rg==", + "node_modules/vfile-sort": { + "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": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", + "vfile": "^6.0.0", "vfile-message": "^4.0.0" }, "funding": { @@ -17941,486 +18337,643 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/vfile-location": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.1.0.tgz", - "integrity": "sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==", + "node_modules/vfile-statistics": { + "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": { - "@types/unist": "^2.0.0", - "vfile": "^5.0.0" + "vfile": "^6.0.0", + "vfile-message": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/vfile-location/node_modules/@types/unist": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", - "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" - }, - "node_modules/vfile-location/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==", + "node_modules/vite": { + "version": "5.4.9", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.9.tgz", + "integrity": "sha512-20OVpJHh0PAM0oSOELa5GaZNWeDjcAvQjGXy2Uyr+Tp+/D2/Hdz6NLgpJLsarPTA2QJ6v8mX2P1ZfbsSKvdMkg==", + "dev": true, "dependencies": { - "@types/unist": "^2.0.0" + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } } }, - "node_modules/vfile-location/node_modules/vfile": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", - "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", + "node_modules/vite-plugin-checker": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.6.4.tgz", + "integrity": "sha512-2zKHH5oxr+ye43nReRbC2fny1nyARwhxdm0uNYp/ERy4YvU9iZpNOsueoi/luXw5gnpqRSvjcEPxXbS153O2wA==", + "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" + "@babel/code-frame": "^7.12.13", + "ansi-escapes": "^4.3.0", + "chalk": "^4.1.1", + "chokidar": "^3.5.1", + "commander": "^8.0.0", + "fast-glob": "^3.2.7", + "fs-extra": "^11.1.0", + "npm-run-path": "^4.0.1", + "semver": "^7.5.0", + "strip-ansi": "^6.0.0", + "tiny-invariant": "^1.1.0", + "vscode-languageclient": "^7.0.0", + "vscode-languageserver": "^7.0.0", + "vscode-languageserver-textdocument": "^1.0.1", + "vscode-uri": "^3.0.2" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=14.16" + }, + "peerDependencies": { + "eslint": ">=7", + "meow": "^9.0.0", + "optionator": "^0.9.1", + "stylelint": ">=13", + "typescript": "*", + "vite": ">=2.0.0", + "vls": "*", + "vti": "*", + "vue-tsc": ">=1.3.9" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "meow": { + "optional": true + }, + "optionator": { + "optional": true + }, + "stylelint": { + "optional": true + }, + "typescript": { + "optional": true + }, + "vls": { + "optional": true + }, + "vti": { + "optional": true + }, + "vue-tsc": { + "optional": true + } } }, - "node_modules/vfile-location/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==", + "node_modules/vite-plugin-checker/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/vite-plugin-checker/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/vite-plugin-pwa": { + "version": "0.20.5", + "resolved": "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-0.20.5.tgz", + "integrity": "sha512-aweuI/6G6n4C5Inn0vwHumElU/UEpNuO+9iZzwPZGTCH87TeZ6YFMrEY6ZUBQdIHHlhTsbMDryFARcSuOdsz9Q==", + "dev": true, + "dependencies": { + "debug": "^4.3.6", + "pretty-bytes": "^6.1.1", + "tinyglobby": "^0.2.0", + "workbox-build": "^7.1.0", + "workbox-window": "^7.1.0" + }, + "engines": { + "node": ">=16.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vite-pwa/assets-generator": "^0.2.6", + "vite": "^3.1.0 || ^4.0.0 || ^5.0.0", + "workbox-build": "^7.1.0", + "workbox-window": "^7.1.0" + }, + "peerDependenciesMeta": { + "@vite-pwa/assets-generator": { + "optional": true + } } }, - "node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "node_modules/vite-plugin-pwa/node_modules/pretty-bytes": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.1.tgz", + "integrity": "sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==", "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" + "engines": { + "node": "^14.13.1 || >=16.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/vfile-message/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==", + "node_modules/vite-plugin-static-copy": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-1.0.6.tgz", + "integrity": "sha512-3uSvsMwDVFZRitqoWHj0t4137Kz7UynnJeq1EZlRW7e25h2068fyIZX4ORCCOAkfp1FklGxJNVJBkBOD+PZIew==", "dev": true, "dependencies": { - "@types/unist": "^3.0.0" + "chokidar": "^3.5.3", + "fast-glob": "^3.2.11", + "fs-extra": "^11.1.0", + "picocolors": "^1.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0" } }, - "node_modules/vfile-reporter": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-8.1.1.tgz", - "integrity": "sha512-qxRZcnFSQt6pWKn3PAk81yLK2rO2i7CDXpy8v8ZquiEOMLSnPw6BMSi9Y1sUCwGGl7a9b3CJT1CKpnRF7pp66g==", + "node_modules/vite-plugin-static-copy/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", "dev": true, "dependencies": { - "@types/supports-color": "^8.0.0", - "string-width": "^6.0.0", - "supports-color": "^9.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile": "^6.0.0", - "vfile-message": "^4.0.0", - "vfile-sort": "^4.0.0", - "vfile-statistics": "^3.0.0" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=14.14" } }, - "node_modules/vfile-reporter/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==", + "node_modules/vite/node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], "dev": true, + "optional": true, + "os": [ + "aix" + ], "engines": { "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "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==", - "dev": true + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } }, - "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==", + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^10.2.1", - "strip-ansi": "^7.0.1" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=12" } }, - "node_modules/vfile-reporter/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==", + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, + "optional": true, + "os": [ + "android" + ], "engines": { "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/vfile-reporter/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==", + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], "dev": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/vfile-reporter/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==", + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" } }, - "node_modules/vfile-sort": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/vfile-sort/-/vfile-sort-4.0.0.tgz", - "integrity": "sha512-lffPI1JrbHDTToJwcq0rl6rBmkjQmMuXkAxsZPRS9DXbaJQvc642eCg6EGxcX2i1L+esbuhq+2l9tBll5v8AeQ==", + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "vfile": "^6.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" } }, - "node_modules/vfile-statistics": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vfile-statistics/-/vfile-statistics-3.0.0.tgz", - "integrity": "sha512-/qlwqwWBWFOmpXujL/20P+Iuydil0rZZNglR+VNm6J0gpLHwuVM5s7g2TfVoswbXjZ4HuIhLMySEyIw5i7/D8w==", + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "vfile": "^6.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/vfile/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==", + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/vite": { - "version": "5.2.11", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.11.tgz", - "integrity": "sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==", + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], "dev": true, - "dependencies": { - "esbuild": "^0.20.1", - "postcss": "^8.4.38", - "rollup": "^4.13.0" - }, - "bin": { - "vite": "bin/vite.js" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } + "node": ">=12" } }, - "node_modules/vite-plugin-checker": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.6.4.tgz", - "integrity": "sha512-2zKHH5oxr+ye43nReRbC2fny1nyARwhxdm0uNYp/ERy4YvU9iZpNOsueoi/luXw5gnpqRSvjcEPxXbS153O2wA==", + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "ansi-escapes": "^4.3.0", - "chalk": "^4.1.1", - "chokidar": "^3.5.1", - "commander": "^8.0.0", - "fast-glob": "^3.2.7", - "fs-extra": "^11.1.0", - "npm-run-path": "^4.0.1", - "semver": "^7.5.0", - "strip-ansi": "^6.0.0", - "tiny-invariant": "^1.1.0", - "vscode-languageclient": "^7.0.0", - "vscode-languageserver": "^7.0.0", - "vscode-languageserver-textdocument": "^1.0.1", - "vscode-uri": "^3.0.2" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=14.16" - }, - "peerDependencies": { - "eslint": ">=7", - "meow": "^9.0.0", - "optionator": "^0.9.1", - "stylelint": ">=13", - "typescript": "*", - "vite": ">=2.0.0", - "vls": "*", - "vti": "*", - "vue-tsc": ">=1.3.9" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - }, - "meow": { - "optional": true - }, - "optionator": { - "optional": true - }, - "stylelint": { - "optional": true - }, - "typescript": { - "optional": true - }, - "vls": { - "optional": true - }, - "vti": { - "optional": true - }, - "vue-tsc": { - "optional": true - } + "node": ">=12" } }, - "node_modules/vite-plugin-checker/node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 12" + "node": ">=12" } }, - "node_modules/vite-plugin-checker/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/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, + "optional": true, + "os": [ + "netbsd" + ], "engines": { - "node": ">=10" + "node": ">=12" } }, - "node_modules/vite-plugin-checker/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/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": ">=10" + "node": ">=12" } }, - "node_modules/vite-plugin-checker/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/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } }, - "node_modules/vite-plugin-pwa": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-0.20.0.tgz", - "integrity": "sha512-/kDZyqF8KqoXRpMUQtR5Atri/7BWayW8Gp7Kz/4bfstsV6zSFTxjREbXZYL7zSuRL40HGA+o2hvUAFRmC+bL7g==", + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "pretty-bytes": "^6.1.1", - "workbox-build": "^7.1.0", - "workbox-window": "^7.1.0" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - }, - "peerDependencies": { - "@vite-pwa/assets-generator": "^0.2.4", - "vite": "^3.1.0 || ^4.0.0 || ^5.0.0", - "workbox-build": "^7.1.0", - "workbox-window": "^7.1.0" - }, - "peerDependenciesMeta": { - "@vite-pwa/assets-generator": { - "optional": true - } + "node": ">=12" } }, - "node_modules/vite-plugin-pwa/node_modules/pretty-bytes": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.1.tgz", - "integrity": "sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==", + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], "dev": true, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": "^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=12" } }, - "node_modules/vite-plugin-static-copy": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-1.0.6.tgz", - "integrity": "sha512-3uSvsMwDVFZRitqoWHj0t4137Kz7UynnJeq1EZlRW7e25h2068fyIZX4ORCCOAkfp1FklGxJNVJBkBOD+PZIew==", + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "chokidar": "^3.5.3", - "fast-glob": "^3.2.11", - "fs-extra": "^11.1.0", - "picocolors": "^1.0.0" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "peerDependencies": { - "vite": "^5.0.0" + "node": ">=12" } }, - "node_modules/vite/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/vite/node_modules/rollup": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.2.tgz", - "integrity": "sha512-MIlLgsdMprDBXC+4hsPgzWUasLO9CE4zOkj/u6j+Z6j5A4zRY+CtiXAdJyPtgCsc42g658Aeh1DlrdVEJhsL2g==", + "node_modules/vite/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, - "dependencies": { - "@types/estree": "1.0.5" - }, + "hasInstallScript": true, "bin": { - "rollup": "dist/bin/rollup" + "esbuild": "bin/esbuild" }, "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" + "node": ">=12" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.13.2", - "@rollup/rollup-android-arm64": "4.13.2", - "@rollup/rollup-darwin-arm64": "4.13.2", - "@rollup/rollup-darwin-x64": "4.13.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.13.2", - "@rollup/rollup-linux-arm64-gnu": "4.13.2", - "@rollup/rollup-linux-arm64-musl": "4.13.2", - "@rollup/rollup-linux-powerpc64le-gnu": "4.13.2", - "@rollup/rollup-linux-riscv64-gnu": "4.13.2", - "@rollup/rollup-linux-s390x-gnu": "4.13.2", - "@rollup/rollup-linux-x64-gnu": "4.13.2", - "@rollup/rollup-linux-x64-musl": "4.13.2", - "@rollup/rollup-win32-arm64-msvc": "4.13.2", - "@rollup/rollup-win32-ia32-msvc": "4.13.2", - "@rollup/rollup-win32-x64-msvc": "4.13.2", - "fsevents": "~2.3.2" + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" } }, "node_modules/void-elements": { @@ -18454,39 +19007,28 @@ "vscode": "^1.52.0" } }, - "node_modules/vscode-languageclient/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/vscode-languageclient/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/vscode-languageclient/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/vscode-languageclient/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=10" + "node": "*" } }, - "node_modules/vscode-languageclient/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/vscode-languageserver": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-7.0.0.tgz", @@ -18510,9 +19052,9 @@ } }, "node_modules/vscode-languageserver-textdocument": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.11.tgz", - "integrity": "sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==", + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz", + "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==", "dev": true }, "node_modules/vscode-languageserver-types": { @@ -18542,9 +19084,9 @@ } }, "node_modules/watchpack": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", - "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", "peer": true, "dependencies": { "glob-to-regexp": "^0.4.1", @@ -18579,9 +19121,9 @@ "optional": true }, "node_modules/webpack": { - "version": "5.94.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz", - "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", + "version": "5.95.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.95.0.tgz", + "integrity": "sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==", "peer": true, "dependencies": { "@types/estree": "^1.0.5", @@ -18633,11 +19175,39 @@ "node": ">=10.13.0" } }, - "node_modules/webpack/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==", - "peer": true + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "peer": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "peer": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/webrtc-adapter": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/webrtc-adapter/-/webrtc-adapter-9.0.1.tgz", + "integrity": "sha512-1AQO+d4ElfVSXyzNVTOewgGT/tAomwwztX/6e3totvyyzXPvXIIuUUjAmyZGbKBKbZOXauuJooZm3g6IuFuiNQ==", + "dependencies": { + "sdp": "^3.2.0" + }, + "engines": { + "node": ">=6.0.0", + "npm": ">=3.10.0" + } }, "node_modules/whatwg-url": { "version": "5.0.0", @@ -18767,6 +19337,16 @@ "node": ">=0.8" } }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/workbox-background-sync": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.1.0.tgz", @@ -18787,9 +19367,9 @@ } }, "node_modules/workbox-build": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.1.0.tgz", - "integrity": "sha512-F6R94XAxjB2j4ETMkP1EXKfjECOtDmyvt0vz3BzgWJMI68TNSXIVNkgatwUKBlPGOfy9n2F/4voYRNAhEvPJNg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.1.1.tgz", + "integrity": "sha512-WdkVdC70VMpf5NBCtNbiwdSZeKVuhTEd5PV3mAwpTQCGAB5XbOny1P9egEgNdetv4srAMmMKjvBk4RD58LpooA==", "dev": true, "dependencies": { "@apideck/better-ajv-errors": "^0.3.1", @@ -18834,25 +19414,119 @@ "node": ">=16.0.0" } }, - "node_modules/workbox-build/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", + "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", "dev": true, "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "json-schema": "^0.4.0", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" }, "engines": { "node": ">=10" + }, + "peerDependencies": { + "ajv": ">=8" + } + }, + "node_modules/workbox-build/node_modules/@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + } + } + }, + "node_modules/workbox-build/node_modules/@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + }, + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" + } + }, + "node_modules/workbox-build/node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/workbox-build/node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "node_modules/workbox-build/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/workbox-build/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, + "node_modules/workbox-build/node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, "node_modules/workbox-build/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", @@ -18869,34 +19543,58 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/workbox-build/node_modules/source-map": { - "version": "0.8.0-beta.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", - "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "node_modules/workbox-build/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/workbox-build/node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", "dev": true, "dependencies": { - "whatwg-url": "^7.0.0" + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/workbox-build/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">= 8" + "node": "*" } }, - "node_modules/workbox-build/node_modules/tempy": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", - "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", + "node_modules/workbox-build/node_modules/rollup": { + "version": "2.79.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz", + "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==", "dev": true, - "dependencies": { - "is-stream": "^2.0.0", - "temp-dir": "^2.0.0", - "type-fest": "^0.16.0", - "unique-string": "^2.0.0" + "bin": { + "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=10" + "node": ">=10.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/workbox-build/node_modules/source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "dev": true, + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" } }, "node_modules/workbox-build/node_modules/tr46": { @@ -18908,18 +19606,6 @@ "punycode": "^2.1.0" } }, - "node_modules/workbox-build/node_modules/type-fest": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/workbox-build/node_modules/webidl-conversions": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", @@ -19065,7 +19751,6 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -19083,7 +19768,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -19097,10 +19781,9 @@ } }, "node_modules/wrap-ansi/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, + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "engines": { "node": ">=12" }, @@ -19112,7 +19795,6 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, "engines": { "node": ">=12" }, @@ -19120,11 +19802,15 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, "node_modules/wrap-ansi/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", @@ -19141,7 +19827,6 @@ "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" }, @@ -19155,8 +19840,7 @@ "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==", - "devOptional": true + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/xlsx": { "version": "0.18.5", @@ -19197,7 +19881,6 @@ "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" @@ -19217,9 +19900,9 @@ } }, "node_modules/zrender": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.5.0.tgz", - "integrity": "sha512-O3MilSi/9mwoovx77m6ROZM7sXShR/O/JIanvzTwjN3FORfLSr81PsUGd7jlaYOeds9d8tw82oP44+3YucVo+w==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.6.0.tgz", + "integrity": "sha512-uzgraf4njmmHAbEUxMJ8Oxg+P3fT04O+9p7gY+wJRVxo8Ge+KmYv0WJev945EH4wFuc4OY2NLXz46FZrWS9xJg==", "dependencies": { "tslib": "2.3.0" } @@ -19237,6 +19920,14 @@ "type": "github", "url": "https://github.com/sponsors/wooorm" } + }, + "node_modules/zxing-wasm": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/zxing-wasm/-/zxing-wasm-1.2.14.tgz", + "integrity": "sha512-UaYfzSmFPIEmYDt/KyPvs/H02t8jO470BBFHUIlvtmloAm8f2zdAmOL93iWYQ5QYfSnTyFPg0yzZwznlBjfg4A==", + "dependencies": { + "@types/emscripten": "^1.39.13" + } } } } diff --git a/package.json b/package.json index 62cdc8a0fb9..57d0c3d3405 100644 --- a/package.json +++ b/package.json @@ -26,12 +26,19 @@ ], "author": "Open Healthcare Network Contributors", "license": "MIT", + "workspaces": [ + "apps/*" + ], "scripts": { - "build:react": "cross-env NODE_ENV=production vite build", - "build": "npm run generate-build-meta && npm run supported-browsers && npm run build:react", "dev": "npm run supported-browsers && vite", + "local": "npm run supported-browsers && vite --mode docker", "preview": "cross-env NODE_ENV=production vite preview", - "generate-build-meta": "node ./scripts/generate-build-version.js", + "build:meta": "node ./scripts/generate-build-version.js", + "build:react": "cross-env NODE_ENV=production vite build", + "supported-browsers": "node ./scripts/generate-supported-browsers.mjs", + "build": "npm run install-all && npm run build:meta && npm run supported-browsers && npm run build:react", + "setup": "node scripts/setup-care-apps.js", + "install-all": "npm install && npm run setup && npm install", "test": "snyk test", "cypress:open": "cross-env NODE_ENV=development cypress open", "cypress:run": "cross-env NODE_ENV=development cypress run", @@ -41,24 +48,34 @@ "lint": "eslint ./src", "lint-fix": "eslint ./src --fix", "format": "prettier ./src --write", - "supported-browsers": "node ./scripts/generate-supported-browsers.mjs" + "sort-locales": "node ./scripts/sort-locales.js" }, "dependencies": { - "@fontsource/inter": "^5.0.21", + "@fontsource/figtree": "^5.1.0", "@googlemaps/react-wrapper": "^1.1.35", "@googlemaps/typescript-guards": "^2.0.3", "@headlessui/react": "^2.1.2", + "@hello-pangea/dnd": "^17.0.0", "@pnotify/core": "^5.2.0", "@pnotify/mobile": "^5.2.0", - "@sentry/browser": "^8.29.0", - "@yudiel/react-qr-scanner": "^2.0.0-beta.3", + "@radix-ui/react-dropdown-menu": "^2.1.2", + "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/react-slot": "^1.1.0", + "@radix-ui/react-toast": "^1.2.2", + "@radix-ui/react-tooltip": "^1.1.3", + "@sentry/browser": "^8.33.0", + "@yudiel/react-qr-scanner": "^2.0.8", "axios": "^1.7.7", "bowser": "^2.11.0", "browser-image-compression": "^2.0.2", + "browserslist": "^4.24.0", "browserslist-useragent-regexp": "^4.1.3", + "class-variance-authority": "^0.7.0", + "clsx": "^2.1.1", "cross-env": "^7.0.3", + "cypress": "^13.14.2", "dayjs": "^1.11.11", - "echarts": "^5.5.0", + "echarts": "^5.5.1", "echarts-for-react": "^3.0.2", "events": "^3.3.0", "hi-profiles": "^1.0.6", @@ -70,12 +87,9 @@ "raviger": "^4.1.2", "react": "18.3.1", "react-copy-to-clipboard": "^5.1.0", - "react-dnd": "^16.0.1", - "react-dnd-html5-backend": "^16.0.1", - "react-dnd-scrolling": "^1.3.8", "react-dom": "18.3.1", "react-google-recaptcha": "^3.1.0", - "react-i18next": "^13.0.1", + "react-i18next": "^15.0.2", "react-infinite-scroll-component": "^6.1.0", "react-markdown": "^8.0.7", "react-pdf": "^9.1.0", @@ -84,6 +98,8 @@ "redux": "^4.2.1", "redux-thunk": "^2.4.2", "rehype-raw": "^6.1.1", + "tailwind-merge": "^2.5.2", + "tailwindcss-animate": "^1.0.7", "use-keyboard-shortcut": "^1.1.6", "xlsx": "^0.18.5" }, @@ -91,29 +107,29 @@ "@tailwindcss/container-queries": "^0.1.1", "@tailwindcss/forms": "^0.5.7", "@tailwindcss/typography": "^0.5.13", - "@types/cypress": "^1.1.3", "@types/events": "^3.0.3", "@types/google.maps": "^3.55.8", "@types/lodash-es": "^4.17.12", + "@types/node": "^22.7.4", "@types/qrcode.react": "^1.0.5", - "@types/react": "18.3.2", + "@types/react": "^18.3.11", "@types/react-copy-to-clipboard": "^5.0.7", "@types/react-csv": "^1.1.10", "@types/react-dom": "^18.3.0", "@types/react-google-recaptcha": "^2.1.9", + "@types/uuid": "^10.0.0", "@typescript-eslint/eslint-plugin": "^7.18.0", "@vitejs/plugin-react-swc": "^3.6.0", "autoprefixer": "^10.4.19", - "cypress": "^13.14.2", "cypress-localstorage-commands": "^2.2.5", "cypress-split": "^1.23.2", + "dotenv": "^16.4.5", "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", - "gentype": "^4.5.0", "glob": "^11.0.0", "husky": "^8.0.3", "lint-staged": "^13.2.3", @@ -121,7 +137,6 @@ "postcss": "^8.4.38", "prettier": "^3.3.3", "prettier-plugin-tailwindcss": "^0.6.5", - "prop-types": "^15.8.1", "redux-devtools-extension": "^2.13.9", "snyk": "^1.1291.0", "tailwindcss": "^3.4.3", @@ -149,10 +164,13 @@ "prettier --write --ignore-unknown --plugin prettier-plugin-tailwindcss", "eslint --fix", "git update-index --again" + ], + "src/Locale/*.json": [ + "npm run sort-locales" ] }, "engines": { "node": ">=20.12.0" }, "packageManager": "npm@10.5.0" -} +} \ No newline at end of file diff --git a/public/favicon-light.ico b/public/favicon-light.ico deleted file mode 100644 index c4fddf60349..00000000000 Binary files a/public/favicon-light.ico and /dev/null differ diff --git a/public/favicon.ico b/public/favicon.ico index b1722d8d36b..51fe5064a91 100644 Binary files a/public/favicon.ico and b/public/favicon.ico differ diff --git a/public/images/care_logo.svg b/public/images/care_logo.svg new file mode 100644 index 00000000000..a9392fbae23 --- /dev/null +++ b/public/images/care_logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/images/care_logo_gray.svg b/public/images/care_logo_gray.svg new file mode 100644 index 00000000000..3a8606bef88 --- /dev/null +++ b/public/images/care_logo_gray.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/images/care_logo_mark.svg b/public/images/care_logo_mark.svg new file mode 100644 index 00000000000..e9f577e0f45 --- /dev/null +++ b/public/images/care_logo_mark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/images/ohc_logo_light.svg b/public/images/ohc_logo_light.svg new file mode 100644 index 00000000000..7cf971f49d3 --- /dev/null +++ b/public/images/ohc_logo_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/scripts/setup-care-apps.js b/scripts/setup-care-apps.js new file mode 100644 index 00000000000..4106775e63e --- /dev/null +++ b/scripts/setup-care-apps.js @@ -0,0 +1,113 @@ +// eslint-disable-next-line @typescript-eslint/no-var-requires +const { execSync } = require("child_process"); +// eslint-disable-next-line @typescript-eslint/no-var-requires +const fs = require("fs"); +// eslint-disable-next-line @typescript-eslint/no-var-requires +const path = require("path"); +// eslint-disable-next-line @typescript-eslint/no-var-requires +require("dotenv").config({ path: [".env.local", ".env"] }); + +console.log("Preinstall script running"); + +// Function to read apps.json or return an empty array if it doesn't exist +function readAppsConfig() { + const appsConfig = process.env.REACT_ENABLED_APPS + ? process.env.REACT_ENABLED_APPS.split(",").map((app) => ({ + branch: app.split("@")[1], + package: app.split("@")[0], + })) + : []; + console.log("Found apps: ", appsConfig); + return appsConfig; +} + +const appsConfig = readAppsConfig(); +const appsDir = path.join(__dirname, "..", "apps"); + +// Create apps directory if it doesn't exist +if (!fs.existsSync(appsDir)) { + fs.mkdirSync(appsDir); +} + +const installApp = (app) => { + const appDir = path.join(appsDir, app.package.split("/")[1]); + + console.log(`Cloning ${app.package}...`); + execSync( + `npx -y gitget ${app.package}${app.branch ? `#${app.branch}` : ""} apps/${app.package.split("/")[1]} `, + { + stdio: "inherit", + }, + ); + // Create a care-package.lock file + fs.writeFileSync( + path.join(appDir, "care-package.lock"), + JSON.stringify( + { + package: app.package, + branch: app.branch, + }, + null, + 2, + ), + ); +}; + +// Clone or pull care apps +appsConfig.forEach((app) => { + const appDir = path.join(appsDir, app.package.split("/")[1]); + if (fs.existsSync(appDir)) { + if (fs.existsSync(path.join(appDir, "care-package.lock"))) { + // verify if the branch and package match with the care-package.lock file + const lockFile = JSON.parse( + fs.readFileSync(path.join(appDir, "care-package.lock"), "utf8"), + ); + if (lockFile.package === app.package && lockFile.branch === app.branch) { + console.log(`Package already exists. Pulling latest changes...`); + execSync(`git -C "${appDir}" pull`, { stdio: "inherit" }); + return; + } else { + console.log(`Branch/package does not match. Recreating...`); + fs.rmSync(appDir, { recursive: true, force: true }); + } + } else { + console.log( + `Package already exists but care-package.lock file does not exist. Recreating...`, + ); + fs.rmSync(appDir, { recursive: true, force: true }); + } + } + + installApp(app); +}); + +console.log("All apps have been cloned or updated in apps directory."); + +const importApps = appsConfig.map((app) => ({ + ...app, + camelCaseName: app.package + .split("/")[1] + .replace(/[-_]/g, "") + .replace(/\b\w/g, (char, index) => + index === 0 ? char.toLowerCase() : char.toUpperCase(), + ), +})); + +// Generate pluginMap.ts +const pluginMapPath = path.join(__dirname, "..", "src", "pluginMap.ts"); +const pluginMapContent = `import { PluginManifest } from "./pluginTypes"; + +${importApps + .map( + (app) => + `import ${app.camelCaseName}Manifest from "@app-manifest/${app.package.split("/")[1]}";`, + ) + .join("\n")} + +export const pluginMap: PluginManifest[] = [ +${importApps.map((app) => ` ${app.camelCaseName}Manifest`).join(",\n")} +]; +`; + +fs.writeFileSync(pluginMapPath, pluginMapContent); +console.log("Generated pluginMap.ts"); diff --git a/scripts/sort-locales.js b/scripts/sort-locales.js new file mode 100644 index 00000000000..adff586a93b --- /dev/null +++ b/scripts/sort-locales.js @@ -0,0 +1,15 @@ +// eslint-disable-next-line @typescript-eslint/no-var-requires +const fs = require("fs"); + +const file = "src/Locale/en.json"; + +const data = JSON.parse(fs.readFileSync(file, "utf8")); + +const sortedData = Object.keys(data) + .sort() + .reduce((acc, key) => { + acc[key] = data[key]; + return acc; + }, {}); + +fs.writeFileSync(file, JSON.stringify(sortedData, null, 2) + "\n"); diff --git a/src/App.tsx b/src/App.tsx index 2e7f185f80b..0b2d20e805a 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,24 +1,30 @@ import { Suspense } from "react"; import Routers from "./Routers"; -import ThemedFavicon from "./CAREUI/misc/ThemedFavicon"; -import Intergrations from "./Integrations"; +import Integrations from "./Integrations"; import Loading from "./Components/Common/Loading"; import HistoryAPIProvider from "./Providers/HistoryAPIProvider"; import AuthUserProvider from "./Providers/AuthUserProvider"; +import PluginEngine from "./PluginEngine"; +import { FeatureFlagsProvider } from "./Utils/featureFlags"; +import { Toaster } from "./Components/ui/toaster"; const App = () => { return ( }> - - - }> - - + + + }> + + + + - {/* Integrations */} - - - + {/* Integrations */} + + + + + ); }; diff --git a/src/CAREUI/display/Count.tsx b/src/CAREUI/display/Count.tsx index 997b58794eb..6b28ca4f962 100644 --- a/src/CAREUI/display/Count.tsx +++ b/src/CAREUI/display/Count.tsx @@ -11,15 +11,13 @@ interface Props { export default function CountBlock(props: Props) { return ( -
-
-
+
+
+
-
+
{props.text}
{props.loading ? ( diff --git a/src/CAREUI/display/Timeline.tsx b/src/CAREUI/display/Timeline.tsx index ee21b337724..6701d9a7511 100644 --- a/src/CAREUI/display/Timeline.tsx +++ b/src/CAREUI/display/Timeline.tsx @@ -55,7 +55,7 @@ export const TimelineNode = (props: TimelineNodeProps) => { const { t } = useTranslation(); return ( -
  • +
    { {props.children}
    -
  • +
    ); }; diff --git a/src/CAREUI/icons/CareIcon.tsx b/src/CAREUI/icons/CareIcon.tsx index 3bb67629bc2..a45117cc675 100644 --- a/src/CAREUI/icons/CareIcon.tsx +++ b/src/CAREUI/icons/CareIcon.tsx @@ -1,13 +1,12 @@ import iconData from "./UniconPaths.json"; -import { transformIcons } from "./icon"; -import { useEffect } from "react"; +import "./icon.css"; export type IconName = keyof typeof iconData; export interface CareIconProps { icon: IconName; - className?: string | undefined; - onClick?: React.MouseEventHandler | undefined; + className?: string; + onClick?: React.MouseEventHandler; id?: string; } @@ -25,14 +24,32 @@ export default function CareIcon({ className, onClick, }: CareIconProps) { - const effectiveClassName = icon - ? `care-${icon} ${className ?? ""}` - : className; + // TODO: fill & strokeWidth are defined for only one icon + // Rethink Implementation + const [viewBox, path, fill, strokeWidth] = iconData[icon] as [ + number, + string, + boolean | undefined, + number | undefined, + ]; + + const svgClassName = `care-svg-icon__baseline ${className || ""}`.trim(); - useEffect(() => transformIcons(), [effectiveClassName]); return ( - - - + + + ); } diff --git a/src/CAREUI/icons/Index.tsx b/src/CAREUI/icons/Index.tsx new file mode 100644 index 00000000000..25b4beded84 --- /dev/null +++ b/src/CAREUI/icons/Index.tsx @@ -0,0 +1,57 @@ +/* eslint-disable i18next/no-literal-string */ +import React, { useState } from "react"; +import CareIcon, { IconName } from "./CareIcon"; +import iconPaths from "./UniconPaths.json"; +import { t } from "i18next"; +import PageTitle from "../../Components/Common/PageTitle"; +import { useToast } from "@/hooks/use-toast"; + +const IconIndex: React.FC = () => { + const { toast } = useToast(); + const [searchTerm, setSearchTerm] = useState(""); + + const filteredIcons = Object.keys(iconPaths).filter((iconName) => + iconName.toLowerCase().includes(searchTerm.toLowerCase()), + ); + + const copyToClipboard = (text: string) => { + navigator.clipboard.writeText(text); + + toast({ + description: "Icon copied to clipboard successfully", + variant: "success", + }); + }; + + return ( +
    + + setSearchTerm(e.target.value)} + /> +
    + {filteredIcons.map((iconName) => ( +
    + + {iconName} + +
    + ))} +
    +
    + ); +}; + +export default IconIndex; diff --git a/src/CAREUI/icons/UniconPaths.json b/src/CAREUI/icons/UniconPaths.json index c2ed7ecf467..64f97d72d65 100644 --- a/src/CAREUI/icons/UniconPaths.json +++ b/src/CAREUI/icons/UniconPaths.json @@ -247,6 +247,10 @@ 24, "M7,11H17a1,1,0,0,0,0-2H13V5.41l.79.8a1,1,0,0,0,1.42,0,1,1,0,0,0,0-1.42l-2.5-2.5a1,1,0,0,0-.33-.21,1,1,0,0,0-.76,0,1,1,0,0,0-.33.21l-2.5,2.5a1,1,0,0,0,1.42,1.42l.79-.8V9H7a1,1,0,0,0,0,2Zm10,2H7a1,1,0,0,0,0,2h4v3.59l-.79-.8a1,1,0,0,0-1.42,1.42l2.5,2.5a1,1,0,0,0,.33.21.94.94,0,0,0,.76,0,1,1,0,0,0,.33-.21l2.5-2.5a1,1,0,0,0-1.42-1.42l-.79.8V15h4a1,1,0,0,0,0-2Z" ], + "l-arrow-bar-right": [ + 24, + "M8.4 12c0 .4.3.7.7.7h8.3l-3.1 3.1c-.3.3-.3.7 0 1s.7.3 1 0l4.3-4.3c.3-.3.3-.7 0-1 0 0 0 0 0 0l-4.3-4.3c-.3-.3-.7-.3-1 0s-.3.7 0 1l3.1 3.1h-8.3c-.4 0-.7.3-.7.7M4.9 22c-.4 0-.7-.3-.7-.7V2.7c0-.4.3-.7.7-.7s.7.3.7.7v18.6c0 .4-.3.7-.7.7" + ], "l-arrow-circle-down": [ 24, "M11.29,15.71a1,1,0,0,0,.33.21,1,1,0,0,0,.76,0,1,1,0,0,0,.33-.21l3-3a1,1,0,0,0-1.42-1.42L13,12.59V9a1,1,0,0,0-2,0v3.59l-1.29-1.3a1,1,0,0,0-1.42,0,1,1,0,0,0,0,1.42ZM12,22A10,10,0,1,0,2,12,10,10,0,0,0,12,22ZM12,4a8,8,0,1,1-8,8A8,8,0,0,1,12,4Z" @@ -533,7 +537,7 @@ ], "l-bitcoin": [ 24, - "M11.136,12.11664l-.59577,2.41528c.73542.18469,3.00373.92127,3.33893-.44122C14.22961,12.66974,11.8714,12.30225,11.136,12.11664Zm.81262-3.29621-.5401,2.19056c.61243.15442,2.5003.78405,2.80621-.45526C14.53339,9.26294,12.5611,8.97479,11.94867,8.82043ZM12,2A10,10,0,1,0,22,12,10,10,0,0,0,12,2Zm4.358,8.57538a1.74286,1.74286,0,0,1-1.38525,1.611,1.93285,1.93285,0,0,1,.99682,2.66089c-.58551,1.69214-1.97662,1.835-3.82653,1.48089l-.449,1.81971-1.08484-.27344.44312-1.79529c-.28119-.07062-.56855-.14563-.86457-.22687L9.7431,17.65594l-1.08362-.27343.449-1.82312c-.25342-.06562-.5108-.13532-.77344-.20185l-1.41174-.35595.53857-1.25592s.79932.215.78852.19909a.39446.39446,0,0,0,.49719-.26062L9.965,8.74634a.583.583,0,0,0-.5055-.63812c.017-.01154-.788-.19812-.788-.19812l.28863-1.17188,1.4961.37781L10.455,7.1217c.22491.05652.45666.11029.69275.16468l.44464-1.80188,1.08423.27343L12.241,7.52448c.29107.06719.584.135.8692.2069l.43255-1.755,1.0849.27344-.44433,1.80249C15.553,8.52948,16.55475,9.24481,16.358,10.57538Z\"/>" + "M11.136,12.11664l-.59577,2.41528c.73542.18469,3.00373.92127,3.33893-.44122C14.22961,12.66974,11.8714,12.30225,11.136,12.11664Zm.81262-3.29621-.5401,2.19056c.61243.15442,2.5003.78405,2.80621-.45526C14.53339,9.26294,12.5611,8.97479,11.94867,8.82043ZM12,2A10,10,0,1,0,22,12,10,10,0,0,0,12,2Zm4.358,8.57538a1.74286,1.74286,0,0,1-1.38525,1.611,1.93285,1.93285,0,0,1,.99682,2.66089c-.58551,1.69214-1.97662,1.835-3.82653,1.48089l-.449,1.81971-1.08484-.27344.44312-1.79529c-.28119-.07062-.56855-.14563-.86457-.22687L9.7431,17.65594l-1.08362-.27343.449-1.82312c-.25342-.06562-.5108-.13532-.77344-.20185l-1.41174-.35595.53857-1.25592s.79932.215.78852.19909a.39446.39446,0,0,0,.49719-.26062L9.965,8.74634a.583.583,0,0,0-.5055-.63812c.017-.01154-.788-.19812-.788-.19812l.28863-1.17188,1.4961.37781L10.455,7.1217c.22491.05652.45666.11029.69275.16468l.44464-1.80188,1.08423.27343L12.241,7.52448c.29107.06719.584.135.8692.2069l.43255-1.755,1.0849.27344-.44433,1.80249C15.553,8.52948,16.55475,9.24481,16.358,10.57538Z" ], "l-black-berry": [ 24, @@ -2795,6 +2799,14 @@ 24, "M2.5,10.56l9,5.2a1,1,0,0,0,1,0l9-5.2a1,1,0,0,0,0-1.73l-9-5.2a1,1,0,0,0-1,0l-9,5.2a1,1,0,0,0,0,1.73ZM12,5.65l7,4-7,4.05L5,9.69Zm8.5,7.79L12,18.35,3.5,13.44a1,1,0,0,0-1.37.36,1,1,0,0,0,.37,1.37l9,5.2a1,1,0,0,0,1,0l9-5.2a1,1,0,0,0,.37-1.37A1,1,0,0,0,20.5,13.44Z" ], + "l-layout-sidebar": [ + 24, + "M0 4.5C0 2.8 1.3 1.5 3 1.5h18c1.7 0 3 1.3 3 3v15c0 1.7-1.3 3-3 3H3c-1.7 0-3-1.3-3-3V4.5ZM7.5 3v18h13.5c.8 0 1.5-.7 1.5-1.5V4.5c0-.8-.7-1.5-1.5-1.5H7.5ZM6 3h-3c-.8 0-1.5.7-1.5 1.5v15c0 .8.7 1.5 1.5 1.5h3V3Z" + ], + "l-layout-sidebar-alt": [ + 24, + "M21 1.5H3C1.3 1.5 0 2.8 0 4.5v15c0 1.7 1.3 3 3 3h18c1.7 0 3-1.3 3-3V4.5c0-1.7-1.3-3-3-3ZM22.5 19.5c0 .8-.7 1.5-1.5 1.5H3c-.8 0-1.5-.7-1.5-1.5V4.5c0-.8.7-1.5 1.5-1.5h18c.8 0 1.5.7 1.5 1.5v15ZM10.5 6v12c0 .8-.7 1.5-1.5 1.5h-3c-.8 0-1.5-.7-1.5-1.5V6c0-.8.7-1.5 1.5-1.5h3c.8 0 1.5.7 1.5 1.5Z" + ], "l-left-arrow-from-left": [ 24, "M17,11H5.41l2.3-2.29A1,1,0,1,0,6.29,7.29l-4,4a1,1,0,0,0-.21.33,1,1,0,0,0,0,.76,1,1,0,0,0,.21.33l4,4a1,1,0,0,0,1.42,0,1,1,0,0,0,0-1.42L5.41,13H17a1,1,0,0,0,0-2Zm4-7a1,1,0,0,0-1,1V19a1,1,0,0,0,2,0V5A1,1,0,0,0,21,4Z" diff --git a/src/CAREUI/icons/icon.js b/src/CAREUI/icons/icon.js deleted file mode 100644 index c917e664351..00000000000 --- a/src/CAREUI/icons/icon.js +++ /dev/null @@ -1,49 +0,0 @@ -import "./icon.css"; -import iconData from "./UniconPaths.json"; - -const xmlns = "http://www.w3.org/2000/svg"; - -const findIconName = (className) => { - const iconName = className.match(/care-([a-zA-Z0-9-]+)/); - return iconName ? iconName[1] : "default"; -}; - -const getIconData = (className) => { - const data = iconData[findIconName(className)]; - return typeof data === "undefined" ? iconData["default"] : data; -}; - -const createSvg = (className) => { - const icon = getIconData(className); - const el = document.createElementNS(xmlns, "svg"); - el.setAttribute( - "class", - className.replace("care", "care-svg-icon__baseline"), - ); - el.setAttribute("role", "img"); - el.setAttribute("xmlns", xmlns); - el.setAttribute("viewBox", `0 0 ${icon[0]} ${icon[0]}`); - - const path = document.createElementNS(xmlns, "path"); - if (icon[2] === false) { - path.setAttribute("stroke", "currentColor"); - path.setAttribute("stroke-width", `${icon[3]}`); - } - path.setAttribute("fill", icon[2] === false ? "none" : "currentColor"); - path.setAttribute("d", icon[1]); - el.appendChild(path); - return el; -}; - -export const transformIcons = () => { - const elements = Array.from(document.getElementsByClassName("care")); - elements.forEach((element) => { - if (element.tagName == "I") { - element.parentNode.replaceChild(createSvg(element.className), element); - } - }); -}; - -export const addListener = () => { - window.addEventListener("load", transformIcons); -}; diff --git a/src/CAREUI/interactive/LegendInput.tsx b/src/CAREUI/interactive/LegendInput.tsx index e164e4d1b4e..83486095f7a 100644 --- a/src/CAREUI/interactive/LegendInput.tsx +++ b/src/CAREUI/interactive/LegendInput.tsx @@ -2,6 +2,7 @@ import CareIcon from "../icons/CareIcon"; import { classNames } from "../../Utils/utils"; import { RefObject, useRef, useState, useEffect } from "react"; import { useTranslation } from "react-i18next"; + type InputProps = { id?: string; name: string; @@ -12,12 +13,12 @@ type InputProps = { required?: boolean; placeholder?: string; value?: string; - onChange?: (e: any) => void; - onFocus?: (e: any) => void; - onBlur?: (e: any) => void; - onKeyUp?: (e: any) => void; - onKeyDown?: (e: any) => void; - onKeyPress?: (e: any) => void; + onChange?: (e: React.ChangeEvent) => void; + onFocus?: (e: React.FocusEvent) => void; + onBlur?: (e: React.FocusEvent) => void; + onKeyUp?: (e: React.KeyboardEvent) => void; + onKeyDown?: (e: React.KeyboardEvent) => void; + onKeyPress?: (e: React.KeyboardEvent) => void; disabled?: boolean; error?: string; className?: string; diff --git a/src/CAREUI/misc/PaginatedList.tsx b/src/CAREUI/misc/PaginatedList.tsx index ec270bf8134..3b68b23bd30 100644 --- a/src/CAREUI/misc/PaginatedList.tsx +++ b/src/CAREUI/misc/PaginatedList.tsx @@ -33,6 +33,8 @@ function useContextualized() { interface Props extends QueryOptions> { route: QueryRoute>; perPage?: number; + initialPage?: number; + onPageChange?: (page: number) => void; queryCB?: ( query: ReturnType>>, ) => void; @@ -49,7 +51,13 @@ export default function PaginatedList({ queryCB, ...queryOptions }: Props) { - const [currentPage, setPage] = useState(1); + const [currentPage, _setPage] = useState(queryOptions.initialPage ?? 1); + + const setPage = (page: number) => { + _setPage(page); + queryOptions.onPageChange?.(page); + }; + const query = useQuery(route, { ...queryOptions, query: { diff --git a/src/CAREUI/misc/ThemedFavicon.tsx b/src/CAREUI/misc/ThemedFavicon.tsx deleted file mode 100644 index b908f566b89..00000000000 --- a/src/CAREUI/misc/ThemedFavicon.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import { useEffect } from "react"; - -export default function ThemedFavicon() { - useEffect(() => { - const darkThemeMq = window.matchMedia("(prefers-color-scheme: dark)"); - const favicon = document.querySelector( - "link[rel~='icon']", - ) as HTMLLinkElement; - - favicon.href = darkThemeMq.matches ? "/favicon-light.ico" : "/favicon.ico"; - }, []); - - return null; -} diff --git a/src/Common/constants.tsx b/src/Common/constants.tsx index 70b5bc78e23..d46473bfd2d 100644 --- a/src/Common/constants.tsx +++ b/src/Common/constants.tsx @@ -1156,68 +1156,6 @@ export const AssetImportSchema: SchemaType = { }, }; -export const ExternalResultImportSchema: SchemaType = { - District: { prop: "district", type: "any" }, - "SRF ID": { prop: "srf_id", type: "string" }, - Name: { prop: "name", type: "string" }, - Age: { prop: "age", type: "number" }, - "Age in": { prop: "age_in", type: "string" }, - Gender: { prop: "gender", type: "string" }, - "Mobile Number": { prop: "mobile_number", type: "any" }, - Address: { prop: "address", type: "string" }, - Ward: { prop: "ward", type: "number" }, - "Local Body": { prop: "local_body", type: "string" }, - "Local Body Type": { prop: "local_body_type", type: "string" }, - Source: { prop: "source", type: "string" }, - "Sample Collection Date": { - prop: "sample_collection_date", - type: "string", - parse: (date: string) => { - if (!date) return null; - if (isNaN(Date.parse(date))) { - const parsed = new Date(date); - if (String(parsed) === "Invalid Date") { - throw new Error("Invalid Date: " + date); - } - return dateQueryString(parsed); - } else { - const parsed = new Date(date); - if (String(parsed) === "Invalid Date") { - throw new Error("Invalid Date: " + date); - } - return dateQueryString(parsed); - } - }, - }, - "Result Date": { - prop: "result_date", - type: "string", - parse: (date: string) => { - if (!date) return null; - if (isNaN(Date.parse(date))) { - const parsed = new Date(date); - if (String(parsed) === "Invalid Date") { - throw new Error("Invalid Date: " + date); - } - return dateQueryString(parsed); - } else { - const parsed = new Date(date); - if (String(parsed) === "Invalid Date") { - throw new Error("Invalid Date: " + date); - } - return dateQueryString(parsed); - } - }, - }, - "Test Type": { prop: "test_type", type: "string" }, - "Lab Name": { prop: "lab_name", type: "string" }, - "Sample Type": { prop: "sample_type", type: "string" }, - "Patient Status": { prop: "patient_status", type: "string" }, - "Is Repeat": { prop: "is_repeat", type: "string" }, - "Patient Category": { prop: "patient_category", type: "string" }, - Result: { prop: "result", type: "string" }, -}; - // ABDM export const ABDM_CONSENT_PURPOSE = [ { value: "CAREMGT", label: "Care Management" }, diff --git a/src/Common/hooks/useActiveLink.ts b/src/Common/hooks/useActiveLink.ts index 0d02d33d0b1..b52b15600dd 100644 --- a/src/Common/hooks/useActiveLink.ts +++ b/src/Common/hooks/useActiveLink.ts @@ -15,7 +15,6 @@ const activeLinkPriority = { "/sample": "/sample", "/shifting": "/shifting", "/resource": "/resource", - "/external_results": "/external_results", "/users": "/users", "/notice_board": "/notice_board", "/facility": "/facility", diff --git a/src/Common/hooks/useBreakpoints.ts b/src/Common/hooks/useBreakpoints.ts index 065177a00ed..19b5f89ba94 100644 --- a/src/Common/hooks/useBreakpoints.ts +++ b/src/Common/hooks/useBreakpoints.ts @@ -1,10 +1,9 @@ import useWindowDimensions from "./useWindowDimensions"; -type Breakpoints = "vs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl"; +type Breakpoints = "sm" | "md" | "lg" | "xl" | "2xl" | "3xl"; // Ensure that the breakpoint widths are sorted in ascending order. const BREAKPOINT_WIDTH: Record = { - vs: 348, sm: 640, md: 768, lg: 1024, diff --git a/src/Common/hooks/useCareApps.ts b/src/Common/hooks/useCareApps.ts new file mode 100644 index 00000000000..77b5489052e --- /dev/null +++ b/src/Common/hooks/useCareApps.ts @@ -0,0 +1,35 @@ +import { createContext, useContext } from "react"; +import { INavItem } from "@/Components/Common/Sidebar/Sidebar"; +import { PluginManifest } from "@/pluginTypes"; + +export const CareAppsContext = createContext([]); + +export const useCareApps = () => { + const ctx = useContext(CareAppsContext); + if (!ctx) { + throw new Error( + "'useCareApps' must be used within 'CareAppsProvider' only", + ); + } + return ctx; +}; + +export const useCareAppNavItems = () => { + const careApps = useCareApps(); + const navItems = careApps.reduce((acc, plugin) => { + return [...acc, ...(plugin.navItems || [])]; + }, []); + return navItems; +}; + +// If required; Reduce plugin.routes to a single pluginRoutes object of type Record JSX.Element> +export function usePluginRoutes() { + const careApps = useCareApps(); + const routes = careApps.reduce((acc, plugin) => { + return { ...acc, ...plugin.routes }; + }, {}); + if (!routes) { + throw new Error("'usePluginRoutes' must be used within 'AppRouter' only"); + } + return routes; +} diff --git a/src/Common/hooks/useExport.tsx b/src/Common/hooks/useExport.tsx index e7a76036b07..1e7540e6525 100644 --- a/src/Common/hooks/useExport.tsx +++ b/src/Common/hooks/useExport.tsx @@ -1,9 +1,7 @@ import dayjs from "../../Utils/dayjs"; import { useState } from "react"; -import { useDispatch } from "react-redux"; export default function useExport() { - const dispatch: any = useDispatch(); const [isExporting, setIsExporting] = useState(false); const getTimestamp = () => { @@ -16,17 +14,17 @@ export default function useExport() { const exportCSV = async ( filenamePrefix: string, - action: any, + getData: () => Promise, parse = (data: string) => data, ) => { setIsExporting(true); const filename = `${filenamePrefix}_${getTimestamp()}.csv`; - const res = await dispatch(action); - if (res.status === 200) { + const data = await getData(); + if (data) { const a = document.createElement("a"); - const blob = new Blob([parse(res.data)], { + const blob = new Blob([parse(data)], { type: "text/csv", }); a.href = URL.createObjectURL(blob); @@ -39,15 +37,15 @@ export default function useExport() { const exportJSON = async ( filenamePrefix: string, - action: any, + getData: () => Promise<{ results: object[] } | null>, parse = (data: string) => data, ) => { setIsExporting(true); - const res = await dispatch(action); - if (res.status === 200) { + const data = await getData(); + if (data?.results.length) { const a = document.createElement("a"); - const blob = new Blob([parse(JSON.stringify(res.data.results))], { + const blob = new Blob([parse(JSON.stringify(data.results))], { type: "application/json", }); a.href = URL.createObjectURL(blob); @@ -59,7 +57,7 @@ export default function useExport() { }; const exportFile = ( - action: any, + action: () => Promise<{ results: object[] } | string | null>, filePrefix = "export", type = "csv", parse = (data: string) => data, @@ -68,13 +66,17 @@ export default function useExport() { switch (type) { case "csv": - exportCSV(filePrefix, action(), parse); + exportCSV(filePrefix, action as Parameters[1], parse); break; case "json": - exportJSON(filePrefix, action(), parse); + exportJSON( + filePrefix, + action as Parameters[1], + parse, + ); break; default: - exportCSV(filePrefix, action(), parse); + exportCSV(filePrefix, action as Parameters[1], parse); } }; diff --git a/src/Common/hooks/useSlug.ts b/src/Common/hooks/useSlug.ts index 78d2a567e37..a92407e73e5 100644 --- a/src/Common/hooks/useSlug.ts +++ b/src/Common/hooks/useSlug.ts @@ -31,6 +31,9 @@ export const useSlugs = (...prefix: string[]) => { const findSlug = (segments: string[], prefix: string, fallback?: string) => { const index = segments.findIndex((segment) => segment === prefix); if (index === -1) { + if (fallback) { + return fallback; + } throw new Error( `Prefix "${prefix}" not found in path "${segments.join("/")}"`, ); diff --git a/src/Components/ABDM/ConfigureHealthFacility.tsx b/src/Components/ABDM/ConfigureHealthFacility.tsx index 8259cd18a33..f78a65f2cd1 100644 --- a/src/Components/ABDM/ConfigureHealthFacility.tsx +++ b/src/Components/ABDM/ConfigureHealthFacility.tsx @@ -1,4 +1,4 @@ -import { lazy, useReducer, useState } from "react"; +import { useReducer, useState } from "react"; import * as Notification from "../../Utils/Notifications.js"; import { navigate } from "raviger"; import { Submit } from "../Common/components/ButtonV2"; @@ -8,8 +8,7 @@ import useQuery from "../../Utils/request/useQuery"; import routes from "../../Redux/api"; import request from "../../Utils/request/request"; import { FieldChangeEvent } from "../Form/FormFields/Utils.js"; -const Loading = lazy(() => import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; const initForm = { health_facility: null, hf_id: "", diff --git a/src/Components/ABDM/FetchRecordsModal.tsx b/src/Components/ABDM/FetchRecordsModal.tsx index cc7c72474d1..721927c47a6 100644 --- a/src/Components/ABDM/FetchRecordsModal.tsx +++ b/src/Components/ABDM/FetchRecordsModal.tsx @@ -227,8 +227,8 @@ export default function FetchRecordsModal({ abha, show, onClose }: IProps) { }); navigate( - `/facility/${abha?.patient_object?.facility}/abdm` ?? - `/facility/${abha?.patient_object?.facility}/patient/${abha?.patient_object?.id}/consultation/${abha?.patient_object?.last_consultation?.id}/abdm`, + `/facility/${abha?.patient_object?.facility}/abdm`, + // ?? `/facility/${abha?.patient_object?.facility}/patient/${abha?.patient_object?.id}/consultation/${abha?.patient_object?.last_consultation?.id}/abdm`, ); } else { Notification.Error({ diff --git a/src/Components/ABDM/LinkABHANumberModal.tsx b/src/Components/ABDM/LinkABHANumberModal.tsx index 8d6365387cd..c2855ae7569 100644 --- a/src/Components/ABDM/LinkABHANumberModal.tsx +++ b/src/Components/ABDM/LinkABHANumberModal.tsx @@ -225,7 +225,6 @@ const ScanABHAQRSection = ({ Notify.Error({ msg: "Linking Failed" }); } } catch (e) { - console.log(e); Notify.Error({ msg: "Invalid ABHA QR" }); } finally { setIsLoading(false); diff --git a/src/Components/Assets/AssetImportModal.tsx b/src/Components/Assets/AssetImportModal.tsx index 6ff51e293af..9be1c393960 100644 --- a/src/Components/Assets/AssetImportModal.tsx +++ b/src/Components/Assets/AssetImportModal.tsx @@ -1,4 +1,4 @@ -import { useState, lazy } from "react"; +import { lazy, useState } from "react"; import { sleep } from "../../Utils/utils"; import { FacilityModel } from "../Facility/models"; import { AssetData } from "./AssetTypes"; diff --git a/src/Components/Assets/AssetManage.tsx b/src/Components/Assets/AssetManage.tsx index 4c17721e1f9..69c8bc92f97 100644 --- a/src/Components/Assets/AssetManage.tsx +++ b/src/Components/Assets/AssetManage.tsx @@ -1,4 +1,4 @@ -import { useState, useEffect, ReactElement, lazy } from "react"; +import { useState, useEffect, ReactElement } from "react"; import { AssetClass, assetClassProps, @@ -18,7 +18,7 @@ import { UserRole, USER_TYPES } from "../../Common/constants"; import ConfirmDialog from "../Common/ConfirmDialog"; import RecordMeta from "../../CAREUI/display/RecordMeta"; import { useTranslation } from "react-i18next"; -const Loading = lazy(() => import("../Common/Loading")); +import Loading from "@/Components/Common/Loading"; import * as Notification from "../../Utils/Notifications.js"; import { NonReadOnlyUsers } from "../../Utils/AuthorizeFor"; import Uptime from "../Common/Uptime"; diff --git a/src/Components/Assets/AssetType/ONVIFCamera.tsx b/src/Components/Assets/AssetType/ONVIFCamera.tsx index e49fcad549d..f79894d089f 100644 --- a/src/Components/Assets/AssetType/ONVIFCamera.tsx +++ b/src/Components/Assets/AssetType/ONVIFCamera.tsx @@ -16,7 +16,9 @@ import routes from "../../../Redux/api"; import useQuery from "../../../Utils/request/useQuery"; import CareIcon from "../../../CAREUI/icons/CareIcon"; -import useOperateCamera from "../../CameraFeed/useOperateCamera"; +import useOperateCamera, { + PTZPayload, +} from "../../CameraFeed/useOperateCamera"; interface Props { assetId: string; @@ -95,18 +97,20 @@ const ONVIFCamera = ({ assetId, facilityId, asset, onUpdated }: Props) => { const addPreset = async (e: SyntheticEvent) => { e.preventDefault(); - const data = { + const meta = { bed_id: bed.id, preset_name: newPreset, }; try { setLoadingAddPreset(true); - const { data: presetData } = await operate({ type: "get_status" }); + const { data } = await operate({ type: "get_status" }); + const { position } = (data as { result: { position: PTZPayload } }) + .result; const { res } = await request(routes.createAssetBed, { body: { - meta: { ...data, ...presetData }, + meta: { ...meta, position }, asset: assetId, bed: bed?.id as string, }, diff --git a/src/Components/Assets/AssetsList.tsx b/src/Components/Assets/AssetsList.tsx index fa609e0e3b8..77961d15b0d 100644 --- a/src/Components/Assets/AssetsList.tsx +++ b/src/Components/Assets/AssetsList.tsx @@ -1,8 +1,7 @@ -import { Scanner } from "@yudiel/react-qr-scanner"; +import { IDetectedBarcode, Scanner } from "@yudiel/react-qr-scanner"; import * as Notification from "../../Utils/Notifications.js"; -import { listAssets } from "../../Redux/actions"; import { assetClassProps, AssetData } from "./AssetTypes"; -import { useState, useEffect, lazy } from "react"; +import { useState, useEffect } from "react"; import { Link, navigate } from "raviger"; import AssetFilter from "./AssetFilter"; import { parseQueryParams } from "../../Utils/primitives"; @@ -25,8 +24,7 @@ import request from "../../Utils/request/request"; import routes from "../../Redux/api"; import useQuery from "../../Utils/request/useQuery"; -const Loading = lazy(() => import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; const AssetsList = () => { const { t } = useTranslation(); const { @@ -161,7 +159,6 @@ const AssetsList = () => { }); } } catch (err) { - console.log(err); Notification.Error({ msg: t("invalid_asset_id_msg"), }); @@ -182,24 +179,29 @@ const AssetsList = () => { className="btn btn-default mb-2" > - Close Scanner + {t("close_scanner")} { - if (text) { - await accessAssetIdFromQR(text); + onScan={(detectedCodes: IDetectedBarcode[]) => { + if (detectedCodes.length > 0) { + const text = detectedCodes[0].rawValue; + if (text) { + accessAssetIdFromQR(text); + } } }} - onError={(e) => { + onError={(e: unknown) => { + const errorMessage = + e instanceof Error ? e.message : "Unknown error"; Notification.Error({ - msg: e.message, + msg: errorMessage, }); }} - options={{ - delayBetweenScanAttempts: 300, - }} + scanDelay={3000} /> -

    Scan Asset QR!

    +

    + {t("scan_asset_qr")} +

    ); @@ -317,13 +319,12 @@ const AssetsList = () => { }, { label: "Export Assets (JSON)", - action: () => - authorizedForImportExport && - listAssets({ - ...qParams, - json: true, - limit: totalCount, - }), + action: async () => { + const { data } = await request(routes.listAssets, { + query: { ...qParams, json: true, limit: totalCount }, + }); + return data ?? null; + }, type: "json", filePrefix: `assets_${facility?.name ?? "all"}`, options: { @@ -334,13 +335,12 @@ const AssetsList = () => { }, { label: "Export Assets (CSV)", - action: () => - authorizedForImportExport && - listAssets({ - ...qParams, - csv: true, - limit: totalCount, - }), + action: async () => { + const { data } = await request(routes.listAssets, { + query: { ...qParams, csv: true, limit: totalCount }, + }); + return data ?? null; + }, type: "csv", filePrefix: `assets_${facility?.name ?? "all"}`, options: { diff --git a/src/Components/Auth/Login.tsx b/src/Components/Auth/Login.tsx index fa8325075dc..0338a1714e1 100644 --- a/src/Components/Auth/Login.tsx +++ b/src/Components/Auth/Login.tsx @@ -180,7 +180,7 @@ export const Login = (props: { forgot?: boolean }) => { rel="noopener noreferrer" > Open Healthcare Network logo @@ -223,7 +223,7 @@ export const Login = (props: { forgot?: boolean }) => {
    Open Healthcare Network logo diff --git a/src/Components/CameraFeed/CameraFeed.tsx b/src/Components/CameraFeed/CameraFeed.tsx index a52214f5946..e49a63f7028 100644 --- a/src/Components/CameraFeed/CameraFeed.tsx +++ b/src/Components/CameraFeed/CameraFeed.tsx @@ -12,6 +12,7 @@ import useFullscreen from "../../Common/hooks/useFullscreen"; import useBreakpoints from "../../Common/hooks/useBreakpoints"; import { GetPresetsResponse } from "./routes"; import VideoPlayer from "./videoPlayer"; +import MonitorAssetPopover from "../Common/MonitorAssetPopover"; interface Props { children?: React.ReactNode; @@ -185,6 +186,10 @@ export default function CameraFeed(props: Props) { {props.asset.name} + {!isIOS && (
    setFullscreen(false)} > -
    +
    {data.results.map((asset) => (
    diff --git a/src/Components/Common/Avatar.tsx b/src/Components/Common/Avatar.tsx new file mode 100644 index 00000000000..e4d42dd72ae --- /dev/null +++ b/src/Components/Common/Avatar.tsx @@ -0,0 +1,99 @@ +import { cn } from "@/lib/utils"; +import React, { useEffect, useRef, useState } from "react"; + +const colors: string[] = [ + "#E6F3FF", // Light Blue + "#FFF0E6", // Light Peach + "#E6FFE6", // Light Green + "#FFE6E6", // Light Pink + "#F0E6FF", // Light Purple + "#FFFFE6", // Light Yellow + "#E6FFFF", // Light Cyan + "#FFE6F3", // Light Rose + "#F3FFE6", // Light Lime + "#E6E6FF", // Light Lavender + "#FFE6FF", // Light Magenta + "#E6FFF0", // Light Mint +]; + +const stringToInt = (name: string): number => { + const aux = (sum: number, remains: string): number => { + if (remains === "") return sum; + const firstCharacter = remains.slice(0, 1); + const newRemains = remains.slice(1); + return aux(sum + firstCharacter.charCodeAt(0), newRemains); + }; + + return Math.floor(aux(0, name)); +}; + +const toColor = (name: string): [string, string] => { + const index = stringToInt(name) % colors.length; + const backgroundColor = colors[index]; + return [backgroundColor, "#333333"]; // Using dark gray for text +}; + +const initials = (name: string): string => { + return name + .split(" ") + .slice(0, 2) + .map((word) => word.slice(0, 1)) + .join("") + .toUpperCase(); // Ensure initials are uppercase +}; + +interface AvatarProps { + colors?: [string, string]; + name: string; + imageUrl?: string; + className?: string; +} + +const Avatar: React.FC = ({ + colors: propColors, + name, + imageUrl, + className, +}) => { + const [bgColor] = propColors || toColor(name); + const [width, setWidth] = useState(0); + const avatarRef = useRef(null); + + useEffect(() => { + const updateWidth = () => { + const avatarRect = avatarRef.current?.getBoundingClientRect(); + const width = avatarRect?.width || 0; + setWidth(width); + }; + updateWidth(); + document.addEventListener("resize", updateWidth); + return () => document.removeEventListener("resize", updateWidth); + }, []); + + return ( +
    + {imageUrl ? ( + {name} + ) : ( +
    {initials(name)}
    + )} +
    + ); +}; + +export { Avatar }; diff --git a/src/Components/Common/BloodPressureFormField.tsx b/src/Components/Common/BloodPressureFormField.tsx index 205bc9a4905..beddd34cf38 100644 --- a/src/Components/Common/BloodPressureFormField.tsx +++ b/src/Components/Common/BloodPressureFormField.tsx @@ -1,13 +1,13 @@ import { useTranslation } from "react-i18next"; import { FieldValidator } from "../Form/FieldValidators"; import FormField from "../Form/FormFields/FormField"; -import RangeAutocompleteFormField from "../Form/FormFields/RangeAutocompleteFormField"; import { FieldChangeEvent, FormFieldBaseProps, useFormFieldPropsResolver, } from "../Form/FormFields/Utils"; import { BloodPressure } from "../Patient/models"; +import TextFormField from "../Form/FormFields/TextFormField"; type Props = FormFieldBaseProps; @@ -16,9 +16,13 @@ export default function BloodPressureFormField(props: Props) { const field = useFormFieldPropsResolver(props); const map = meanArterialPressure(props.value)?.toFixed(); - const handleChange = (event: FieldChangeEvent) => { - const bp = field.value ?? {}; - bp[event.name as keyof BloodPressure] = event.value; + const handleChange = (event: FieldChangeEvent) => { + const value = event.value ? parseInt(event.value, 10) : ""; + const bp = { + systolic: field.value?.systolic, + diastolic: field.value?.diastolic, + }; + bp[event.name as keyof BloodPressure] = value || undefined; field.handleChange(Object.values(bp).filter(Boolean).length ? bp : null); }; @@ -29,63 +33,35 @@ export default function BloodPressureFormField(props: Props) { labelSuffix: map && MAP: {map}, }} > -
    - + - / - / +
    @@ -99,14 +75,20 @@ export const meanArterialPressure = (bp?: BloodPressure | null) => { return (2 * bp.diastolic + bp.systolic) / 3; }; -export const BloodPressureValidator: FieldValidator = (bp) => { +export const BloodPressureValidator: FieldValidator = ( + bp, + t, +) => { if (Object.values(bp).every((v) => v == null)) { return; } - if (bp.diastolic == null) { - return "Diastolic is missing. Either specify both or clear both."; + if (bp.systolic == null || bp.diastolic == null) { + return t("blood_pressure_error.missing"); + } + if (bp.systolic > 250 || bp.diastolic > 250) { + return t("blood_pressure_error.exceed"); } - if (bp.systolic == null) { - return "Systolic is missing. Either specify both or clear both."; + if (bp.systolic < bp.diastolic) { + return t("blood_pressure_error.systolic_less_than_diastolic"); } }; diff --git a/src/Components/Common/Breadcrumbs.tsx b/src/Components/Common/Breadcrumbs.tsx index bb5419bbe10..be35cf6862d 100644 --- a/src/Components/Common/Breadcrumbs.tsx +++ b/src/Components/Common/Breadcrumbs.tsx @@ -1,7 +1,9 @@ import { usePath, Link } from "raviger"; import { useState } from "react"; -import CareIcon from "../../CAREUI/icons/CareIcon"; import { classNames } from "../../Utils/utils"; +import { Button } from "@/Components/ui/button"; +import CareIcon from "../../CAREUI/icons/CareIcon"; +import useAppHistory from "../../Common/hooks/useAppHistory"; const MENU_TAGS: { [key: string]: string } = { facility: "Facilities", @@ -10,142 +12,136 @@ const MENU_TAGS: { [key: string]: string } = { sample: "Sample Tests", shifting: "Shiftings", resource: "Resources", - external_results: "External Results", users: "Users", notice_board: "Notice Board", }; -const capitalize = (string: string) => { - return string +const capitalize = (string: string) => + string .replace(/[_-]/g, " ") .split(" ") - .reduce( - (acc, word) => acc + (word[0]?.toUpperCase() || "") + word.slice(1) + " ", - "", - ) - .trim(); -}; + .map((word) => word.charAt(0).toUpperCase() + word.slice(1)) + .join(" "); -export default function Breadcrumbs(props: any) { - const { replacements } = props; +interface BreadcrumbsProps { + replacements?: { + [key: string]: { name?: string; uri?: string; style?: string }; + }; + className?: string; + hideBack?: boolean; + backUrl?: string; + onBackClick?: () => boolean | void; +} + +export default function Breadcrumbs({ + replacements = {}, + className = "", + hideBack = false, + backUrl, + onBackClick, +}: BreadcrumbsProps) { + const { goBack } = useAppHistory(); const path = usePath(); + const [showFullPath, setShowFullPath] = useState(false); + const crumbs = path ?.slice(1) .split("/") - .map((field, i) => { - return { - name: - replacements[field]?.name || MENU_TAGS[field] || capitalize(field), - uri: - replacements[field]?.uri || - path - .split("/") - .slice(0, i + 2) - .join("/"), - style: replacements[field]?.style || "", - }; - }); + .map((field, i) => ({ + name: replacements[field]?.name || MENU_TAGS[field] || capitalize(field), + uri: + replacements[field]?.uri || + path + .split("/") + .slice(0, i + 2) + .join("/"), + style: replacements[field]?.style || "", + })); - const [showFullPath, setShowFullPath] = useState(false); + const renderCrumb = (crumb: any, index: number) => { + const isLastItem = index === crumbs!.length - 1; + return ( +
  • +
    + + {isLastItem ? ( + {crumb.name} + ) : ( + + )} +
    +
  • + ); + }; return ( -
    -
    + ••• + +
    + + )} + {showFullPath && crumbs.slice(0, -1).map(renderCrumb)} + + )} + {crumbs?.length && + renderCrumb(crumbs[crumbs.length - 1], crumbs.length - 1)} + + ); } diff --git a/src/Components/Common/ErrorBoundary.tsx b/src/Components/Common/ErrorBoundary.tsx new file mode 100644 index 00000000000..47172a240ef --- /dev/null +++ b/src/Components/Common/ErrorBoundary.tsx @@ -0,0 +1,36 @@ +import React, { Component, ErrorInfo, ReactNode } from "react"; + +interface Props { + children: ReactNode; + fallback?: ReactNode; +} + +interface State { + hasError: boolean; +} + +class ErrorBoundary extends Component { + public state: State = { + hasError: false, + }; + + public static getDerivedStateFromError(_: Error): State { + // Update state so the next render will show the fallback UI. + return { hasError: true }; + } + + public componentDidCatch(error: Error, errorInfo: ErrorInfo) { + console.error("Uncaught error:", error, errorInfo); + } + + public render() { + if (this.state.hasError) { + // You can render any custom fallback UI + return this.props.fallback ||

    Sorry.. there was an error

    ; + } + + return this.props.children; + } +} + +export default ErrorBoundary; diff --git a/src/Components/Common/ExcelFIleDragAndDrop.tsx b/src/Components/Common/ExcelFIleDragAndDrop.tsx index 5a6719f03df..d43676839f4 100644 --- a/src/Components/Common/ExcelFIleDragAndDrop.tsx +++ b/src/Components/Common/ExcelFIleDragAndDrop.tsx @@ -1,4 +1,4 @@ -import _ from "lodash-es"; +import * as _ from "lodash-es"; import { useEffect, useRef, useState } from "react"; import * as Notification from "../../Utils/Notifications.js"; import { useTranslation } from "react-i18next"; @@ -63,7 +63,7 @@ export default function ExcelFileDragAndDrop({ const data = XLSX.utils.sheet_to_json(worksheet, { defval: "" }); //converts the date to string data.forEach((row: any) => { - _.forIn(row, (value: any, key) => { + _.forIn(row, (value: any, key: string) => { if (value instanceof Date) { row[key] = value.toISOString().split("T")[0]; } diff --git a/src/Components/Common/Export.tsx b/src/Components/Common/Export.tsx index 72d5f447e57..fb1aa812633 100644 --- a/src/Components/Common/Export.tsx +++ b/src/Components/Common/Export.tsx @@ -6,6 +6,8 @@ import DropdownMenu, { import ButtonV2 from "../../Components/Common/components/ButtonV2"; import CareIcon from "../../CAREUI/icons/CareIcon"; import useExport from "../../Common/hooks/useExport"; +import { Route } from "../../Utils/request/types"; +import request from "../../Utils/request/request"; interface ExportItem { options?: DropdownItemProps; @@ -13,7 +15,8 @@ interface ExportItem { filePrefix?: string; label: string; parse?: (data: string) => string; - action?: any; + action?: Parameters["exportFile"]>[0]; + route?: Route; } interface ExportMenuProps { @@ -27,7 +30,8 @@ interface ExportButtonProps { tooltip?: string | undefined; tooltipClassName?: string; type?: "csv" | "json"; - action?: any; + action?: Parameters["exportFile"]>[0]; + route?: Route; parse?: (data: string) => string; filenamePrefix: string; } @@ -45,9 +49,18 @@ export const ExportMenu = ({ return ( - exportFile(item.action, item.filePrefix, item.type, item.parse) - } + onClick={() => { + let action = item.action; + if (item.route) { + action = async () => { + const { data } = await request(item.route!); + return data ?? null; + }; + } + if (action) { + exportFile(action, item.filePrefix, item.type, item.parse); + } + }} border ghost className="py-2.5" @@ -69,9 +82,18 @@ export const ExportMenu = ({ {exportItems.map((item) => ( - exportFile(item.action, item.filePrefix, item.type, item.parse) - } + onClick={() => { + let action = item.action; + if (item.route) { + action = async () => { + const { data } = await request(item.route!); + return data ?? null; + }; + } + if (action) { + exportFile(action, item.filePrefix, item.type, item.parse); + } + }} {...item.options} > {item.label} @@ -94,9 +116,18 @@ export const ExportButton = ({ <> - exportFile(props.action, props.filenamePrefix, type, parse) - } + onClick={() => { + let action = props.action; + if (props.route) { + action = async () => { + const { data } = await request(props.route!); + return data ?? null; + }; + } + if (action) { + exportFile(action, props.filenamePrefix, type, parse); + } + }} className="tooltip mx-2 p-4 text-lg text-secondary-800 disabled:bg-transparent disabled:text-secondary-500" variant="secondary" ghost diff --git a/src/Components/Common/GLocationPicker.tsx b/src/Components/Common/GLocationPicker.tsx index 0b03d2775ce..1c9c8f963b6 100644 --- a/src/Components/Common/GLocationPicker.tsx +++ b/src/Components/Common/GLocationPicker.tsx @@ -83,7 +83,7 @@ const GLocationPicker = ({ }; return ( -
    +
    { const { i18n } = useTranslation(); @@ -19,6 +20,10 @@ export const LanguageSelector = (props: any) => { } }; + const availableLocales = Object.keys(LANGUAGES).filter((l) => + careConfig.availableLocales?.includes(l), + ); + return (
    diff --git a/src/Components/Common/LanguageSelectorLogin.tsx b/src/Components/Common/LanguageSelectorLogin.tsx index 1fc4cf4ac77..905b97a734c 100644 --- a/src/Components/Common/LanguageSelectorLogin.tsx +++ b/src/Components/Common/LanguageSelectorLogin.tsx @@ -1,7 +1,8 @@ import { useEffect } from "react"; import { useTranslation } from "react-i18next"; -import { LANGUAGE_NAMES } from "../../Locale/config"; import { classNames } from "../../Utils/utils"; +import careConfig from "@careConfig"; +import { LANGUAGES } from "../../i18n"; export const LanguageSelectorLogin = () => { const { i18n, t } = useTranslation(); @@ -17,12 +18,16 @@ export const LanguageSelectorLogin = () => { } }; + const availableLocales = Object.keys(LANGUAGES).filter((l) => + careConfig.availableLocales?.includes(l), + ); + return (
    {t("available_in")}
    -
    - {Object.keys(LANGUAGE_NAMES).map((e: string) => ( +
    + {availableLocales.map((e: string) => ( ))}
    diff --git a/src/Components/Common/Loading.tsx b/src/Components/Common/Loading.tsx index ae9fdfd6df5..212a31e17e2 100644 --- a/src/Components/Common/Loading.tsx +++ b/src/Components/Common/Loading.tsx @@ -1,4 +1,4 @@ -const img = "https://cdn.ohc.network/light-logo.svg"; +const img = "/images/care_logo_gray.svg"; const Loading = () => { return ( diff --git a/src/Components/VitalsMonitor/VitalsMonitorAssetPopover.tsx b/src/Components/Common/MonitorAssetPopover.tsx similarity index 82% rename from src/Components/VitalsMonitor/VitalsMonitorAssetPopover.tsx rename to src/Components/Common/MonitorAssetPopover.tsx index 7ee5bf6c898..5293c0a6cd4 100644 --- a/src/Components/VitalsMonitor/VitalsMonitorAssetPopover.tsx +++ b/src/Components/Common/MonitorAssetPopover.tsx @@ -10,13 +10,15 @@ import { Transition, } from "@headlessui/react"; -interface VitalsMonitorAssetPopoverProps { +interface MonitorAssetPopoverProps { asset?: AssetData; + className?: string; } -const VitalsMonitorAssetPopover = ({ +const MonitorAssetPopover = ({ asset, -}: VitalsMonitorAssetPopoverProps) => { + className, +}: MonitorAssetPopoverProps) => { const { t } = useTranslation(); return ( @@ -35,9 +37,9 @@ const VitalsMonitorAssetPopover = ({ leaveFrom="opacity-100 translate-y-0" leaveTo="opacity-0 translate-y-1" > - +
    -
    +
    {asset?.name}

    -

    Middleware Hostname:

    +

    + {t("middleware_hostname")}: +

    {asset?.resolved_middleware?.hostname}

    -

    Local IP Address:

    +

    + {t("local_ipaddress")}: +

    {asset?.meta?.local_ip_address}

    @@ -81,4 +87,4 @@ const VitalsMonitorAssetPopover = ({ ); }; -export default VitalsMonitorAssetPopover; +export default MonitorAssetPopover; diff --git a/src/Components/Common/PageTitle.tsx b/src/Components/Common/PageTitle.tsx index 3af4c873872..f3ca0146f3e 100644 --- a/src/Components/Common/PageTitle.tsx +++ b/src/Components/Common/PageTitle.tsx @@ -2,24 +2,11 @@ import { ReactNode, useEffect, useRef } from "react"; import Breadcrumbs from "./Breadcrumbs"; import PageHeadTitle from "./PageHeadTitle"; import { classNames } from "../../Utils/utils"; -import useAppHistory from "../../Common/hooks/useAppHistory"; -import CareIcon from "../../CAREUI/icons/CareIcon"; export interface PageTitleProps { title: string; - hideBack?: boolean; - backUrl?: string; className?: string; componentRight?: ReactNode; - /** - * If `false` is returned, prevents from going back. - */ - onBackClick?: () => boolean | void; - justifyContents?: - | "justify-center" - | "justify-start" - | "justify-end" - | "justify-between"; breadcrumbs?: boolean; crumbsReplacements?: { [key: string]: { name?: string; uri?: string; style?: string }; @@ -27,21 +14,25 @@ export interface PageTitleProps { focusOnLoad?: boolean; isInsidePage?: boolean; changePageMetadata?: boolean; + // New props for Breadcrumbs + hideBack?: boolean; + backUrl?: string; + onBackClick?: () => boolean | void; } export default function PageTitle({ title, - hideBack = false, - backUrl, className = "", - onBackClick, componentRight = <>, breadcrumbs = true, crumbsReplacements = {}, - justifyContents = "justify-start", focusOnLoad = false, isInsidePage = false, changePageMetadata = true, + // New props passed to Breadcrumbs + hideBack = false, + backUrl, + onBackClick, }: PageTitleProps) { const divRef = useRef(); @@ -51,36 +42,36 @@ export default function PageTitle({ } }, [divRef, focusOnLoad]); - const { goBack } = useAppHistory(); - return (
    +
    + {breadcrumbs && ( + + )} +
    {changePageMetadata && } -
    + +
    - {!hideBack && ( - - )} -

    {title}

    +

    {title}

    {componentRight}
    -
    - {breadcrumbs && } -
    ); } diff --git a/src/Components/Common/QRScanner.tsx b/src/Components/Common/QRScanner.tsx index 3154acea6de..319e5531e7b 100644 --- a/src/Components/Common/QRScanner.tsx +++ b/src/Components/Common/QRScanner.tsx @@ -4,7 +4,7 @@ import CareIcon from "../../CAREUI/icons/CareIcon"; import DialogModal from "./Dialog"; import TextFormField from "../Form/FormFields/TextFormField.js"; import { useState } from "react"; -import { Scanner } from "@yudiel/react-qr-scanner"; +import { IDetectedBarcode, Scanner } from "@yudiel/react-qr-scanner"; interface IQRScannerModalProps { show: boolean; @@ -33,15 +33,22 @@ const QRScannerModal = ({ {description || "Scan QR code!"} + onScan={(detectedCodes: IDetectedBarcode[]) => { + if (detectedCodes.length > 0) { + const text = detectedCodes[0].rawValue; + if (text) { + onScan(text); + } + } + }} + onError={(e: unknown) => { + const errorMessage = + e instanceof Error ? e.message : "Unknown error"; Notification.Error({ - msg: e.message, - }) - } - options={{ - delayBetweenScanAttempts: 300, + msg: errorMessage, + }); }} + scanDelay={3000} />
    diff --git a/src/Components/Common/Sidebar/Sidebar.tsx b/src/Components/Common/Sidebar/Sidebar.tsx index e18c17bcb68..549cadabb09 100644 --- a/src/Components/Common/Sidebar/Sidebar.tsx +++ b/src/Components/Common/Sidebar/Sidebar.tsx @@ -7,12 +7,25 @@ import CareIcon, { IconName } from "../../../CAREUI/icons/CareIcon"; import SlideOver from "../../../CAREUI/interactive/SlideOver"; import { classNames } from "../../../Utils/utils"; import { Link } from "raviger"; -import useAuthUser from "../../../Common/hooks/useAuthUser"; import careConfig from "@careConfig"; +import { + Tooltip, + TooltipContent, + TooltipProvider, + TooltipTrigger, +} from "@/Components/ui/tooltip"; +import { useTranslation } from "react-i18next"; +import { useCareAppNavItems } from "@/Common/hooks/useCareApps"; export const SIDEBAR_SHRINK_PREFERENCE_KEY = "sidebarShrinkPreference"; -const LOGO_COLLAPSE = "/images/logo_collapsed.svg"; +const LOGO_COLLAPSE = "/images/care_logo_mark.svg"; + +export interface INavItem { + text: string; + to?: string; + icon: IconName; +} type StatelessSidebarProps = | { @@ -29,39 +42,26 @@ type StatelessSidebarProps = }; const StatelessSidebar = ({ - shrinkable = false, shrinked = false, setShrinked, onItemClick, }: StatelessSidebarProps) => { - const authUser = useAuthUser(); - - const NavItems: { - text: string; - to: string; - icon: IconName; - }[] = [ - { text: "Facilities", to: "/facility", icon: "l-hospital" }, - { text: "Patients", to: "/patients", icon: "l-user-injured" }, - { text: "Assets", to: "/assets", icon: "l-shopping-cart-alt" }, - { text: "Sample Test", to: "/sample", icon: "l-medkit" }, - { text: "Shifting", to: "/shifting", icon: "l-ambulance" }, - { text: "Resource", to: "/resource", icon: "l-heart-medical" }, - ...(!["Nurse", "NurseReadOnly", "Staff", "StaffReadOnly"].includes( - authUser.user_type, - ) - ? ([ - { - text: "External Results", - to: "/external_results", - icon: "l-clipboard-notes", - }, - ] as const) - : []), - { text: "Users", to: "/users", icon: "l-users-alt" }, - { text: "Notice Board", to: "/notice_board", icon: "l-meeting-board" }, + const { t } = useTranslation(); + const BaseNavItems: INavItem[] = [ + { text: t("facilities"), to: "/facility", icon: "l-hospital" }, + { text: t("patients"), to: "/patients", icon: "l-user-injured" }, + { text: t("assets"), to: "/assets", icon: "l-shopping-cart-alt" }, + { text: t("sample_test"), to: "/sample", icon: "l-medkit" }, + { text: t("shifting"), to: "/shifting", icon: "l-ambulance" }, + { text: t("resource"), to: "/resource", icon: "l-heart-medical" }, + { text: t("users"), to: "/users", icon: "l-users-alt" }, + { text: t("notice_board"), to: "/notice_board", icon: "l-meeting-board" }, ]; + const PluginNavItems = useCareAppNavItems(); + + const NavItems = [...BaseNavItems, ...PluginNavItems]; + const activeLink = useActiveLink(); const Item = shrinked ? ShrinkedSidebarItem : SidebarItem; @@ -73,23 +73,21 @@ const StatelessSidebar = ({ const updateIndicator = () => { if (!indicatorRef.current) return; const index = NavItems.findIndex((item) => item.to === activeLink); - const navItemCount = NavItems.length + (careConfig.urls.dashboard ? 2 : 1); // +2 for notification and dashboard + const navItemCount = NavItems.length + (careConfig.urls.dashboard ? 2 : 1); if (index !== -1) { - // Haha math go brrrrrrrrr - const e = indicatorRef.current; const itemHeight = activeLinkRef.current?.clientHeight || 0; - if (lastIndicatorPosition > index) { - e.style.top = `${itemHeight * (index + 0.37)}px`; - setTimeout(() => { - e.style.bottom = `${itemHeight * (navItemCount - 0.63 - index)}px`; - }, 50); - } else { - e.style.bottom = `${itemHeight * (navItemCount - 0.63 - index)}px`; - setTimeout(() => { - e.style.top = `${itemHeight * (index + 0.37)}px`; - }, 50); - } + const itemOffset = index * itemHeight; + + const indicatorHeight = indicatorRef.current.clientHeight; + const indicatorOffset = (itemHeight - indicatorHeight) / 2; + + const top = `${itemOffset + indicatorOffset}px`; + const bottom = `${navItemCount * itemHeight - itemOffset - indicatorOffset}px`; + + e.style.top = top; + e.style.bottom = bottom; + setLastIndicatorPosition(index); } else { indicatorRef.current.style.display = "none"; @@ -111,7 +109,7 @@ const StatelessSidebar = ({ return ( @@ -228,18 +232,28 @@ interface ToggleShrinkProps { toggle: () => void; } -const ToggleShrink = ({ shrinked, toggle }: ToggleShrinkProps) => ( -
    - -
    -); +const ToggleShrink = ({ shrinked, toggle }: ToggleShrinkProps) => { + const { t } = useTranslation(); + return ( + + + + + + +

    {shrinked ? t("expand_sidebar") : t("collapse_sidebar")}

    +
    +
    +
    + ); +}; diff --git a/src/Components/Common/Sidebar/SidebarItem.tsx b/src/Components/Common/Sidebar/SidebarItem.tsx index bf0b0589011..6db51bbac3a 100644 --- a/src/Components/Common/Sidebar/SidebarItem.tsx +++ b/src/Components/Common/Sidebar/SidebarItem.tsx @@ -10,37 +10,39 @@ type SidebarItemProps = { ref?: React.Ref; text: string; icon: SidebarIcon; + onItemClick?: () => void; external?: true | undefined; badgeCount?: number | undefined; selected?: boolean | undefined; handleOverflow?: any; -} & ({ to: string; do?: undefined } | { to?: string; do: () => void }); +} & ({ to?: string; do?: undefined } | { to?: string; do: () => void }); type SidebarItemBaseProps = SidebarItemProps & { shrinked?: boolean; - ref: Ref; }; -const SidebarItemBase = forwardRef( - ( - { shrinked, external, ...props }: SidebarItemBaseProps, - ref: Ref, - ) => { +const SidebarItemBase = forwardRef( + ({ shrinked, external, ...props }, ref) => { const { t } = useTranslation(); const { resetHistory } = useAppHistory(); return ( { + // On Review: Check if resetHistory is working as intended. + props.do?.(); + props.onItemClick?.(); + resetHistory(); + }} onMouseEnter={() => { props.handleOverflow(true); }} @@ -60,7 +62,7 @@ const SidebarItemBase = forwardRef( {t(props.text)} @@ -75,7 +77,7 @@ const SidebarItemBase = forwardRef( shrinked ? "right-3 top-0.5 h-4 w-5 rounded-md text-xs" : "inset-y-0 right-4 my-auto h-6 rounded-md px-2 text-xs" - } z-10 animate-pulse transition-all duration-200 ease-in-out`} + } duration-400 z-10 animate-pulse transition-all ease-in-out`} > {props.badgeCount > 9 ? "9+" : props.badgeCount} diff --git a/src/Components/Common/Sidebar/SidebarUserCard.tsx b/src/Components/Common/Sidebar/SidebarUserCard.tsx index 69678f676d4..9effc947dd6 100644 --- a/src/Components/Common/Sidebar/SidebarUserCard.tsx +++ b/src/Components/Common/Sidebar/SidebarUserCard.tsx @@ -1,56 +1,81 @@ +import React from "react"; import { Link } from "raviger"; import { useTranslation } from "react-i18next"; import CareIcon from "../../../CAREUI/icons/CareIcon"; -import { formatName } from "../../../Utils/utils"; +import { formatName, formatDisplayName } from "../../../Utils/utils"; import useAuthUser, { useAuthContext } from "../../../Common/hooks/useAuthUser"; +import { Avatar } from "@/Components/Common/Avatar"; +import { Button } from "@/Components/ui/button"; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuTrigger, +} from "@/Components/ui/dropdown-menu"; -const SidebarUserCard = ({ shrinked }: { shrinked: boolean }) => { +interface SidebarUserCardProps { + shrinked: boolean; +} + +const SidebarUserCard: React.FC = ({ shrinked }) => { const { t } = useTranslation(); const user = useAuthUser(); const { signOut } = useAuthContext(); return (
    - - - -
    - -
    -
    -
    - + +
    -
    - -

    {t("sign_out")}

    -
    -
    +
    +
    + +
    +
    + {!shrinked && ( +

    + {formatName(user)} +

    + )} +
    +
    +
    + +
    +
    + + + +
    {t("profile")}
    +
    + + +
    {t("sign_out")}
    +
    +
    +
    + + +
    ); }; diff --git a/src/Components/Common/SortDropdown.tsx b/src/Components/Common/SortDropdown.tsx index b54edffa595..0c4fddec58c 100644 --- a/src/Components/Common/SortDropdown.tsx +++ b/src/Components/Common/SortDropdown.tsx @@ -29,6 +29,7 @@ export default function SortDropdownMenu(props: Props) { > {props.options.map(({ isAscending, value }) => ( & { - placeholder?: string; -}; +type TemperatureFormFieldProps = FormFieldBaseProps; -export default function TemperatureFormField(props: Props) { +export default function TemperatureFormField({ + onChange, + id, + label, + error, + value, + name, +}: TemperatureFormFieldProps) { const [unit, setUnit] = useState("fahrenheit"); + const [inputValue, setInputValue] = useState(value || ""); + + useEffect(() => { + if (value) { + const initialTemperature = + unit === "celsius" + ? fahrenheitToCelsius(parseFloat(value)).toFixed(1) + : value; + setInputValue(initialTemperature); + } + }, [value, unit]); + + const handleUnitChange = () => { + setUnit(unit === "celsius" ? "fahrenheit" : "celsius"); + if (inputValue) { + const convertedValue = + unit === "celsius" + ? celsiusToFahrenheit(parseFloat(inputValue)).toFixed(1) + : fahrenheitToCelsius(parseFloat(inputValue)).toFixed(1); + setInputValue(convertedValue); + } + }; + + const handleInputChange = (e: FieldChangeEvent) => { + const newValue = e.value; + + const regex = /^-?\d*\.?\d{0,1}$/; + if (regex.test(newValue)) { + setInputValue(newValue); + } + }; + + const handleBlur = () => { + if (!inputValue) return; + const parsedValue = parseFloat(inputValue); + if (isNaN(parsedValue)) return; + + const finalValue = + unit === "celsius" + ? celsiusToFahrenheit(parsedValue).toString() + : parsedValue.toString(); + + setInputValue(finalValue); + onChange({ name, value: finalValue }); + }; return ( - , - className: "text-danger-500", - }, - { - value: 96.6, - label: "Low", - icon: , - className: "text-warning-500", - }, - { - value: 97.6, - label: "Normal", - icon: , - className: "text-primary-500", - }, - { - value: 99.6, - label: "High", - icon: , - className: "text-warning-500", - }, - { - value: 101.6, - label: "High", - icon: , - className: "text-danger-500", - }, - ]} - optionLabel={(value) => { - const val = unit === "celsius" ? fahrenheitToCelsius(value) : value; - return val.toFixed(1); - }} - labelSuffix={ - setUnit(unit === "celsius" ? "fahrenheit" : "celsius")} - > - - - } - /> +
    + + + + + +
    ); } diff --git a/src/Components/Common/components/Page.tsx b/src/Components/Common/components/Page.tsx index 437a4ef21f7..79e5348b120 100644 --- a/src/Components/Common/components/Page.tsx +++ b/src/Components/Common/components/Page.tsx @@ -31,8 +31,7 @@ export default function Page(props: PageProps) { let padding = ""; if (!props.noImplicitPadding) { - if (!props.hideBack || props.componentRight) - padding = "md:px-6 px-3 py-3.5"; + if (!props.hideBack || props.componentRight) padding = "md:px-6 px-3 py-1"; else padding = "px-6 py-5"; } @@ -45,7 +44,6 @@ export default function Page(props: PageProps) { breadcrumbs={props.breadcrumbs} backUrl={props.backUrl} hideBack={props.hideBack} - justifyContents={props.justifyContents} componentRight={props.componentRight} crumbsReplacements={props.crumbsReplacements} focusOnLoad={props.focusOnLoad} diff --git a/src/Components/DeathReport/DeathReport.tsx b/src/Components/DeathReport/DeathReport.tsx index a3b5e0c4d1f..2424d46f607 100644 --- a/src/Components/DeathReport/DeathReport.tsx +++ b/src/Components/DeathReport/DeathReport.tsx @@ -1,6 +1,4 @@ -/* eslint-disable @typescript-eslint/no-unused-vars */ -import { useEffect, useState } from "react"; -import { statusType, useAbortableEffect } from "../../Common/utils"; +import { useState } from "react"; import { GENDER_TYPES } from "../../Common/constants"; import TextFormField from "../Form/FormFields/TextFormField"; import TextAreaFormField from "../Form/FormFields/TextAreaFormField"; @@ -8,8 +6,8 @@ import DateFormField from "../Form/FormFields/DateFormField"; import PhoneNumberFormField from "../Form/FormFields/PhoneNumberFormField"; import { formatDateTime, + formatPatientAge, humanizeStrings, - patientAgeInYears, } from "../../Utils/utils"; import Page from "../Common/components/Page"; import Form from "../Form/Form"; @@ -111,7 +109,7 @@ export default function PrintDeathReport(props: { id: string }) { const patientComorbidities = getPatientComorbidities(res.data); const data = { ...res.data, - age: patientAgeInYears(res.data!), + age: formatPatientAge(res.data!, true), gender: patientGender, address: patientAddress, comorbidities: patientComorbidities, @@ -333,7 +331,7 @@ export default function PrintDeathReport(props: { id: string }) { previewData() ) : (
    @@ -403,7 +401,7 @@ export default function PrintDeathReport(props: { id: string }) {
    @@ -411,7 +409,7 @@ export default function PrintDeathReport(props: { id: string }) {
    @@ -429,14 +427,14 @@ export default function PrintDeathReport(props: { id: string }) {
    @@ -454,7 +452,7 @@ export default function PrintDeathReport(props: { id: string }) {
    diff --git a/src/Components/Diagnosis/ConsultationDiagnosisBuilder/ConsultationDiagnosisBuilder.tsx b/src/Components/Diagnosis/ConsultationDiagnosisBuilder/ConsultationDiagnosisBuilder.tsx index 043654929a8..1e77a1d7c79 100644 --- a/src/Components/Diagnosis/ConsultationDiagnosisBuilder/ConsultationDiagnosisBuilder.tsx +++ b/src/Components/Diagnosis/ConsultationDiagnosisBuilder/ConsultationDiagnosisBuilder.tsx @@ -80,11 +80,12 @@ interface EditDiagnosesProps { className?: string; value: ConsultationDiagnosis[]; suggestions?: ICD11DiagnosisModel[]; + consultationId?: string; onUpdate?: (diagnoses: ConsultationDiagnosis[]) => void; } export const EditDiagnosesBuilder = (props: EditDiagnosesProps) => { - const consultation = useSlug("consultation"); + const consultation = useSlug("consultation", props.consultationId); const [diagnoses, setDiagnoses] = useState(props.value); const [prefill, setPrefill] = useState(); diff --git a/src/Components/ErrorPages/SessionExpired.tsx b/src/Components/ErrorPages/SessionExpired.tsx index 419c9c44dce..32036a0319d 100644 --- a/src/Components/ErrorPages/SessionExpired.tsx +++ b/src/Components/ErrorPages/SessionExpired.tsx @@ -1,23 +1,16 @@ import * as Notification from "../../Utils/Notifications"; -import { useNavigate } from "raviger"; import { useEffect } from "react"; import { useTranslation } from "react-i18next"; import { useAuthContext } from "../../Common/hooks/useAuthUser"; export default function SessionExpired() { - const { signOut, user } = useAuthContext(); - const isAuthenticated = !!user; - const navigate = useNavigate(); + const { signOut } = useAuthContext(); const { t } = useTranslation(); useEffect(() => { Notification.closeAllNotifications(); }, []); - if (isAuthenticated) { - navigate("/"); - } - return (
    diff --git a/src/Components/ExternalResult/Commons.tsx b/src/Components/ExternalResult/Commons.tsx deleted file mode 100644 index 6a7dfcd8e77..00000000000 --- a/src/Components/ExternalResult/Commons.tsx +++ /dev/null @@ -1,25 +0,0 @@ -export const externalResultFormatter = (props: any) => { - const data = props.map((el: any) => { - return { - Id: el.id, - Name: el.name, - Address: el.address, - Age: el.age, - Gender: el.gender, - Mobile: el.mobile_number, - Ward: el.ward_object?.name || "NILL", - Local_Body: el.local_body_object?.name || "NILL", - District: el.district_object?.name, - Result: el.result, - Test_Type: el.test_type, - Patient_Status: el.patient_status, - Patient_Category: el.patient_category, - SRF_ID: el.srf_id, - Sample_Type: el.sample_type, - Lab_Name: el.lab_name, - Sample_Collection_Date: el.sample_collection_date, - Result_Date: el.result_date, - }; - }); - return data; -}; diff --git a/src/Components/ExternalResult/ExternalResultImportModal.tsx b/src/Components/ExternalResult/ExternalResultImportModal.tsx deleted file mode 100644 index 79df1cfdc09..00000000000 --- a/src/Components/ExternalResult/ExternalResultImportModal.tsx +++ /dev/null @@ -1,112 +0,0 @@ -import _ from "lodash-es"; -import { navigate } from "raviger"; -import { useEffect, useState, lazy } from "react"; -import * as Notification from "../../Utils/Notifications.js"; -import request from "../../Utils/request/request"; -import routes from "../../Redux/api"; -import { ExternalResultImportSchema } from "../../Common/constants"; -import DialogModal from "../Common/Dialog"; -import { IExternalResult } from "./models"; -import careConfig from "@careConfig"; -const ExcelFileDragAndDrop = lazy( - () => import("../Common/ExcelFIleDragAndDrop"), -); - -interface Props { - open: boolean; - onClose: () => void; -} - -export default function ExternalResultImportModal({ open, onClose }: Props) { - const [loading, setLoading] = useState(false); - - const fetchUser = async () => { - const { data: user } = await request(routes.currentUser, { - pathParams: {}, - }); - - ExternalResultImportSchema.Address.parse = (value: string) => { - if ( - user?.user_type === "StateAdmin" || - user?.user_type === "StateLabAdmin" - ) { - if (value.split(",").pop()?.trim() === user?.state_object?.name) { - return value; - } else { - throw new Error("State should be the same as the user's state"); - } - } - return value; - }; - - ExternalResultImportSchema.District.parse = (value: string) => { - if ( - user?.user_type === "StateAdmin" || - user?.user_type === "StateLabAdmin" - ) { - return value; - } else if (value !== user?.district_object?.name) { - throw new Error("District should be the same as the user's district"); - } - }; - }; - - useEffect(() => { - fetchUser(); - }, []); - - const handleSubmit = async (data: IExternalResult[]) => { - setLoading(true); - - if (data.length !== 0) { - try { - const { res } = await request(routes.externalResultUploadCsv, { - body: { - sample_tests: data, - }, - }); - - if (res && res.status === 202) { - setLoading(false); - navigate("/external_results"); - Notification.Success({ - msg: "External Results imported successfully", - }); - } else { - Notification.Error({ - msg: "Something went wrong", - }); - setLoading(false); - } - } catch (error) { - Notification.Error({ - msg: "Something went wrong: " + error, - }); - setLoading(false); - } finally { - setLoading(false); - onClose(); - } - } else { - setLoading(false); - } - }; - - return ( - - - - ); -} diff --git a/src/Components/ExternalResult/ListFilter.tsx b/src/Components/ExternalResult/ListFilter.tsx deleted file mode 100644 index 5beb1fe6e20..00000000000 --- a/src/Components/ExternalResult/ListFilter.tsx +++ /dev/null @@ -1,255 +0,0 @@ -import { useState } from "react"; -import useMergeState from "../../Common/hooks/useMergeState"; -import { useTranslation } from "react-i18next"; -import FiltersSlideover from "../../CAREUI/interactive/FiltersSlideover"; -import TextFormField from "../Form/FormFields/TextFormField"; -import { MultiSelectFormField } from "../Form/FormFields/SelectFormField"; -import DateRangeFormField from "../Form/FormFields/DateRangeFormField"; -import dayjs from "dayjs"; -import { dateQueryString, compareBy } from "../../Utils/utils"; -import useAuthUser from "../../Common/hooks/useAuthUser"; -import useQuery from "../../Utils/request/useQuery"; -import routes from "../../Redux/api"; -import Loading from "../Common/Loading"; -import { LocalBodyModel, WardModel } from "../Facility/models"; - -const getDate = (value: any) => - value && dayjs(value).isValid() && dayjs(value).toDate(); - -export default function ListFilter(props: any) { - const { filter, onChange, closeFilter, dataList, removeFilters } = props; - const [wardList, setWardList] = useState([]); - const [lsgList, setLsgList] = useState([]); - const [wards, setWards] = useState([]); - const [selectedLsgs, setSelectedLsgs] = useState([]); - const authUser = useAuthUser(); - const [filterState, setFilterState] = useMergeState({ - created_date_before: filter.created_date_before || null, - created_date_after: filter.created_date_after || null, - result_date_before: filter.result_date_before || null, - result_date_after: filter.result_date_after || null, - sample_collection_date_before: filter.sample_collection_date_before || null, - sample_collection_date_after: filter.sample_collection_date_after || null, - srf_id: filter.srf_id || null, - }); - const { t } = useTranslation(); - - const { loading } = useQuery(routes.getAllLocalBodyByDistrict, { - pathParams: { id: String(authUser.district) }, - onResponse: ({ res, data }) => { - if (res && data) { - const allWards: any[] = []; - const allLsgs: any[] = []; - - if (res && data) { - data.forEach((local: any) => { - allLsgs.push({ id: local.id, name: local.name }); - if (local.wards) { - local.wards.forEach((ward: any) => { - allWards.push({ - id: ward.id, - name: ward.number + ": " + ward.name, - panchayath: local.name, - number: ward.number, - local_body_id: local.id, - }); - }); - } - }); - } - - allWards.sort(compareBy("number")); - allLsgs.sort(compareBy("name")); - - setWardList(allWards); - setLsgList(allLsgs); - - const filteredWard = filter?.wards?.split(",").map(Number); - const selectedWards: any = - filteredWard && allWards - ? allWards.filter(({ id }: { id: number }) => { - return filteredWard.includes(id); - }) - : []; - setWards(selectedWards); - - const filteredLsgs = filter?.local_bodies?.split(",").map(Number); - const selectedLsgs: any = - filteredLsgs && allLsgs - ? allLsgs.filter(({ id }: { id: number }) => { - return filteredLsgs.includes(id); - }) - : []; - setSelectedLsgs(selectedLsgs); - } - }, - }); - - const handleDateRangeChange = ( - startDateId: string, - endDateId: string, - e: any, - ) => { - const filterData: any = { ...filterState }; - filterData[startDateId] = e.value.start?.toString(); - filterData[endDateId] = e.value.end?.toString(); - - setFilterState(filterData); - }; - - const field = (name: string) => ({ - name, - label: t(name), - value: filterState[name], - onChange: handleChange, - errorClassName: "hidden", - }); - - const applyFilter = () => { - const selectedWardIds = wards.map(function (obj) { - return obj.id; - }); - - const selectedLsgIds = selectedLsgs.map(function (obj) { - return obj.id; - }); - - const { - created_date_before, - created_date_after, - result_date_before, - result_date_after, - sample_collection_date_after, - sample_collection_date_before, - srf_id, - } = filterState; - - const data = { - state: authUser.state, - district: authUser.district, - wards: selectedWardIds.length ? selectedWardIds : "", - local_bodies: selectedLsgIds.length ? selectedLsgIds : "", - created_date_before: dateQueryString(created_date_before), - created_date_after: dateQueryString(created_date_after), - result_date_before: dateQueryString(result_date_before), - result_date_after: dateQueryString(result_date_after), - sample_collection_date_after: dateQueryString( - sample_collection_date_after, - ), - sample_collection_date_before: dateQueryString( - sample_collection_date_before, - ), - srf_id: srf_id, - }; - onChange(data); - dataList(selectedLsgs, wards); - }; - - const filterWards = () => { - const selectedLsgIds: any = selectedLsgs.map((e) => { - return e.id; - }); - const selectedwards: any = - selectedLsgIds.length === 0 - ? wardList - : wardList.filter(({ local_body_id }: { local_body_id: number }) => { - return selectedLsgIds.includes(local_body_id); - }); - - return selectedwards; - }; - - const handleChange = (event: any) => { - const { name, value } = event.target; - const filterData: any = { ...filterState }; - filterData[name] = value; - setFilterState(filterData); - }; - - if (loading) { - ; - } - - return ( - { - removeFilters(); - closeFilter(); - }} - > - option.name} - optionDescription={(option) => option.localbody_code} - onChange={({ value }) => setSelectedLsgs(value)} - /> - - option.name} - optionDescription={(option) => option.panchayath} - onChange={({ value }) => setWards(value)} - /> - - handleDateRangeChange("created_date_after", "created_date_before", e) - } - label={t("created_date")} - /> - - handleDateRangeChange("result_date_after", "result_date_before", e) - } - label={t("result_date")} - /> - - handleDateRangeChange( - "sample_collection_date_after", - "sample_collection_date_before", - e, - ) - } - label={t("sample_collection_date")} - /> - -
    - -
    -
    - ); -} diff --git a/src/Components/ExternalResult/ResultItem.tsx b/src/Components/ExternalResult/ResultItem.tsx deleted file mode 100644 index 44f40e3248d..00000000000 --- a/src/Components/ExternalResult/ResultItem.tsx +++ /dev/null @@ -1,218 +0,0 @@ -import { useState, lazy } from "react"; -import * as Notification from "../../Utils/Notifications.js"; -import { navigate } from "raviger"; -import { useTranslation } from "react-i18next"; -import Page from "../Common/components/Page"; -import ConfirmDialog from "../Common/ConfirmDialog"; -import useQuery from "../../Utils/request/useQuery"; -import routes from "../../Redux/api"; -import request from "../../Utils/request/request"; -import CareIcon from "../../CAREUI/icons/CareIcon.js"; - -const Loading = lazy(() => import("../Common/Loading")); - -export default function ResultItem(props: any) { - const [showDeleteAlert, setShowDeleteAlert] = useState(false); - const { t } = useTranslation(); - - const { data: resultItemData, loading } = useQuery(routes.externalResult, { - pathParams: { id: props.id }, - }); - - const handleDelete = async () => { - if (showDeleteAlert) { - const { res, data } = await request(routes.deleteExternalResult, { - pathParams: { id: props.id }, - }); - - if (res?.status === 204) { - Notification.Success({ - msg: t("record_has_been_deleted_successfully"), - }); - } else { - Notification.Error({ - msg: t("error_while_deleting_record") + ": " + (data?.detail || ""), - }); - } - setShowDeleteAlert(false); - navigate("/external_results"); - } - }; - - if (loading || !resultItemData) { - return ; - } - - return ( - - { - handleDelete(); - }} - onClose={() => setShowDeleteAlert(false)} - /> -
    -
    - - -
    -
    -
    -

    - {resultItemData.name} -{" "} - {resultItemData.age}{" "} - {resultItemData.age_in} |{" "} - {resultItemData.result} -

    -

    - {t("srf_id")}: {resultItemData.srf_id} -

    -

    - {t("care_external_results_id")}: {resultItemData.id} -

    - {resultItemData.patient_created ? ( - - {t("patient_created")} - - ) : null} -
    -
    -
    -
    -
    - {t("gender")} -
    -
    - {resultItemData.gender} -
    -
    -
    -
    - {t("address")} -
    -
    - {resultItemData.address} - - {resultItemData.ward_object && ( -
    - Ward: {resultItemData.ward_object.number}{" "} - {resultItemData.ward_object.name} -
    - )} - {resultItemData.local_body_object && ( -
    - {resultItemData.local_body_object.name} -
    - )} -
    -
    -
    -
    - {t("mobile_number")} -
    -
    - {resultItemData.mobile_number} -
    -
    -
    -
    - Repeat? -
    -
    - {resultItemData.is_repeat ? t("yes") : t("no")} -
    -
    -
    -
    - {t("patient_status")} -
    -
    - {resultItemData.patient_status} -
    -
    -
    -
    - {t("sample_type")} -
    -
    - {resultItemData.sample_type} -
    -
    -
    -
    - {t("test_type")} -
    -
    - {resultItemData.test_type} -
    -
    -
    -
    - {t("sample_collection_date")} -
    -
    - {resultItemData.sample_collection_date || "-"} -
    -
    -
    -
    - {t("result_date")} -
    -
    - {resultItemData.result_date || "-"} -
    -
    -
    -
    - {t("result")} -
    -
    - {resultItemData.result} -
    -
    -
    -
    - {t("source")} -
    -
    - {resultItemData.source} -
    -
    - -
    -
    - {t("patient_category")} -
    -
    - {resultItemData.patient_category} -
    -
    -
    -
    -
    -
    -
    - ); -} diff --git a/src/Components/ExternalResult/ResultList.tsx b/src/Components/ExternalResult/ResultList.tsx deleted file mode 100644 index abd77e0e4ac..00000000000 --- a/src/Components/ExternalResult/ResultList.tsx +++ /dev/null @@ -1,368 +0,0 @@ -import ButtonV2 from "../Common/components/ButtonV2"; -import { navigate } from "raviger"; -import { lazy, useState } from "react"; -import { externalResultList } from "../../Redux/actions"; -import ListFilter from "./ListFilter"; -import FacilitiesSelectDialogue from "./FacilitiesSelectDialogue"; -import { FacilityModel } from "../Facility/models"; -import SearchInput from "../Form/SearchInput"; -import useFilters from "../../Common/hooks/useFilters"; -import CareIcon from "../../CAREUI/icons/CareIcon"; -import ExportMenu from "../Common/Export"; -import PhoneNumberFormField from "../Form/FormFields/PhoneNumberFormField"; -import CountBlock from "../../CAREUI/display/Count"; -import { AdvancedFilterButton } from "../../CAREUI/interactive/FiltersSlideover"; -import Page from "../Common/components/Page"; -import routes from "../../Redux/api"; -import useQuery from "../../Utils/request/useQuery"; -import { parsePhoneNumber } from "../../Utils/utils"; -import useAuthUser from "../../Common/hooks/useAuthUser"; -import { NonReadOnlyUsers } from "../../Utils/AuthorizeFor"; -import ExternalResultImportModal from "./ExternalResultImportModal"; - -const Loading = lazy(() => import("../Common/Loading")); - -export default function ResultList() { - const authUser = useAuthUser(); - const { - qParams, - updateQuery, - Pagination, - FilterBadges, - advancedFilter, - resultsPerPage, - } = useFilters({ - limit: 14, - cacheBlacklist: ["mobile_number", "name"], - }); - const [importModalOpen, setImportModalOpen] = useState(false); - const [showDialog, setShowDialog] = useState(false); - const [selectedFacility, setSelectedFacility] = useState({ - name: "", - }); - const [resultId, setResultId] = useState(-1); - const [dataList, setDataList] = useState({ lsgList: [], wardList: [] }); - - const [phone_number, setPhoneNumber] = useState(""); - const [phoneNumberError, setPhoneNumberError] = useState(""); - - const setPhoneNum = (mobile_number: string) => { - setPhoneNumber(mobile_number); - if (mobile_number.length >= 13) { - setPhoneNumberError(""); - updateQuery({ mobile_number }); - return; - } - - if (mobile_number === "+91" || mobile_number === "") { - setPhoneNumberError(""); - updateQuery({ mobile_number: "" }); - return; - } - - setPhoneNumberError("Enter a valid number"); - }; - const params = { - page: qParams.page || 1, - name: qParams.name || "", - mobile_number: qParams.mobile_number - ? (parsePhoneNumber(qParams.mobile_number) ?? "") - : "", - wards: qParams.wards || undefined, - local_bodies: qParams.local_bodies || undefined, - created_date_before: qParams.created_date_before || undefined, - created_date_after: qParams.created_date_after || undefined, - result_date_before: qParams.result_date_before || undefined, - result_date_after: qParams.result_date_after || undefined, - sample_collection_date_after: - qParams.sample_collection_date_after || undefined, - sample_collection_date_before: - qParams.sample_collection_date_before || undefined, - offset: (qParams.page ? qParams.page - 1 : 0) * resultsPerPage, - srf_id: qParams.srf_id || undefined, - }; - - const { data, loading } = useQuery(routes.externalResultList, { - query: params, - }); - - let manageResults: any = null; - - const removeLSGFilter = (paramKey: any, id: any) => { - const updatedLsgList = dataList.lsgList.filter((x: any) => x.id !== id); - const lsgParams = updatedLsgList.map((x: any) => x.id); - const updatedWardList = dataList.wardList.filter( - (x: any) => x.local_body_id !== id, - ); - const wardParams = updatedWardList.map((x: any) => x.id); - updateQuery({ [paramKey]: lsgParams, ["wards"]: wardParams }); - setDataList({ lsgList: updatedLsgList, wardList: updatedWardList }); - }; - - const removeWardFilter = (paramKey: any, id: any) => { - const updatedList = dataList.wardList.filter((x: any) => x.id !== id); - const params = updatedList.map((x: any) => x.id); - updateQuery({ [paramKey]: params }); - setDataList({ ...dataList, wardList: updatedList }); - }; - - const lsgWardData = (lsgs: any, wards: any) => - setDataList({ lsgList: lsgs, wardList: wards }); - - const lsgWardBadge = (key: string, value: any, paramKey: string) => { - return ( - value && ( - - {`${key}: ${value.name}`} - - paramKey === "local_bodies" - ? removeLSGFilter(paramKey, value.id) - : paramKey === "wards" - ? removeWardFilter(paramKey, value.id) - : null - } - /> - - ) - ); - }; - - let resultList: any[] = []; - if (data?.results.length) { - resultList = data.results.map((result: any) => { - const resultUrl = `/external_results/${result.id}`; - return ( - - navigate(resultUrl)} - className="text-md whitespace-nowrap px-6 py-4 leading-5 text-secondary-900" - > - - - - - {result.test_type} - - - - - {result.result} - - {result.patient_created ? ( - - Patient Created - - ) : null} - - - {result.result_date || "-"} - - - { - setShowDialog(true); - setResultId(result.id); - }} - > - CREATE - - - - ); - }); - } - - if (loading || !data) { - manageResults = ( - - - - - - ); - } else if (data?.results.length) { - manageResults = <>{resultList}; - } else if (data?.results.length === 0) { - manageResults = ( - - -
    -
    - No Results Found -
    -
    - - - ); - } - - return ( -
    - setSelectedFacility(e)} - selectedFacility={selectedFacility} - handleOk={() => - navigate(`facility/${selectedFacility.id}/patient`, { - query: { extId: resultId }, - }) - } - handleCancel={() => setShowDialog(false)} - /> - - , - onClick: () => setImportModalOpen(true), - }, - }, - ] - : []), - { - label: "Export Results", - action: () => - externalResultList( - { ...qParams, csv: true }, - "externalResultList", - ), - filePrefix: "external_results", - options: { - icon: , - }, - }, - ]} - /> - } - > - {importModalOpen && ( - setImportModalOpen(false)} - /> - )} -
    - -
    - updateQuery({ [e.name]: e.value })} - value={qParams.name} - placeholder="Search by name" - /> -
    - setPhoneNum(e.value)} - error={phoneNumberError} - placeholder="Search by Phone Number" - types={["mobile", "landline"]} - /> -
    -
    -
    - advancedFilter.setShow(true)} - /> -
    -
    - -
    - {qParams.local_bodies && - dataList.lsgList.map((x) => lsgWardBadge("LSG", x, "local_bodies"))} - {qParams.wards && - dataList.wardList.map((x) => lsgWardBadge("Ward", x, "wards"))} -
    - - [ - badge("Name", "name"), - phoneNumber("Phone no.", "mobile_number"), - ...dateRange("Created", "created_date"), - ...dateRange("Result", "result_date"), - ...dateRange("Sample created", "sample_collection_date"), - badge("SRF ID", "srf_id"), - ]} - /> - -
    - - - - - - - - - - - - {manageResults} - -
    - Name - - Test Type - - Status - - Result Date - - Create Patient -
    -
    - - -
    -
    - ); -} diff --git a/src/Components/ExternalResult/ResultUpdate.tsx b/src/Components/ExternalResult/ResultUpdate.tsx deleted file mode 100644 index 3e892940ac8..00000000000 --- a/src/Components/ExternalResult/ResultUpdate.tsx +++ /dev/null @@ -1,307 +0,0 @@ -import { useCallback, useState, useReducer, lazy } from "react"; -import * as Notification from "../../Utils/Notifications.js"; -import TextAreaFormField from "../Form/FormFields/TextAreaFormField.js"; -import CircularProgress from "../Common/components/CircularProgress.js"; -import { SelectFormField } from "../Form/FormFields/SelectFormField.js"; -import RadioFormField from "../Form/FormFields/RadioFormField.js"; -import { navigate } from "raviger"; -import { Cancel, Submit } from "../Common/components/ButtonV2"; -import useAppHistory from "../../Common/hooks/useAppHistory"; -import Page from "../Common/components/Page.js"; -import useQuery from "../../Utils/request/useQuery.js"; -import routes from "../../Redux/api.js"; -import request from "../../Utils/request/request.js"; -import { compareBy } from "../../Utils/utils.js"; -import { useTranslation } from "react-i18next"; - -const Loading = lazy(() => import("../Common/Loading")); - -const initForm = { - address: "", - local_body: "", - ward: "", - patient_created: "false", -}; - -const initError = Object.assign( - {}, - ...Object.keys(initForm).map((k) => ({ [k]: "" })), -); - -const initialState = { - form: { ...initForm }, - errors: { ...initError }, -}; - -const FormReducer = (state = initialState, action: any) => { - switch (action.type) { - case "set_form": { - return { - ...state, - form: action.form, - }; - } - case "set_error": { - return { - ...state, - errors: action.errors, - }; - } - default: - return state; - } -}; - -const initialLocalbodies = [{ id: 0, name: "Choose Localbody", number: 0 }]; -const initialWard = [{ id: 0, name: "Choose Ward", number: 0 }]; - -export default function UpdateResult(props: any) { - const { id } = props; - const { goBack } = useAppHistory(); - const { t } = useTranslation(); - - const [state, dispatch] = useReducer(FormReducer, initialState); - const [isLoading, setIsLoading] = useState(true); - const [isLocalbodyLoading, setIsLocalbodyLoading] = useState(false); - const [isWardLoading, setIsWardLoading] = useState(false); - const [localBody, setLocalBody] = useState(initialLocalbodies); - const [ward, setWard] = useState(initialLocalbodies); - - const { loading } = useQuery(routes.externalResult, { - pathParams: { id }, - onResponse: async ({ res, data }) => { - if (res && data) { - const form = { ...state.form }; - form["name"] = data.name; - form["age"] = data.age; - form["age_in"] = data.age_in; - form["srf_id"] = data.srf_id; - form["address"] = data.address; - form["district"] = data.district_object.name; - form["local_body"] = String(data.local_body); - form["ward"] = String(data.ward); - form["patient_created"] = String(data.patient_created); - - dispatch({ type: "set_form", form }); - - Promise.all([ - fetchLocalBody(data.district), - fetchWards(data.local_body), - ]); - setIsLoading(false); - } - }, - }); - - const fetchLocalBody = async (id: number) => { - if (Number(id) > 0) { - setIsLocalbodyLoading(true); - const { res, data } = await request(routes.getLocalbodyByDistrict, { - pathParams: { id: String(id) }, - }); - if (res && data) { - setIsLocalbodyLoading(false); - setLocalBody([...initialLocalbodies, ...data]); - } - } else { - setLocalBody(initialLocalbodies); - } - }; - - const fetchWards = useCallback( - async (id: number) => { - if (Number(id) > 0) { - setIsWardLoading(true); - const { res, data } = await request(routes.getWardByLocalBody, { - pathParams: { id: String(id) }, - }); - if (res && data) { - setWard([...initialWard, ...data.results]); - } - setIsWardLoading(false); - } else { - setWard(initialLocalbodies); - } - }, - [props.id], - ); - - const validateForm = () => { - const errors = { ...initError }; - let invalidForm = false; - - Object.keys(state.form).forEach((field) => { - switch (field) { - case "address": - if (!state.form[field]) { - errors[field] = t("field_required"); - invalidForm = true; - } - return; - case "local_body": - if (!state.form[field] || state.form[field] === "0") { - errors[field] = "Please select local body"; - invalidForm = true; - } - return; - case "ward": - if (!state.form[field] || state.form[field] === "0") { - errors[field] = "Please select ward"; - invalidForm = true; - } - return; - case "patient_created": - if (state.form[field] !== "true" && state.form[field] !== "false") { - errors[field] = "Please select an option if the patient is created"; - invalidForm = true; - } - return; - default: - return; - } - }); - - if (invalidForm) { - dispatch({ type: "set_error", errors }); - return false; - } - dispatch({ type: "set_error", errors }); - return true; - }; - - const handleChange = (e: any) => { - const form = { ...state.form }; - form[e.name] = e.value; - if (e.name === "local_body") { - form["ward"] = "0"; - } - dispatch({ type: "set_form", form }); - }; - - const handleSubmit = async (e: any) => { - e.preventDefault(); - const validForm = validateForm(); - if (validForm) { - setIsLoading(true); - const rdata = { - address: state.form.address ? state.form.address : undefined, - local_body: state.form.local_body ? state.form.local_body : undefined, - ward: state.form.ward, - patient_created: state.form.patient_created === "true", - }; - - const { res, data } = await request(routes.partialUpdateExternalResult, { - pathParams: { id }, - body: rdata, - }); - - setIsLoading(false); - if (res && data) { - dispatch({ type: "set_form", form: initForm }); - Notification.Success({ - msg: "External Result updated successfully", - }); - navigate(`/external_results/${id}`); - } - } - }; - - if (isLoading || loading) { - return ; - } - - return ( -
    - -
    -
    -

    - {state.form.name} - {state.form.age} {state.form.age_in} -

    -

    - SRF ID: {state.form.srf_id} -

    -

    - Care external results ID: {id} -

    -
    -
    handleSubmit(e)}> -
    -
    - -
    -
    - {isLocalbodyLoading ? ( - - ) : ( - localBody.name} - optionValue={(localBody) => localBody.id} - onChange={(e) => [handleChange(e), fetchWards(e.value)]} - error={state.errors.local_body} - /> - )} -
    -
    - {isWardLoading ? ( - - ) : ( - { - return { id: e.id, name: e.number + ": " + e.name }; - })} - value={state.form.ward} - optionLabel={(ward) => ward.name} - optionValue={(ward) => ward.id} - onChange={handleChange} - error={state.errors.ward} - /> - )} -
    -
    - option.label} - optionValue={(option) => option.value} - error={state.errors.patient_created} - /> -
    -
    -
    - goBack()} /> - -
    -
    -
    -
    -
    - ); -} diff --git a/src/Components/ExternalResult/models.ts b/src/Components/ExternalResult/models.ts index bc143593019..bc5f8d29e03 100644 --- a/src/Components/ExternalResult/models.ts +++ b/src/Components/ExternalResult/models.ts @@ -1,48 +1,3 @@ -export interface IExternalResultUploadCsv { - sample_tests: any[]; -} - -export interface IExternalResult { - id: number; - name: string; - age: number; - age_in: string; - test_type: string; - result: string; - result_date: string; - patient_created: boolean; - gender: string; - source: string; - is_repeat: boolean; - mobile_number: string; - patient_status: string; - sample_type: string; - sample_collection_date: string; - patient_category: string; - srf_id: string; - permanent_address: string; - test_id: string; - village: string; - district_object: { - id: number; - name: string; - state: number; - }; - district: number; - ward: number; - local_body: number; - address: string; - ward_object: { - id: number; - number: number; - name: string; - }; - local_body_object: { - id: number; - name: string; - }; -} - export interface ILocalBodies { id: number; name: string; @@ -52,27 +7,12 @@ export interface ILocalBodies { localbody_code: string; district: number; } - -export interface IDeleteExternalResult { - detail: string; -} export interface IDeleteBedCapacity { detail: string; } -export interface IPartialUpdateExternalResult { - address: string; - ward: number; - local_body: number; - patient_created: boolean; -} - export interface ILocalBodyByDistrict { id: number; name: string; state: number; } - -export interface IExternalResultCsv { - sample_tests: Partial[]; -} diff --git a/src/Components/Facility/AddBedForm.tsx b/src/Components/Facility/AddBedForm.tsx index 0a612fa776b..3bb43f9a27e 100644 --- a/src/Components/Facility/AddBedForm.tsx +++ b/src/Components/Facility/AddBedForm.tsx @@ -1,6 +1,6 @@ import Card from "../../CAREUI/display/Card"; -import { useState, lazy, SyntheticEvent } from "react"; +import { useState, SyntheticEvent } from "react"; import * as Notification from "../../Utils/Notifications.js"; import CheckBoxFormField from "../Form/FormFields/CheckBoxFormField"; import { SelectFormField } from "../Form/FormFields/SelectFormField"; @@ -15,8 +15,7 @@ import useAppHistory from "../../Common/hooks/useAppHistory"; import request from "../../Utils/request/request"; import { useTranslation } from "react-i18next"; -const Loading = lazy(() => import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; interface Props { facilityId: string; locationId: string; @@ -127,7 +126,8 @@ export const AddBedForm = ({ facilityId, locationId, bedId }: Props) => { const { res } = await request(routes.createFacilityBed, { body: { ...data, facility: facilityId, location: locationId }, }); - res?.ok && onSuccess("Bed(s) created successfully"); + res?.ok && + onSuccess(t("bed_created_notification", { count: numberOfBeds })); } }; diff --git a/src/Components/Facility/AddInventoryForm.tsx b/src/Components/Facility/AddInventoryForm.tsx index 673e9949025..08fd7479dc8 100644 --- a/src/Components/Facility/AddInventoryForm.tsx +++ b/src/Components/Facility/AddInventoryForm.tsx @@ -1,4 +1,4 @@ -import { useReducer, useState, useEffect, lazy } from "react"; +import { useReducer, useState, useEffect } from "react"; import Card from "../../CAREUI/display/Card"; import * as Notification from "../../Utils/Notifications.js"; import Page from "../Common/components/Page"; @@ -11,8 +11,7 @@ import useQuery from "../../Utils/request/useQuery"; import routes from "../../Redux/api"; import request from "../../Utils/request/request"; -const Loading = lazy(() => import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; const initForm = { id: "", quantity: "", diff --git a/src/Components/Facility/AddLocationForm.tsx b/src/Components/Facility/AddLocationForm.tsx index cdb7506cbec..5b480d89d89 100644 --- a/src/Components/Facility/AddLocationForm.tsx +++ b/src/Components/Facility/AddLocationForm.tsx @@ -1,4 +1,4 @@ -import { useState, lazy, SyntheticEvent } from "react"; +import { useState, SyntheticEvent } from "react"; import * as Notification from "../../Utils/Notifications.js"; import { navigate } from "raviger"; import { Submit, Cancel } from "../Common/components/ButtonV2"; @@ -11,8 +11,7 @@ import useQuery from "../../Utils/request/useQuery"; import routes from "../../Redux/api"; import request from "../../Utils/request/request"; -const Loading = lazy(() => import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; interface Props { facilityId: string; locationId?: string; diff --git a/src/Components/Facility/AssetCreate.tsx b/src/Components/Facility/AssetCreate.tsx index 5b1493de242..110bf525509 100644 --- a/src/Components/Facility/AssetCreate.tsx +++ b/src/Components/Facility/AssetCreate.tsx @@ -7,7 +7,6 @@ import { MutableRefObject, RefObject, createRef, - lazy, useEffect, useReducer, useState, @@ -18,7 +17,7 @@ import { FieldErrorText, FieldLabel } from "../Form/FormFields/FormField"; import { LocationSelect } from "../Common/LocationSelect"; import Page from "../Common/components/Page"; import PhoneNumberFormField from "../Form/FormFields/PhoneNumberFormField"; -import { Scanner } from "@yudiel/react-qr-scanner"; +import { IDetectedBarcode, Scanner } from "@yudiel/react-qr-scanner"; import { SelectFormField } from "../Form/FormFields/SelectFormField"; import SwitchV2 from "../Common/components/Switch"; import TextAreaFormField from "../Form/FormFields/TextAreaFormField"; @@ -37,8 +36,7 @@ import routes from "../../Redux/api.js"; import request from "../../Utils/request/request.js"; import { useTranslation } from "react-i18next"; -const Loading = lazy(() => import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; const formErrorKeys = [ "name", "asset_class", @@ -420,15 +418,22 @@ const AssetCreate = (props: AssetProps) => { {t("close_scanner")} (assetId ? parseAssetId(assetId) : null)} - onError={(e) => + onScan={(detectedCodes: IDetectedBarcode[]) => { + if (detectedCodes.length > 0) { + const text = detectedCodes[0].rawValue; + if (text) { + parseAssetId(text); + } + } + }} + onError={(e: unknown) => { + const errorMessage = + e instanceof Error ? e.message : "Unknown error"; Notification.Error({ - msg: e.message, - }) - } - options={{ - delayBetweenScanAttempts: 300, + msg: errorMessage, + }); }} + scanDelay={3000} />

    {t("scan_asset_qr")} diff --git a/src/Components/Facility/BedManagement.tsx b/src/Components/Facility/BedManagement.tsx index b46323b74bb..5816ff58d4b 100644 --- a/src/Components/Facility/BedManagement.tsx +++ b/src/Components/Facility/BedManagement.tsx @@ -1,4 +1,4 @@ -import { lazy, useState } from "react"; +import { useState } from "react"; import ButtonV2 from "../Common/components/ButtonV2"; import { BedModel } from "./models"; import { ReactElement } from "react"; @@ -13,8 +13,7 @@ import routes from "../../Redux/api"; import useQuery from "../../Utils/request/useQuery"; import useFilters from "../../Common/hooks/useFilters"; import useAuthUser from "../../Common/hooks/useAuthUser"; -const Loading = lazy(() => import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; interface BedManagementProps { facilityId: string; locationId: string; diff --git a/src/Components/Facility/CentralNursingStation.tsx b/src/Components/Facility/CentralNursingStation.tsx index fbbdf24d7f2..82a5542fc1e 100644 --- a/src/Components/Facility/CentralNursingStation.tsx +++ b/src/Components/Facility/CentralNursingStation.tsx @@ -64,7 +64,6 @@ export default function CentralNursingStation({ facilityId }: Props) { const { config, hash } = useVitalsAspectRatioConfig({ default: 6 / 11, - vs: 10 / 11, sm: 17 / 11, md: 19 / 11, lg: 11 / 11, @@ -208,7 +207,7 @@ export default function CentralNursingStation({ facilityId }: Props) { No Vitals Monitor present in this location or facility.

    ) : ( -
    +
    {data.map((props, i) => (
    import("../../Common/PageTitle")); +import PageTitle from "@/Components/Common/PageTitle"; export const ConsultationABGTab = (props: ConsultationTabProps) => { return ( diff --git a/src/Components/Facility/ConsultationDetails/ConsultationDialysisTab.tsx b/src/Components/Facility/ConsultationDetails/ConsultationDialysisTab.tsx index 43aaf627534..8bd5201d922 100644 --- a/src/Components/Facility/ConsultationDetails/ConsultationDialysisTab.tsx +++ b/src/Components/Facility/ConsultationDetails/ConsultationDialysisTab.tsx @@ -1,8 +1,7 @@ -import { lazy } from "react"; import { ConsultationTabProps } from "./index"; import { DialysisPlots } from "../Consultations/DialysisPlots"; -const PageTitle = lazy(() => import("../../Common/PageTitle")); +import PageTitle from "@/Components/Common/PageTitle"; export const ConsultationDialysisTab = (props: ConsultationTabProps) => { return ( diff --git a/src/Components/Facility/ConsultationDetails/ConsultationInvestigationsTab.tsx b/src/Components/Facility/ConsultationDetails/ConsultationInvestigationsTab.tsx index 99e25067c34..7f49fda1581 100644 --- a/src/Components/Facility/ConsultationDetails/ConsultationInvestigationsTab.tsx +++ b/src/Components/Facility/ConsultationDetails/ConsultationInvestigationsTab.tsx @@ -1,4 +1,3 @@ -import { lazy } from "react"; import { ConsultationTabProps } from "./index"; import { NonReadOnlyUsers } from "../../../Utils/AuthorizeFor"; import ButtonV2 from "../../Common/components/ButtonV2"; @@ -7,7 +6,7 @@ import CareIcon from "../../../CAREUI/icons/CareIcon"; import InvestigationTab from "../Investigations/investigationsTab"; import { t } from "i18next"; -const PageTitle = lazy(() => import("../../Common/PageTitle")); +import PageTitle from "@/Components/Common/PageTitle"; export const ConsultationInvestigationsTab = (props: ConsultationTabProps) => { return (
    diff --git a/src/Components/Facility/ConsultationDetails/ConsultationNeurologicalMonitoringTab.tsx b/src/Components/Facility/ConsultationDetails/ConsultationNeurologicalMonitoringTab.tsx index d6e0b611003..7aed6bb96d5 100644 --- a/src/Components/Facility/ConsultationDetails/ConsultationNeurologicalMonitoringTab.tsx +++ b/src/Components/Facility/ConsultationDetails/ConsultationNeurologicalMonitoringTab.tsx @@ -1,8 +1,7 @@ -import { lazy } from "react"; import { NeurologicalTable } from "../Consultations/NeurologicalTables"; import { ConsultationTabProps } from "./index"; -const PageTitle = lazy(() => import("../../Common/PageTitle")); +import PageTitle from "@/Components/Common/PageTitle"; export const ConsultationNeurologicalMonitoringTab = ( props: ConsultationTabProps, diff --git a/src/Components/Facility/ConsultationDetails/ConsultationNursingTab.tsx b/src/Components/Facility/ConsultationDetails/ConsultationNursingTab.tsx index 2f689c82d19..63e3330bffd 100644 --- a/src/Components/Facility/ConsultationDetails/ConsultationNursingTab.tsx +++ b/src/Components/Facility/ConsultationDetails/ConsultationNursingTab.tsx @@ -1,4 +1,4 @@ -import { lazy, useEffect, useState } from "react"; +import { useEffect, useState } from "react"; import { ConsultationTabProps } from "./index"; import { NursingPlot } from "../Consultations/NursingPlot"; import { useTranslation } from "react-i18next"; @@ -10,7 +10,7 @@ import { classNames, formatDate, formatTime } from "../../../Utils/utils"; import Pagination from "../../Common/Pagination"; import { PAGINATION_LIMIT } from "../../../Common/constants"; -const PageTitle = lazy(() => import("../../Common/PageTitle")); +import PageTitle from "@/Components/Common/PageTitle"; export default function ConsultationNursingTab(props: ConsultationTabProps) { const { t } = useTranslation(); diff --git a/src/Components/Facility/ConsultationDetails/ConsultationNutritionTab.tsx b/src/Components/Facility/ConsultationDetails/ConsultationNutritionTab.tsx index 75e0987cffd..f1b51ec4b81 100644 --- a/src/Components/Facility/ConsultationDetails/ConsultationNutritionTab.tsx +++ b/src/Components/Facility/ConsultationDetails/ConsultationNutritionTab.tsx @@ -1,8 +1,7 @@ -import { lazy } from "react"; import { ConsultationTabProps } from "./index"; import { NutritionPlots } from "../Consultations/NutritionPlots"; -const PageTitle = lazy(() => import("../../Common/PageTitle")); +import PageTitle from "@/Components/Common/PageTitle"; export const ConsultationNutritionTab = (props: ConsultationTabProps) => { return ( diff --git a/src/Components/Facility/ConsultationDetails/ConsultationPressureSoreTab.tsx b/src/Components/Facility/ConsultationDetails/ConsultationPressureSoreTab.tsx index 05327ca6870..5f8c0403afe 100644 --- a/src/Components/Facility/ConsultationDetails/ConsultationPressureSoreTab.tsx +++ b/src/Components/Facility/ConsultationDetails/ConsultationPressureSoreTab.tsx @@ -1,8 +1,7 @@ -import { lazy } from "react"; import { ConsultationTabProps } from "./index"; import { PressureSoreDiagrams } from "../Consultations/PressureSoreDiagrams"; -const PageTitle = lazy(() => import("../../Common/PageTitle")); +import PageTitle from "@/Components/Common/PageTitle"; export const ConsultationPressureSoreTab = (props: ConsultationTabProps) => { return ( diff --git a/src/Components/Facility/ConsultationDetails/ConsultationSummaryTab.tsx b/src/Components/Facility/ConsultationDetails/ConsultationSummaryTab.tsx index 09f6cb05a7b..ef4482b674c 100644 --- a/src/Components/Facility/ConsultationDetails/ConsultationSummaryTab.tsx +++ b/src/Components/Facility/ConsultationDetails/ConsultationSummaryTab.tsx @@ -1,8 +1,7 @@ -import { lazy } from "react"; import { ConsultationTabProps } from "./index"; import { PrimaryParametersPlot } from "../Consultations/PrimaryParametersPlot"; -const PageTitle = lazy(() => import("../../Common/PageTitle")); +import PageTitle from "@/Components/Common/PageTitle"; export const ConsultationSummaryTab = (props: ConsultationTabProps) => { return ( diff --git a/src/Components/Facility/ConsultationDetails/ConsultationUpdatesTab.tsx b/src/Components/Facility/ConsultationDetails/ConsultationUpdatesTab.tsx index 5dc9c32a430..f11f42addfc 100644 --- a/src/Components/Facility/ConsultationDetails/ConsultationUpdatesTab.tsx +++ b/src/Components/Facility/ConsultationDetails/ConsultationUpdatesTab.tsx @@ -1,4 +1,4 @@ -import { lazy, useState } from "react"; +import { useState } from "react"; import { ConsultationTabProps } from "./index"; import { AssetBedModel, AssetClass, AssetData } from "../../Assets/AssetTypes"; import { BedModel } from "../models"; @@ -25,7 +25,6 @@ import CareIcon from "../../../CAREUI/icons/CareIcon"; import EncounterSymptomsCard from "../../Symptoms/SymptomsCard"; import Tabs from "../../Common/components/Tabs"; import { QueryParams } from "../../../Utils/request/types"; -const PageTitle = lazy(() => import("../../Common/PageTitle")); import { EVENTS_SORT_OPTIONS } from "../../../Common/constants"; import DailyRoundsFilter from "../Consultations/DailyRoundsFilter"; import ButtonV2 from "../../Common/components/ButtonV2"; @@ -39,6 +38,8 @@ import { Transition, } from "@headlessui/react"; +import PageTitle from "@/Components/Common/PageTitle"; + export const ConsultationUpdatesTab = (props: ConsultationTabProps) => { const [hl7SocketUrl, setHL7SocketUrl] = useState(); const [ventilatorSocketUrl, setVentilatorSocketUrl] = useState(); diff --git a/src/Components/Facility/ConsultationDetails/ConsultationVentilatorTab.tsx b/src/Components/Facility/ConsultationDetails/ConsultationVentilatorTab.tsx index 36a72ab789e..3381045faeb 100644 --- a/src/Components/Facility/ConsultationDetails/ConsultationVentilatorTab.tsx +++ b/src/Components/Facility/ConsultationDetails/ConsultationVentilatorTab.tsx @@ -1,8 +1,7 @@ -import { lazy } from "react"; import { ConsultationTabProps } from "./index"; import { VentilatorPlot } from "../Consultations/VentilatorPlot"; -const PageTitle = lazy(() => import("../../Common/PageTitle")); +import PageTitle from "@/Components/Common/PageTitle"; export const ConsultationVentilatorTab = (props: ConsultationTabProps) => { return ( diff --git a/src/Components/Facility/ConsultationDetails/index.tsx b/src/Components/Facility/ConsultationDetails/index.tsx index 911e62d5627..6970898a158 100644 --- a/src/Components/Facility/ConsultationDetails/index.tsx +++ b/src/Components/Facility/ConsultationDetails/index.tsx @@ -4,10 +4,9 @@ import { getConsultation, getPatient, listAssetBeds, - listShiftRequests, } from "../../../Redux/actions"; import { statusType, useAbortableEffect } from "../../../Common/utils"; -import { lazy, useCallback, useState } from "react"; +import { useCallback, useState } from "react"; import DoctorVideoSlideover from "../DoctorVideoSlideover"; import { PatientModel } from "../../Patient/models"; import { @@ -47,8 +46,8 @@ import { CameraFeedPermittedUserTypes } from "../../../Utils/permissions"; import Error404 from "../../ErrorPages/404"; import { useTranslation } from "react-i18next"; -const Loading = lazy(() => import("../../Common/Loading")); -const PageTitle = lazy(() => import("../../Common/PageTitle")); +import Loading from "@/Components/Common/Loading"; +import PageTitle from "@/Components/Common/PageTitle"; export interface ConsultationTabProps { consultationId: string; @@ -179,12 +178,11 @@ export const ConsultationDetails = (props: any) => { setAbhaNumberData(abhaNumberData); // Get shifting data - const shiftingRes = await dispatch( - listShiftRequests({ patient: id }, "shift-list-call"), - ); - if (shiftingRes?.data?.results) { - const data = shiftingRes.data.results; - setActiveShiftingData(data); + const shiftRequestsQuery = await request(routes.listShiftRequests, { + query: { patient: id }, + }); + if (shiftRequestsQuery.data?.results) { + setActiveShiftingData(shiftRequestsQuery.data.results); } } else { navigate("/not-found"); @@ -258,6 +256,7 @@ export const ConsultationDetails = (props: any) => { {!consultationData.discharge_date && ( <> + ); return ( - -
    - {facility.read_cover_image_url ? ( - - ) : ( - <> - - - )} + +
    +
    {facility.name} @@ -29,6 +36,6 @@ export default function FacilityBlock(props: { facility: FacilityModel }) { {facility.address} {facility.local_body_object?.name}

    - +
    ); } diff --git a/src/Components/Facility/FacilityCard.tsx b/src/Components/Facility/FacilityCard.tsx index c7fbf728dc9..e874a0f85c0 100644 --- a/src/Components/Facility/FacilityCard.tsx +++ b/src/Components/Facility/FacilityCard.tsx @@ -9,16 +9,20 @@ import CareIcon from "../../CAREUI/icons/CareIcon"; import { formatPhoneNumber, parsePhoneNumber } from "../../Utils/utils"; import DialogModal from "../Common/Dialog"; import TextAreaFormField from "../Form/FormFields/TextAreaFormField"; -import { classNames } from "../../Utils/utils"; import request from "../../Utils/request/request"; import routes from "../../Redux/api"; import careConfig from "@careConfig"; +import { FacilityModel } from "./models"; +import { Avatar } from "../Common/Avatar"; -export const FacilityCard = (props: { facility: any; userType: any }) => { +export const FacilityCard = (props: { + facility: FacilityModel; + userType: string; +}) => { const { facility, userType } = props; const { t } = useTranslation(); - const [notifyModalFor, setNotifyModalFor] = useState(undefined); + const [notifyModalFor, setNotifyModalFor] = useState(); const [notifyMessage, setNotifyMessage] = useState(""); const [notifyError, setNotifyError] = useState(""); @@ -47,46 +51,31 @@ export const FacilityCard = (props: { facility: any; userType: any }) => { return (
    -
    +
    - {(facility.read_cover_image_url && ( - {facility.name} - )) || ( - - )} + -
    +
    -
    +
    - {(facility.read_cover_image_url && ( - {facility.name} - )) || ( - - )} +
    {facility.kasp_empanelled && ( @@ -98,28 +87,45 @@ export const FacilityCard = (props: { facility: any; userType: any }) => { className="flex flex-wrap items-center justify-between" id="facility-name-card" > - - {facility.name} - +
    + + {facility.name} + +
    0.85 ? "justify-center rounded-md border border-red-600 bg-red-500 p-1 font-bold text-white" : "text-secondary-700"}`} + > + + {t("live_patients_total_beds")} + {" "} + +
    + {t("occupancy")}: {facility.patient_count} /{" "} + {facility.bed_count}{" "} +
    +
    +
    - View CNS + {t("view_cns")}
    +
    {
    -
    +
    {/*
    */}
    -
    0.85 - ? "button-danger-border bg-red-500" - : "button-primary-border bg-primary-100" - }`} - > - - Live Patients / Total beds - {" "} - 0.85 - ? "text-white" - : "text-primary-600", - )} - />{" "} -
    0.85 - ? "text-white" - : "text-secondary-700" - }`} - > - Occupancy: {facility.patient_count} /{" "} - {facility.bed_count}{" "} -
    {" "} -
    import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; const initForm = { name: "", state: 0, diff --git a/src/Components/Facility/FacilityCreate.tsx b/src/Components/Facility/FacilityCreate.tsx index e9e95fbcdfc..76e2c64ddb0 100644 --- a/src/Components/Facility/FacilityCreate.tsx +++ b/src/Components/Facility/FacilityCreate.tsx @@ -23,7 +23,7 @@ import { PopoverPanel, Transition, } from "@headlessui/react"; -import { lazy, useEffect, useState } from "react"; +import { useEffect, useState } from "react"; import Steps, { Step } from "../Common/Steps"; import { getPincodeDetails, @@ -65,8 +65,7 @@ import useAuthUser from "../../Common/hooks/useAuthUser"; import SpokeFacilityEditor from "./SpokeFacilityEditor.js"; import careConfig from "@careConfig"; -const Loading = lazy(() => import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; interface FacilityProps { facilityId?: string; } @@ -851,14 +850,14 @@ export const FacilityCreate = (props: FacilityProps) => { required types={["mobile", "landline"]} /> -
    -

    {t("spokes")}

    - {facilityId && ( + {facilityId && ( +
    +

    {t("spokes")}

    - )} -
    +
    + )}
    { leaveFrom="opacity-100 translate-y-0" leaveTo="opacity-0 translate-y-1" > - + import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; +import { Avatar } from "@/Components/Common/Avatar.js"; export const getFacilityFeatureIcon = (featureId: number) => { const feature = FACILITY_FEATURE_TYPES.find((f) => f.id === featureId); if (!feature?.icon) return null; @@ -58,7 +58,6 @@ export const FacilityHome = ({ facilityId }: Props) => { const { t } = useTranslation(); const [openDeleteDialog, setOpenDeleteDialog] = useState(false); const [editCoverImage, setEditCoverImage] = useState(false); - const [coverImageEdited, setCoverImageEdited] = useState(false); const authUser = useAuthUser(); const { @@ -76,6 +75,20 @@ export const FacilityHome = ({ facilityId }: Props) => { }, }); + const spokesQuery = useQuery(routes.getFacilitySpokes, { + pathParams: { + id: facilityId, + }, + silent: true, + }); + + const hubsQuery = useQuery(routes.getFacilityHubs, { + pathParams: { + id: facilityId, + }, + silent: true, + }); + const handleDeleteClose = () => { setOpenDeleteDialog(false); }; @@ -94,13 +107,6 @@ export const FacilityHome = ({ facilityId }: Props) => { }); }; - const spokesQuery = useQuery(routes.getFacilitySpokes, { - pathParams: { - id: facilityId, - }, - silent: true, - }); - if (isLoading) { return ; } @@ -126,27 +132,10 @@ export const FacilityHome = ({ facilityId }: Props) => { onClick={() => setEditCoverImage(true)} > - {`${hasCoverImage ? "Edit" : "Upload"}`} + {t(hasCoverImage ? "edit" : "upload")}
    ); - const CoverImage = () => ( - <> - {facilityData?.name} - {coverImageEdited && ( -
    - - {t("cover_image_updated_note")} - -
    - )} - - ); - return ( { /> { - facilityFetch(); - setCoverImageEdited(true); - }} + onSave={() => facilityFetch()} onClose={() => setEditCoverImage(false)} onDelete={() => facilityFetch()} facility={facilityData ?? ({} as FacilityModel)} /> - {hasCoverImage ? ( -
    - - {editCoverImageTooltip} -
    - ) : ( -
    - hasPermissionToEditCoverImage && setEditCoverImage(true) - } - > -
    - )} + +
    hasPermissionToEditCoverImage && setEditCoverImage(true)} + > + + {editCoverImageTooltip} +
    { hasPermissionToEditCoverImage && setEditCoverImage(true) } > - {hasCoverImage ? ( - - ) : ( -
    - - - -
    - )} +
    + +
    + {editCoverImageTooltip}
    @@ -297,7 +264,7 @@ export const FacilityHome = ({ facilityId }: Props) => { />
    - {!!spokesQuery.data?.results.length && ( + {!!spokesQuery.data?.results?.length && (

    @@ -305,7 +272,28 @@ export const FacilityHome = ({ facilityId }: Props) => {

    {spokesQuery.data?.results.map((spoke) => ( - + + ))} +
    +
    +
    + )} + + {!!hubsQuery.data?.results?.length && ( +
    +
    +

    + {t("hubs")} +

    +
    + {hubsQuery.data.results.map((hub) => ( + ))}
    diff --git a/src/Components/Facility/HospitalList.tsx b/src/Components/Facility/FacilityList.tsx similarity index 93% rename from src/Components/Facility/HospitalList.tsx rename to src/Components/Facility/FacilityList.tsx index 893d54cd698..9143ec29355 100644 --- a/src/Components/Facility/HospitalList.tsx +++ b/src/Components/Facility/FacilityList.tsx @@ -1,10 +1,4 @@ -import { - downloadFacility, - downloadFacilityCapacity, - downloadFacilityDoctors, - downloadFacilityTriage, -} from "../../Redux/actions"; -import { lazy, useEffect } from "react"; +import { useEffect } from "react"; import { AdvancedFilterButton } from "../../CAREUI/interactive/FiltersSlideover"; import CountBlock from "../../CAREUI/display/Count"; import ExportMenu from "../Common/Export"; @@ -23,9 +17,8 @@ import useQuery from "../../Utils/request/useQuery"; import routes from "../../Redux/api"; import CareIcon from "../../CAREUI/icons/CareIcon"; -const Loading = lazy(() => import("../Common/Loading")); - -export const HospitalList = () => { +import Loading from "@/Components/Common/Loading"; +export const FacilityList = () => { const { qParams, updateQuery, @@ -152,7 +145,7 @@ export const HospitalList = () => { return ( { exportItems={[ { label: "Facilities", - action: downloadFacility, + route: routes.downloadFacility, filePrefix: "facilities", }, { label: "Capacities", - action: downloadFacilityCapacity, + route: routes.downloadFacilityCapacity, filePrefix: "capacities", }, { label: "Doctors", - action: downloadFacilityDoctors, + route: routes.downloadFacilityDoctors, filePrefix: "doctors", }, { label: "Triages", - action: downloadFacilityTriage, + route: routes.downloadFacilityTriage, filePrefix: "triages", }, ]} diff --git a/src/Components/Facility/FacilityUsers.tsx b/src/Components/Facility/FacilityUsers.tsx index 2572731f720..92cc4b35d10 100644 --- a/src/Components/Facility/FacilityUsers.tsx +++ b/src/Components/Facility/FacilityUsers.tsx @@ -1,4 +1,4 @@ -import { lazy, useState } from "react"; +import { useState } from "react"; import CountBlock from "../../CAREUI/display/Count"; import CareIcon from "../../CAREUI/icons/CareIcon"; import { RESULTS_PER_PAGE_LIMIT } from "../../Common/constants"; @@ -17,8 +17,7 @@ import useQuery from "../../Utils/request/useQuery"; import { UserFacilities } from "../Users/ManageUsers"; import { useTranslation } from "react-i18next"; -const Loading = lazy(() => import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; export default function FacilityUsers(props: any) { const { t } = useTranslation(); const { facilityId } = props; diff --git a/src/Components/Facility/InventoryList.tsx b/src/Components/Facility/InventoryList.tsx index fe7e846630d..c7f11f6d3bc 100644 --- a/src/Components/Facility/InventoryList.tsx +++ b/src/Components/Facility/InventoryList.tsx @@ -1,4 +1,4 @@ -import { useState, lazy } from "react"; +import { useState } from "react"; import { navigate } from "raviger"; import Pagination from "../Common/Pagination"; import { classNames } from "../../Utils/utils"; @@ -7,8 +7,7 @@ import ButtonV2 from "../Common/components/ButtonV2"; import { NonReadOnlyUsers } from "../../Utils/AuthorizeFor"; import useQuery from "../../Utils/request/useQuery"; import routes from "../../Redux/api"; -const Loading = lazy(() => import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; export default function InventoryList(props: any) { const { facilityId }: any = props; let inventoryItem: any = null; diff --git a/src/Components/Facility/InventoryLog.tsx b/src/Components/Facility/InventoryLog.tsx index b8b1ed71e31..0450801f4b0 100644 --- a/src/Components/Facility/InventoryLog.tsx +++ b/src/Components/Facility/InventoryLog.tsx @@ -1,4 +1,4 @@ -import { useState, lazy } from "react"; +import { useState } from "react"; import * as Notification from "../../Utils/Notifications.js"; import Pagination from "../Common/Pagination"; @@ -10,8 +10,7 @@ import useQuery from "../../Utils/request/useQuery.js"; import routes from "../../Redux/api.js"; import request from "../../Utils/request/request.js"; -const Loading = lazy(() => import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; export default function InventoryLog(props: any) { const { facilityId, inventoryId }: any = props; const [saving, setSaving] = useState(false); diff --git a/src/Components/Facility/Investigations/InvestigationTable.tsx b/src/Components/Facility/Investigations/InvestigationTable.tsx index 18c64108b6f..84198eea50c 100644 --- a/src/Components/Facility/Investigations/InvestigationTable.tsx +++ b/src/Components/Facility/Investigations/InvestigationTable.tsx @@ -5,8 +5,10 @@ import TextFormField from "../../Form/FormFields/TextFormField"; import { classNames } from "../../../Utils/utils"; import { useState } from "react"; import { useTranslation } from "react-i18next"; +import { navigate } from "raviger"; const TestRow = ({ data, i, onChange, showForm, value, isChanged }: any) => { + const { t } = useTranslation(); return ( { )} x-description="Even row" > - - {data?.investigation_object?.name || "---"} + +

    + {data?.investigation_object.name || "---"} +

    +

    + + {t("investigations__range")}:{" "} + {data?.investigation_object.min_value || ""} + {data?.investigation_object.min_value ? " - " : ""} + {data?.investigation_object.max_value || ""} + +

    +

    + {t("investigations__unit")}:{" "} + {data?.investigation_object.unit || "---"} +

    - + {showForm ? ( data?.investigation_object?.investigation_type === "Choice" ? ( { value || "---" )} - - {data.investigation_object.unit || "---"} - - - {data.investigation_object.min_value || "---"} - - - {data.investigation_object.max_value || "---"} - - + {data.investigation_object.ideal_value || "---"} ); }; +const HeadingRow = () => { + const { t } = useTranslation(); + const commonClass = + "px-6 py-3 text-xs font-semibold uppercase tracking-wider text-secondary-800"; + return ( + + + {t("investigations__name")} + + + {t("investigations__result")} + + + {t("investigations__ideal_value")} + + + ); +}; + export const InvestigationTable = ({ title, data, @@ -70,6 +108,10 @@ export const InvestigationTable = ({ changedFields, handleUpdateCancel, handleSave, + facilityId, + patientId, + consultationId, + sessionId, }: any) => { const { t } = useTranslation(); const [searchFilter, setSearchFilter] = useState(""); @@ -85,11 +127,9 @@ export const InvestigationTable = ({ return (
    -
    - {title && ( -
    {title}
    - )} -
    +
    + {title &&
    {title}
    } +
    handleSave()} + onClick={() => { + handleSave(); + setShowForm((prev) => !prev); + }} className="my-2 mr-2" > - Save + {t("save")} )} + + navigate( + `/facility/${facilityId}/patient/${patientId}/consultation/${consultationId}/investigation/${sessionId}/print`, + ) + } + > + + {t("print")} +
    setSearchFilter(e.value)} />
    -
    -
    - - - - {["Name", "Value", "Unit", "Min", "Max", "Ideal"].map( - (heading) => ( - - ), - )} +
    +
    - {heading} -
    + + + + + {filterTests.length > 0 ? ( + filterTests.map((t: any, i) => { + const value = + changedFields[t.id]?.notes ?? + changedFields[t.id]?.value ?? + null; + const isChanged = changedFields[t.id]?.initialValue !== value; + return ( + { + const { target, value } = + t?.investigation_object?.investigation_type === "Float" + ? { + target: `${t.id}.value`, + value: Number(e.value) || null, + } + : { + target: `${t.id}.notes`, + value: e.value, + }; + handleValueChange(value, target); + }} + /> + ); + }) + ) : ( + + - - - {filterTests.length > 0 ? ( - filterTests.map((t: any, i) => { - const value = - changedFields[t.id]?.notes ?? - changedFields[t.id]?.value ?? - null; - const isChanged = changedFields[t.id]?.initialValue !== value; - return ( - { - const { target, value } = - t?.investigation_object?.investigation_type === - "Float" - ? { - target: `${t.id}.value`, - value: Number(e.value) || null, - } - : { - target: `${t.id}.notes`, - value: e.value, - }; - handleValueChange(value, target); - }} - className="print:text-black" - /> - ); - }) - ) : ( - - - - )} - -
    {t("no_tests_taken")}
    {t("no_tests_taken")}
    -
    + )} + +
    ); diff --git a/src/Components/Facility/Investigations/InvestigationsPrintPreview.tsx b/src/Components/Facility/Investigations/InvestigationsPrintPreview.tsx new file mode 100644 index 00000000000..97a5375fa28 --- /dev/null +++ b/src/Components/Facility/Investigations/InvestigationsPrintPreview.tsx @@ -0,0 +1,138 @@ +import * as _ from "lodash-es"; +import { lazy } from "react"; +import routes from "../../../Redux/api"; +import useQuery from "../../../Utils/request/useQuery"; +import PrintPreview from "../../../CAREUI/misc/PrintPreview"; +import { useTranslation } from "react-i18next"; +const Loading = lazy(() => import("../../Common/Loading")); +import { Investigation } from "./Reports/types"; +import careConfig from "@careConfig"; + +const InvestigationEntry = ({ + investigation, +}: { + investigation: Investigation; +}) => { + const { t } = useTranslation(); + return ( + + +

    + {investigation.investigation_object.name || "---"} +

    +

    + + {t("investigations__range")}:{" "} + {investigation.investigation_object.min_value || ""} + {investigation.investigation_object.min_value ? " - " : ""} + {investigation.investigation_object.max_value || ""} + +

    +

    + {t("investigations__unit")}:{" "} + {investigation.investigation_object.unit || "---"} +

    + + + {investigation.value || "---"} + + + {investigation.investigation_object.ideal_value || "---"} + + + ); +}; + +const InvestigationsPreviewTable = ({ + investigations, +}: { + investigations?: Investigation[]; +}) => { + const { t } = useTranslation(); + if (!investigations) { + return ( + + {t("no_tests_taken")} + + ); + } + + return ( + + + + + + + + + + + {investigations.map((item) => ( + + ))} + +
    + {t("investigations")} +
    + {t("investigations__name")} + {t("investigations__result")} {t("investigations__ideal_value")}
    + ); +}; + +interface InvestigationPrintPreviewProps { + consultationId: string; + patientId: string; + sessionId: string; + facilityId: string; +} +export default function InvestigationPrintPreview( + props: InvestigationPrintPreviewProps, +) { + const { consultationId, patientId, sessionId } = props; + const { t } = useTranslation(); + const { loading: investigationLoading, data: investigations } = useQuery( + routes.getInvestigation, + { + pathParams: { + consultation_external_id: consultationId, + }, + query: { + session: sessionId, + }, + }, + ); + + const { data: patient, loading: patientLoading } = useQuery( + routes.getPatient, + { + pathParams: { id: patientId }, + }, + ); + + const { data: consultation } = useQuery(routes.getConsultation, { + pathParams: { id: consultationId }, + prefetch: !!consultationId, + }); + + if (patientLoading || investigationLoading) { + return ; + } + return ( + +
    +

    {consultation?.facility_name}

    + care logo +
    + +
    + ); +} diff --git a/src/Components/Facility/Investigations/Reports/ReportTable.tsx b/src/Components/Facility/Investigations/Reports/ReportTable.tsx index 23a6057c580..5640fd04ea4 100644 --- a/src/Components/Facility/Investigations/Reports/ReportTable.tsx +++ b/src/Components/Facility/Investigations/Reports/ReportTable.tsx @@ -114,7 +114,7 @@ const ReportTable: FC = ({ > Name - {sessions.map((session) => ( + {sessions.map((session: any) => ( { const sessions = _.chain(data) - .map((value) => { + .map((value: any) => { return { ...value.session_object, facility_name: value.consultation_object?.facility_name, @@ -17,9 +17,9 @@ export const transformData = _.memoize((data: InvestigationResponse) => { .groupBy("investigation_object.external_id") .values() .value(); - const reqData = groupByInvestigation.map((value) => { + const reqData = groupByInvestigation.map((value: any) => { const sessionValues = Array.from({ length: sessions.length }); - value.forEach((val) => { + value.forEach((val: any) => { const sessionIndex = _.findIndex(sessions, [ "session_external_id", val.session_object.session_external_id, diff --git a/src/Components/Facility/Investigations/ShowInvestigation.tsx b/src/Components/Facility/Investigations/ShowInvestigation.tsx index 7477c64f899..85f2fb1fd7d 100644 --- a/src/Components/Facility/Investigations/ShowInvestigation.tsx +++ b/src/Components/Facility/Investigations/ShowInvestigation.tsx @@ -1,15 +1,13 @@ -import _, { set } from "lodash-es"; -import { navigate } from "raviger"; -import { lazy, useCallback, useReducer } from "react"; +import * as _ from "lodash-es"; +import { useCallback, useReducer } from "react"; import routes from "../../../Redux/api"; import * as Notification from "../../../Utils/Notifications.js"; import request from "../../../Utils/request/request"; import useQuery from "../../../Utils/request/useQuery"; import InvestigationTable from "./InvestigationTable"; -import PrintPreview from "../../../CAREUI/misc/PrintPreview"; import { useTranslation } from "react-i18next"; -const Loading = lazy(() => import("../../Common/Loading")); - +import Page from "../../Common/components/Page"; +import Loading from "@/Components/Common/Loading"; const initialState = { changedFields: {}, initialValues: {}, @@ -41,7 +39,7 @@ interface ShowInvestigationProps { facilityId: string; } export default function ShowInvestigation(props: ShowInvestigationProps) { - const { consultationId, patientId, sessionId } = props; + const { consultationId, patientId, sessionId, facilityId } = props; const { t } = useTranslation(); const [state, dispatch] = useReducer(updateFormReducer, initialState); const { loading: investigationLoading } = useQuery(routes.getInvestigation, { @@ -91,7 +89,7 @@ export default function ShowInvestigation(props: ShowInvestigationProps) { const handleValueChange = (value: any, name: string) => { const changedFields = { ...state.changedFields }; - set(changedFields, name, value); + _.set(changedFields, name, value); dispatch({ type: "set_changed_fields", changedFields }); }; @@ -117,9 +115,28 @@ export default function ShowInvestigation(props: ShowInvestigationProps) { Notification.Success({ msg: "Investigation Updated successfully!", }); - navigate( - `/facility/${props.facilityId}/patient/${props.patientId}/consultation/${props.consultationId}`, + const changedDict: any = {}; + Object.values(state.changedFields).forEach( + (field: any) => + (changedDict[field.id] = { + id: field.id, + value: field?.value || null, + notes: field?.notes || null, + }), + ); + const changedInitialValues: any = {}; + Object.values(state.initialValues).forEach( + (field: any) => + (changedInitialValues[field.id] = { + ...field, + value: changedDict[field.id].value, + notes: changedDict[field.id].notes, + }), ); + dispatch({ + type: "set_initial_values", + initialValues: changedInitialValues, + }); } return; } else { @@ -146,22 +163,28 @@ export default function ShowInvestigation(props: ShowInvestigationProps) { return ; } return ( - - - +
    + +
    + ); } diff --git a/src/Components/Facility/Investigations/ViewInvestigations.tsx b/src/Components/Facility/Investigations/ViewInvestigations.tsx index 96156fa5d74..e889fac4c01 100644 --- a/src/Components/Facility/Investigations/ViewInvestigations.tsx +++ b/src/Components/Facility/Investigations/ViewInvestigations.tsx @@ -1,14 +1,14 @@ import { navigate } from "raviger"; import ReportTable from "./Reports/ReportTable"; -import { lazy } from "react"; import { useTranslation } from "react-i18next"; import { formatDateTime } from "../../../Utils/utils"; import { InvestigationResponse } from "./Reports/types"; import { InvestigationSessionType } from "./investigationsTab"; +import ButtonV2 from "../../Common/components/ButtonV2"; +import CareIcon from "../../../CAREUI/icons/CareIcon"; -const Loading = lazy(() => import("../../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; export default function ViewInvestigations(props: { isLoading: boolean; investigations: InvestigationResponse; @@ -58,16 +58,31 @@ export default function ViewInvestigations(props: {
    {formatDateTime(investigationSession.session_created_date)}
    - +
    + + navigate( + `/facility/${facilityId}/patient/${patientId}/consultation/${consultationId}/investigation/${investigationSession.session_external_id}`, + ) + } + ghost + border + > + {t("view")} + + + navigate( + `/facility/${facilityId}/patient/${patientId}/consultation/${consultationId}/investigation/${investigationSession.session_external_id}/print`, + ) + } + ghost + border + > + + {t("print")} + +
    ); })} diff --git a/src/Components/Facility/Investigations/index.tsx b/src/Components/Facility/Investigations/index.tsx index b64e2995e19..df93c7945c6 100644 --- a/src/Components/Facility/Investigations/index.tsx +++ b/src/Components/Facility/Investigations/index.tsx @@ -1,5 +1,5 @@ import { navigate, useQueryParams } from "raviger"; -import { lazy, useEffect, useReducer, useState } from "react"; +import { useEffect, useReducer, useState } from "react"; import * as Notification from "../../../Utils/Notifications.js"; import { TestTable } from "./Table"; @@ -12,8 +12,7 @@ import { Submit } from "../../Common/components/ButtonV2"; import Page from "../../Common/components/Page"; import AutocompleteMultiSelectFormField from "../../Form/FormFields/AutocompleteMultiselect"; -const Loading = lazy(() => import("../../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; const initialState = { form: {}, }; diff --git a/src/Components/Facility/LocationManagement.tsx b/src/Components/Facility/LocationManagement.tsx index 83bf335aff2..2223aa2e8fd 100644 --- a/src/Components/Facility/LocationManagement.tsx +++ b/src/Components/Facility/LocationManagement.tsx @@ -1,4 +1,4 @@ -import { lazy, useState } from "react"; +import { useState } from "react"; import ButtonV2, { Cancel } from "../Common/components/ButtonV2"; import AuthorizeFor, { NonReadOnlyUsers } from "../../Utils/AuthorizeFor"; import CareIcon from "../../CAREUI/icons/CareIcon"; @@ -13,9 +13,10 @@ import ConfirmDialog from "../Common/ConfirmDialog"; import DialogModal from "../Common/Dialog"; import Uptime from "../Common/Uptime"; import useAuthUser from "../../Common/hooks/useAuthUser"; +import useQuery from "../../Utils/request/useQuery"; -const Loading = lazy(() => import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; +import { cn } from "@/lib/utils"; interface Props { facilityId: string; } @@ -87,14 +88,14 @@ export default function LocationManagement({ facilityId }: Props) { id="add-new-location" href={`/facility/${facilityId}/location/add`} authorizeFor={NonReadOnlyUsers} - className="mr-4 hidden lg:block" + className="hidden lg:block" > Add New Location } > -
    +
    - className="my-8 grid gap-3 @4xl:grid-cols-2 @6xl:grid-cols-3 @[100rem]:grid-cols-4 lg:mx-8"> + className="my-8 grid gap-3 @4xl:grid-cols-2 @6xl:grid-cols-3 @[100rem]:grid-cols-4"> {(item) => ( ( -
    -
    -
    -
    -

    - {name} -

    -
    -

    - {location_type} +}: LocationProps) => { + const bedsQuery = useQuery(routes.listFacilityBeds, { + query: { + facility: facilityId, + location: id, + }, + }); + + const totalBeds = bedsQuery.data?.count; + + return ( +

    +
    +
    +
    +

    + {name}

    +
    +

    + {location_type} +

    +
    -
    -

    - {description || "-"} -

    -

    - Middleware Address: -

    -

    - {middleware_address || "-"} -

    - - Middleware Uptime -

    - } - centerInfoPanel - /> -
    - - - - Manage Beds - -
    -
    - - - Edit - -
    -
    - - setShowDeletePopup({ open: true, name: name ?? "", id: id ?? "" }) - } + {description || "-"} +

    +

    + Middleware Address: +

    +

    - - Delete - + {middleware_address || "-"} +

    + + Middleware Uptime +

    + } + centerInfoPanel + />
    -
    -
    - - + + Manage Beds + + + {totalBeds ?? "--"} + + +
    +
    + + + Edit + +
    +
    + + setShowDeletePopup({ open: true, name: name ?? "", id: id ?? "" }) + } + > + + Delete + +
    +
    + +
    + + +
    -
    -); + ); +}; diff --git a/src/Components/Facility/MinQuantityList.tsx b/src/Components/Facility/MinQuantityList.tsx index 528f03cbac7..eeff6a7fed4 100644 --- a/src/Components/Facility/MinQuantityList.tsx +++ b/src/Components/Facility/MinQuantityList.tsx @@ -1,4 +1,4 @@ -import { useState, lazy } from "react"; +import { useState } from "react"; import Pagination from "../Common/Pagination"; import { MinQuantityRequiredModal } from "./MinQuantityRequiredModal"; import ButtonV2 from "../Common/components/ButtonV2"; @@ -6,8 +6,7 @@ import { NonReadOnlyUsers } from "../../Utils/AuthorizeFor"; import Page from "../Common/components/Page"; import useQuery from "../../Utils/request/useQuery"; import routes from "../../Redux/api"; -const Loading = lazy(() => import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; export default function MinQuantityList(props: any) { const { facilityId }: any = props; let inventoryItem: any = null; diff --git a/src/Components/Facility/TriageForm.tsx b/src/Components/Facility/TriageForm.tsx index 1aa0537b53c..4413d9a48db 100644 --- a/src/Components/Facility/TriageForm.tsx +++ b/src/Components/Facility/TriageForm.tsx @@ -2,7 +2,7 @@ import ConfirmDialog from "../Common/ConfirmDialog"; import Card from "../../CAREUI/display/Card"; import CareIcon from "../../CAREUI/icons/CareIcon"; -import { useReducer, useState, lazy } from "react"; +import { useReducer, useState } from "react"; import * as Notification from "../../Utils/Notifications.js"; import TextFormField from "../Form/FormFields/TextFormField"; import { PatientStatsModel } from "./models"; @@ -10,7 +10,7 @@ import { Cancel, Submit } from "../Common/components/ButtonV2"; import useAppHistory from "../../Common/hooks/useAppHistory"; import DateFormField from "../Form/FormFields/DateFormField"; import { FieldChangeEvent } from "../Form/FormFields/Utils"; -const Loading = lazy(() => import("../Common/Loading")); +import Loading from "@/Components/Common/Loading"; import Page from "../Common/components/Page"; import dayjs from "dayjs"; import { dateQueryString, scrollTo } from "../../Utils/utils"; diff --git a/src/Components/Facility/models.tsx b/src/Components/Facility/models.tsx index 97d81674658..1be0472c1c3 100644 --- a/src/Components/Facility/models.tsx +++ b/src/Components/Facility/models.tsx @@ -5,8 +5,10 @@ import { ConsultationSuggestionValue, DISCHARGE_REASONS, PATIENT_NOTES_THREADS, + SHIFTING_CHOICES_PEACETIME, UserRole, } from "../../Common/constants"; +import { FeatureFlag } from "../../Utils/featureFlags"; import { ConsultationDiagnosis, CreateDiagnosis } from "../Diagnosis/types"; import { AssignedToObjectModel, @@ -14,12 +16,13 @@ import { DailyRoundsModel, FacilityNameModel, FileUploadModel, + PatientModel, } from "../Patient/models"; import { EncounterSymptom } from "../Symptoms/types"; +import { UserBareMinimum, UserModel } from "../Users/models"; import { InvestigationType } from "../Common/prescription-builder/InvestigationBuilder"; import { ProcedureType } from "../Common/prescription-builder/ProcedureBuilder"; import { RouteToFacility } from "../Common/RouteToFacilitySelect"; -import { UserBareMinimum } from "../Users/models"; export interface LocalBodyModel { id: number; @@ -80,11 +83,12 @@ export interface FacilityModel { local_body?: number; ward?: number; pincode?: string; + facility_flags?: FeatureFlag[]; latitude?: string; longitude?: string; kasp_empanelled?: boolean; - patient_count?: string; - bed_count?: string; + patient_count?: number; + bed_count?: number; } export enum SpokeRelationship { @@ -674,3 +678,50 @@ export type PatientTransferResponse = { date_of_birth: string; facility_object: BaseFacilityModel; }; + +export interface ShiftingModel { + assigned_facility: string; + assigned_facility_external: string | null; + assigned_facility_object: FacilityModel; + created_date: string; + emergency: boolean; + external_id: string; + id: string; + modified_date: string; + origin_facility_object: FacilityModel; + patient: string; + patient_object: PatientModel; + shifting_approving_facility_object: FacilityModel | null; + status: (typeof SHIFTING_CHOICES_PEACETIME)[number]["text"]; + assigned_to_object?: UserModel; +} + +export interface ResourceModel { + approving_facility: string | null; + approving_facility_object: FacilityModel | null; + assigned_facility: string | null; + assigned_facility_object: FacilityModel | null; + assigned_quantity: number; + assigned_to: string | null; + assigned_to_object: UserModel | null; + category: string; + created_by: number; + created_by_object: UserModel; + created_date: string; + emergency: boolean; + id: string; + is_assigned_to_user: boolean; + last_edited_by: number; + last_edited_by_object: UserModel; + modified_date: string; + origin_facility: string; + origin_facility_object: FacilityModel; + priority: number | null; + reason: string; + refering_facility_contact_name: string; + refering_facility_contact_number: string; + requested_quantity: number; + status: string; + sub_category: string; + title: string; +} diff --git a/src/Components/Form/Form.tsx b/src/Components/Form/Form.tsx index fccc579286c..4bf4bd22d01 100644 --- a/src/Components/Form/Form.tsx +++ b/src/Components/Form/Form.tsx @@ -13,7 +13,6 @@ type Props = { className?: string; defaults: T; asyncGetDefaults?: (() => Promise) | false; - onlyChild?: boolean; validate?: (form: T) => FormErrors; onSubmit: (form: T) => Promise | void>; onCancel?: () => void; @@ -23,6 +22,7 @@ type Props = { cancelLabel?: string; onDraftRestore?: (newState: FormState) => void; children: (props: FormContextValue) => React.ReactNode; + hideRestoreDraft?: boolean; }; const Form = ({ @@ -75,7 +75,7 @@ const Form = ({ ({ props.onDraftRestore?.(newState); }} formData={state.form} - /> - ) => { - return { - name, - id: name, - onChange: ({ name, value }: FieldChangeEvent) => - dispatch({ - type: "set_field", - name, - value, - error: validate?.(value), - }), - value: state.form[name], - error: state.errors[name], - disabled, - }; - }} + hidden={props.hideRestoreDraft} > - {props.onlyChild ? ( - {props.children} - ) : ( - <> -
    - {props.children} -
    -
    - - -
    - - )} -
    + ) => { + return { + name, + id: name, + onChange: ({ name, value }: FieldChangeEvent) => + dispatch({ + type: "set_field", + name, + value, + error: validate?.(value), + }), + value: state.form[name], + error: state.errors[name], + disabled, + }; + }} + > +
    + {props.children} +
    +
    + + +
    +
    + ); }; diff --git a/src/Components/Kanban/Board.tsx b/src/Components/Kanban/Board.tsx new file mode 100644 index 00000000000..d2ab5da998f --- /dev/null +++ b/src/Components/Kanban/Board.tsx @@ -0,0 +1,190 @@ +import { + DragDropContext, + Draggable, + Droppable, + OnDragEndResponder, +} from "@hello-pangea/dnd"; +import { ReactNode, RefObject, useEffect, useRef, useState } from "react"; +import { QueryRoute } from "../../Utils/request/types"; +import { QueryOptions } from "../../Utils/request/useQuery"; +import CareIcon from "../../CAREUI/icons/CareIcon"; +import request from "../../Utils/request/request"; +import { useTranslation } from "react-i18next"; + +interface KanbanBoardProps { + title?: ReactNode; + onDragEnd: OnDragEndResponder; + sections: { + id: string; + title: ReactNode; + fetchOptions: ( + id: string, + ...args: unknown[] + ) => { + route: QueryRoute; + options?: QueryOptions; + }; + }[]; + itemRender: (item: T) => ReactNode; +} + +export default function KanbanBoard( + props: KanbanBoardProps, +) { + const board = useRef(null); + + return ( +
    +
    +
    {props.title}
    +
    + {[0, 1].map((button, i) => ( + + ))} +
    +
    + +
    +
    + {props.sections.map((section, i) => ( + + key={i} + section={section} + itemRender={props.itemRender} + boardRef={board} + /> + ))} +
    +
    +
    +
    + ); +} + +export function KanbanSection( + props: Omit, "sections" | "onDragEnd"> & { + section: KanbanBoardProps["sections"][number]; + boardRef: RefObject; + }, +) { + const { section } = props; + const [offset, setOffset] = useState(0); + const [pages, setPages] = useState([]); + const [fetchingNextPage, setFetchingNextPage] = useState(false); + const [hasMore, setHasMore] = useState(true); + const [totalCount, setTotalCount] = useState(); + + const options = section.fetchOptions(section.id); + const sectionRef = useRef(null); + const defaultLimit = 14; + const { t } = useTranslation(); + + // should be replaced with useInfiniteQuery when we move over to react query + + const fetchNextPage = async (refresh: boolean = false) => { + if (!refresh && (fetchingNextPage || !hasMore)) return; + if (refresh) setPages([]); + const offsetToUse = refresh ? 0 : offset; + setFetchingNextPage(true); + const res = await request(options.route, { + ...options.options, + query: { ...options.options?.query, offsetToUse, limit: defaultLimit }, + }); + const newPages = refresh ? [] : [...pages]; + const page = Math.floor(offsetToUse / defaultLimit); + if (res.error) return; + newPages[page] = (res.data as any).results; + setPages(newPages); + setHasMore(!!(res.data as any)?.next); + setTotalCount((res.data as any)?.count); + setOffset(offsetToUse + defaultLimit); + setFetchingNextPage(false); + }; + + const items = pages.flat(); + + useEffect(() => { + const onBoardReachEnd = async () => { + const sectionElementHeight = + sectionRef.current?.getBoundingClientRect().height; + const scrolled = props.boardRef.current?.scrollTop; + // if user has scrolled 3/4th of the current items + if ( + scrolled && + sectionElementHeight && + scrolled > sectionElementHeight * (3 / 4) + ) { + fetchNextPage(); + } + }; + + props.boardRef.current?.addEventListener("scroll", onBoardReachEnd); + return () => + props.boardRef.current?.removeEventListener("scroll", onBoardReachEnd); + }, [props.boardRef, fetchingNextPage, hasMore]); + + useEffect(() => { + fetchNextPage(true); + }, [props.section]); + + return ( + + {(provided) => ( +
    +
    +
    +
    {section.title}
    +
    + + {typeof totalCount === "undefined" ? "..." : totalCount} + +
    +
    +
    +
    + {!fetchingNextPage && totalCount === 0 && ( +
    + {t("no_results_found")} +
    + )} + {items + .filter((item) => item) + .map((item, i) => ( + + {(provided) => ( +
    + {props.itemRender(item)} +
    + )} +
    + ))} + {fetchingNextPage && ( +
    + )} +
    +
    + )} + + ); +} diff --git a/src/Components/LogUpdate/Sections/PressureSore/PressureSore.tsx b/src/Components/LogUpdate/Sections/PressureSore/PressureSore.tsx index a56457ef257..63970d4c25c 100644 --- a/src/Components/LogUpdate/Sections/PressureSore/PressureSore.tsx +++ b/src/Components/LogUpdate/Sections/PressureSore/PressureSore.tsx @@ -14,6 +14,7 @@ import { IPressureSore } from "../../../Patient/models"; import { Error } from "../../../../Utils/Notifications"; import { classNames, getValueDescription } from "../../../../Utils/utils"; import { calculatePushScore } from "./utils"; +import { useTranslation } from "react-i18next"; const PressureSore = ({ log, onChange, readonly }: LogUpdateSectionProps) => { const value = log.pressure_sore ?? []; @@ -104,6 +105,8 @@ const RegionEditor = (props: RegionEditorProps) => { const isReadOnly = !props.onSave; + const { t } = useTranslation(); + return ( {
    { onChange={(e) => update({ width: parseFloat(e.value) })} /> { - const bp = log.bp ?? {}; + const bp = { systolic: log.bp?.systolic, diastolic: log.bp?.diastolic }; bp[event.name as keyof BloodPressure] = event.value; onChange({ bp: Object.values(bp).filter(Boolean).length ? bp : undefined, diff --git a/src/Components/Medicine/ManagePrescriptions.tsx b/src/Components/Medicine/ManagePrescriptions.tsx index 8409e721779..f47ed7d8045 100644 --- a/src/Components/Medicine/ManagePrescriptions.tsx +++ b/src/Components/Medicine/ManagePrescriptions.tsx @@ -10,24 +10,22 @@ export default function ManagePrescriptions() { const { goBack } = useAppHistory(); return ( - - - Print - - } - > +
    -

    - {t("prescription_medications")} -

    +
    +

    + {t("prescription_medications")} +

    + + + {t("print")} + +
    diff --git a/src/Components/Medicine/MedicinePrescriptionSummary.tsx b/src/Components/Medicine/MedicinePrescriptionSummary.tsx index 7e0ea3ee244..929c70d7e59 100644 --- a/src/Components/Medicine/MedicinePrescriptionSummary.tsx +++ b/src/Components/Medicine/MedicinePrescriptionSummary.tsx @@ -2,14 +2,12 @@ import MedicineRoutes from "../Medicine/routes"; import useQuery from "../../Utils/request/useQuery"; import DialogModal from "../Common/Dialog"; import { useState } from "react"; -import { lazy } from "react"; import Timeline, { TimelineNode } from "../../CAREUI/display/Timeline"; import { MedibaseMedicine, Prescription } from "../Medicine/models"; import { useTranslation } from "react-i18next"; import { humanizeStrings } from "../../Utils/utils"; -const Loading = lazy(() => import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; interface MedicinePrescriptionSummaryProps { consultation: string; } diff --git a/src/Components/Medicine/PrescriptionBuilder.tsx b/src/Components/Medicine/PrescriptionBuilder.tsx index a65f9dd9a62..18efa27ee08 100644 --- a/src/Components/Medicine/PrescriptionBuilder.tsx +++ b/src/Components/Medicine/PrescriptionBuilder.tsx @@ -149,5 +149,9 @@ export default function PrescriptionBuilder({ const DefaultPrescription: Partial = { dosage_type: "REGULAR", + route: "ORAL", +}; +const DefaultPRNPrescription: Partial = { + dosage_type: "PRN", + route: "ORAL", }; -const DefaultPRNPrescription: Partial = { dosage_type: "PRN" }; diff --git a/src/Components/Medicine/PrescriptionDetailCard.tsx b/src/Components/Medicine/PrescriptionDetailCard.tsx index 12680f37db8..4f84238afcf 100644 --- a/src/Components/Medicine/PrescriptionDetailCard.tsx +++ b/src/Components/Medicine/PrescriptionDetailCard.tsx @@ -226,7 +226,7 @@ export default function PrescriptionDetailCard({ {prescription.notes && ( - + {prescription.notes} )} diff --git a/src/Components/Notifications/NoticeBoard.tsx b/src/Components/Notifications/NoticeBoard.tsx index eb3455ce44c..689478fd93b 100644 --- a/src/Components/Notifications/NoticeBoard.tsx +++ b/src/Components/Notifications/NoticeBoard.tsx @@ -53,7 +53,7 @@ export const NoticeBoard = () => { if (loading) return ; return ( - +
    {notices}
    ); diff --git a/src/Components/Notifications/NotificationsList.tsx b/src/Components/Notifications/NotificationsList.tsx index 2de3ae7922c..30c380fe9a6 100644 --- a/src/Components/Notifications/NotificationsList.tsx +++ b/src/Components/Notifications/NotificationsList.tsx @@ -1,8 +1,8 @@ import { navigate } from "raviger"; -import { useEffect, useState } from "react"; +import { useEffect, useRef, useState } from "react"; import Spinner from "../Common/Spinner"; import { NOTIFICATION_EVENTS } from "../../Common/constants"; -import { Error } from "../../Utils/Notifications.js"; +import { Error, Success, Warn } from "../../Utils/Notifications.js"; import { classNames, formatDateTime } from "../../Utils/utils"; import CareIcon, { IconName } from "../../CAREUI/icons/CareIcon"; import * as Sentry from "@sentry/browser"; @@ -183,6 +183,7 @@ export default function NotificationsList({ const [isSubscribed, setIsSubscribed] = useState(""); const [isSubscribing, setIsSubscribing] = useState(false); const [showUnread, setShowUnread] = useState(false); + const observerRef = useRef(null); const { t } = useTranslation(); useEffect(() => { @@ -194,6 +195,50 @@ export default function NotificationsList({ if (open) document.addEventListener("keydown", handleKeyDown); return () => document.removeEventListener("keydown", handleKeyDown); }, [open]); + useEffect(() => { + const observer = new IntersectionObserver( + (entries) => { + if (entries[0].isIntersecting && data.length < totalCount) { + setOffset((prevOffset) => prevOffset + RESULT_LIMIT); + } + }, + { threshold: 1.0 }, + ); + + if (observerRef.current) { + observer.observe(observerRef.current); + } + + return () => { + if (observerRef.current) { + observer.unobserve(observerRef.current); + } + }; + }, [data, totalCount]); + useEffect(() => { + let intervalId: ReturnType; + if (isSubscribing) { + const checkNotificationPermission = () => { + if (Notification.permission === "denied") { + Warn({ + msg: t("notification_permission_denied"), + }); + setIsSubscribing(false); + clearInterval(intervalId); + } else if (Notification.permission === "granted") { + Success({ + msg: t("notification_permission_granted"), + }); + setIsSubscribing(false); + clearInterval(intervalId); + } + }; + + checkNotificationPermission(); + intervalId = setInterval(checkNotificationPermission, 1000); + } + return () => clearInterval(intervalId); + }, [isSubscribing]); const intialSubscriptionState = async () => { try { @@ -350,7 +395,15 @@ export default function NotificationsList({ }) .then((res) => { if (res && res.data) { - setData(res.data.results); + setData((prev) => { + const newNotifications = res?.data?.results || []; + const allNotifications = + offset === 0 ? newNotifications : [...prev, ...newNotifications]; + const uniqueNotifications = Array.from( + new Set(allNotifications.map((n) => n.id)), + ).map((id) => allNotifications.find((n) => n.id === id)); + return uniqueNotifications; + }); setUnreadCount( res.data.results?.reduce( (acc: number, result: any) => acc + (result.read_at ? 0 : 1), @@ -367,7 +420,9 @@ export default function NotificationsList({ }); intialSubscriptionState(); }, [reload, open, offset, eventFilter, isSubscribed]); - + useEffect(() => { + setOffset(0); + }, [eventFilter, showUnread]); if (!offset && isLoading) { manageResults = (
    @@ -390,27 +445,12 @@ export default function NotificationsList({ setShowNotifications={setOpen} /> ))} +
    {isLoading && (
    )} - {!showUnread && - totalCount > RESULT_LIMIT && - offset < totalCount - RESULT_LIMIT && ( -
    - setOffset((prev) => prev + RESULT_LIMIT)} - > - {isLoading ? t("loading") : t("load_more")} - -
    - )} ); } else if (data && data.length === 0) { diff --git a/src/Components/Notifications/ShowPushNotification.tsx b/src/Components/Notifications/ShowPushNotification.tsx index 2d2faa5ff5f..ca465f98df7 100644 --- a/src/Components/Notifications/ShowPushNotification.tsx +++ b/src/Components/Notifications/ShowPushNotification.tsx @@ -1,9 +1,8 @@ -import { DetailRoute } from "../../Routers/types"; import useQuery from "../../Utils/request/useQuery"; import routes from "../../Redux/api"; import { NotificationData } from "./models"; -export default function ShowPushNotification({ id }: DetailRoute) { +export default function ShowPushNotification({ id }: { id: string }) { useQuery(routes.getNotificationData, { pathParams: { id }, onResponse(res) { diff --git a/src/Components/Patient/DailyRoundListDetails.tsx b/src/Components/Patient/DailyRoundListDetails.tsx index eb7eda62064..db68bc734d7 100644 --- a/src/Components/Patient/DailyRoundListDetails.tsx +++ b/src/Components/Patient/DailyRoundListDetails.tsx @@ -1,4 +1,4 @@ -import { lazy, useState } from "react"; +import { useState } from "react"; import { DailyRoundsModel } from "./models"; import Page from "../Common/components/Page"; import ButtonV2 from "../Common/components/ButtonV2"; @@ -6,8 +6,7 @@ import { formatDateTime } from "../../Utils/utils"; import useQuery from "../../Utils/request/useQuery"; import routes from "../../Redux/api"; import { useTranslation } from "react-i18next"; -const Loading = lazy(() => import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; export const DailyRoundListDetails = (props: any) => { const { t } = useTranslation(); const { facilityId, patientId, consultationId, id } = props; diff --git a/src/Components/Patient/DailyRounds.tsx b/src/Components/Patient/DailyRounds.tsx index c0cd7fe803c..3e10383e78a 100644 --- a/src/Components/Patient/DailyRounds.tsx +++ b/src/Components/Patient/DailyRounds.tsx @@ -1,7 +1,6 @@ import { navigate } from "raviger"; - import dayjs from "dayjs"; -import { lazy, useCallback, useEffect, useState } from "react"; +import { useCallback, useEffect, useState } from "react"; import { APPETITE_CHOICES, BLADDER_DRAINAGE_CHOICES, @@ -58,8 +57,7 @@ import { scrollTo } from "../../Utils/utils"; import { ICD11DiagnosisModel } from "../Facility/models"; import NursingCare from "../LogUpdate/Sections/NursingCare"; -const Loading = lazy(() => import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; export const DailyRounds = (props: any) => { const { t } = useTranslation(); const authUser = useAuthUser(); @@ -127,7 +125,6 @@ export const DailyRounds = (props: any) => { return state; } }; - const [state, dispatch] = useAutoSaveReducer( DailyRoundsFormReducer, initialState, @@ -250,7 +247,9 @@ export const DailyRounds = (props: any) => { } return; case "bp": { - const error = state.form.bp && BloodPressureValidator(state.form.bp); + const error = + state.form.bp && BloodPressureValidator(state.form.bp, t); + if (error) { errors.bp = error; invalidForm = true; @@ -259,6 +258,23 @@ export const DailyRounds = (props: any) => { return; } + case "temperature": { + const temperatureInputValue = state.form["temperature"]; + + if ( + temperatureInputValue && + (temperatureInputValue < 95 || temperatureInputValue > 106) + ) { + errors[field] = t("out_of_range_error", { + start: "95°F (35°C)", + end: "106°F (41.1°C)", + }); + invalidForm = true; + scrollTo("temperature"); + } + return; + } + case "investigations": { for (const investigation of state.form.investigations) { if (!investigation.type?.length) { @@ -542,6 +558,7 @@ export const DailyRounds = (props: any) => { >
    { setDiagnosisSuggestions([]); @@ -773,7 +790,6 @@ export const DailyRounds = (props: any) => { /> )} - {["NORMAL", "TELEMEDICINE", "DOCTORS_LOG"].includes( state.form.rounds_type, ) && ( diff --git a/src/Components/Patient/DiagnosesFilter.tsx b/src/Components/Patient/DiagnosesFilter.tsx index 1217e821389..ba58a549dac 100644 --- a/src/Components/Patient/DiagnosesFilter.tsx +++ b/src/Components/Patient/DiagnosesFilter.tsx @@ -68,6 +68,7 @@ export default function DiagnosesFilter(props: Props) { return ( import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; interface IProps { facilityId: string; id: string; diff --git a/src/Components/Patient/ManagePatients.tsx b/src/Components/Patient/ManagePatients.tsx index 7a5b0d28a38..7d49ffdaad1 100644 --- a/src/Components/Patient/ManagePatients.tsx +++ b/src/Components/Patient/ManagePatients.tsx @@ -12,8 +12,7 @@ import { } from "../../Common/constants"; import { FacilityModel, PatientCategory } from "../Facility/models"; import { Link, navigate } from "raviger"; -import { ReactNode, lazy, useEffect, useState } from "react"; -import { getAllPatient } from "../../Redux/actions"; +import { ReactNode, useEffect, useState } from "react"; import { parseOptionId } from "../../Common/utils"; import { AdvancedFilterButton } from "../../CAREUI/interactive/FiltersSlideover"; @@ -53,9 +52,10 @@ import { import { ICD11DiagnosisModel } from "../Diagnosis/types.js"; import { getDiagnosesByIds } from "../Diagnosis/utils.js"; import Tabs from "../Common/components/Tabs.js"; +import request from "../../Utils/request/request.js"; +import { Avatar } from "../Common/Avatar.js"; -const Loading = lazy(() => import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; interface TabPanelProps { children?: ReactNode; dir?: string; @@ -276,13 +276,6 @@ export const PatientManager = () => { !durations.every((x) => x === 0); let managePatients: any = null; - - const exportPatients = (isFiltered: boolean) => { - const filters = { ...params, csv: true, facility: qParams.facility }; - if (!isFiltered) delete filters.is_active; - return () => getAllPatient(filters, "downloadPatients"); - }; - const preventDuplicatePatientsDuetoPolicyId = (data: any) => { // Generate a array which contains imforamation of duplicate patient IDs and there respective linenumbers const lines = data.split("\n"); // Split the data into individual lines @@ -478,7 +471,7 @@ export const PatientManager = () => { let patientList: ReactNode[] = []; if (data?.count) { - patientList = data.results.map((patient: any) => { + patientList = data.results.map((patient) => { let patientUrl = ""; if ( patient.last_consultation && @@ -501,7 +494,7 @@ export const PatientManager = () => { const children = (
    {
    -
    +
    {patient?.last_consultation?.current_bed && patient?.last_consultation?.discharge_date === null ? (
    @@ -548,10 +541,11 @@ export const PatientManager = () => {
    ) : ( -
    - +
    )} @@ -791,7 +785,7 @@ export const PatientManager = () => { return ( { selected={qParams.ordering} onSelect={updateQuery} /> -
    +
    {!isExportAllowed ? ( { @@ -923,7 +917,18 @@ export const PatientManager = () => { exportItems={[ { label: "Export Live patients", - action: exportPatients(true), + action: async () => { + const query = { + ...params, + csv: true, + facility: qParams.facility, + }; + delete qParams.is_active; + const { data } = await request(routes.patientList, { + query, + }); + return data ?? null; + }, parse: preventDuplicatePatientsDuetoPolicyId, }, ]} @@ -962,7 +967,7 @@ export const PatientManager = () => {
    -
    +
    { - console.log(e.value); - setPatientCodeStatus(e.value); - }} + onChange={(e) => setPatientCodeStatus(e.value)} value={ CONSENT_PATIENT_CODE_STATUS_CHOICES.find( (c) => c.id === patientCodeStatus, diff --git a/src/Components/Patient/PatientFilter.tsx b/src/Components/Patient/PatientFilter.tsx index f496a59df6d..ffe75ca8c7e 100644 --- a/src/Components/Patient/PatientFilter.tsx +++ b/src/Components/Patient/PatientFilter.tsx @@ -292,6 +292,7 @@ export default function PatientFilter(props: any) {
    Gender o.text} @@ -304,6 +305,7 @@ export default function PatientFilter(props: any) {
    Category o.text} @@ -407,6 +409,7 @@ export default function PatientFilter(props: any) {
    Telemedicine o.text} @@ -423,6 +426,7 @@ export default function PatientFilter(props: any) {
    Respiratory Support o.text} @@ -455,6 +459,7 @@ export default function PatientFilter(props: any) { <> Review Missed (o === "true" ? "Yes" : "No")} @@ -469,6 +474,7 @@ export default function PatientFilter(props: any) {
    Is Medico-Legal Case @@ -484,6 +490,7 @@ export default function PatientFilter(props: any) { />
    {!props.dischargePage && ( -
    +
    Facility Facility type o.text} @@ -640,6 +648,7 @@ export default function PatientFilter(props: any) { LSG Body
    -
    +
    District import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; export const parseOccupation = (occupation: string | undefined) => { return OCCUPATION_TYPES.find((i) => i.value === occupation)?.text; }; @@ -252,7 +253,7 @@ export const PatientHome = (props: any) => { return ( { {(patientData?.facility != patientData?.last_consultation?.facility || (patientData.is_active && patientData?.last_consultation?.discharge_date)) && ( -
    -
    -
    -

    - - - You have not created a consultation for the patient in{" "} - {patientData.facility_object?.name || "-"} + +

    + +
    + + {t("consultation_not_filed")} + + + + {t("consultation_not_filed_description")} -

    +
    -
    - - navigate( - `/facility/${patientData?.facility}/patient/${id}/consultation`, - ) - } - > - Create Consultation - -
    -
    + + )}
    -
    +
    @@ -382,13 +390,6 @@ export const PatientHome = (props: any) => { )} )} - {patientData.past_travel && ( - - )} {patientData.last_consultation?.is_telemedicine && ( {
    -
    +
    {patientData.review_time && diff --git a/src/Components/Patient/PatientRegister.tsx b/src/Components/Patient/PatientRegister.tsx index 9a9715ba081..21c06043369 100644 --- a/src/Components/Patient/PatientRegister.tsx +++ b/src/Components/Patient/PatientRegister.tsx @@ -25,15 +25,8 @@ import { parsePhoneNumber, scrollTo, } from "../../Utils/utils"; -import { - lazy, - useCallback, - useEffect, - useReducer, - useRef, - useState, -} from "react"; -import { navigate, useQueryParams } from "raviger"; +import { useCallback, useReducer, useRef, useState } from "react"; +import { navigate } from "raviger"; import { statusType, useAbortableEffect } from "../../Common/utils"; import AccordionV2 from "../Common/components/AccordionV2"; @@ -48,7 +41,6 @@ import DialogModal from "../Common/Dialog"; import DuplicatePatientDialog from "../Facility/DuplicatePatientDialog"; import Error404 from "../ErrorPages/404"; import Form from "../Form/Form"; -import { FormContextValue } from "../Form/FormContext.js"; import { HCXPolicyModel } from "../HCX/models"; import HCXPolicyValidator from "../HCX/validators"; import { ILocalBodies } from "../ExternalResult/models.js"; @@ -74,9 +66,11 @@ import useQuery from "../../Utils/request/useQuery.js"; import { useTranslation } from "react-i18next"; import { validatePincode } from "../../Common/validation"; import careConfig from "@careConfig"; +import { Button } from "@/Components/ui/button"; -const Loading = lazy(() => import("../Common/Loading")); -const PageTitle = lazy(() => import("../Common/PageTitle")); +import Loading from "@/Components/Common/Loading"; +import PageTitle from "@/Components/Common/PageTitle"; +import { RestoreDraftButton } from "@/Utils/AutoSave.js"; type PatientForm = PatientModel & PatientMeta & { age?: number; is_postpartum?: boolean }; @@ -193,14 +187,6 @@ export const PatientRegister = (props: PatientRegisterProps) => { title: "", }); const [isLoading, setIsLoading] = useState(false); - const [showImport, setShowImport] = useState<{ - show?: boolean; - field?: FormContextValue | null; - }>({ - show: false, - field: null, - }); - const [careExtId, setCareExtId] = useState(""); const [formField, setFormField] = useState(); const [resetNum, setResetNum] = useState(false); const [isDistrictLoading, setIsDistrictLoading] = useState(false); @@ -218,7 +204,6 @@ export const PatientRegister = (props: PatientRegisterProps) => { patientList: Array; }>({ patientList: [] }); const [patientName, setPatientName] = useState(""); - const [{ extId }, setQuery] = useQueryParams(); const [showLinkAbhaNumberModal, setShowLinkAbhaNumberModal] = useState(false); const [showAutoFilledPincode, setShowAutoFilledPincode] = useState(false); const [insuranceDetails, setInsuranceDetails] = useState( @@ -229,13 +214,6 @@ export const PatientRegister = (props: PatientRegisterProps) => { const [insuranceDetailsError, setInsuranceDetailsError] = useState(); - useEffect(() => { - if (extId && formField) { - setCareExtId(extId); - fetchExtResultData(formField); - } - }, [careExtId, formField]); - const headerText = !id ? "Add Details of Patient" : "Update Patient Details"; const buttonText = !id ? "Add Patient" : "Save Details"; @@ -281,94 +259,6 @@ export const PatientRegister = (props: PatientRegisterProps) => { } }, []); - const parseGenderFromExt = (gender: any, defaultValue: any) => { - switch (gender.toLowerCase()) { - case "m": - return "1"; - case "f": - return "2"; - case "o": - return "3"; - default: - return defaultValue; - } - }; - - const fetchExtResultData = async (field: any) => { - if (!careExtId) return; - const { res, data } = await request(routes.externalResult, { - pathParams: { id: careExtId }, - }); - - if (res?.ok && data) { - field.onChange({ - name: "name", - value: data.name ? data.name : state.form.name, - }); - field.onChange({ - name: "address", - value: data.address ? data.address : state.form.address, - }); - field.onChange({ - name: "permanent_address", - value: data.permanent_address - ? data.permanent_address - : state.form.permanent_address, - }); - field.onChange({ - name: "gender", - value: data.gender - ? parseGenderFromExt(data.gender, state.form.gender) - : state.form.gender, - }); - field.onChange({ - name: "state", - value: data.district_object - ? data.district_object.state - : state.form.state, - }); - field.onChange({ - name: "district", - value: data.district ? data.district : state.form.district, - }); - field.onChange({ - name: "local_body", - value: data.local_body ? data.local_body : state.form.local_body, - }); - field.onChange({ - name: "ward", - value: data.ward ? data.ward : state.form.ward, - }); - field.onChange({ - name: "village", - value: data.village ? data.village : state.form.village, - }); - field.onChange({ - name: "date_of_test", - value: data.sample_collection_date - ? data.sample_collection_date - : state.form.date_of_test, - }); - field.onChange({ - name: "phone_number", - value: data.mobile_number - ? "+91" + data.mobile_number - : state.form.phone_number, - }); - - Promise.all([ - fetchDistricts(data.district_object.state), - fetchLocalBody(String(data.district)), - fetchWards(String(data.local_body)), // Convert data.local_body to a string - duplicateCheck(data.mobile_number), - ]); - setShowImport({ - show: false, - field: null, - }); - } - }; - const fetchData = useCallback( async (status: statusType) => { setIsLoading(true); @@ -1027,1054 +917,937 @@ export const PatientRegister = (props: PatientRegisterProps) => { } return ( -
    - {statusDialog.show && ( - { - handleDialogClose("close"); - setResetNum(true); - }} - /> - )} - {statusDialog.transfer && ( - { - setResetNum(true); - handleDialogClose("close"); - }} - title="Patient Transfer Form" - className="max-w-md md:min-w-[600px]" - > - handleDialogClose("close")} - handleCancel={() => { - setResetNum(true); - handleDialogClose("close"); - }} - facilityId={facilityId} - /> - - )} - { - if (showImport.show) { - setShowImport({ - show: false, - field: null, - }); - return false; - } else { - id - ? navigate(`/facility/${facilityId}/patient/${id}`) - : navigate(`/facility/${facilityId}`); - } - }} - crumbsReplacements={{ - [facilityId]: { name: facilityObject?.name }, - [id ?? "????"]: { name: patientName }, - }} - /> -
    -
    -
    - {" "} - Please enter the correct date of birth for the patient -
    -

    - Each patient in the system is uniquely identifiable by the number - and date of birth. Adding incorrect date of birth can result in - duplication of patient records. -

    -
    - <> - {showAlertMessage.show && ( - goBack()} - onClose={() => goBack()} - variant="primary" - action="Ok" - show + + defaults={id ? state.form : initForm} + validate={validateForm} + onSubmit={handleSubmit} + submitLabel={buttonText} + onCancel={() => goBack()} + className="bg-transparent px-1 py-2 md:px-2" + onDraftRestore={(newState) => { + dispatch({ type: "set_state", state: newState }); + Promise.all([ + fetchDistricts(newState.form.state ?? 0), + fetchLocalBody(newState.form.district?.toString() ?? ""), + fetchWards(newState.form.local_body?.toString() ?? ""), + duplicateCheck(newState.form.phone_number ?? ""), + ]); + }} + noPadding + hideRestoreDraft + > + {(field) => { + if (!formField) setFormField(field); + if (resetNum) { + field("phone_number").onChange({ + name: "phone_number", + value: "+91", + }); + setResetNum(false); + } + return ( +
    + {statusDialog.show && ( + { + handleDialogClose("close"); + setResetNum(true); + }} + /> + )} + {statusDialog.transfer && ( + { + setResetNum(true); + handleDialogClose("close"); + }} + title="Patient Transfer Form" + className="max-w-md md:min-w-[600px]" + > + handleDialogClose("close")} + handleCancel={() => { + setResetNum(true); + handleDialogClose("close"); + }} + facilityId={facilityId} + /> + + )} + { + id + ? navigate(`/facility/${facilityId}/patient/${id}`) + : navigate(`/facility/${facilityId}`); + }} + componentRight={} + crumbsReplacements={{ + [facilityId]: { name: facilityObject?.name }, + [id ?? "????"]: { name: patientName }, + }} /> - )} - {showImport.show && ( -
    -
    -
    - - Enter Care External Results Id - - setCareExtId(e.value)} - error={state.errors.name} - /> +
    +
    +
    + {" "} + Please enter the correct date of birth for the patient
    - {" "} - +

    + Each patient in the system is uniquely identifiable by the + number and date of birth. Adding incorrect date of birth can + result in duplication of patient records. +

    -
    - )} - <> -
    - - defaults={id ? state.form : initForm} - validate={validateForm} - onSubmit={handleSubmit} - submitLabel={buttonText} - onCancel={() => navigate("/facility")} - className="bg-transparent px-1 py-2 md:px-2" - onDraftRestore={(newState) => { - dispatch({ type: "set_state", state: newState }); - Promise.all([ - fetchDistricts(newState.form.state ?? 0), - fetchLocalBody(newState.form.district?.toString() ?? ""), - fetchWards(newState.form.local_body?.toString() ?? ""), - duplicateCheck(newState.form.phone_number ?? ""), - ]); - }} - noPadding - > - {(field) => { - if (!formField) setFormField(field); - if (resetNum) { - field("phone_number").onChange({ - name: "phone_number", - value: "+91", - }); - setResetNum(false); - } - return ( - <> -
    - { - setShowImport({ - show: true, - field, - }); - setQuery({ extId: "" }, { replace: true }); - }} - > - - Import From External Results - + {!state.form.abha_number && ( +
    + +
    + )} + {showAlertMessage.show && ( + goBack()} + onClose={() => goBack()} + variant="primary" + action="Ok" + show + /> + )} + {careConfig.abdm.enabled && ( +
    + {showLinkAbhaNumberModal && ( + setShowLinkAbhaNumberModal(false)} + onSuccess={(data: any) => { + if (id) { + navigate(`/facility/${facilityId}/patient/${id}`); + return; + } + + handleAbhaLinking(data, field); + }} + /> + )} + {state.form.abha_number && ( +
    +
    + null} + disabled={true} + error="" + />
    - {careConfig.abdm.enabled && ( -
    -

    - ABHA Details -

    - {showLinkAbhaNumberModal && ( - setShowLinkAbhaNumberModal(false)} - onSuccess={(data: any) => { - if (id) { - navigate( - `/facility/${facilityId}/patient/${id}`, - ); - return; - } - - handleAbhaLinking(data, field); - }} - /> - )} - {!state.form.abha_number ? ( - - ) : ( -
    -
    - null} - disabled={true} - error="" - /> -
    -
    - {state.form.health_id ? ( - null} - disabled={true} - error="" - /> - ) : ( -
    - No Abha Address Associated with this ABHA - Number -
    - )} -
    -
    - )} -
    - )} -
    -

    - Personal Details -

    -
    -
    - { - if (!id) duplicateCheck(event.value); - field("phone_number").onChange(event); - if (isEmergencyNumberEnabled) { - field("emergency_phone_number").onChange({ - name: field("emergency_phone_number").name, - value: event.value, - }); - } - }} - types={["mobile", "landline"]} - /> - { - setIsEmergencyNumberEnabled(value); - value - ? field("emergency_phone_number").onChange({ - name: field("emergency_phone_number") - .name, - value: field("phone_number").value, - }) - : field("emergency_phone_number").onChange({ - name: field("emergency_phone_number") - .name, - value: initForm.emergency_phone_number, - }); - }} - /> +
    + {state.form.health_id ? ( + null} + disabled={true} + error="" + /> + ) : ( +
    + No Abha Address Associated with this ABHA Number
    + )} +
    +
    + )} +
    + )} +
    +

    + Personal Details +

    +
    +
    + { + if (!id) duplicateCheck(event.value); + field("phone_number").onChange(event); + if (isEmergencyNumberEnabled) { + field("emergency_phone_number").onChange({ + name: field("emergency_phone_number").name, + value: event.value, + }); + } + }} + types={["mobile", "landline"]} + /> + { + setIsEmergencyNumberEnabled(value); + value + ? field("emergency_phone_number").onChange({ + name: field("emergency_phone_number").name, + value: field("phone_number").value, + }) + : field("emergency_phone_number").onChange({ + name: field("emergency_phone_number").name, + value: initForm.emergency_phone_number, + }); + }} + /> +
    +
    + +
    +
    + +
    +
    + + {ageInputType === "age" ? "Age" : "Date of Birth"} + +
    + o.text} + optionValue={(o) => + o.value === "date_of_birth" ? "date_of_birth" : "age" + } + value={ageInputType} + onChange={(v) => { + if (v === "age" && ageInputType === "date_of_birth") { + setAgeInputType("alert_for_age"); + return; + } + setAgeInputType(v); + }} + /> +
    + {ageInputType !== "age" ? (
    -
    -
    + ) : ( +
    + {field("age").value !== "" && ( + <> + + Year of Birth: + + + YOB: + + + {new Date().getFullYear() - + field("age").value} + + + )} +

    + } + placeholder="Enter the age" + type="number" + min={0} />
    + )} +
    +
    + +
    + - - {ageInputType === "age" ? "Age" : "Date of Birth"} - -
    - o.text} - optionValue={(o) => - o.value === "date_of_birth" - ? "date_of_birth" - : "age" - } - value={ageInputType} - onChange={(v) => { - if ( - v === "age" && - ageInputType === "date_of_birth" - ) { - setAgeInputType("alert_for_age"); - return; - } - setAgeInputType(v); - }} - /> -
    - {ageInputType !== "age" ? ( -
    - -
    - ) : ( -
    - - {field("age").value !== "" && ( - <> - - Year of Birth: - - - YOB: - - - {new Date().getFullYear() - - field("age").value} - - - )} -

    - } - placeholder="Enter the age" - type="number" - min={0} - /> -
    - )} -
    -
    - -
    - -
    - While entering a patient's age is an - option, please note that only the year of - birth will be captured from this - information. -
    - - Recommended only when the patient's date - of birth is unknown - -
    - } - action="Confirm" - variant="warning" - show={ageInputType == "alert_for_age"} - onClose={() => setAgeInputType("date_of_birth")} - onConfirm={() => setAgeInputType("age")} - /> +
    + While entering a patient's age is an option, + please note that only the year of birth will be + captured from this information.
    + + Recommended only when the patient's date of birth + is unknown +
    -
    - { - field("gender").onChange(e); - if (e.value !== "2") { - field("is_antenatal").onChange({ - name: "is_antenatal", - value: "false", - }); - - field("is_postpartum").onChange({ - name: "is_postpartum", - value: "false", - }); - } - }} - optionLabel={(o: any) => o.text} - optionValue={(o: any) => o.id} - /> + } + action="Confirm" + variant="warning" + show={ageInputType == "alert_for_age"} + onClose={() => setAgeInputType("date_of_birth")} + onConfirm={() => setAgeInputType("age")} + /> +
    +
    +
    + { + field("gender").onChange(e); + if (e.value !== "2") { + field("is_antenatal").onChange({ + name: "is_antenatal", + value: "false", + }); + + field("is_postpartum").onChange({ + name: "is_postpartum", + value: "false", + }); + } + }} + optionLabel={(o: any) => o.text} + optionValue={(o: any) => o.id} + /> +
    + + { +
    + option.label} + optionValue={(option) => option.value} + /> +
    + } +
    + + { +
    + +
    + } +
    + + option.label} + optionValue={(option) => option.value} + /> + + + + +
    + +
    +
    + + +
    + +
    + { + field("pincode").onChange(e); + handlePincodeChange(e, field("pincode").onChange); + }} + /> + {showAutoFilledPincode && ( +
    + + + State and District auto-filled from Pincode + +
    + )} +
    +
    + +
    +
    + o} + optionValue={(o) => o} + /> +
    + {field("nationality").value === "India" ? ( + <> +
    + {isStateLoading ? ( + + ) : ( + o.name} + optionValue={(o: any) => o.id} + onChange={(e: any) => { + field("state").onChange(e); + field("district").onChange({ + name: "district", + value: undefined, + }); + field("local_body").onChange({ + name: "local_body", + value: undefined, + }); + field("ward").onChange({ + name: "ward", + value: undefined, + }); + fetchDistricts(e.value); + fetchLocalBody("0"); + fetchWards("0"); + }} + /> + )} +
    + +
    + {isDistrictLoading ? ( +
    +
    - - { -
    - option.label} - optionValue={(option) => option.value} - /> -
    + ) : ( + - - { -
    - -
    - } -
    - - option.label} - optionValue={(option) => option.value} - /> - - - - -
    - -
    -
    - - -
    + disabled={!field("state").value} + options={districts} + optionLabel={(o: any) => o.name} + optionValue={(o: any) => o.id} + onChange={(e: any) => { + field("district").onChange(e); + field("local_body").onChange({ + name: "local_body", + value: undefined, + }); + field("ward").onChange({ + name: "ward", + value: undefined, + }); + fetchLocalBody(String(e.value)); + fetchWards("0"); + }} + /> + )} +
    -
    - { - field("pincode").onChange(e); - handlePincodeChange( - e, - field("pincode").onChange, - ); - }} - /> - {showAutoFilledPincode && ( -
    - - - State and District auto-filled from Pincode - -
    - )} +
    + {isLocalbodyLoading ? ( +
    +
    -
    - -
    -
    - o} - optionValue={(o) => o} - /> + ) : ( + o.name} + optionValue={(o) => o.id} + onChange={(e) => { + field("local_body").onChange(e); + field("ward").onChange({ + name: "ward", + value: undefined, + }); + fetchWards(String(e.value)); + }} + /> + )} +
    +
    + {isWardLoading ? ( +
    +
    - {field("nationality").value === "India" ? ( - <> -
    - {isStateLoading ? ( - - ) : ( - o.name} - optionValue={(o: any) => o.id} - onChange={(e: any) => { - field("state").onChange(e); - field("district").onChange({ - name: "district", - value: undefined, - }); - field("local_body").onChange({ - name: "local_body", - value: undefined, - }); - field("ward").onChange({ - name: "ward", - value: undefined, - }); - fetchDistricts(e.value); - fetchLocalBody("0"); - fetchWards("0"); - }} - /> - )} -
    - -
    - {isDistrictLoading ? ( -
    - -
    - ) : ( - o.name} - optionValue={(o: any) => o.id} - onChange={(e: any) => { - field("district").onChange(e); - field("local_body").onChange({ - name: "local_body", - value: undefined, - }); - field("ward").onChange({ - name: "ward", - value: undefined, - }); - fetchLocalBody(String(e.value)); - fetchWards("0"); - }} - /> - )} -
    - -
    - {isLocalbodyLoading ? ( -
    - -
    - ) : ( - o.name} - optionValue={(o) => o.id} - onChange={(e) => { - field("local_body").onChange(e); - field("ward").onChange({ - name: "ward", - value: undefined, - }); - fetchWards(String(e.value)); - }} - /> - )} -
    -
    - {isWardLoading ? ( -
    - -
    - ) : ( - { - return { - id: e.id, - name: e.number + ": " + e.name, - }; - })} - placeholder={ - field("local_body").value - ? "Choose Ward" - : "Select Localbody First" - } - disabled={!field("local_body").value} - optionLabel={(o: any) => o.name} - optionValue={(o: any) => o.id} - onChange={(e: any) => { - field("ward").onChange(e); - }} - /> - )} -
    - - ) : ( -
    + ) : ( + { + return { + id: e.id, + name: e.number + ": " + e.name, + }; + })} + placeholder={ + field("local_body").value + ? "Choose Ward" + : "Select Localbody First" + } + disabled={!field("local_body").value} + optionLabel={(o: any) => o.name} + optionValue={(o: any) => o.id} + onChange={(e: any) => { + field("ward").onChange(e); + }} + /> + )} +
    + + ) : ( +
    + +
    + )} +
    +
    + {field("nationality").value === "India" && ( +
    + + } + title={ +

    + Social Profile +

    + } + expanded + > +
    +
    + o.text} + optionValue={(o) => o.id} + /> + t(`ration_card__${o}`)} + optionValue={(o) => o} + /> + t(`SOCIOECONOMIC_STATUS__${o}`)} + optionValue={(o) => o} + value={field("meta_info").value?.socioeconomic_status} + onChange={({ name, value }) => + field("meta_info").onChange({ + name: "meta_info", + value: { + ...(field("meta_info").value ?? {}), + [name]: value, + }, + }) + } + /> + + t(`DOMESTIC_HEALTHCARE_SUPPORT__${o}`) + } + optionValue={(o) => o} + value={ + field("meta_info").value + ?.domestic_healthcare_support + } + onChange={({ name, value }) => + field("meta_info").onChange({ + name: "meta_info", + value: { + ...(field("meta_info").value ?? {}), + [name]: value, + }, + }) + } + /> +
    +
    +
    +
    + )} +
    + + } + title={ +

    + COVID Details +

    + } + > +
    +
    +
    + option.label} + optionValue={(option) => option.value} + /> +
    +
    +
    + + { +
    +
    - )} -
    -
    - {field("nationality").value === "India" && ( -
    - + option.label} + optionValue={(option) => option.value} /> - } - title={ -

    - Social Profile -

    - } - expanded - > -
    -
    - o.text} - optionValue={(o) => o.id} - /> - t(`ration_card__${o}`)} - optionValue={(o) => o} - /> - - t(`SOCIOECONOMIC_STATUS__${o}`) - } - optionValue={(o) => o} - value={ - field("meta_info").value - ?.socioeconomic_status - } - onChange={({ name, value }) => - field("meta_info").onChange({ - name: "meta_info", - value: { - ...(field("meta_info").value ?? {}), - [name]: value, - }, - }) - } - /> - - t(`DOMESTIC_HEALTHCARE_SUPPORT__${o}`) - } - optionValue={(o) => o} - value={ - field("meta_info").value - ?.domestic_healthcare_support - } - onChange={({ name, value }) => - field("meta_info").onChange({ - name: "meta_info", - value: { - ...(field("meta_info").value ?? {}), - [name]: value, - }, - }) - } - /> -
    -
    -
    -
    - )} -
    - - } - title={ -

    - COVID Details -

    - } - > -
    -
    -
    - option.label} - optionValue={(option) => option.value} - /> -
    -
    - - { -
    -
    - -
    -
    - option.label} - optionValue={(option) => option.value} - /> -
    -
    - o} - optionValue={(o) => o} - /> -
    -
    - -
    -
    - } -
    -
    -
    -
    - option.label} - optionValue={(option) => option.value} - /> - -
    - -
    -
    -
    -
    - -
    +
    + o} + optionValue={(o) => o} + />
    -
    - -
    -
    -

    - Medical History -

    -
    -
    - -
    - -
    - -
    -
    - - Any medical history? (Comorbidities) - -
    - {MEDICAL_HISTORY_CHOICES.map((i) => { - return renderMedicalHistory( - i.id as number, - i.text, - field, - ); - })} +
    +
    -
    - -
    - -
    - -
    - o} - optionValue={(o: any) => o} + } + +
    +
    +
    + option.label} + optionValue={(option) => option.value} + /> + +
    +
    -
    +
    -
    -
    -

    - Insurance Details -

    - - setInsuranceDetails([ - ...insuranceDetails, - { - id: "", - subscriber_id: "", - policy_id: "", - insurer_id: "", - insurer_name: "", - }, - ]) - } - data-testid="add-insurance-button" - > - - Add Insurance Details - -
    - setInsuranceDetails(value)} - error={insuranceDetailsError} - gridView +
    +
    - - ); - }} - +
    +
    + +
    +
    +

    + Medical History +

    +
    +
    + +
    + +
    + +
    +
    + + Any medical history? (Comorbidities) + +
    + {MEDICAL_HISTORY_CHOICES.map((i) => { + return renderMedicalHistory( + i.id as number, + i.text, + field, + ); + })} +
    + +
    + +
    + +
    + +
    + o} + optionValue={(o: any) => o} + /> +
    +
    +
    +
    +
    +

    + Insurance Details +

    + + setInsuranceDetails([ + ...insuranceDetails, + { + id: "", + subscriber_id: "", + policy_id: "", + insurer_id: "", + insurer_name: "", + }, + ]) + } + data-testid="add-insurance-button" + > + + Add Insurance Details + +
    + setInsuranceDetails(value)} + error={insuranceDetailsError} + gridView + /> +
    - - -
    -
    +
    + ); + }} + ); }; diff --git a/src/Components/Patient/SampleDetails.tsx b/src/Components/Patient/SampleDetails.tsx index deda220a891..a80ca515122 100644 --- a/src/Components/Patient/SampleDetails.tsx +++ b/src/Components/Patient/SampleDetails.tsx @@ -1,12 +1,11 @@ import { FlowModel } from "./models"; import { GENDER_TYPES, TEST_TYPE_CHOICES } from "../../Common/constants"; -import { lazy } from "react"; import ButtonV2 from "../Common/components/ButtonV2"; import Card from "../../CAREUI/display/Card"; import { FileUpload } from "../Files/FileUpload"; import Page from "../Common/components/Page"; -import _ from "lodash-es"; +import * as _ from "lodash-es"; import { formatDateTime, formatPatientAge } from "../../Utils/utils"; import { navigate } from "raviger"; @@ -14,8 +13,7 @@ import { DetailRoute } from "../../Routers/types"; import useQuery from "../../Utils/request/useQuery"; import routes from "../../Redux/api"; -const Loading = lazy(() => import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; export const SampleDetails = ({ id }: DetailRoute) => { const { loading: isLoading, data: sampleDetails } = useQuery( routes.getTestSample, diff --git a/src/Components/Patient/SamplePreview.tsx b/src/Components/Patient/SamplePreview.tsx index f56714f0c36..3e692d4d43a 100644 --- a/src/Components/Patient/SamplePreview.tsx +++ b/src/Components/Patient/SamplePreview.tsx @@ -1,14 +1,11 @@ import { classNames, formatDateTime, humanizeStrings } from "../../Utils/utils"; -import { lazy } from "react"; - import ButtonV2 from "../Common/components/ButtonV2"; import Page from "../Common/components/Page"; import useQuery from "../../Utils/request/useQuery"; import routes from "../../Redux/api"; -const Loading = lazy(() => import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; interface ISamplePreviewProps { id: string; sampleId: string; diff --git a/src/Components/Patient/SampleTest.tsx b/src/Components/Patient/SampleTest.tsx index 6734ed03f0d..b4d36da74b6 100644 --- a/src/Components/Patient/SampleTest.tsx +++ b/src/Components/Patient/SampleTest.tsx @@ -1,6 +1,6 @@ import { navigate } from "raviger"; -import { useReducer, useState, lazy } from "react"; +import { useReducer, useState } from "react"; import { SAMPLE_TYPE_CHOICES, ICMR_CATEGORY } from "../../Common/constants"; import * as Notification from "../../Utils/Notifications.js"; import { SampleTestModel } from "./models"; @@ -17,8 +17,7 @@ import { FacilitySelect } from "../Common/FacilitySelect"; import request from "../../Utils/request/request"; import routes from "../../Redux/api"; import useQuery from "../../Utils/request/useQuery"; -const Loading = lazy(() => import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; const initForm: SampleTestModel = { isFastTrack: false, fast_track: "", diff --git a/src/Components/Patient/SampleTestCard.tsx b/src/Components/Patient/SampleTestCard.tsx index c8feae26e5c..c1a5d38454a 100644 --- a/src/Components/Patient/SampleTestCard.tsx +++ b/src/Components/Patient/SampleTestCard.tsx @@ -4,7 +4,7 @@ import { SampleTestModel } from "./models"; import { SAMPLE_TEST_STATUS } from "../../Common/constants"; import * as Notification from "../../Utils/Notifications"; import UpdateStatusDialog from "./UpdateStatusDialog"; -import _ from "lodash-es"; +import * as _ from "lodash-es"; import { formatDateTime } from "../../Utils/utils"; import ButtonV2 from "../Common/components/ButtonV2"; import { NonReadOnlyUsers } from "../../Utils/AuthorizeFor"; diff --git a/src/Components/Patient/SampleViewAdmin.tsx b/src/Components/Patient/SampleViewAdmin.tsx index 43430dc8546..2361d2a697a 100644 --- a/src/Components/Patient/SampleViewAdmin.tsx +++ b/src/Components/Patient/SampleViewAdmin.tsx @@ -1,13 +1,12 @@ import SampleFilter from "./SampleFilters"; import { navigate } from "raviger"; -import { useState, lazy } from "react"; +import { useState } from "react"; import { SAMPLE_TEST_STATUS, SAMPLE_TEST_RESULT, SAMPLE_FLOW_RULES, SAMPLE_TYPE_CHOICES, } from "../../Common/constants"; -import { downloadSampleTests } from "../../Redux/actions"; import * as Notification from "../../Utils/Notifications"; import { SampleTestModel } from "./models"; import UpdateStatusDialog from "./UpdateStatusDialog"; @@ -23,8 +22,7 @@ import useQuery from "../../Utils/request/useQuery"; import routes from "../../Redux/api"; import request from "../../Utils/request/request"; -const Loading = lazy(() => import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; export default function SampleViewAdmin() { const { qParams, @@ -314,7 +312,12 @@ export default function SampleViewAdmin() { breadcrumbs={false} componentRight={ downloadSampleTests({ ...qParams })} + action={async () => { + const { data } = await request(routes.getTestSampleList, { + query: { ...qParams, csv: true }, + }); + return data ?? null; + }} parse={parseExportData} filenamePrefix="samples" /> diff --git a/src/Components/Patient/ShiftCreate.tsx b/src/Components/Patient/ShiftCreate.tsx index c3b01ad189d..17d627d982c 100644 --- a/src/Components/Patient/ShiftCreate.tsx +++ b/src/Components/Patient/ShiftCreate.tsx @@ -7,7 +7,7 @@ import { SHIFTING_VEHICLE_CHOICES, } from "../../Common/constants"; import { Cancel, Submit } from "../Common/components/ButtonV2"; -import { lazy, useReducer, useState } from "react"; +import { useReducer, useState } from "react"; import { FacilitySelect } from "../Common/FacilitySelect"; import { FieldChangeEvent } from "../Form/FormFields/Utils"; @@ -31,8 +31,7 @@ import routes from "../../Redux/api.js"; import request from "../../Utils/request/request.js"; import careConfig from "@careConfig"; -const Loading = lazy(() => import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; interface patientShiftProps { facilityId: string; patientId: string; diff --git a/src/Components/Patient/models.tsx b/src/Components/Patient/models.tsx index cf35680de11..d9e275fdc4a 100644 --- a/src/Components/Patient/models.tsx +++ b/src/Components/Patient/models.tsx @@ -135,6 +135,7 @@ export interface PatientModel { assigned_to?: { first_name?: string; username?: string; last_name?: string }; assigned_to_object?: AssignedToObjectModel; meta_info?: PatientMeta; + age?: string; } export interface SampleTestModel { diff --git a/src/Components/Resource/ListView.tsx b/src/Components/Resource/ListView.tsx index 128e17c2c46..31b34065aa5 100644 --- a/src/Components/Resource/ListView.tsx +++ b/src/Components/Resource/ListView.tsx @@ -1,6 +1,4 @@ -import { lazy } from "react"; import { navigate } from "raviger"; -import { downloadResourceRequests } from "../../Redux/actions"; import ListFilter from "./ListFilter"; import { formatFilter } from "./Commons"; import BadgesList from "./BadgesList"; @@ -16,9 +14,9 @@ import useQuery from "../../Utils/request/useQuery"; import routes from "../../Redux/api"; import Page from "../Common/components/Page"; import SearchInput from "../Form/SearchInput"; +import request from "../../Utils/request/request"; -const Loading = lazy(() => import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; export default function ListView() { const { qParams, @@ -161,7 +159,12 @@ export default function ListView() { hideBack componentRight={ downloadResourceRequests({ ...appliedFilters, csv: 1 })} + action={async () => { + const { data } = await request(routes.downloadResourceRequests, { + query: { ...appliedFilters, csv: true }, + }); + return data ?? null; + }} filenamePrefix="resource_requests" /> } diff --git a/src/Components/Resource/ResourceBoard.tsx b/src/Components/Resource/ResourceBoard.tsx deleted file mode 100644 index 4b32c72eda4..00000000000 --- a/src/Components/Resource/ResourceBoard.tsx +++ /dev/null @@ -1,296 +0,0 @@ -import { useState, useEffect } from "react"; -import { downloadResourceRequests } from "../../Redux/actions"; -import { navigate } from "raviger"; -import { classNames, formatName } from "../../Utils/utils"; -import { useDrag, useDrop } from "react-dnd"; -import { formatDateTime } from "../../Utils/utils"; -import { ExportButton } from "../Common/Export"; -import dayjs from "../../Utils/dayjs"; -import useQuery from "../../Utils/request/useQuery"; -import routes from "../../Redux/api"; -import { PaginatedResponse } from "../../Utils/request/types"; -import { IResource } from "./models"; -import request from "../../Utils/request/request"; -import CareIcon from "../../CAREUI/icons/CareIcon"; - -interface boardProps { - board: string; - filterProp: any; - formatFilter: any; -} - -const renderBoardTitle = (board: string) => board; - -const reduceLoading = (action: string, current: any) => { - switch (action) { - case "MORE": - return { ...current, more: true }; - case "BOARD": - return { ...current, board: true }; - case "COMPLETE": - return { board: false, more: false }; - } -}; - -const ResourceCard = ({ resource }: any) => { - const [{ isDragging }, drag] = useDrag(() => ({ - type: "resource-card", - item: resource, - collect: (monitor) => ({ isDragging: !!monitor.isDragging() }), - })); - - return ( -
    -
    -
    -
    -
    -
    - {resource.title} -
    -
    - {resource.emergency && ( - - Emergency - - )} -
    -
    -
    -
    -
    - -
    - {(resource.origin_facility_object || {}).name} -
    - -
    -
    -
    - -
    - {(resource.approving_facility_object || {}).name} -
    - -
    - {resource.assigned_facility_object && ( -
    -
    - - -
    - {(resource.assigned_facility_object || {}).name || - "Yet to be decided"} -
    - -
    - )} -
    -
    - -
    - {formatDateTime(resource.modified_date) || "--"} -
    - -
    - {resource.assigned_to_object && ( -
    -
    - -
    - {formatName(resource.assigned_to_object)} -{" "} - {resource.assigned_to_object.user_type} -
    - -
    - )} -
    -
    -
    - -
    -
    -
    -
    - ); -}; - -export default function ResourceBoard({ - board, - filterProp, - formatFilter, -}: boardProps) { - const [isLoading, setIsLoading] = useState({ board: "BOARD", more: false }); - const [{ isOver }, drop] = useDrop(() => ({ - accept: "resource-card", - drop: (item: any) => { - if (item.status !== board) { - navigate(`/resource/${item.id}/update?status=${board}`); - } - }, - collect: (monitor) => ({ isOver: !!monitor.isOver() }), - })); - const [offset, setOffSet] = useState(0); - const [data, setData] = useState>(); - - useEffect(() => { - setIsLoading((loading) => reduceLoading("BOARD", loading)); - }, [ - board, - filterProp.title, - filterProp.facility, - filterProp.origin_facility, - filterProp.approving_facility, - filterProp.assigned_facility, - filterProp.emergency, - filterProp.created_date_before, - filterProp.created_date_after, - filterProp.modified_date_before, - filterProp.modified_date_after, - filterProp.ordering, - ]); - - useQuery(routes.listResourceRequests, { - query: formatFilter({ - ...filterProp, - status: board, - }), - onResponse: ({ res, data: listResourceData }) => { - if (res?.ok && listResourceData) { - setData(listResourceData); - } - setIsLoading((loading) => reduceLoading("COMPLETE", loading)); - }, - }); - - const handlePagination = async () => { - setIsLoading((loading) => reduceLoading("MORE", loading)); - setOffSet(offset + 14); - const { res, data: newPageData } = await request( - routes.listResourceRequests, - { - query: formatFilter({ - ...filterProp, - status: board, - offset: offset, - }), - }, - ); - if (res?.ok && newPageData) { - setData((prev) => - prev - ? { ...prev, results: [...prev.results, ...newPageData.results] } - : newPageData, - ); - } - setIsLoading((loading) => reduceLoading("COMPLETE", loading)); - }; - - const boardFilter = (filter: string) => { - return data?.results - .filter(({ status }) => status === filter) - .map((resource: any) => ( - - )); - }; - - return ( -
    -
    -
    -

    - {renderBoardTitle(board)}{" "} - - downloadResourceRequests({ - ...formatFilter({ ...filterProp, status: board }), - csv: 1, - }) - } - filenamePrefix={`resource_requests_${board}`} - /> -

    - - {data?.count || "0"} - -
    -
    -
    - {isLoading.board ? ( -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - ) : data && data?.results.length > 0 ? ( - boardFilter(board) - ) : ( -

    No requests to show.

    - )} - {!isLoading.board && - data && - data?.results.length < (data?.count || 0) && - (isLoading.more ? ( -
    - Loading -
    - ) : ( - - ))} -
    -
    - ); -} diff --git a/src/Components/Resource/ResourceBoardView.tsx b/src/Components/Resource/ResourceBoardView.tsx index bff0282f91a..de432496fdd 100644 --- a/src/Components/Resource/ResourceBoardView.tsx +++ b/src/Components/Resource/ResourceBoardView.tsx @@ -1,10 +1,7 @@ -import { lazy, useState } from "react"; -import { navigate } from "raviger"; +import { useState } from "react"; +import { Link, navigate } from "raviger"; import ListFilter from "./ListFilter"; -import ResourceBoard from "./ResourceBoard"; import { RESOURCE_CHOICES } from "../../Common/constants"; -import { downloadResourceRequests } from "../../Redux/actions"; -import withScrolling from "react-dnd-scrolling"; import BadgesList from "./BadgesList"; import { formatFilter } from "./Commons"; import useFilters from "../../Common/hooks/useFilters"; @@ -15,10 +12,14 @@ import { AdvancedFilterButton } from "../../CAREUI/interactive/FiltersSlideover" import CareIcon from "../../CAREUI/icons/CareIcon"; import SearchInput from "../Form/SearchInput"; import Tabs from "../Common/components/Tabs"; +import request from "../../Utils/request/request"; +import routes from "../../Redux/api"; +import KanbanBoard from "../Kanban/Board"; +import { ResourceModel } from "../Facility/models"; +import { classNames, formatDateTime, formatName } from "../../Utils/utils"; +import dayjs from "dayjs"; -const Loading = lazy(() => import("../Common/Loading")); -const PageTitle = lazy(() => import("../Common/PageTitle")); -const ScrollingComponent = withScrolling("div"); +import PageTitle from "@/Components/Common/PageTitle"; const resourceStatusOptions = RESOURCE_CHOICES.map((obj) => obj.text); const COMPLETED = ["COMPLETED", "REJECTED"]; @@ -31,7 +32,6 @@ export default function BoardView() { }); const [boardFilter, setBoardFilter] = useState(ACTIVE); // eslint-disable-next-line - const [isLoading, setIsLoading] = useState(false); const appliedFilters = formatFilter(qParams); const { t } = useTranslation(); @@ -41,18 +41,24 @@ export default function BoardView() { }; return ( -
    +
    - downloadResourceRequests({ ...appliedFilters, csv: 1 }) - } + action={async () => { + const { data } = await request( + routes.downloadResourceRequests, + { + query: { ...appliedFilters, csv: true }, + }, + ); + return data ?? null; + }} filenamePrefix="resource_requests" /> } @@ -87,23 +93,135 @@ export default function BoardView() {
    - - -
    - {isLoading ? ( - - ) : ( - boardFilter.map((board) => ( - + title={} + sections={boardFilter.map((board) => ({ + id: board, + title: ( +

    + {board}{" "} + { + const { data } = await request( + routes.downloadResourceRequests, + { + query: { + ...formatFilter({ ...qParams, status: board }), + csv: true, + }, + }, + ); + return data ?? null; + }} + filenamePrefix={`resource_requests_${board}`} /> - )) - )} -

    -
    + + ), + fetchOptions: (id) => ({ + route: routes.listResourceRequests, + options: { + query: formatFilter({ + ...qParams, + status: id, + }), + }, + }), + }))} + onDragEnd={(result) => { + if (result.source.droppableId !== result.destination?.droppableId) + navigate( + `/resource/${result.draggableId}/update?status=${result.destination?.droppableId}`, + ); + }} + itemRender={(resource) => ( +
    +
    +
    +
    +
    + {resource.title} +
    +
    +
    + {resource.emergency && ( + + {t("emergency")} + + )} +
    +
    +
    + {( + [ + { + title: "origin_facility", + icon: "l-plane-departure", + data: resource.origin_facility_object.name, + }, + { + title: "resource_approving_facility", + icon: "l-user-check", + data: resource.approving_facility_object?.name, + }, + { + title: "assigned_facility", + icon: "l-plane-arrival", + data: + resource.assigned_facility_object?.name || + t("yet_to_be_decided"), + }, + { + title: "last_modified", + icon: "l-stopwatch", + data: formatDateTime(resource.modified_date), + className: dayjs() + .subtract(2, "hours") + .isBefore(resource.modified_date) + ? "text-secondary-900" + : "rounded bg-red-500 border border-red-600 text-white w-full font-bold", + }, + { + title: "assigned_to", + icon: "l-user", + data: resource.assigned_to_object + ? formatName(resource.assigned_to_object) + + " - " + + resource.assigned_to_object.user_type + : undefined, + }, + ] as const + ) + .filter((d) => d.data) + .map((datapoint, i) => ( +
    +
    + +
    +
    + {datapoint.data} +
    +
    + ))} +
    +
    +
    + + {t("all_details")} + +
    +
    + )} + />
    ); diff --git a/src/Components/Resource/ResourceCreate.tsx b/src/Components/Resource/ResourceCreate.tsx index ebdb83e90bb..ec41e6c9175 100644 --- a/src/Components/Resource/ResourceCreate.tsx +++ b/src/Components/Resource/ResourceCreate.tsx @@ -1,4 +1,4 @@ -import { useReducer, useState, lazy } from "react"; +import { useReducer, useState } from "react"; import { FacilitySelect } from "../Common/FacilitySelect"; import * as Notification from "../../Utils/Notifications.js"; @@ -27,8 +27,7 @@ import useQuery from "../../Utils/request/useQuery"; import routes from "../../Redux/api"; import request from "../../Utils/request/request"; -const Loading = lazy(() => import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; interface resourceProps { facilityId: number; } diff --git a/src/Components/Resource/ResourceDetails.tsx b/src/Components/Resource/ResourceDetails.tsx index 652f71344c7..50e572f5680 100644 --- a/src/Components/Resource/ResourceDetails.tsx +++ b/src/Components/Resource/ResourceDetails.tsx @@ -1,4 +1,4 @@ -import { useState, lazy } from "react"; +import { useState } from "react"; import { classNames, formatDateTime, formatName } from "../../Utils/utils"; import { navigate } from "raviger"; import * as Notification from "../../Utils/Notifications.js"; @@ -10,8 +10,7 @@ import useQuery from "../../Utils/request/useQuery"; import routes from "../../Redux/api"; import request from "../../Utils/request/request"; import CareIcon from "../../CAREUI/icons/CareIcon"; -const Loading = lazy(() => import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; export default function ResourceDetails(props: { id: string }) { const [isPrintMode, setIsPrintMode] = useState(false); const [openDeleteResourceDialog, setOpenDeleteResourceDialog] = @@ -254,7 +253,7 @@ export default function ResourceDetails(props: { id: string }) {
    {data.title || "--"}
    Update Status/Details diff --git a/src/Components/Resource/ResourceDetailsUpdate.tsx b/src/Components/Resource/ResourceDetailsUpdate.tsx index 6d293f05df5..7aac3031274 100644 --- a/src/Components/Resource/ResourceDetailsUpdate.tsx +++ b/src/Components/Resource/ResourceDetailsUpdate.tsx @@ -1,6 +1,6 @@ import * as Notification from "../../Utils/Notifications.js"; import { Cancel, Submit } from "../Common/components/ButtonV2"; -import { lazy, useReducer, useState } from "react"; +import { useReducer, useState } from "react"; import { navigate, useQueryParams } from "raviger"; import Card from "../../CAREUI/display/Card"; import CircularProgress from "../Common/components/CircularProgress"; @@ -20,8 +20,7 @@ import routes from "../../Redux/api.js"; import { UserModel } from "../Users/models.js"; import request from "../../Utils/request/request.js"; -const Loading = lazy(() => import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; interface resourceProps { id: string; } diff --git a/src/Components/Scribe/Scribe.tsx b/src/Components/Scribe/Scribe.tsx index d952ff7b1b2..384bf519a04 100644 --- a/src/Components/Scribe/Scribe.tsx +++ b/src/Components/Scribe/Scribe.tsx @@ -7,8 +7,8 @@ import * as Notify from "../../Utils/Notifications"; import request from "../../Utils/request/request"; import { UserModel } from "../Users/models"; import useSegmentedRecording from "../../Utils/useSegmentedRecorder"; -import careConfig from "@careConfig"; import uploadFile from "../../Utils/request/uploadFile"; +import { useFeatureFlags } from "../../Utils/featureFlags"; interface FieldOption { id: string | number; @@ -52,6 +52,7 @@ export type ScribeModel = { }; interface ScribeProps { + facilityId: string; form: ScribeForm; existingData?: { [key: string]: any }; onFormUpdate: (fields: any) => void; @@ -62,7 +63,11 @@ const SCRIBE_FILE_TYPES = { SCRIBE: 1, }; -export const Scribe: React.FC = ({ form, onFormUpdate }) => { +export const Scribe: React.FC = ({ + form, + onFormUpdate, + facilityId, +}) => { const [open, setOpen] = useState(false); const [_progress, setProgress] = useState(0); const [stage, setStage] = useState("start"); @@ -80,6 +85,8 @@ export const Scribe: React.FC = ({ form, onFormUpdate }) => { const stageRef = useRef(stage); const [fields, setFields] = useState([]); + const featureFlags = useFeatureFlags(facilityId); + useEffect(() => { const loadFields = async () => { const fields = await form.fields(); @@ -544,7 +551,7 @@ export const Scribe: React.FC = ({ form, onFormUpdate }) => { } } - if (!careConfig.scribe.enabled) return null; + if (!featureFlags.includes("SCRIBE_ENABLED")) return null; return ( diff --git a/src/Components/Shifting/BoardView.tsx b/src/Components/Shifting/BoardView.tsx index f4fb45093aa..f83e0a4974e 100644 --- a/src/Components/Shifting/BoardView.tsx +++ b/src/Components/Shifting/BoardView.tsx @@ -7,24 +7,26 @@ import BadgesList from "./BadgesList"; import { ExportButton } from "../Common/Export"; import ListFilter from "./ListFilter"; import SearchInput from "../Form/SearchInput"; -import ShiftingBoard from "./ShiftingBoard"; -import { downloadShiftRequests } from "../../Redux/actions"; import { formatFilter } from "./Commons"; -import { navigate } from "raviger"; +import { Link, navigate } from "raviger"; import useFilters from "../../Common/hooks/useFilters"; -import { lazy, useLayoutEffect, useRef, useState } from "react"; +import { useState } from "react"; import { useTranslation } from "react-i18next"; -import withScrolling from "react-dnd-scrolling"; import ButtonV2 from "../Common/components/ButtonV2"; import { AdvancedFilterButton } from "../../CAREUI/interactive/FiltersSlideover"; import CareIcon from "../../CAREUI/icons/CareIcon"; import Tabs from "../Common/components/Tabs"; import careConfig from "@careConfig"; - -const Loading = lazy(() => import("../Common/Loading")); -const PageTitle = lazy(() => import("../Common/PageTitle")); -const ScrollingComponent = withScrolling("div"); +import KanbanBoard from "../Kanban/Board"; +import { classNames, formatDateTime, formatName } from "../../Utils/utils"; +import dayjs from "dayjs"; +import ConfirmDialog from "../Common/ConfirmDialog"; +import { ShiftingModel } from "../Facility/models"; +import useAuthUser from "../../Common/hooks/useAuthUser"; +import request from "../../Utils/request/request"; +import routes from "../../Redux/api"; +import PageTitle from "@/Components/Common/PageTitle"; export default function BoardView() { const { qParams, updateQuery, FilterBadges, advancedFilter } = useFilters({ @@ -32,6 +34,26 @@ export default function BoardView() { cacheBlacklist: ["patient_name"], }); + const [modalFor, setModalFor] = useState<{ + externalId?: string; + loading: boolean; + }>({ + externalId: undefined, + loading: false, + }); + + const authUser = useAuthUser(); + + const handleTransferComplete = async (shift: any) => { + setModalFor({ ...modalFor, loading: true }); + await request(routes.completeTransfer, { + pathParams: { externalId: shift.external_id }, + }); + navigate( + `/facility/${shift.assigned_facility}/patient/${shift.patient}/consultation`, + ); + }; + const shiftStatusOptions = careConfig.wartimeShifting ? SHIFTING_CHOICES_WARTIME : SHIFTING_CHOICES_PEACETIME; @@ -54,79 +76,10 @@ export default function BoardView() { ); const [boardFilter, setBoardFilter] = useState(activeBoards); - const [isLoading] = useState(false); const { t } = useTranslation(); - const containerRef = useRef(null); - const [containerHeight, setContainerHeight] = useState(0); - const [isLeftScrollable, setIsLeftScrollable] = useState(false); - const [isRightScrollable, setIsRightScrollable] = useState(false); - - useLayoutEffect(() => { - const container = containerRef.current; - - if (!container) return; - - const handleScroll = () => { - setIsLeftScrollable(container.scrollLeft > 0); - setIsRightScrollable( - container.scrollLeft + container.clientWidth < - container.scrollWidth - 10, - ); - }; - - container.addEventListener("scroll", handleScroll); - - handleScroll(); - - return () => { - container.removeEventListener("scroll", handleScroll); - }; - }, []); - - const handleOnClick = (direction: "right" | "left") => { - const container = containerRef.current; - if (direction === "left" ? !isLeftScrollable : !isRightScrollable) return; - - if (container) { - const scrollAmount = 300; - const currentScrollLeft = container.scrollLeft; - - if (direction === "left") { - container.scrollTo({ - left: currentScrollLeft - scrollAmount, - behavior: "smooth", - }); - } else if (direction === "right") { - container.scrollTo({ - left: currentScrollLeft + scrollAmount, - behavior: "smooth", - }); - } - } - }; - - const renderArrowIcons = (direction: "right" | "left") => { - const isIconEnable = - direction === "left" ? isLeftScrollable : isRightScrollable; - return ( - isIconEnable && ( -
    - handleOnClick(direction)} - /> -
    - ) - ); - }; return ( -
    +
    - downloadShiftRequests({ ...formatFilter(qParams), csv: 1 }) - } + action={async () => { + const { data } = await request(routes.downloadShiftRequests, { + query: { ...formatFilter(qParams), csv: true }, + }); + return data ?? null; + }} filenamePrefix="shift_requests" /> } @@ -177,35 +133,190 @@ export default function BoardView() {
    - - -
    - {isLoading ? ( - - ) : ( - <> - {renderArrowIcons("left")} -
    - {boardFilter.map((board) => ( - - ))} + + title={} + sections={boardFilter.map((board) => ({ + id: board.text, + title: ( +

    + {board.label || board.text}{" "} + { + const { data } = await request(routes.downloadShiftRequests, { + query: { ...formatFilter(qParams), csv: true }, + }); + return data ?? null; + }} + filenamePrefix={`shift_requests_${board.label || board.text}`} + /> +

    + ), + fetchOptions: (id) => ({ + route: routes.listShiftRequests, + options: { + query: formatFilter({ + ...qParams, + status: id, + }), + }, + }), + }))} + onDragEnd={(result) => { + if (result.source.droppableId !== result.destination?.droppableId) + navigate( + `/shifting/${result.draggableId}/update?status=${result.destination?.droppableId}`, + ); + }} + itemRender={(shift) => ( +
    +
    +
    +
    +
    + {shift.patient_object.name} +
    +
    + {shift.patient_object.age} old +
    +
    +
    + {shift.emergency && ( + + {t("emergency")} + + )} +
    - {renderArrowIcons("right")} - - )} -
    - +
    + {( + [ + { + title: "phone_number", + icon: "l-mobile-android", + data: shift.patient_object.phone_number, + }, + { + title: "origin_facility", + icon: "l-plane-departure", + data: shift.origin_facility_object.name, + }, + { + title: "shifting_approving_facility", + icon: "l-user-check", + data: careConfig.wartimeShifting + ? shift.shifting_approving_facility_object?.name + : undefined, + }, + { + title: "assigned_facility", + icon: "l-plane-arrival", + data: + shift.assigned_facility_external || + shift.assigned_facility_object?.name || + t("yet_to_be_decided"), + }, + { + title: "last_modified", + icon: "l-stopwatch", + data: formatDateTime(shift.modified_date), + className: dayjs() + .subtract(2, "hours") + .isBefore(shift.modified_date) + ? "text-secondary-900" + : "rounded bg-red-500 border border-red-600 text-white w-full font-bold", + }, + { + title: "patient_address", + icon: "l-home", + data: shift.patient_object.address, + }, + { + title: "assigned_to", + icon: "l-user", + data: shift.assigned_to_object + ? formatName(shift.assigned_to_object) + + " - " + + shift.assigned_to_object.user_type + : undefined, + }, + { + title: "patient_state", + icon: "l-map-marker", + data: shift.patient_object.state_object?.name, + }, + ] as const + ) + .filter((d) => d.data) + .map((datapoint, i) => ( +
    +
    + +
    +
    + {datapoint.data} +
    +
    + ))} +
    +
    +
    + + {t("all_details")} + + + {shift.status === "COMPLETED" && shift.assigned_facility && ( + <> + + + + setModalFor({ externalId: undefined, loading: false }) + } + action={t("confirm")} + onConfirm={() => handleTransferComplete(shift)} + > +

    + {t("redirected_to_create_consultation")} +

    +
    + + )} +
    +
    + )} + />
    ); diff --git a/src/Components/Shifting/ListView.tsx b/src/Components/Shifting/ListView.tsx index b05795f934d..1e069d9e37f 100644 --- a/src/Components/Shifting/ListView.tsx +++ b/src/Components/Shifting/ListView.tsx @@ -1,6 +1,4 @@ -import { downloadShiftRequests } from "../../Redux/actions"; -import { lazy, useState } from "react"; - +import { useState } from "react"; import BadgesList from "./BadgesList"; import ButtonV2 from "../Common/components/ButtonV2"; import ConfirmDialog from "../Common/ConfirmDialog"; @@ -22,8 +20,7 @@ import routes from "../../Redux/api"; import useQuery from "../../Utils/request/useQuery"; import careConfig from "@careConfig"; -const Loading = lazy(() => import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; export default function ListView() { const { qParams, @@ -236,9 +233,12 @@ export default function ListView() { hideBack componentRight={ - downloadShiftRequests({ ...formatFilter(qParams), csv: 1 }) - } + action={async () => { + const { data } = await request(routes.downloadShiftRequests, { + query: { ...formatFilter(qParams), csv: true }, + }); + return data ?? null; + }} filenamePrefix="shift_requests" /> } diff --git a/src/Components/Shifting/ShiftDetails.tsx b/src/Components/Shifting/ShiftDetails.tsx index 5790f59cb05..cc39e048e89 100644 --- a/src/Components/Shifting/ShiftDetails.tsx +++ b/src/Components/Shifting/ShiftDetails.tsx @@ -6,7 +6,7 @@ import { SHIFTING_CHOICES_WARTIME, } from "../../Common/constants"; import { Link, navigate } from "raviger"; -import { lazy, useState } from "react"; +import { useState } from "react"; import ButtonV2 from "../Common/components/ButtonV2"; import CommentSection from "./CommentsSection"; import ConfirmDialog from "../Common/ConfirmDialog.js"; @@ -29,8 +29,7 @@ import CareIcon from "../../CAREUI/icons/CareIcon.js"; import { PatientModel } from "../Patient/models.js"; import careConfig from "@careConfig"; -const Loading = lazy(() => import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; export default function ShiftDetails(props: { id: string }) { const [isPrintMode, setIsPrintMode] = useState(false); const [isCopied, setIsCopied] = useState(false); diff --git a/src/Components/Shifting/ShiftDetailsUpdate.tsx b/src/Components/Shifting/ShiftDetailsUpdate.tsx index ccf808ecda9..64a7d1af110 100644 --- a/src/Components/Shifting/ShiftDetailsUpdate.tsx +++ b/src/Components/Shifting/ShiftDetailsUpdate.tsx @@ -12,7 +12,7 @@ import { } from "../../Common/constants"; import { Cancel, Submit } from "../Common/components/ButtonV2"; import { navigate, useQueryParams } from "raviger"; -import { lazy, useReducer, useState } from "react"; +import { useReducer, useState } from "react"; import { ConsultationModel } from "../Facility/models.js"; import DischargeModal from "../Facility/DischargeModal.js"; import { FacilitySelect } from "../Common/FacilitySelect"; @@ -40,8 +40,7 @@ import { PatientModel } from "../Patient/models.js"; import useAuthUser from "../../Common/hooks/useAuthUser.js"; import careConfig from "@careConfig"; -const Loading = lazy(() => import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; interface patientShiftProps { id: string; } diff --git a/src/Components/Shifting/ShiftingBoard.tsx b/src/Components/Shifting/ShiftingBoard.tsx deleted file mode 100644 index d7d182ec3e0..00000000000 --- a/src/Components/Shifting/ShiftingBoard.tsx +++ /dev/null @@ -1,393 +0,0 @@ -import { - Dispatch, - SetStateAction, - useEffect, - useLayoutEffect, - useRef, - useState, -} from "react"; -import { classNames, formatDateTime, formatName } from "../../Utils/utils"; -import { downloadShiftRequests } from "../../Redux/actions"; -import { useDrag, useDrop } from "react-dnd"; -import ButtonV2 from "../Common/components/ButtonV2"; -import ConfirmDialog from "../Common/ConfirmDialog"; -import { navigate } from "raviger"; -import { useTranslation } from "react-i18next"; -import { ExportButton } from "../Common/Export"; -import dayjs from "../../Utils/dayjs"; -import useAuthUser from "../../Common/hooks/useAuthUser"; -import request from "../../Utils/request/request"; -import routes from "../../Redux/api"; -import useQuery from "../../Utils/request/useQuery"; -import { PaginatedResponse } from "../../Utils/request/types"; -import { IShift } from "./models"; -import CareIcon from "../../CAREUI/icons/CareIcon"; -import careConfig from "@careConfig"; - -interface boardProps { - board: string; - title?: string; - filterProp: any; - formatFilter: any; - setContainerHeight: Dispatch>; - containerHeight: number; -} - -const ShiftCard = ({ shift, filter }: any) => { - const [modalFor, setModalFor] = useState({ - externalId: undefined, - loading: false, - }); - const [{ isDragging }, drag] = useDrag(() => ({ - type: "shift-card", - item: shift, - collect: (monitor) => ({ isDragging: !!monitor.isDragging() }), - })); - const authUser = useAuthUser(); - const { t } = useTranslation(); - - const handleTransferComplete = async (shift: any) => { - setModalFor({ ...modalFor, loading: true }); - await request(routes.completeTransfer, { - pathParams: { externalId: shift.external_id }, - }); - navigate( - `/facility/${shift.assigned_facility}/patient/${shift.patient}/consultation`, - ); - }; - return ( -
    -
    -
    -
    -
    -
    - {shift.patient_object.name} - {shift.patient_object.age} -
    -
    - {shift.emergency && ( - - {t("emergency")} - - )} -
    -
    -
    -
    -
    - -
    - {shift.patient_object.phone_number || ""} -
    - -
    -
    -
    - -
    - {(shift.origin_facility_object || {}).name} -
    - -
    - {careConfig.wartimeShifting && ( -
    -
    - -
    - {(shift.shifting_approving_facility_object || {}).name} -
    - -
    - )} -
    -
    - - -
    - {shift.assigned_facility_external || - shift.assigned_facility_object?.name || - t("yet_to_be_decided")} -
    - -
    - -
    -
    - -
    - {formatDateTime(shift.modified_date) || "--"} -
    - -
    - -
    -
    - -
    - {shift.patient_object.address || "--"} -
    - -
    - - {shift.assigned_to_object && ( -
    -
    - -
    - {formatName(shift.assigned_to_object)} - {" - "} - {shift.assigned_to_object.user_type} -
    - -
    - )} - -
    -
    - -
    - {shift.patient_object.state_object.name || "--"} -
    - -
    -
    -
    - -
    - -
    - {filter === "COMPLETED" && shift.assigned_facility && ( -
    - setModalFor(shift.external_id)} - > - {t("transfer_to_receiving_facility")} - - - - setModalFor({ externalId: undefined, loading: false }) - } - action={t("confirm")} - onConfirm={() => handleTransferComplete(shift)} - > -

    - {t("redirected_to_create_consultation")} -

    -
    -
    - )} -
    -
    -
    - ); -}; - -export default function ShiftingBoard({ - board, - title, - filterProp, - formatFilter, - setContainerHeight, - containerHeight, -}: boardProps) { - const containerRef = useRef(null); - const [offset, setOffSet] = useState(0); - const [pages, setPages] = useState[]>([]); - const [isLoading, setIsLoading] = useState(true); - const [{ isOver }, drop] = useDrop(() => ({ - accept: "shift-card", - drop: (item: any) => { - if (item.status !== board) { - navigate(`/shifting/${item.id}/update?status=${board}`); - } - }, - collect: (monitor) => ({ isOver: !!monitor.isOver() }), - })); - - const query = useQuery(routes.listShiftRequests, { - query: formatFilter({ - ...filterProp, - status: board, - }), - onResponse: ({ res, data: listShiftData }) => { - setIsLoading(false); - if (res?.ok && listShiftData) { - setPages((prev) => [...prev, listShiftData]); - } - }, - }); - - useEffect(() => { - setPages([]); - setIsLoading(true); - query.refetch(); - }, [ - filterProp.facility, - filterProp.origin_facility, - filterProp.shifting_approving_facility, - filterProp.assigned_facility, - filterProp.emergency, - filterProp.is_up_shift, - filterProp.patient_name, - filterProp.created_date_before, - filterProp.created_date_after, - filterProp.modified_date_before, - filterProp.modified_date_after, - filterProp.patient_phone_number, - filterProp.ordering, - filterProp.is_kasp, - filterProp.assigned_to, - filterProp.is_antenatal, - filterProp.breathlessness_level, - ]); - - const handlePagination = async () => { - setIsLoading(true); - setOffSet(offset + 14); - const { res, data: newPageData } = await request(routes.listShiftRequests, { - query: formatFilter({ - ...filterProp, - status: board, - offset: offset, - }), - }); - if (res?.ok && newPageData) { - setPages((prev) => [...prev, newPageData]); - } - setIsLoading(false); - }; - const { t } = useTranslation(); - - const patientFilter = (filter: string) => { - return pages - .flatMap((p) => p.results) - .filter(({ status }) => status === filter) - .map((shift: any) => ( - - )); - }; - - useLayoutEffect(() => { - const container = containerRef.current; - if (container) { - const { height } = container.getBoundingClientRect(); - containerHeight < height && setContainerHeight(height); - } - }, [containerRef.current, pages.flatMap((p) => p.results).length]); - - return ( -
    -
    -
    -

    - {title || board}{" "} - - downloadShiftRequests({ - ...formatFilter({ ...filterProp, status: board }), - csv: 1, - }) - } - filenamePrefix={`shift_requests_${board}`} - /> -

    - - {pages[0] ? pages[0].count : "..."} - -
    -
    -
    - {pages[0]?.count > 0 - ? patientFilter(board) - : !isLoading && ( -

    {t("no_patients_to_show")}

    - )} - {isLoading ? ( -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - ) : ( - pages.at(-1)?.next && ( - handlePagination()} className="m-2 block"> - Load More - - ) - )} -
    -
    - ); -} diff --git a/src/Components/Users/ManageUsers.tsx b/src/Components/Users/ManageUsers.tsx index a3cb3063577..801ffae03af 100644 --- a/src/Components/Users/ManageUsers.tsx +++ b/src/Components/Users/ManageUsers.tsx @@ -1,6 +1,6 @@ import dayjs from "dayjs"; import { navigate } from "raviger"; -import { lazy, useEffect, useState } from "react"; +import { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import CountBlock from "../../CAREUI/display/Count"; import CareIcon from "../../CAREUI/icons/CareIcon"; @@ -37,8 +37,7 @@ import UserDeleteDialog from "./UserDeleteDialog"; import UserFilter from "./UserFilter"; import { showUserDelete } from "../../Utils/permissions"; -const Loading = lazy(() => import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; export default function ManageUsers() { const { t } = useTranslation(); const { width } = useWindowDimensions(); @@ -188,7 +187,6 @@ export default function ManageUsers() { }; let userList: any[] = []; - userListData?.results && userListData.results.length && (userList = userListData.results.map((user: any, idx) => { @@ -283,15 +281,17 @@ export default function ManageUsers() { <>
    - {user.doctor_qualification ? ( + {user.qualification ? ( - {user.doctor_qualification} + {user.qualification} ) : ( - Unknown + + {t("unknown")} + )}
    @@ -307,7 +307,9 @@ export default function ManageUsers() { years ) : ( - Unknown + + {t("unknown")} + )}
    @@ -321,7 +323,9 @@ export default function ManageUsers() { {user.doctor_medical_council_registration} ) : ( - Unknown + + {t("unknown")} + )}
    @@ -335,11 +339,30 @@ export default function ManageUsers() {
    )} +
    + {user.user_type === "Nurse" && ( +
    + + {user.qualification ? ( + + {user.qualification} + + ) : ( + + {t("unknown")} + + )} + +
    + )} {user.created_by && (
    @@ -392,7 +415,7 @@ export default function ManageUsers() { }} > -

    Linked Facilities

    +

    {t("linked_facilities")}

    -

    Linked Skills

    +

    {t("linked_skills")}

    {["DistrictAdmin", "StateAdmin"].includes( @@ -758,7 +781,7 @@ export function UserFacilities(props: { user: any }) { selected={facility} setSelected={setFacility} errors="" - className="z-40" + className="z-40 w-full" /> { selected={selectedSkill} setSelected={setSelectedSkill} errors="" + className="w-full" userSkills={skills?.results || []} /> import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; interface UserProps { userId?: number; } @@ -72,7 +71,7 @@ type UserForm = { state: number; district: number; local_body: number; - doctor_qualification: string | undefined; + qualification: string | undefined; doctor_experience_commenced_on: string | undefined; doctor_medical_council_registration: string | undefined; }; @@ -95,7 +94,7 @@ const initForm: UserForm = { state: 0, district: 0, local_body: 0, - doctor_qualification: undefined, + qualification: undefined, doctor_experience_commenced_on: undefined, doctor_medical_council_registration: undefined, }; @@ -295,6 +294,7 @@ export const UserAdd = (props: UserProps) => { const handleDateChange = (e: FieldChangeEvent) => { if (dayjs(e.value).isValid()) { + const errors = { ...state.errors, [e.name]: "" }; dispatch({ type: "set_form", form: { @@ -302,10 +302,12 @@ export const UserAdd = (props: UserProps) => { [e.name]: dayjs(e.value).format("YYYY-MM-DD"), }, }); + dispatch({ type: "set_errors", errors }); } }; const handleFieldChange = (event: FieldChangeEvent) => { + const errors = { ...state.errors, [event.name]: "" }; dispatch({ type: "set_form", form: { @@ -313,6 +315,7 @@ export const UserAdd = (props: UserProps) => { [event.name]: event.value, }, }); + dispatch({ type: "set_errors", errors }); }; useAbortableEffect(() => { @@ -372,7 +375,16 @@ export const UserAdd = (props: UserProps) => { invalidForm = true; } return; - case "doctor_qualification": + case "qualification": + if ( + (state.form.user_type === "Doctor" || + state.form.user_type === "Nurse") && + !state.form[field] + ) { + errors[field] = t("field_required"); + invalidForm = true; + } + return; case "doctor_medical_council_registration": if (state.form.user_type === "Doctor" && !state.form[field]) { errors[field] = t("field_required"); @@ -553,9 +565,9 @@ export const UserAdd = (props: UserProps) => { : state.form.alt_phone_number, ) ?? "", date_of_birth: dateQueryString(state.form.date_of_birth), - doctor_qualification: - state.form.user_type === "Doctor" - ? state.form.doctor_qualification + qualification: + state.form.user_type === "Doctor" || state.form.user_type == "Nurse" + ? state.form.qualification : undefined, doctor_experience_commenced_on: state.form.user_type === "Doctor" @@ -650,15 +662,17 @@ export const UserAdd = (props: UserProps) => { optionValue={(o) => o.id} /> + {(state.form.user_type === "Doctor" || + state.form.user_type === "Nurse") && ( + + )} {state.form.user_type === "Doctor" && ( <> - - import("../Common/Loading")); - +import Loading from "@/Components/Common/Loading"; type EditForm = { firstName: string; lastName: string; @@ -39,7 +38,7 @@ type EditForm = { phoneNumber: string; altPhoneNumber: string; user_type: string | undefined; - doctor_qualification: string | undefined; + qualification: string | undefined; doctor_experience_commenced_on: number | string | undefined; doctor_medical_council_registration: string | undefined; weekly_working_hours: string | null | undefined; @@ -54,7 +53,7 @@ type ErrorForm = { phoneNumber: string; altPhoneNumber: string; user_type: string | undefined; - doctor_qualification: string | undefined; + qualification: string | undefined; doctor_experience_commenced_on: number | string | undefined; doctor_medical_council_registration: string | undefined; weekly_working_hours: string | undefined; @@ -77,7 +76,7 @@ const initForm: EditForm = { phoneNumber: "", altPhoneNumber: "", user_type: "", - doctor_qualification: undefined, + qualification: undefined, doctor_experience_commenced_on: undefined, doctor_medical_council_registration: undefined, weekly_working_hours: undefined, @@ -149,6 +148,7 @@ export default function UserProfile() { } = useQuery(routes.currentUser, { onResponse: (result) => { if (!result || !result.res || !result.data) return; + const formData: EditForm = { firstName: result.data.first_name, lastName: result.data.last_name, @@ -159,7 +159,7 @@ export default function UserProfile() { phoneNumber: result.data.phone_number?.toString() || "", altPhoneNumber: result.data.alt_phone_number?.toString() || "", user_type: result.data.user_type, - doctor_qualification: result.data.doctor_qualification, + qualification: result.data.qualification, doctor_experience_commenced_on: dayjs().diff( dayjs(result.data.doctor_experience_commenced_on), "years", @@ -277,7 +277,16 @@ export default function UserProfile() { invalidForm = true; } return; - case "doctor_qualification": + case "qualification": + if ( + (states.form.user_type === "Doctor" || + states.form.user_type === "Nurse") && + !states.form[field] + ) { + errors[field] = t("field_required"); + invalidForm = true; + } + return; case "doctor_medical_council_registration": if (states.form.user_type === "Doctor" && !states.form[field]) { errors[field] = t("field_required"); @@ -344,9 +353,10 @@ export default function UserProfile() { alt_phone_number: parsePhoneNumber(states.form.altPhoneNumber) ?? "", gender: states.form.gender, date_of_birth: dateQueryString(states.form.date_of_birth), - doctor_qualification: - states.form.user_type === "Doctor" - ? states.form.doctor_qualification + qualification: + states.form.user_type === "Doctor" || + states.form.user_type === "Nurse" + ? states.form.qualification : undefined, doctor_experience_commenced_on: states.form.user_type === "Doctor" @@ -459,10 +469,11 @@ export default function UserProfile() {

    - Personal Information + {t("personal_information")}

    - Local Body, District and State are Non Editable Settings. + {t("local_body")}, {t("district")}, {t("state")}{" "} + {t("are_non_editable_fields")}.

    - {showEdit ? "Cancel" : "Edit User Profile"} + {showEdit ? t("cancel") : t("edit_user_profile")} - Sign out + {t("sign_out")}
    @@ -488,7 +499,7 @@ export default function UserProfile() { id="username-profile-details" >
    - Username + {t("username")}
    {userData?.username || "-"} @@ -499,7 +510,7 @@ export default function UserProfile() { id="contactno-profile-details" >
    - Contact No + {t("phone_number")}
    {userData?.phone_number || "-"} @@ -511,7 +522,7 @@ export default function UserProfile() { id="whatsapp-profile-details" >
    - Whatsapp No + {t("whatsapp_number")}
    {userData?.alt_phone_number || "-"} @@ -522,7 +533,7 @@ export default function UserProfile() { id="emailid-profile-details" >
    - Email address + {t("email")}
    {userData?.email || "-"} @@ -533,7 +544,7 @@ export default function UserProfile() { id="firstname-profile-details" >
    - First Name + {t("first_name")}
    {userData?.first_name || "-"} @@ -544,7 +555,7 @@ export default function UserProfile() { id="lastname-profile-details" >
    - Last Name + {t("last_name")}
    {userData?.last_name || "-"} @@ -555,7 +566,7 @@ export default function UserProfile() { id="date_of_birth-profile-details" >
    - Date of Birth + {t("date_of_birth")}
    {userData?.date_of_birth @@ -565,7 +576,7 @@ export default function UserProfile() {
    - Access Level + {t("access_level")}
    {" "} @@ -577,7 +588,7 @@ export default function UserProfile() { id="gender-profile-details" >
    - Gender + {t("gender")}
    {userData?.gender || "-"} @@ -585,7 +596,7 @@ export default function UserProfile() {
    - Local Body + {t("local_body")}
    {userData?.local_body_object?.name || "-"} @@ -593,7 +604,7 @@ export default function UserProfile() {
    - District + {t("district")}
    {userData?.district_object?.name || "-"} @@ -601,7 +612,7 @@ export default function UserProfile() {
    - State + {t("state")}
    {userData?.state_object?.name || "-"} @@ -609,7 +620,7 @@ export default function UserProfile() {
    - Skills + {t("skills")}
    - Average weekly working hours + {t("average_weekly_working_hours")}
    {userData?.weekly_working_hours ?? "-"} @@ -646,7 +657,7 @@ export default function UserProfile() { id="videoconnectlink-profile-details" >
    - Video Connect Link + {t("video_conference_link")}
    {userData?.video_connect_link ? ( @@ -675,18 +686,18 @@ export default function UserProfile() { o.text} optionValue={(o) => o.text} - optionIcon={(o) => ( - {o.icon} - )} options={GENDER_TYPES} /> + {(states.form.user_type === "Doctor" || + states.form.user_type === "Nurse") && ( + + )} {states.form.user_type === "Doctor" && ( <> - )}
    - +
    @@ -783,7 +798,7 @@ export default function UserProfile() {
    @@ -875,10 +890,10 @@ export default function UserProfile() {

    - Language Selection + {t("language_selection")}

    - Set your local language + {t("set_your_local_language")}

    @@ -890,10 +905,10 @@ export default function UserProfile() {

    - Software Update + {t("software_update")}

    - Check for an available update + {t("check_for_available_update")}

    @@ -902,7 +917,7 @@ export default function UserProfile() {
    - Update available + {t("update_available")}
    @@ -923,8 +938,8 @@ export default function UserProfile() { )} /> {updateStatus.isChecking - ? "Checking for update" - : "Check for update"} + ? t("checking_for_update") + : t("check_for_update")}
    )} diff --git a/src/Components/Users/models.tsx b/src/Components/Users/models.tsx index 1bbe494b9ed..5d5c092dd02 100644 --- a/src/Components/Users/models.tsx +++ b/src/Components/Users/models.tsx @@ -1,4 +1,5 @@ import { GENDER_TYPES, UserRole } from "../../Common/constants"; +import { FeatureFlag } from "../../Utils/featureFlags"; import { DistrictModel, LocalBodyModel, StateModel } from "../Facility/models"; interface HomeFacilityObjectModel { @@ -40,10 +41,11 @@ export type UserModel = UserBareMinimum & { local_body_object?: LocalBodyModel; district_object?: DistrictModel; state_object?: StateModel; - doctor_qualification?: string; + qualification?: string; doctor_experience_commenced_on?: string; doctor_medical_council_registration?: string; weekly_working_hours?: string | null; + user_flags?: FeatureFlag[]; }; export type UserBaseModel = { @@ -80,7 +82,7 @@ export interface UserAssignedModel extends UserBareMinimum { verified?: boolean; home_facility?: string; home_facility_object?: HomeFacilityObjectModel; - doctor_qualification?: string; + qualification?: string; doctor_experience_commenced_on?: Date; doctor_medical_council_registration?: string; weekly_working_hours?: string; diff --git a/src/Components/VitalsMonitor/VitalsMonitorFooter.tsx b/src/Components/VitalsMonitor/VitalsMonitorFooter.tsx index 906495b93b5..1c669cd5bbf 100644 --- a/src/Components/VitalsMonitor/VitalsMonitorFooter.tsx +++ b/src/Components/VitalsMonitor/VitalsMonitorFooter.tsx @@ -1,5 +1,5 @@ import { AssetData } from "../Assets/AssetTypes"; -import VitalsMonitorAssetPopover from "./VitalsMonitorAssetPopover"; +import MonitorAssetPopover from "../Common/MonitorAssetPopover"; interface IVitalsMonitorFooterProps { asset?: AssetData; @@ -9,7 +9,10 @@ const VitalsMonitorFooter = ({ asset }: IVitalsMonitorFooterProps) => { return (

    {asset?.name}

    - +
    ); }; diff --git a/src/Components/ui/alert.tsx b/src/Components/ui/alert.tsx new file mode 100644 index 00000000000..ad2b6c32f64 --- /dev/null +++ b/src/Components/ui/alert.tsx @@ -0,0 +1,59 @@ +import * as React from "react"; +import { cva, type VariantProps } from "class-variance-authority"; + +import { cn } from "@/lib/utils"; + +const alertVariants = cva( + "relative w-full rounded-lg border border-gray-200 px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-gray-950 [&>svg~*]:pl-7 dark:border-gray-800 dark:[&>svg]:text-gray-50", + { + variants: { + variant: { + default: "bg-white text-gray-950 dark:bg-gray-950 dark:text-gray-50", + destructive: + "border-red-500/50 text-red-500 dark:border-red-500 [&>svg]:text-red-500 dark:border-red-900/50 dark:text-red-900 dark:dark:border-red-900 dark:[&>svg]:text-red-900", + }, + }, + defaultVariants: { + variant: "default", + }, + }, +); + +const Alert = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes & VariantProps +>(({ className, variant, ...props }, ref) => ( +
    +)); +Alert.displayName = "Alert"; + +const AlertTitle = React.forwardRef< + HTMLParagraphElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
    +)); +AlertTitle.displayName = "AlertTitle"; + +const AlertDescription = React.forwardRef< + HTMLParagraphElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
    +)); +AlertDescription.displayName = "AlertDescription"; + +export { Alert, AlertTitle, AlertDescription }; diff --git a/src/Components/ui/button.tsx b/src/Components/ui/button.tsx new file mode 100644 index 00000000000..972879cb6e1 --- /dev/null +++ b/src/Components/ui/button.tsx @@ -0,0 +1,61 @@ +import * as React from "react"; +import { Slot } from "@radix-ui/react-slot"; +import { cva, type VariantProps } from "class-variance-authority"; + +import { cn } from "@/lib/utils"; + +const buttonVariants = cva( + "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-gray-950 disabled:pointer-events-none disabled:opacity-50 dark:focus-visible:ring-gray-300", + { + variants: { + variant: { + default: + "bg-gray-900 text-gray-50 shadow hover:bg-gray-900/90 dark:bg-gray-50 dark:text-gray-900 dark:hover:bg-gray-50/90", + destructive: + "bg-red-500 text-gray-50 shadow-sm hover:bg-red-500/90 dark:bg-red-900 dark:text-gray-50 dark:hover:bg-red-900/90", + outline: + "border border-gray-200 bg-white shadow-sm hover:bg-gray-100 hover:text-gray-900 dark:border-gray-800 dark:bg-gray-950 dark:hover:bg-gray-800 dark:hover:text-gray-50", + secondary: + "bg-gray-100 text-gray-900 shadow-sm hover:bg-gray-100/80 dark:bg-gray-800 dark:text-gray-50 dark:hover:bg-gray-800/80", + ghost: + "hover:bg-gray-100 hover:text-gray-900 dark:hover:bg-gray-800 dark:hover:text-gray-50", + link: "text-gray-900 underline-offset-4 hover:underline dark:text-gray-50", + outline_primary: + "border border-primary-700 text-primary-700 bg-white shadow-sm hover:bg-primary-700 hover:text-white dark:border-primary-700 dark:bg-primary-700 dark:text-white", + }, + size: { + default: "h-9 px-4 py-2", + xs: "h-6 rounded-md px-2 text-xs", + sm: "h-8 rounded-md px-3 text-xs", + lg: "h-10 rounded-md px-8", + icon: "h-9 w-9", + }, + }, + defaultVariants: { + variant: "default", + size: "default", + }, + }, +); + +export interface ButtonProps + extends React.ButtonHTMLAttributes, + VariantProps { + asChild?: boolean; +} + +const Button = React.forwardRef( + ({ className, variant, size, asChild = false, ...props }, ref) => { + const Comp = asChild ? Slot : "button"; + return ( + + ); + }, +); +Button.displayName = "Button"; + +export { Button, buttonVariants }; diff --git a/src/Components/ui/dropdown-menu.tsx b/src/Components/ui/dropdown-menu.tsx new file mode 100644 index 00000000000..d019b2893d6 --- /dev/null +++ b/src/Components/ui/dropdown-menu.tsx @@ -0,0 +1,203 @@ +import * as React from "react"; +import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu"; +import { + CheckIcon, + ChevronRightIcon, + DotFilledIcon, +} from "@radix-ui/react-icons"; + +import { cn } from "@/lib/utils"; + +const DropdownMenu = DropdownMenuPrimitive.Root; + +const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger; + +const DropdownMenuGroup = DropdownMenuPrimitive.Group; + +const DropdownMenuPortal = DropdownMenuPrimitive.Portal; + +const DropdownMenuSub = DropdownMenuPrimitive.Sub; + +const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup; + +const DropdownMenuSubTrigger = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & { + inset?: boolean; + } +>(({ className, inset, children, ...props }, ref) => ( + + {children} + + +)); +DropdownMenuSubTrigger.displayName = + DropdownMenuPrimitive.SubTrigger.displayName; + +const DropdownMenuSubContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +DropdownMenuSubContent.displayName = + DropdownMenuPrimitive.SubContent.displayName; + +const DropdownMenuContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, sideOffset = 4, ...props }, ref) => ( + + + +)); +DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName; + +const DropdownMenuItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & { + inset?: boolean; + } +>(({ className, inset, ...props }, ref) => ( + +)); +DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName; + +const DropdownMenuCheckboxItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, checked, ...props }, ref) => ( + + + + + + + {children} + +)); +DropdownMenuCheckboxItem.displayName = + DropdownMenuPrimitive.CheckboxItem.displayName; + +const DropdownMenuRadioItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + + + + + + {children} + +)); +DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName; + +const DropdownMenuLabel = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & { + inset?: boolean; + } +>(({ className, inset, ...props }, ref) => ( + +)); +DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName; + +const DropdownMenuSeparator = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName; + +const DropdownMenuShortcut = ({ + className, + ...props +}: React.HTMLAttributes) => { + return ( + + ); +}; +DropdownMenuShortcut.displayName = "DropdownMenuShortcut"; + +export { + DropdownMenu, + DropdownMenuTrigger, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuCheckboxItem, + DropdownMenuRadioItem, + DropdownMenuLabel, + DropdownMenuSeparator, + DropdownMenuShortcut, + DropdownMenuGroup, + DropdownMenuPortal, + DropdownMenuSub, + DropdownMenuSubContent, + DropdownMenuSubTrigger, + DropdownMenuRadioGroup, +}; diff --git a/src/Components/ui/toast.tsx b/src/Components/ui/toast.tsx new file mode 100644 index 00000000000..59dd7fc4645 --- /dev/null +++ b/src/Components/ui/toast.tsx @@ -0,0 +1,130 @@ +import * as React from "react"; +import { Cross2Icon } from "@radix-ui/react-icons"; +import * as ToastPrimitives from "@radix-ui/react-toast"; +import { cva, type VariantProps } from "class-variance-authority"; + +import { cn } from "@/lib/utils"; + +const ToastProvider = ToastPrimitives.Provider; + +const ToastViewport = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +ToastViewport.displayName = ToastPrimitives.Viewport.displayName; + +const toastVariants = cva( + "group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border border-gray-200 p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full dark:border-gray-800", + { + variants: { + variant: { + default: + "border bg-white text-gray-950 dark:bg-gray-950 dark:text-gray-50", + destructive: + "destructive group border-red-500 bg-red-500 text-gray-50 dark:border-red-900 dark:bg-red-900 dark:text-gray-50", + success: + "border-green-500 bg-green-500 text-gray-50 dark:border-green-900 dark:bg-green-900 dark:text-gray-50", + }, + }, + defaultVariants: { + variant: "default", + }, + }, +); + +const Toast = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & + VariantProps +>(({ className, variant, ...props }, ref) => { + return ( + + ); +}); +Toast.displayName = ToastPrimitives.Root.displayName; + +const ToastAction = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +ToastAction.displayName = ToastPrimitives.Action.displayName; + +const ToastClose = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + + + +)); +ToastClose.displayName = ToastPrimitives.Close.displayName; + +const ToastTitle = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +ToastTitle.displayName = ToastPrimitives.Title.displayName; + +const ToastDescription = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +ToastDescription.displayName = ToastPrimitives.Description.displayName; + +type ToastProps = React.ComponentPropsWithoutRef; + +type ToastActionElement = React.ReactElement; + +export { + type ToastProps, + type ToastActionElement, + ToastProvider, + ToastViewport, + Toast, + ToastTitle, + ToastDescription, + ToastClose, + ToastAction, +}; diff --git a/src/Components/ui/toaster.tsx b/src/Components/ui/toaster.tsx new file mode 100644 index 00000000000..f3ec0c08f30 --- /dev/null +++ b/src/Components/ui/toaster.tsx @@ -0,0 +1,33 @@ +import { useToast } from "@/hooks/use-toast"; +import { + Toast, + ToastClose, + ToastDescription, + ToastProvider, + ToastTitle, + ToastViewport, +} from "@/Components/ui/toast"; + +export function Toaster() { + const { toasts } = useToast(); + + return ( + + {toasts.map(function ({ id, title, description, action, ...props }) { + return ( + +
    + {title && {title}} + {description && ( + {description} + )} +
    + {action} + +
    + ); + })} + +
    + ); +} diff --git a/src/Components/ui/tooltip.tsx b/src/Components/ui/tooltip.tsx new file mode 100644 index 00000000000..be192b1fb66 --- /dev/null +++ b/src/Components/ui/tooltip.tsx @@ -0,0 +1,28 @@ +import * as React from "react"; +import * as TooltipPrimitive from "@radix-ui/react-tooltip"; + +import { cn } from "@/lib/utils"; + +const TooltipProvider = TooltipPrimitive.Provider; + +const Tooltip = TooltipPrimitive.Root; + +const TooltipTrigger = TooltipPrimitive.Trigger; + +const TooltipContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, sideOffset = 4, ...props }, ref) => ( + +)); +TooltipContent.displayName = TooltipPrimitive.Content.displayName; + +export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }; diff --git a/src/Integrations/index.tsx b/src/Integrations/index.tsx index aeb0399a452..9b2b1e156fd 100644 --- a/src/Integrations/index.tsx +++ b/src/Integrations/index.tsx @@ -1,6 +1,6 @@ import Sentry from "./Sentry"; import Plausible from "./Plausible"; -const Intergrations = { Sentry, Plausible }; +const Integrations = { Sentry, Plausible }; -export default Intergrations; +export default Integrations; diff --git a/src/Locale/TRANSLATION_CONTRIBUTION.md b/src/Locale/TRANSLATION_CONTRIBUTION.md index c262215c643..f3150ae8fc0 100644 --- a/src/Locale/TRANSLATION_CONTRIBUTION.md +++ b/src/Locale/TRANSLATION_CONTRIBUTION.md @@ -1,29 +1,13 @@ -# Contributing Translation +# Contributing Translations -### For adding a new language - -
    +## Adding a new language - Open the Terminal and `cd` to `care_fe/src/Locale` - Run the command `node update_locale.js ` Eg: `node update_locale.js ml` for Malayalam -- The command will create a directory with default locale files and you can start translating them. +- The command will create a directory with default locale files. - After it's done, add the new language to `care_fe/src/Locale/config.ts` file. -### For improving the existing language - -
    - -- Open the Terminal and `cd` to `care_fe/src/Locale` -- Run the command `node update_locale.js ` - Eg: `node update_locale.js ml` for Malayalam -- The command will update the new keys which are yet to be translated. -- You can now start translating or improving it. - ## Note -⚠ - If you are adding a new word, then please add it to the Default Locale (EN) first and then proceed with your language. - -⚠ - After translating, have a look at its appearance. It may be overflowing or cause some UI breaks. Try to adjust the words such that it fits the UI. - ⚠ - Try to separate the translation files for each module like `Facility`, `Patient` and more. Don't dump all the keys in one JSON file. diff --git a/src/Locale/config.ts b/src/Locale/config.ts deleted file mode 100644 index cc41f589581..00000000000 --- a/src/Locale/config.ts +++ /dev/null @@ -1,7 +0,0 @@ -export const LANGUAGE_NAMES: { [key: string]: any } = { - en: "English", - ta: "தமிழ்", - ml: "മലയാളം", - mr: "मराठी", - kn: "ಕನ್ನಡ", -}; diff --git a/src/Locale/en.json b/src/Locale/en.json new file mode 100644 index 00000000000..d4808fa185b --- /dev/null +++ b/src/Locale/en.json @@ -0,0 +1,1063 @@ +{ + "404_message": "It appears that you have stumbled upon a page that either does not exist or has been moved to another URL. Make sure you have entered the correct link!", + "APPETITE__CANNOT_BE_ASSESSED": "Cannot be assessed", + "APPETITE__INCREASED": "Increased", + "APPETITE__NO_TASTE_FOR_FOOD": "No taste for food", + "APPETITE__REDUCED": "Reduced", + "APPETITE__SATISFACTORY": "Satisfactory", + "AUTOMATED": "Automated", + "BED_WITH_OXYGEN_SUPPORT": "Bed with Oxygen Support", + "BLADDER_DRAINAGE__CONDOM_CATHETER": "Condom Catheter", + "BLADDER_DRAINAGE__CONTINUOUS_INDWELLING_CATHETER": "Continuous Indwelling Catheter", + "BLADDER_DRAINAGE__CONTINUOUS_SUPRAPUBIC_CATHETER": "Continuous Suprapubic Catheter", + "BLADDER_DRAINAGE__DIAPER": "Diaper", + "BLADDER_DRAINAGE__INTERMITTENT_CATHETER": "Intermittent Catheter", + "BLADDER_DRAINAGE__NORMAL": "Normal", + "BLADDER_DRAINAGE__UROSTOMY": "Urostomy", + "BLADDER_ISSUE__HESITANCY": "Hesitancy", + "BLADDER_ISSUE__INCONTINENCE": "Incontinence", + "BLADDER_ISSUE__NO_ISSUES": "No issues", + "BLADDER_ISSUE__RETENTION": "Retention", + "BOWEL_ISSUE__CONSTIPATION": "Constipation", + "BOWEL_ISSUE__DIARRHOEA": "Diarrhoea", + "BOWEL_ISSUE__NO_DIFFICULTY": "No difficulty", + "CONSCIOUSNESS_LEVEL__AGITATED_OR_CONFUSED": "Agitated or Confused", + "CONSCIOUSNESS_LEVEL__ALERT": "Alert", + "CONSCIOUSNESS_LEVEL__ONSET_OF_AGITATION_AND_CONFUSION": "Onset of Agitation and Confusion", + "CONSCIOUSNESS_LEVEL__RESPONDS_TO_PAIN": "Responds to Pain", + "CONSCIOUSNESS_LEVEL__RESPONDS_TO_VOICE": "Responds to Voice", + "CONSCIOUSNESS_LEVEL__UNRESPONSIVE": "Unresponsive", + "CONSULTATION_TAB__ABDM": "ABDM Records", + "CONSULTATION_TAB__ABG": "ABG", + "CONSULTATION_TAB__DIALYSIS": "Dialysis", + "CONSULTATION_TAB__FEED": "Feed", + "CONSULTATION_TAB__FILES": "Files", + "CONSULTATION_TAB__INVESTIGATIONS": "Investigations", + "CONSULTATION_TAB__MEDICINES": "Medicines", + "CONSULTATION_TAB__NEUROLOGICAL_MONITORING": "Neuro", + "CONSULTATION_TAB__NURSING": "Nursing", + "CONSULTATION_TAB__NUTRITION": "Nutrition", + "CONSULTATION_TAB__PRESSURE_SORE": "Pressure Sore", + "CONSULTATION_TAB__SUMMARY": "Vitals", + "CONSULTATION_TAB__UPDATES": "Overview", + "CONSULTATION_TAB__VENTILATOR": "Ventilation", + "Cancel": "Cancel", + "DD/MM/YYYY": "DD/MM/YYYY", + "DOCTORS_LOG": "Progress Note", + "DOMESTIC_HEALTHCARE_SUPPORT__FAMILY_MEMBER": "Family member", + "DOMESTIC_HEALTHCARE_SUPPORT__NO_SUPPORT": "No support", + "DOMESTIC_HEALTHCARE_SUPPORT__PAID_CAREGIVER": "Paid caregiver", + "GENDER__1": "Male", + "GENDER__2": "Female", + "GENDER__3": "Non-binary", + "HEARTBEAT_RHYTHM__IRREGULAR": "Irregular", + "HEARTBEAT_RHYTHM__REGULAR": "Regular", + "HEARTBEAT_RHYTHM__UNKNOWN": "Unknown", + "ICU": "ICU", + "INSULIN_INTAKE_FREQUENCY__BD": "Twice a day (BD)", + "INSULIN_INTAKE_FREQUENCY__OD": "Once a day (OD)", + "INSULIN_INTAKE_FREQUENCY__TD": "Thrice a day (TD)", + "INSULIN_INTAKE_FREQUENCY__UNKNOWN": "Unknown", + "ISOLATION": "Isolation", + "KASP Empanelled": "KASP Empanelled", + "LIMB_RESPONSE__EXTENSION": "Extension", + "LIMB_RESPONSE__FLEXION": "Flexion", + "LIMB_RESPONSE__MODERATE": "Moderate", + "LIMB_RESPONSE__NONE": "None", + "LIMB_RESPONSE__STRONG": "Strong", + "LIMB_RESPONSE__UNKNOWN": "Unknown", + "LIMB_RESPONSE__WEAK": "Weak", + "LOG_UPDATE_CREATED_NOTIFICATION": "{{ roundType }} created successfully", + "LOG_UPDATE_FIELD_LABEL__action": "Action", + "LOG_UPDATE_FIELD_LABEL__appetite": "Appetite", + "LOG_UPDATE_FIELD_LABEL__bladder_drainage": "Drainage", + "LOG_UPDATE_FIELD_LABEL__bladder_issue": "Issues", + "LOG_UPDATE_FIELD_LABEL__blood_sugar_level": "Blood Sugar Level", + "LOG_UPDATE_FIELD_LABEL__bowel_issue": "Bowel", + "LOG_UPDATE_FIELD_LABEL__bp": "Blood Pressure", + "LOG_UPDATE_FIELD_LABEL__consciousness_level": "Level of Consciousness", + "LOG_UPDATE_FIELD_LABEL__is_experiencing_dysuria": "Experiences Dysuria?", + "LOG_UPDATE_FIELD_LABEL__nutrition_route": "Nutrition Route", + "LOG_UPDATE_FIELD_LABEL__oral_issue": "Oral issues", + "LOG_UPDATE_FIELD_LABEL__other_details": "Other details", + "LOG_UPDATE_FIELD_LABEL__patient_category": "Category", + "LOG_UPDATE_FIELD_LABEL__physical_examination_info": "Physical Examination Info", + "LOG_UPDATE_FIELD_LABEL__pulse": "Pulse", + "LOG_UPDATE_FIELD_LABEL__resp": "Respiratory Rate", + "LOG_UPDATE_FIELD_LABEL__review_interval": "Review after", + "LOG_UPDATE_FIELD_LABEL__rhythm": "Heartbeat Rhythm", + "LOG_UPDATE_FIELD_LABEL__rhythm_detail": "Rhythm Description", + "LOG_UPDATE_FIELD_LABEL__rounds_type": "Rounds Type", + "LOG_UPDATE_FIELD_LABEL__sleep": "Sleep", + "LOG_UPDATE_FIELD_LABEL__temperature": "Temperature", + "LOG_UPDATE_FIELD_LABEL__urination_frequency": "Frequency of Urination", + "LOG_UPDATE_FIELD_LABEL__ventilator_spo2": "SpO₂", + "LOG_UPDATE_UPDATED_NOTIFICATION": "{{ roundType }} updated successfully", + "NORMAL": "Brief Update", + "NURSING_CARE_PROCEDURE__ascitic_tapping": "Ascitic Tapping", + "NURSING_CARE_PROCEDURE__bed_bath": "Bed Bath", + "NURSING_CARE_PROCEDURE__catheter_care": "Catheter Care", + "NURSING_CARE_PROCEDURE__catheter_change": "Catheter Change", + "NURSING_CARE_PROCEDURE__chest_tube_care": "Chest Tube Care", + "NURSING_CARE_PROCEDURE__colostomy_care": "Colostomy Care", + "NURSING_CARE_PROCEDURE__colostomy_change": "Colostomy Change", + "NURSING_CARE_PROCEDURE__dressing": "Dressing", + "NURSING_CARE_PROCEDURE__dvt_pump_stocking": "DVT Pump Stocking", + "NURSING_CARE_PROCEDURE__eye_care": "Eye Care", + "NURSING_CARE_PROCEDURE__hair_care": "Hair Care", + "NURSING_CARE_PROCEDURE__iv_sitecare": "IV Site Care", + "NURSING_CARE_PROCEDURE__lymphedema_care": "Lymphedema Care", + "NURSING_CARE_PROCEDURE__nubulisation": "Nubulisation", + "NURSING_CARE_PROCEDURE__oral_care": "Oral Care", + "NURSING_CARE_PROCEDURE__perineal_care": "Perineal Care", + "NURSING_CARE_PROCEDURE__personal_hygiene": "Other Personal Hygiene", + "NURSING_CARE_PROCEDURE__positioning": "Positioning", + "NURSING_CARE_PROCEDURE__pre_enema": "P.R.E. Enema", + "NURSING_CARE_PROCEDURE__restrain": "Restrain", + "NURSING_CARE_PROCEDURE__ryles_tube_care": "Ryle’s Tube Care", + "NURSING_CARE_PROCEDURE__ryles_tube_change": "Ryle’s Tube Change", + "NURSING_CARE_PROCEDURE__skin_care": "Skin Care", + "NURSING_CARE_PROCEDURE__stoma_care": "Stoma Care", + "NURSING_CARE_PROCEDURE__suctioning": "Suctioning", + "NURSING_CARE_PROCEDURE__tracheostomy_care": "Tracheostomy Care", + "NURSING_CARE_PROCEDURE__tracheostomy_tube_change": "Tracheostomy Tube Change", + "NURSING_CARE_PROCEDURE__wound_dressing": "Wound Dressing", + "NUTRITION_ROUTE__GASTROSTOMY_OR_JEJUNOSTOMY": "Gastrostomy / Jejunostomy", + "NUTRITION_ROUTE__ORAL": "Oral", + "NUTRITION_ROUTE__PARENTERAL_TUBING_FLUID": "Parenteral Tubing (Fluid)", + "NUTRITION_ROUTE__PARENTERAL_TUBING_TPN": "Parenteral Tubing (TPN)", + "NUTRITION_ROUTE__PEG": "PEG", + "NUTRITION_ROUTE__RYLES_TUBE": "Ryle's Tube", + "Notifications": "Notifications", + "ORAL_ISSUE__DYSPHAGIA": "Dysphagia", + "ORAL_ISSUE__NO_ISSUE": "No issues", + "ORAL_ISSUE__ODYNOPHAGIA": "Odynophagia", + "OXYGEN_MODALITY__HIGH_FLOW_NASAL_CANNULA": "High Flow Nasal Cannula", + "OXYGEN_MODALITY__NASAL_PRONGS": "Nasal Prongs", + "OXYGEN_MODALITY__NON_REBREATHING_MASK": "Non Rebreathing Mask", + "OXYGEN_MODALITY__SIMPLE_FACE_MASK": "Simple Face Mask", + "PRESCRIPTION_FREQUENCY_BD": "Twice daily", + "PRESCRIPTION_FREQUENCY_HS": "Night only", + "PRESCRIPTION_FREQUENCY_OD": "Once daily", + "PRESCRIPTION_FREQUENCY_Q4H": "4th hourly", + "PRESCRIPTION_FREQUENCY_QID": "6th hourly", + "PRESCRIPTION_FREQUENCY_QOD": "Alternate day", + "PRESCRIPTION_FREQUENCY_QWK": "Once a week", + "PRESCRIPTION_FREQUENCY_STAT": "Imediately", + "PRESCRIPTION_FREQUENCY_TID": "8th hourly", + "PRESCRIPTION_ROUTE_IM": "IM", + "PRESCRIPTION_ROUTE_INHALATION": "Inhalation", + "PRESCRIPTION_ROUTE_INTRATHECAL": "intrathecal injection", + "PRESCRIPTION_ROUTE_IV": "IV", + "PRESCRIPTION_ROUTE_NASOGASTRIC": "Nasogastric / Gastrostomy tube", + "PRESCRIPTION_ROUTE_ORAL": "Oral", + "PRESCRIPTION_ROUTE_RECTAL": "Rectal", + "PRESCRIPTION_ROUTE_SC": "S/C", + "PRESCRIPTION_ROUTE_SUBLINGUAL": "Sublingual", + "PRESCRIPTION_ROUTE_TRANSDERMAL": "Transdermal", + "PUPIL_REACTION__BRISK": "Brisk", + "PUPIL_REACTION__CANNOT_BE_ASSESSED": "Cannot be assessed", + "PUPIL_REACTION__FIXED": "Fixed", + "PUPIL_REACTION__SLUGGISH": "Sluggish", + "PUPIL_REACTION__UNKNOWN": "Unknown", + "REGULAR": "Regular", + "RESPIRATORY_SUPPORT_SHORT__INVASIVE": "IV", + "RESPIRATORY_SUPPORT_SHORT__NON_INVASIVE": "NIV", + "RESPIRATORY_SUPPORT_SHORT__OXYGEN_SUPPORT": "O₂ Support", + "RESPIRATORY_SUPPORT_SHORT__UNKNOWN": "None", + "RESPIRATORY_SUPPORT__INVASIVE": "Invasive ventilator (IV)", + "RESPIRATORY_SUPPORT__NON_INVASIVE": "Non-Invasive ventilator (NIV)", + "RESPIRATORY_SUPPORT__OXYGEN_SUPPORT": "Oxygen Support", + "RESPIRATORY_SUPPORT__UNKNOWN": "None", + "ROUNDS_TYPE__AUTOMATED": "Virtual Nursing Assistant", + "ROUNDS_TYPE__COMMUNITY_NURSES_LOG": "Community Nurse's Log", + "ROUNDS_TYPE__DOCTORS_LOG": "Progress Note", + "ROUNDS_TYPE__NORMAL": "Brief Update", + "ROUNDS_TYPE__TELEMEDICINE": "Tele-medicine Log", + "ROUNDS_TYPE__VENTILATOR": "Detailed Update", + "SLEEP__EXCESSIVE": "Excessive", + "SLEEP__NO_SLEEP": "No sleep", + "SLEEP__SATISFACTORY": "Satisfactory", + "SLEEP__UNSATISFACTORY": "Unsatisfactory", + "SOCIOECONOMIC_STATUS__MIDDLE_CLASS": "Middle Class", + "SOCIOECONOMIC_STATUS__POOR": "Poor", + "SOCIOECONOMIC_STATUS__VERY_POOR": "Very Poor", + "SOCIOECONOMIC_STATUS__WELL_OFF": "Well Off", + "SORT_OPTIONS__-bed__name": "Bed No. N-1", + "SORT_OPTIONS__-category_severity": "Highest Severity category first", + "SORT_OPTIONS__-created_date": "Latest created date first", + "SORT_OPTIONS__-modified_date": "Latest updated date first", + "SORT_OPTIONS__-name": "Patient name Z-A", + "SORT_OPTIONS__-review_time": "Latest review date first", + "SORT_OPTIONS__-taken_at": "Latest taken date first", + "SORT_OPTIONS__bed__name": "Bed No. 1-N", + "SORT_OPTIONS__category_severity": "Lowest Severity category first", + "SORT_OPTIONS__created_date": "Oldest created date first", + "SORT_OPTIONS__facility__name,-last_consultation__current_bed__bed__name": "Bed No. N-1", + "SORT_OPTIONS__facility__name,last_consultation__current_bed__bed__name": "Bed No. 1-N", + "SORT_OPTIONS__modified_date": "Oldest updated date first", + "SORT_OPTIONS__name": "Patient name A-Z", + "SORT_OPTIONS__review_time": "Oldest review date first", + "SORT_OPTIONS__taken_at": "Oldest taken date first", + "Submit": "Submit", + "TELEMEDICINE": "Telemedicine", + "URINATION_FREQUENCY__DECREASED": "Decreased", + "URINATION_FREQUENCY__INCREASED": "Increased", + "URINATION_FREQUENCY__NORMAL": "Normal", + "VENTILATOR": "Detailed Update", + "VENTILATOR_MODE__CMV": "Control Mechanical Ventilation (CMV)", + "VENTILATOR_MODE__PCV": "Pressure Control Ventilation (PCV)", + "VENTILATOR_MODE__PC_SIMV": "Pressure Controlled SIMV (PC-SIMV)", + "VENTILATOR_MODE__PSV": "C-PAP / Pressure Support Ventilation (PSV)", + "VENTILATOR_MODE__SIMV": "Synchronised Intermittent Mandatory Ventilation (SIMV)", + "VENTILATOR_MODE__VCV": "Volume Control Ventilation (VCV)", + "VENTILATOR_MODE__VC_SIMV": "Volume Controlled SIMV (VC-SIMV)", + "View Facility": "View Facility", + "abha_number_linked_successfully": "ABHA number linked successfully", + "access_level": "Access Level", + "action_irreversible": "This action is irreversible", + "active": "Active", + "active_prescriptions": "Active Prescriptions", + "add": "Add", + "add_as": "Add as", + "add_attachments": "Add Attachments", + "add_beds": "Add Bed(s)", + "add_details_of_patient": "Add Details of Patient", + "add_location": "Add Location", + "add_new_user": "Add New User", + "add_notes": "Add notes", + "add_policy": "Add Insurance Policy", + "add_prescription_medication": "Add Prescription Medication", + "add_prescription_to_consultation_note": "Add a new prescription to this consultation.", + "add_prn_prescription": "Add PRN Prescription", + "add_remarks": "Add remarks", + "add_spoke": "Add Spoke Facility", + "address": "Address", + "administer": "Administer", + "administer_medicine": "Administer Medicine", + "administer_medicines": "Administer Medicines", + "administer_selected_medicines": "Administer Selected Medicines", + "administered_on": "Administered on", + "administration_dosage_range_error": "Dosage should be between start and target dosage", + "administration_notes": "Administration Notes", + "advanced_filters": "Advanced Filters", + "age": "Age", + "all_changes_have_been_saved": "All changes have been saved", + "all_details": "All Details", + "allergies": "Allergies", + "allowed_formats_are": "Allowed formats are", + "already_a_member": "Already a member?", + "ambulance_driver_name": "Name of ambulance driver", + "ambulance_number": "Ambulance No", + "ambulance_phone_number": "Phone number of Ambulance", + "antenatal": "Antenatal", + "any_other_comments": "Any other comments", + "apply": "Apply", + "approved_by_district_covid_control_room": "Approved by District COVID Control Room", + "approving_facility": "Name of Approving Facility", + "archive": "Archive", + "archived": "Archived", + "are_non_editable_fields": "are non-editable fields", + "are_you_still_watching": "Are you still watching?", + "are_you_sure_want_to_delete": "Are you sure you want to delete {{name}}?", + "are_you_sure_want_to_delete_this_record": "Are you sure want to delete this record?", + "asset_class": "Asset Class", + "asset_location": "Asset Location", + "asset_name": "Asset Name", + "asset_not_found_msg": "Oops! The asset you are looking for does not exist. Please check the asset id.", + "asset_qr_id": "Asset QR ID", + "asset_type": "Asset Type", + "assets": "Assets", + "assigned_facility": "Facility assigned", + "assigned_to": "Assigned to", + "audio__allow_permission": "Please allow microphone permission in site settings", + "audio__allow_permission_button": "Click here to know how to allow", + "audio__allow_permission_helper": "You might have denied microphone access in the past.", + "audio__record": "Record Audio", + "audio__record_helper": "Click the button to start recording", + "audio__recorded": "Audio Recorded", + "audio__recording": "Recording", + "audio__recording_helper": "Please speak into your microphone.", + "audio__recording_helper_2": "Click on the button to stop recording.", + "audio__start_again": "Start Again", + "audit_log": "Audit Log", + "auth_login_title": "Authorized Login", + "authorize_shift_delete": "Authorize shift delete", + "auto_generated_for_care": "Auto Generated for Care", + "available_features": "Available Features", + "available_in": "Available in", + "average_weekly_working_hours": "Average weekly working hours", + "awaiting_destination_approval": "AWAITING DESTINATION APPROVAL", + "back": "Back", + "back_dated_encounter_date_caution": "You are creating an encounter for", + "back_to_consultation": "Go back to Consultation", + "back_to_login": "Back to login", + "base_dosage": "Dosage", + "bed_capacity": "Bed Capacity", + "bed_created_notification_one": "{{count}} Bed created successfully", + "bed_created_notification_other": "{{count}} Beds created successfully", + "bed_search_placeholder": "Search by beds name", + "bed_type": "Bed Type", + "bed_type__100": "ICU Bed", + "bed_type__200": "Ordinary Bed", + "bed_type__300": "Oxygen Supported Bed", + "bed_type__400": "Isolation Bed", + "bed_type__500": "Others", + "bladder": "Bladder", + "blood_group": "Blood Group", + "blood_pressure_error": { + "missing": "Field is required. Either specify both or clear both.", + "exceed": "Value cannot exceed 250 mmHg.", + "systolic_less_than_diastolic": "Systolic must be greater than diastolic." + }, + "board_view": "Board View", + "bradycardia": "Bradycardia", + "breathlessness_level": "Breathlessness level", + "camera": "Camera", + "camera_permission_denied": "Camera Permission denied", + "cancel": "Cancel", + "capture": "Capture", + "capture_cover_photo": "Capture Cover Photo", + "care": "CARE", + "category": "Category", + "caution": "Caution", + "central_nursing_station": "Central Nursing Station", + "change_file": "Change File", + "change_password": "Change Password", + "check_eligibility": "Check Eligibility", + "check_for_available_update": "Check for available update", + "check_for_update": "Check for Update", + "check_policy_eligibility": "Check Policy Eligibility", + "checking_eligibility": "Checking Eligibility", + "checking_for_update": "Checking for update", + "checking_policy_eligibility": "Checking Policy Eligibility", + "choose_file": "Upload From Device", + "choose_location": "Choose Location", + "claim__add_item": "Add Item", + "claim__create_claim": "Create Claim", + "claim__create_preauthorization": "Create Pre Authorization", + "claim__creating_claim": "Creating Claim", + "claim__creating_preauthorization": "Creating Pre Authorization", + "claim__error_fetching_claim_approval_results": "Error Fetching Claim Approval Results", + "claim__failed_to_create_claim": "Failed to create Claim", + "claim__failed_to_create_preauthorization": "Failed to create Pre Authorization", + "claim__fetched_claim_approval_results": "Fetched Claim Approval Results", + "claim__item": "Item", + "claim__item__add_at_least_one": "Add at least one item", + "claim__item__category": "Category", + "claim__item__fill_all_details": "Fill all the item details", + "claim__item__id": "ID", + "claim__item__id__example": "PROC001", + "claim__item__name": "Name", + "claim__item__name__example": "Knee Replacement", + "claim__item__price": "Price", + "claim__item__price__example": "100.00", + "claim__item__procedure": "Procedure", + "claim__items": "Items", + "claim__request_claim": "Request Claim", + "claim__requesting_claim": "Requesting Claim", + "claim__status__approved": "Approved", + "claim__status__pending": "Pending", + "claim__status__rejected": "Rejected", + "claim__total_approved_amount": "Total Approved Amount", + "claim__total_claim_amount": "Total Claim Amount", + "claim__use": "Use", + "claim__use__claim": "Claim", + "claim__use__preauthorization": "Pre Authorization", + "claims": "Claims", + "clear": "Clear", + "clear_all_filters": "Clear All Filters", + "clear_home_facility": "Clear Home Facility", + "clear_selection": "Clear selection", + "close": "Close", + "close_scanner": "Close Scanner", + "collapse_sidebar": "Collapse Sidebar", + "comment_added_successfully": "Comment added successfully", + "comment_min_length": "Comment Should Contain At Least 1 Character", + "comments": "Comments", + "communication__sent_to_hcx": "Sent communication to HCX", + "completed": "Completed", + "configure": "Configure", + "configure_facility": "Configure Facility", + "confirm": "Confirm", + "confirm_delete": "Confirm Delete", + "confirm_discontinue": "Confirm Discontinue", + "confirm_password": "Confirm Password", + "confirm_transfer_complete": "Confirm Transfer Complete!", + "confirmed": "Confirmed", + "consultation_not_filed": "You have not filed any consultation for this patient yet.", + "consultation_not_filed_description": "Please file a consultation for this patient to continue.", + "consultation_notes": "General Instructions (Advice)", + "consultation_updates": "Consultation updates", + "contact_number": "Contact Number", + "contact_person": "Name of Contact Person at Facility", + "contact_person_at_the_facility": "Contact person at the current facility", + "contact_person_number": "Contact person number", + "contact_phone": "Contact Person Number", + "contact_your_admin_to_add_skills": "Contact your admin to add skills", + "continue": "Continue", + "continue_watching": "Continue watching", + "contribute_github": "Contribute on Github", + "copied_to_clipboard": "Copied to clipboard", + "countries_travelled": "Countries travelled", + "covid_19_cat_gov": "Covid_19 Clinical Category as per Govt. of Kerala guideline (A/B/C)", + "covid_19_death_reporting_form_1": "Covid-19 Death Reporting : Form 1", + "create": "Create", + "create_add_more": "Create & Add More", + "create_asset": "Create Asset", + "create_consultation": "Create Consultation", + "create_facility": "Create a new facility", + "create_new_asset": "Create New Asset", + "create_resource_request": "Create Resource Request", + "created": "Created", + "created_date": "Created Date", + "created_on": "Created On", + "csv_file_in_the_specified_format": "Select a CSV file in the specified format", + "current_password": "Current Password", + "customer_support_email": "Customer Support Email", + "customer_support_name": "Customer Support Name", + "customer_support_number": "Customer support number", + "cylinders": "Cylinders", + "cylinders_per_day": "Cylinders/day", + "date_and_time": "Date and Time", + "date_declared_positive": "Date of declaring positive", + "date_of_admission": "Date of Admission", + "date_of_birth": "Date of birth", + "date_of_positive_covid_19_swab": "Date of Positive Covid 19 Swab", + "date_of_result": "Covid confirmation date", + "date_of_test": "Date of sample collection for Covid testing", + "days": "Days", + "delete": "Delete", + "delete_facility": "Delete Facility", + "delete_item": "Delete {{name}}", + "delete_record": "Delete Record", + "deleted_successfully": "{{name}} deleted successfully", + "describe_why_the_asset_is_not_working": "Describe why the asset is not working", + "description": "Description", + "details_about_the_equipment": "Details about the equipment", + "details_of_assigned_facility": "Details of assigned facility", + "details_of_origin_facility": "Details of origin facility", + "details_of_patient": "Details of patient", + "details_of_shifting_approving_facility": "Details of shifting approving facility", + "diagnoses": "Diagnoses", + "diagnosis": "Diagnosis", + "diagnosis__confirmed": "Confirmed", + "diagnosis__differential": "Differential", + "diagnosis__principal": "Principal", + "diagnosis__provisional": "Provisional", + "diagnosis__unconfirmed": "Unconfirmed", + "diagnosis_already_added": "This diagnosis was already added", + "diagnosis_at_discharge": "Diagnosis at Discharge", + "diastolic": "Diastolic", + "differential": "Differential", + "discard": "Discard", + "discharge": "Discharge", + "discharge_from_care": "Discharge from CARE", + "discharge_prescription": "Discharge Prescription", + "discharge_summary": "Discharge Summary", + "discharge_summary_not_ready": "Discharge summary is not ready yet.", + "discharged": "Discharged", + "discharged_patients": "Discharged Patients", + "discharged_patients_empty": "No discharged patients present in this facility", + "disclaimer": "Disclaimer", + "discontinue": "Discontinue", + "discontinue_caution_note": "Are you sure you want to discontinue this prescription?", + "discontinued": "Discontinued", + "disease_status": "Disease status", + "district": "District", + "district_program_management_supporting_unit": "District Program Management Supporting Unit", + "doctor_s_medical_council_registration": "Doctor's Medical Council Registration", + "domestic_healthcare_support": "Domestic healthcare support", + "done": "Done", + "dosage": "Dosage", + "down": "Down", + "download": "Download", + "download_discharge_summary": "Download discharge summary", + "download_type": "Download Type", + "downloading": "Downloading", + "downloads": "Downloads", + "drag_drop_image_to_upload": "Drag & drop image to upload", + "duplicate_patient_record_birth_unknown": "Please contact your district care coordinator, the shifting facility or the patient themselves if you are not sure about the patient's year of birth.", + "duplicate_patient_record_confirmation": "Admit the patient record to your facility by adding the year of birth", + "duplicate_patient_record_rejection": "I confirm that the suspect / patient I want to create is not on the list.", + "edit": "Edit", + "edit_caution_note": "A new prescription will be added to the consultation with the edited details and the current prescription will be discontinued.", + "edit_cover_photo": "Edit Cover Photo", + "edit_history": "Edit History", + "edit_policy": "Edit Insurance Policy", + "edit_policy_description": "Add or edit patient's insurance details", + "edit_prescriptions": "Edit Prescriptions", + "edit_user_profile": "Edit Profile", + "edited_by": "Edited by", + "edited_on": "Edited on", + "eg_abc": "Eg. ABC", + "eg_details_on_functionality_service_etc": "Eg. Details on functionality, service, etc.", + "eg_mail_example_com": "Eg. mail@example.com", + "eg_xyz": "Eg. XYZ", + "eligible": "Eligible", + "email": "Email Address", + "email_address": "Email Address", + "email_discharge_summary_description": "Enter your valid email address to receive the discharge summary", + "email_success": "We will be sending an email shortly. Please check your inbox.", + "emergency": "Emergency", + "emergency_contact_number": "Emergency Contact Number", + "empty_date_time": "--:-- --; --/--/----", + "encounter_date_field_label__A": "Date & Time of Admission to the Facility", + "encounter_date_field_label__DC": "Date & Time of Domiciliary Care commencement", + "encounter_date_field_label__DD": "Date & Time of Consultation", + "encounter_date_field_label__HI": "Date & Time of Consultation", + "encounter_date_field_label__OP": "Date & Time of Out-patient visit", + "encounter_date_field_label__R": "Date & Time of Consultation", + "encounter_duration_confirmation": "The duration of this encounter would be", + "encounter_suggestion__A": "Admission", + "encounter_suggestion__DC": "Domiciliary Care", + "encounter_suggestion__DD": "Consultation", + "encounter_suggestion__HI": "Consultation", + "encounter_suggestion__OP": "Out-patient visit", + "encounter_suggestion__R": "Consultation", + "encounter_suggestion_edit_disallowed": "Not allowed to switch to this option in edit consultation", + "enter_file_name": "Enter File Name", + "enter_message": "Start typing...", + "enter_valid_age": "Please Enter Valid Age", + "entered-in-error": "Entered in error", + "error_404": "Error 404", + "error_deleting_shifting": "Error while deleting Shifting record", + "error_while_deleting_record": "Error while deleting record", + "escape": "Escape", + "estimated_contact_date": "Estimated contact date", + "expand_sidebar": "Expand Sidebar", + "expected_burn_rate": "Expected Burn Rate", + "facilities": "Facilities", + "facility": "Facility", + "facility_name": "Facility Name", + "facility_preference": "Facility preference", + "facility_search_placeholder": "Search by Facility / District Name", + "facility_type": "Facility Type", + "failed_to_link_abha_number": "Failed to link ABHA number", + "features": "Features", + "feed_is_currently_not_live": "Feed is currently not live", + "feed_optimal_experience_for_apple_phones": "For optimal viewing experience, consider rotating your device. Ensure auto-rotate is enabled in your device settings.", + "feed_optimal_experience_for_phones": "For optimal viewing experience, consider rotating your device.", + "fetched_attachments_successfully": "Fetched attachments successfully", + "fetching": "Fetching", + "field_required": "This field is required", + "file_error__choose_file": "Please choose a file to upload", + "file_error__dynamic": "Error Uploading File: {{statusText}}", + "file_error__file_name": "Please give a name for all files!", + "file_error__file_size": "Maximum size of files is 100 MB", + "file_error__file_type": "Invalid file type \".{{extension}}\" Allowed types: {{allowedExtensions}}", + "file_error__network": "Error Uploading File: Network Error", + "file_error__single_file_name": "Please give a name for the file", + "file_list_headings__consultation": "Consultation Files", + "file_list_headings__patient": "Patient Files", + "file_list_headings__sample_report": "Sample Report", + "file_list_headings__supporting_info": "Supporting Info", + "file_preview": "File Preview", + "file_preview_not_supported": "Can't preview this file. Try downloading it.", + "file_uploaded": "File Uploaded Successfully", + "filter": "Filter", + "filter_by": "Filter By", + "filter_by_category": "Filter by category", + "filters": "Filters", + "first_name": "First Name", + "footer_body": "Open Healthcare Network is an open-source public utility designed by a multi-disciplinary team of innovators and volunteers. Open Healthcare Network CARE is a Digital Public Good recognised by the United Nations.", + "forget_password": "Forgot password?", + "forget_password_instruction": "Enter your username, and if it exists, we will send you a link to reset your password.", + "frequency": "Frequency", + "full_screen": "Full Screen", + "gender": "Gender", + "generate_report": "Generate Report", + "generated_summary_caution": "This is a computer generated summary using the information captured in the CARE system.", + "generating": "Generating", + "generating_discharge_summary": "Generating discharge summary", + "get_tests": "Get Tests", + "goal": "Our goal is to continuously improve the quality and accessibility of public healthcare services using digital tools.", + "has_domestic_healthcare_support": "Has domestic healthcare support?", + "help_confirmed": "There is sufficient diagnostic and/or clinical evidence to treat this as a confirmed condition.", + "help_differential": "One of a set of potential (and typically mutually exclusive) diagnoses asserted to further guide the diagnostic process and preliminary treatment.", + "help_entered-in-error": "The statement was entered in error and is not valid.", + "help_provisional": "This is a tentative diagnosis - still a candidate that is under consideration.", + "help_refuted": "This condition has been ruled out by subsequent diagnostic and clinical evidence.", + "help_unconfirmed": "There is not sufficient diagnostic and/or clinical evidence to treat this as a confirmed condition.", + "hide": "Hide", + "home_facility": "Home Facility", + "hubs": "Hub Facilities", + "icd11_as_recommended": "As per ICD-11 recommended by WHO", + "inconsistent_dosage_units_error": "Dosage units must be same", + "indian_mobile": "Indian Mobile", + "indicator": "Indicator", + "inidcator_event": "Indicator Event", + "instruction_on_titration": "Instruction on titration", + "international_mobile": "International Mobile", + "invalid_asset_id_msg": "Oops! The asset ID you entered does not appear to be valid.", + "invalid_email": "Please Enter a Valid Email Address", + "invalid_link_msg": "It appears that the password reset link you have used is either invalid or expired. Please request a new password reset link.", + "invalid_password": "Password doesn't meet the requirements", + "invalid_password_reset_link": "Invalid password reset link", + "invalid_phone": "Please enter valid phone number", + "invalid_phone_number": "Invalid Phone Number", + "invalid_pincode": "Invalid Pincode", + "invalid_reset": "Invalid Reset", + "invalid_username": "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.", + "inventory_management": "Inventory Management", + "investigation_report": "Investigation Report", + "investigation_report_for_{{name}}": "Investigation Report for {{name}}", + "investigation_report_of_{{name}}": "Investigation Report of : {{name}}", + "investigation_reports": "Investigation Reports", + "investigations": "Investigations", + "investigations__date": "Date", + "investigations__ideal_value": "Ideal Value", + "investigations__name": "Name", + "investigations__range": "Value Range", + "investigations__result": "Result", + "investigations__unit": "Unit", + "investigations_suggested": "Investigations Suggested", + "is": "Is", + "is_antenatal": "Is Antenatal", + "is_declared_positive": "Whether declared positive", + "is_emergency": "Is emergency", + "is_emergency_case": "Is emergency case", + "is_it_upshift": "is it upshift", + "is_this_an_emergency": "Is this an emergency?", + "is_this_an_upshift": "Is this an upshift?", + "is_up_shift": "Is up shift", + "is_upshift_case": "Is upshift case", + "is_vaccinated": "Whether vaccinated", + "landline": "Indian landline", + "language_selection": "Language Selection", + "last_administered": "Last administered", + "last_edited": "Last Edited", + "last_modified": "Last Modified", + "last_name": "Last Name", + "last_online": "Last Online", + "last_serviced_on": "Last Serviced On", + "latitude_invalid": "Latitude must be between -90 and 90", + "left": "Left", + "length": "Length ({{unit}})", + "linked_facilities": "Linked Facilities", + "linked_skills": "Linked Skills", + "liquid_oxygen_capacity": "Liquid Oxygen Capacity", + "list_view": "List View", + "litres": "Litres", + "litres_per_day": "Litres/day", + "live": "Live", + "live_monitoring": "Live Monitoring", + "live_patients_total_beds": "Live Patients / Total beds", + "load_more": "Load More", + "loading": "Loading...", + "local_body": "Local body", + "local_ipaddress": "Local IP Address", + "location": "Location", + "location_management": "Location Management", + "log_lab_results": "Log Lab Results", + "log_report": "Log Report", + "login": "Login", + "longitude_invalid": "Longitude must be between -180 and 180", + "lsg": "Lsg", + "make_multiple_beds_label": "Do you want to make multiple beds?", + "manage_prescriptions": "Manage Prescriptions", + "manufacturer": "Manufacturer", + "map_acronym": "M.A.P.", + "mark_all_as_read": "Mark all as Read", + "mark_as_read": "Mark as Read", + "mark_as_unread": "Mark as Unread", + "mark_this_transfer_as_complete_question": "Are you sure you want to mark this transfer as complete? The Origin facility will no longer have access to this patient", + "mark_transfer_complete_confirmation": "Are you sure you want to mark this transfer as complete? The Origin facility will no longer have access to this patient", + "max_dosage_24_hrs": "Max. dosage in 24 hrs.", + "max_dosage_in_24hrs_gte_base_dosage_error": "Max. dosage in 24 hours must be greater than or equal to base dosage", + "max_size_for_image_uploaded_should_be": "Max size for image uploaded should be", + "medical_council_registration": "Medical Council Registration", + "medical_worker": "Medical Worker", + "medicine": "Medicine", + "medicine_administration_history": "Medicine Administration History", + "medicines_administered": "Medicine(s) administered", + "medicines_administered_error": "Error administering medicine(s)", + "middleware_hostname": "Middleware Hostname", + "min_password_len_8": "Minimum password length 8", + "min_time_bw_doses": "Min. time b/w doses", + "mobile": "Mobile", + "mobile_number": "Mobile Number", + "modification_caution_note": "No modifications possible once added", + "modified": "Modified", + "modified_date": "Modified Date", + "monitor": "Monitor", + "more_info": "More Info", + "moving_camera": "Moving Camera", + "name": "Name", + "name_of_hospital": "Name of Hospital", + "name_of_shifting_approving_facility": "Name of shifting approving facility", + "nationality": "Nationality", + "never": "never", + "new_password": "New Password", + "new_password_confirmation": "Confirm New Password", + "next_sessions": "Next Sessions", + "no": "No", + "no_attachments_found": "This communication has no attachments.", + "no_bed_types_found": "No Bed Types found", + "no_changes": "No changes", + "no_changes_made": "No changes made", + "no_consultation_updates": "No consultation updates", + "no_cover_photo_uploaded_for_this_facility": "No cover photo uploaded for this facility", + "no_data_found": "No data found", + "no_duplicate_facility": "You should not create duplicate facilities", + "no_facilities": "No Facilities found", + "no_files_found": "No {{type}} files found", + "no_home_facility": "No home facility assigned", + "no_investigation": "No investigation Reports found", + "no_investigation_suggestions": "No Investigation Suggestions", + "no_linked_facilities": "No Linked Facilities", + "no_log_update_delta": "No changes since previous log update", + "no_notices_for_you": "No notices for you.", + "no_patients_to_show": "No patients to show.", + "no_policy_added": "No Insurance Policy Added", + "no_policy_found": "No Insurance Policy Found for this Patient", + "no_remarks": "No remarks", + "no_results_found": "No Results Found", + "no_staff": "No staff found", + "no_tests_taken": "No tests taken", + "no_treating_physicians_available": "This facility does not have any home facility doctors. Please contact your admin.", + "no_users_found": "No Users Found", + "none": "None", + "normal": "Normal", + "not_eligible": "Not Eligible", + "not_specified": "Not Specified", + "notes": "Notes", + "notes_placeholder": "Type your Notes", + "notice_board": "Notice Board", + "notification_permission_denied": "Notification permission denied", + "notification_permission_granted": "Notification permission granted", + "number_of_aged_dependents_above_60": "Number Of Aged Dependents (Above 60)", + "number_of_beds": "Number of beds", + "number_of_beds_out_of_range_error": "Number of beds cannot be greater than 100", + "number_of_chronic_diseased_dependents": "Number Of Chronic Diseased Dependents", + "nursing_care": "Nursing Care", + "nursing_information": "Nursing Information", + "nutrition": "Nutrition", + "occupancy": "Occupancy", + "occupation": "Occupation", + "on": "On", + "ongoing_medications": "Ongoing Medications", + "open": "Open", + "open_camera": "Open Camera", + "open_live_monitoring": "Open Live Monitoring", + "optional": "Optional", + "oral_issue_for_non_oral_nutrition_route_error": "Can be specified only if nutrition route is set to Oral", + "ordering": "Ordering", + "origin_facility": "Current facility", + "other_details": "Other details", + "out_of_range_error": "Value must be between {{ start }} and {{ end }}.", + "oxygen_information": "Oxygen Information", + "page_not_found": "Page Not Found", + "pain": "Pain", + "pain_chart_description": "Mark region and intensity of pain", + "passport_number": "Passport Number", + "password": "Password", + "password_mismatch": "Password and confirm password must be same.", + "password_reset_failure": "Password Reset Failed", + "password_reset_success": "Password Reset successfully", + "password_sent": "Password Reset Email Sent", + "patient_address": "Patient Address", + "patient_category": "Patient Category", + "patient_consultation__admission": "Date of admission", + "patient_consultation__consultation_notes": "General Instructions", + "patient_consultation__dc_admission": "Date of domiciliary care commenced", + "patient_consultation__ip": "IP", + "patient_consultation__op": "OP", + "patient_consultation__special_instruction": "Special Instructions", + "patient_consultation__treatment__plan": "Plan", + "patient_consultation__treatment__summary": "Summary", + "patient_consultation__treatment__summary__date": "Date", + "patient_consultation__treatment__summary__spo2": "SpO2", + "patient_consultation__treatment__summary__temperature": "Temperature", + "patient_created": "Patient Created", + "patient_details": "Patient Details", + "patient_name": "Patient name", + "patient_no": "OP/IP No", + "patient_notes_thread__Doctors": "Doctor's Discussions", + "patient_notes_thread__Nurses": "Nurse's Discussions", + "patient_phone_number": "Patient Phone Number", + "patient_registration__address": "Address", + "patient_registration__age": "Age", + "patient_registration__comorbidities": "Comorbidities", + "patient_registration__comorbidities__details": "Details", + "patient_registration__comorbidities__disease": "Disease", + "patient_registration__contact": "Emergency Contact", + "patient_registration__gender": "Gender", + "patient_registration__name": "Name", + "patient_state": "Patient State", + "patient_status": "Patient Status", + "patient_transfer_birth_match_note": "Note: Year of birth must match the patient to process the transfer request.", + "patients": "Patients", + "personal_information": "Personal Information", + "phone": "Phone", + "phone_no": "Phone no.", + "phone_number": "Phone Number", + "phone_number_at_current_facility": "Phone Number of Contact person at current Facility", + "pincode": "Pincode", + "please_enter_a_reason_for_the_shift": "Please enter a reason for the shift.", + "please_select_a_facility": "Please select a facility", + "please_select_breathlessness_level": "Please select Breathlessness Level", + "please_select_facility_type": "Please select Facility Type", + "please_select_patient_category": "Please select Patient Category", + "please_select_preferred_vehicle_type": "Please select Preferred Vehicle Type", + "please_select_status": "Please select Status", + "please_upload_a_csv_file": "Please Upload A CSV file", + "policy": "Policy", + "policy__insurer": "Insurer", + "policy__insurer__example": "GICOFINDIA", + "policy__insurer_id": "Insurer ID", + "policy__insurer_id__example": "GICOFINDIA", + "policy__insurer_name": "Insurer Name", + "policy__insurer_name__example": "GIC OF INDIA", + "policy__policy_id": "Policy ID / Policy Name", + "policy__policy_id__example": "POL001", + "policy__subscriber_id": "Member ID", + "policy__subscriber_id__example": "SUB001", + "post_your_comment": "Post Your Comment", + "powered_by": "Powered By", + "preferred_facility_type": "Preferred Facility Type", + "preferred_vehicle": "Preferred Vehicle", + "prescription": "Prescription", + "prescription_details": "Prescription Details", + "prescription_discontinued": "Prescription discontinued", + "prescription_logs": "Prescription Logs", + "prescription_medication": "Prescription Medication", + "prescription_medications": "Prescription Medications", + "prescriptions__dosage_frequency": "Dosage & Frequency", + "prescriptions__medicine": "Medicine", + "prescriptions__route": "Route", + "prescriptions__start_date": "Prescribed On", + "prev_sessions": "Prev Sessions", + "principal": "Principal", + "principal_diagnosis": "Principal diagnosis", + "print": "Print", + "print_referral_letter": "Print Referral Letter", + "prn_prescription": "PRN Prescription", + "prn_prescriptions": "PRN Prescriptions", + "procedure_suggestions": "Procedure Suggestions", + "procedures_select_placeholder": "Select procedures to add details", + "profile": "Profile", + "provisional": "Provisional", + "qualification": "Qualification", + "ration_card__APL": "APL", + "ration_card__BPL": "BPL", + "ration_card__NO_CARD": "Non-card holder", + "ration_card_category": "Ration Card Category", + "reason": "Reason", + "reason_for_discontinuation": "Reason for discontinuation", + "reason_for_edit": "Reason for edit", + "reason_for_referral": "Reason for referral", + "reason_for_shift": "Reason for shift", + "recommended_aspect_ratio_for": "Recommended aspect ratio for", + "record": "Record Audio", + "record_delete_confirm": "Are you sure you want to delete this record?", + "record_has_been_deleted_successfully": "Record has been deleted successfully.", + "record_updates": "Record Updates", + "recording": "Recording", + "redirected_to_create_consultation": "Note: You will be redirected to create consultation form. Please complete the form to finish the transfer process", + "referral_letter": "Referral Letter", + "referred_to": "Referred to", + "refresh_list": "Refresh List", + "refuted": "Refuted", + "register_hospital": "Register Hospital", + "register_page_title": "Register As Hospital Administrator", + "reload": "Reload", + "remove": "Remove", + "rename": "Rename", + "report": "Report", + "req_atleast_one_digit": "Require at least one digit", + "req_atleast_one_lowercase": "Require at least one lower case letter", + "req_atleast_one_symbol": "Require at least one symbol", + "req_atleast_one_uppercase": "Require at least one upper case", + "request_description": "Description of Request", + "request_description_placeholder": "Type your description here", + "request_title": "Request Title", + "request_title_placeholder": "Type your title here", + "required": "Required", + "required_quantity": "Required Quantity", + "reset": "Reset", + "reset_password": "Reset Password", + "resource": "Resource", + "resource_approving_facility": "Resource approving facility", + "resource_origin_facility": "Origin Facility", + "resource_request": "Resource Request", + "result": "Result", + "result_date": "Result Date", + "result_details": "Result details", + "resume": "Resume", + "retake": "Retake", + "return_to_care": "Return to CARE", + "return_to_login": "Return to Login", + "return_to_password_reset": "Return to Password Reset", + "return_to_patient_dashboard": "Return to Patient Dashboard", + "right": "Right", + "route": "Route", + "routine": "Routine", + "sample_collection_date": "Sample Collection Date", + "sample_format": "Sample Format", + "sample_test": "Sample Test", + "sample_type": "Sample Type", + "save": "Save", + "save_and_continue": "Save and Continue", + "save_investigation": "Save Investigation", + "scan_asset_qr": "Scan Asset QR!", + "search_by_username": "Search by username", + "search_for_facility": "Search for Facility", + "search_icd11_placeholder": "Search for ICD-11 Diagnoses", + "search_investigation_placeholder": "Search Investigation & Groups", + "search_patient": "Search Patient", + "search_resource": "Search Resource", + "see_attachments": "See Attachments", + "select": "Select", + "select_date": "Select date", + "select_eligible_policy": "Select an Eligible Insurance Policy", + "select_facility_for_discharged_patients_warning": "Facility needs to be selected to view discharged patients.", + "select_for_administration": "Select for Administration", + "select_groups": "Select Groups", + "select_investigation": "Select Investigations (all investigations will be selected by default)", + "select_investigation_groups": "Select Investigation Groups", + "select_investigations": "Select Investigations", + "select_local_body": "Select Local Body", + "select_policy": "Select an Insurance Policy", + "select_policy_to_add_items": "Select a Policy to Add Items", + "select_skills": "Select and add some skills", + "select_wards": "Select wards", + "send_email": "Send Email", + "send_message": "Send Message", + "send_reset_link": "Send Reset Link", + "serial_number": "Serial Number", + "serviced_on": "Serviced on", + "session_expired": "Session Expired", + "session_expired_msg": "It appears that your session has expired. This could be due to inactivity. Please login again to continue.", + "set_average_weekly_working_hours_for": "Set Average weekly working hours for", + "set_your_local_language": "Set your local language", + "settings_and_filters": "Settings and Filters", + "severity_of_breathlessness": "Severity of Breathlessness", + "shift_request_updated_successfully": "Shift request updated successfully", + "shifting": "Shifting", + "shifting_approval_facility": "Shifting approval facility", + "shifting_approving_facility": "Shifting approving facility", + "shifting_approving_facility_can_not_be_empty": "Shifting approving facility can not be empty.", + "shifting_deleted": "Shifting record has been deleted successfully.", + "shifting_details": "Shifting details", + "shifting_status": "Shifting status", + "show_all": "Show all", + "show_all_notifications": "Show All", + "show_default_presets": "Show Default Presets", + "show_patient_presets": "Show Patient Presets", + "show_unread_notifications": "Show Unread", + "sign_out": "Sign Out", + "skills": "Skills", + "socioeconomic_status": "Socioeconomic status", + "software_update": "Software Update", + "something_went_wrong": "Something went wrong..!", + "something_wrong": "Something went wrong! Try again later!", + "sort_by": "Sort By", + "source": "Source", + "spokes": "Spoke Facilities", + "srf_id": "SRF ID", + "staff_list": "Staff List", + "start_dosage": "Start Dosage", + "state": "State", + "status": "Status", + "stop": "Stop", + "stream_stop_due_to_inativity": "The live feed will stop streaming due to inactivity", + "stream_stopped_due_to_inativity": "The live feed has stopped streaming due to inactivity", + "sub_category": "Sub Category", + "submit": "Submit", + "submitting": "Submitting", + "subscribe": "Subscribe", + "subscribe_on_this_device": "Subscribe on this device", + "subscription_error": "Subscription Error", + "suggested_investigations": "Suggested Investigations", + "summary": "Summary", + "support": "Support", + "switch": "Switch", + "systolic": "Systolic", + "tachycardia": "Tachycardia", + "target_dosage": "Target Dosage", + "test_type": "Type of test done", + "titrate_dosage": "Titrate Dosage", + "to_be_conducted": "To be conducted", + "total_amount": "Total Amount", + "total_beds": "Total Beds", + "total_users": "Total Users", + "transfer_in_progress": "TRANSFER IN PROGRESS", + "transfer_to_receiving_facility": "Transfer to receiving facility", + "travel_within_last_28_days": "Domestic/international Travel (within last 28 days)", + "treating_doctor": "Treating Doctor", + "treatment_summary": "Treatment Summary", + "treatment_summary__head_title": "Treatment Summary", + "treatment_summary__heading": "INTERIM TREATMENT SUMMARY", + "treatment_summary__print": "Print Treatment Summary", + "try_again_later": "Try again later!", + "type_any_extra_comments_here": "type any extra comments here", + "type_b_cylinders": "B Type Cylinders", + "type_c_cylinders": "C Type Cylinders", + "type_d_cylinders": "D Type Cylinders", + "type_to_search": "Type to search", + "type_your_comment": "Type your comment", + "type_your_reason_here": "Type your reason here", + "unconfirmed": "Unconfirmed", + "unique_id": "Unique Id", + "unknown": "Unknown", + "unsubscribe": "Unsubscribe", + "unsubscribe_failed": "Unsubscribe failed.", + "unsupported_browser": "Unsupported Browser", + "unsupported_browser_description": "Your browser ({{name}} version {{version}}) is not supported. Please update your browser to the latest version or switch to a supported browser for the best experience.", + "up": "Up", + "up_shift": "Up Shift", + "update": "Update", + "update_asset": "Update Asset", + "update_asset_service_record": "Update Asset Service Record", + "update_available": "Update Available", + "update_bed": "Update Bed", + "update_facility": "Update Facility", + "update_facility_middleware_success": "Facility middleware updated successfully", + "update_log": "Update Log", + "update_record": "Update Record", + "update_record_for_asset": "Update record for asset", + "update_shift_request": "Update Shift Request", + "update_status_details": "Update Status/Details", + "updated": "Updated", + "updating": "Updating", + "upload": "Upload", + "upload_an_image": "Upload an image", + "upload_headings__consultation": "Upload New Consultation File", + "upload_headings__patient": "Upload New Patient File", + "upload_headings__sample_report": "Upload Sample Report", + "upload_headings__supporting_info": "Upload Supporting Info", + "uploading": "Uploading", + "user_deleted_successfuly": "User Deleted Successfuly", + "user_management": "User Management", + "username": "Username", + "users": "Users", + "vehicle_preference": "Vehicle preference", + "vendor_name": "Vendor Name", + "video_conference_link": "Video Conference Link", + "view": "View", + "view_abdm_records": "View ABDM Records", + "view_asset": "View Assets", + "view_cns": "View CNS", + "view_details": "View Details", + "view_faciliy": "View Facility", + "view_patients": "View Patients", + "view_users": "View Users", + "virtual_nursing_assistant": "Virtual Nursing Assistant", + "vitals": "Vitals", + "ward": "Ward", + "warranty_amc_expiry": "Warranty / AMC Expiry", + "what_facility_assign_the_patient_to": "What facility would you like to assign the patient to", + "whatsapp_number": "Whatsapp Number", + "why_the_asset_is_not_working": "Why the asset is not working?", + "width": "Width ({{unit}})", + "working_status": "Working Status", + "years": "years", + "years_of_experience": "Years of Experience", + "years_of_experience_of_the_doctor": "Years of Experience of the Doctor", + "yes": "Yes", + "yet_to_be_decided": "Yet to be decided", + "you_need_at_least_a_location_to_create_an_assest": "You need at least a location to create an assest.", + "zoom_in": "Zoom In", + "zoom_out": "Zoom Out" +} diff --git a/src/Locale/en/Asset.json b/src/Locale/en/Asset.json deleted file mode 100644 index 182bb25a4fe..00000000000 --- a/src/Locale/en/Asset.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "create_asset": "Create Asset", - "edit_history": "Edit History", - "update_record_for_asset": "Update record for asset", - "edited_on": "Edited On", - "edited_by": "Edited By", - "serviced_on": "Serviced On", - "notes": "Notes", - "back": "Back", - "close": "Close", - "update_asset_service_record": "Update Asset Service Record", - "eg_details_on_functionality_service_etc": "Eg. Details on functionality, service, etc.", - "updating": "Updating", - "update": "Update", - "are_you_still_watching": "Are you still watching?", - "stream_stop_due_to_inativity": "The live feed will stop streaming due to inactivity", - "stream_stopped_due_to_inativity": "The live feed has stopped streaming due to inactivity", - "continue_watching": "Continue watching", - "resume": "Resume" -} \ No newline at end of file diff --git a/src/Locale/en/Auth.json b/src/Locale/en/Auth.json deleted file mode 100644 index 5ac5f84aab9..00000000000 --- a/src/Locale/en/Auth.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "username": "Username", - "password": "Password", - "new_password": "New Password", - "confirm_password": "Confirm Password", - "first_name": "First Name", - "last_name": "Last Name", - "email": "Email Address", - "phone_number": "Phone Number", - "district": "District", - "gender": "Gender", - "age": "Age", - "login": "Login", - "password_mismatch": "Password and confirm password must be same.", - "enter_valid_age": "Please Enter Valid Age", - "invalid_username": "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.", - "invalid_password": "Password doesn't meet the requirements", - "invalid_email": "Please Enter a Valid Email Address", - "invalid_phone": "Please enter valid phone number", - "register_hospital": "Register Hospital", - "register_page_title": "Register As Hospital Administrator", - "auth_login_title": "Authorized Login", - "forget_password": "Forgot password?", - "forget_password_instruction": "Enter your username, and if it exists, we will send you a link to reset your password.", - "send_reset_link": "Send Reset Link", - "already_a_member": "Already a member?", - "password_sent": "Password Reset Email Sent", - "password_reset_success": "Password Reset successfully", - "password_reset_failure": "Password Reset Failed", - "reset_password": "Reset Password", - "available_in": "Available in", - "sign_out": "Sign Out", - "back_to_login": "Back to login", - "min_password_len_8": "Minimum password length 8", - "req_atleast_one_digit": "Require at least one digit", - "req_atleast_one_uppercase": "Require at least one upper case", - "req_atleast_one_lowercase": "Require at least one lower case letter", - "req_atleast_one_symbol": "Require at least one symbol" -} diff --git a/src/Locale/en/Bed.json b/src/Locale/en/Bed.json deleted file mode 100644 index 269658be774..00000000000 --- a/src/Locale/en/Bed.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "bed_search_placeholder": "Search by beds name", - "BED_WITH_OXYGEN_SUPPORT": "Bed with Oxygen Support", - "REGULAR": "Regular", - "ICU": "ICU", - "ISOLATION": "Isolation", - "add_beds": "Add Bed(s)", - "update_bed": "Update Bed", - "bed_type": "Bed Type", - "make_multiple_beds_label": "Do you want to make multiple beds?", - "number_of_beds": "Number of beds", - "number_of_beds_out_of_range_error": "Number of beds cannot be greater than 100" -} diff --git a/src/Locale/en/Common.json b/src/Locale/en/Common.json deleted file mode 100644 index 7f0b9f51802..00000000000 --- a/src/Locale/en/Common.json +++ /dev/null @@ -1,234 +0,0 @@ -{ - "goal": "Our goal is to continuously improve the quality and accessibility of public healthcare services using digital tools.", - "something_wrong": "Something went wrong! Try again later!", - "try_again_later": "Try again later!", - "contribute_github": "Contribute on Github", - "footer_body": "Open Healthcare Network is an open-source public utility designed by a multi-disciplinary team of innovators and volunteers. Open Healthcare Network CARE is a Digital Public Good recognised by the United Nations.", - "reset": "Reset", - "download": "Download", - "downloads": "Downloads", - "downloading": "Downloading", - "generating": "Generating", - "send_email": "Send Email", - "email_address": "Email Address", - "email_success": "We will be sending an email shortly. Please check your inbox.", - "disclaimer": "Disclaimer", - "category": "Category", - "sub_category": "Sub Category", - "download_type": "Download Type", - "state": "State", - "district": "District", - "location": "Location", - "ward": "Ward", - "Notice Board": "Notice Board", - "Assets": "Assets", - "Notifications": "Notifications", - "Submit": "Submit", - "Cancel": "Cancel", - "back": "Back", - "powered_by": "Powered By", - "care": "CARE", - "something_went_wrong": "Something went wrong..!", - "stop": "Stop", - "record": "Record Audio", - "recording": "Recording", - "yes": "Yes", - "no": "No", - "status": "Status", - "created": "Created", - "modified": "Modified", - "updated": "Updated", - "update": "Update", - "configure": "Configure", - "assigned_to": "Assigned to", - "cancel": "Cancel", - "clear": "Clear", - "apply": "Apply", - "filter_by": "Filter By", - "filter": "Filter", - "settings_and_filters": "Settings and Filters", - "ordering": "Ordering", - "phone_number": "Phone Number", - "international_mobile": "International Mobile", - "indian_mobile": "Indian Mobile", - "mobile": "Mobile", - "landline": "Indian landline", - "support": "Support", - "emergency_contact_number": "Emergency Contact Number", - "last_modified": "Last Modified", - "patient_address": "Patient Address", - "all_details": "All Details", - "confirm": "Confirm", - "refresh_list": "Refresh List", - "last_edited": "Last Edited", - "audit_log": "Audit Log", - "comments": "Comments", - "contact_person_number": "Contact person number", - "referral_letter": "Referral Letter", - "close": "Close", - "print": "Print", - "print_referral_letter": "Print Referral Letter", - "date_of_positive_covid_19_swab": "Date of Positive Covid 19 Swab", - "patient_no": "OP/IP No", - "date_of_admission": "Date of Admission", - "unique_id": "Unique Id", - "date_and_time": "Date and Time", - "facility_type": "Facility type", - "number_of_chronic_diseased_dependents": "Number Of Chronic Diseased Dependents", - "number_of_aged_dependents_above_60": "Number Of Aged Dependents (Above 60)", - "ongoing_medications": "Ongoing Medications", - "countries_travelled": "Countries travelled", - "travel_within_last_28_days": "Domestic/international Travel (within last 28 days)", - "estimated_contact_date": "Estimated contact date", - "blood_group": "Blood Group", - "date_of_birth": "Date of birth", - "date_of_test": "Date of Test", - "srf_id": "SRF ID", - "contact_number": "Contact Number", - "diagnosis": "Diagnosis", - "copied_to_clipboard": "Copied to clipboard", - "age": "Age", - "is": "Is", - "reason": "Reason", - "description": "Description", - "name": "Name", - "address": "Address", - "phone": "Phone", - "nationality": "Nationality", - "allergies": "Allergies", - "type_your_comment": "Type your comment", - "any_other_comments": "Any other comments", - "loading": "Loading", - "facility": "Facility", - "local_body": "Local body", - "filters": "Filters", - "unknown": "Unknown", - "active": "Active", - "completed": "Completed", - "on": "On", - "open": "Open", - "features": "Features", - "pincode": "Pincode", - "required": "Required", - "field_required": "This field is required", - "litres": "Litres", - "litres_per_day": "Litres/day", - "invalid_pincode": "Invalid Pincode", - "invalid_phone_number": "Invalid Phone Number", - "latitude_invalid": "Latitude must be between -90 and 90", - "longitude_invalid": "Longitude must be between -180 and 180", - "save": "Save", - "continue": "Continue", - "save_and_continue": "Save and Continue", - "select": "Select", - "lsg": "Lsg", - "delete": "Delete", - "remove": "Remove", - "max_size_for_image_uploaded_should_be": "Max size for image uploaded should be", - "allowed_formats_are": "Allowed formats are", - "recommended_aspect_ratio_for": "Recommended aspect ratio for", - "drag_drop_image_to_upload": "Drag & drop image to upload", - "upload_an_image": "Upload an image", - "upload": "Upload", - "uploading": "Uploading", - "switch": "Switch", - "capture": "Capture", - "retake": "Retake", - "submit": "Submit", - "camera": "Camera", - "submitting": "Submitting", - "view_details": "View Details", - "type_to_search": "Type to search", - "show_all": "Show all", - "hide": "Hide", - "select_skills": "Select and add some skills", - "contact_your_admin_to_add_skills": "Contact your admin to add skills", - "add": "Add", - "add_as": "Add as", - "sort_by": "Sort By", - "none": "None", - "choose_file": "Upload From Device", - "open_camera": "Open Camera", - "file_preview": "File Preview", - "file_preview_not_supported": "Can't preview this file. Try downloading it.", - "view_faciliy": "View Facility", - "view_patients": "View Patients", - "frequency": "Frequency", - "days": "Days", - "never": "never", - "notes": "Notes", - "add_notes": "Add notes", - "notes_placeholder": "Type your Notes", - "optional": "Optional", - "discontinue": "Discontinue", - "discontinued": "Discontinued", - "not_specified": "Not Specified", - "all_changes_have_been_saved": "All changes have been saved", - "no_data_found": "No data found", - "other_details": "Other details", - "no_remarks": "No remarks", - "edit": "Edit", - "clear_selection": "Clear selection", - "select_date": "Select date", - "DD/MM/YYYY": "DD/MM/YYYY", - "clear_all_filters": "Clear All Filters", - "summary": "Summary", - "report": "Report", - "treating_doctor": "Treating Doctor", - "hubs": "Hub Facilities", - "spokes": "Spoke Facilities", - "add_spoke" : "Add Spoke Facility", - "ration_card__NO_CARD": "Non-card holder", - "ration_card__BPL": "BPL", - "ration_card__APL": "APL", - "empty_date_time": "--:-- --; --/--/----", - "caution": "Caution", - "feed_optimal_experience_for_phones": "For optimal viewing experience, consider rotating your device.", - "feed_optimal_experience_for_apple_phones": "For optimal viewing experience, consider rotating your device. Ensure auto-rotate is enabled in your device settings.", - "action_irreversible": "This action is irreversible", - "send_message": "Send Message", - "enter_message": "Start typing...", - "see_attachments": "See Attachments", - "no_attachments_found": "This communication has no attachments.", - "fetching": "Fetching", - "GENDER__1": "Male", - "GENDER__2": "Female", - "GENDER__3": "Non-binary", - "normal": "Normal", - "done": "Done", - "view": "View", - "rename": "Rename", - "more_info": "More Info", - "archive": "Archive", - "discard": "Discard", - "live": "Live", - "discharged": "Discharged", - "archived": "Archived", - "created_on": "Created On", - "no_changes_made": "No changes made", - "user_deleted_successfuly": "User Deleted Successfuly", - "users": "Users", - "are_you_sure_want_to_delete": "Are you sure you want to delete {{name}}?", - "oxygen_information": "Oxygen Information", - "deleted_successfully": "{{name}} deleted successfully", - "delete_item": "Delete {{name}}", - "unsupported_browser": "Unsupported Browser", - "unsupported_browser_description": "Your browser ({{name}} version {{version}}) is not supported. Please update your browser to the latest version or switch to a supported browser for the best experience.", - "add_remarks": "Add remarks", - "SORT_OPTIONS__-created_date": "Latest created date first", - "SORT_OPTIONS__created_date": "Oldest created date first", - "SORT_OPTIONS__-category_severity": "Highest Severity category first", - "SORT_OPTIONS__category_severity": "Lowest Severity category first", - "SORT_OPTIONS__-modified_date": "Latest updated date first", - "SORT_OPTIONS__modified_date": "Oldest updated date first", - "SORT_OPTIONS__facility__name,last_consultation__current_bed__bed__name": "Bed No. 1-N", - "SORT_OPTIONS__facility__name,-last_consultation__current_bed__bed__name": "Bed No. N-1", - "SORT_OPTIONS__-review_time": "Latest review date first", - "SORT_OPTIONS__review_time": "Oldest review date first", - "SORT_OPTIONS__taken_at": "Oldest taken date first", - "SORT_OPTIONS__-taken_at": "Latest taken date first", - "SORT_OPTIONS__name": "Patient name A-Z", - "SORT_OPTIONS__-name": "Patient name Z-A", - "SORT_OPTIONS__bed__name": "Bed No. 1-N", - "SORT_OPTIONS__-bed__name": "Bed No. N-1" -} \ No newline at end of file diff --git a/src/Locale/en/Consultation.json b/src/Locale/en/Consultation.json deleted file mode 100644 index d12a6cb16ac..00000000000 --- a/src/Locale/en/Consultation.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "CONSULTATION_TAB__UPDATES": "Overview", - "CONSULTATION_TAB__FEED": "Feed", - "CONSULTATION_TAB__SUMMARY": "Vitals", - "CONSULTATION_TAB__ABG": "ABG", - "CONSULTATION_TAB__MEDICINES": "Medicines", - "CONSULTATION_TAB__FILES": "Files", - "CONSULTATION_TAB__INVESTIGATIONS": "Investigations", - "CONSULTATION_TAB__NEUROLOGICAL_MONITORING": "Neuro", - "CONSULTATION_TAB__VENTILATOR": "Ventilation", - "CONSULTATION_TAB__NUTRITION": "Nutrition", - "CONSULTATION_TAB__PRESSURE_SORE": "Pressure Sore", - "CONSULTATION_TAB__NURSING": "Nursing", - "CONSULTATION_TAB__DIALYSIS": "Dialysis", - "CONSULTATION_TAB__ABDM": "ABDM Records", - "nursing_information": "Nursing Information", - "no_consultation_updates": "No consultation updates", - "consultation_updates": "Consultation updates", - "update_log": "Update Log", - "record_updates": "Record Updates", - "log_lab_results": "Log Lab Results", - "no_log_update_delta": "No changes since previous log update", - "virtual_nursing_assistant": "Virtual Nursing Assistant", - "discharge": "Discharge", - "discharge_summary": "Discharge Summary", - "discharge_from_care": "Discharge from CARE", - "generating_discharge_summary": "Generating discharge summary", - "discharge_summary_not_ready": "Discharge summary is not ready yet.", - "download_discharge_summary": "Download discharge summary", - "email_discharge_summary_description": "Enter your valid email address to receive the discharge summary", - "generated_summary_caution": "This is a computer generated summary using the information captured in the CARE system.", - "NORMAL": "Brief Update", - "VENTILATOR": "Detailed Update", - "DOCTORS_LOG": "Progress Note", - "AUTOMATED": "Automated", - "TELEMEDICINE": "Telemedicine", - "investigations": "Investigations", - "search_investigation_placeholder": "Search Investigation & Groups", - "save_investigation": "Save Investigation", - "investigation_report_for_{{name}}": "Investigation Report for {{name}}", - "investigation_report_of_{{name}}":"Investigation Report of : {{name}}", - "investigation_reports": "Investigation Reports", - "no_investigation": "No investigation Reports found", - "investigations_suggested": "Investigations Suggested", - "no_tests_taken":"No tests taken", - "to_be_conducted": "To be conducted", - "log_report": "Log Report", - "no_investigation_suggestions": "No Investigation Suggestions", - "select_investigation": "Select Investigations (all investigations will be selected by default)", - "select_investigations": "Select Investigations", - "get_tests": "Get Tests", - "select_investigation_groups": "Select Investigation Groups", - "select_groups": "Select Groups", - "generate_report": "Generate Report", - "prev_sessions": "Prev Sessions", - "next_sessions": "Next Sessions", - "no_changes": "No changes", - "back_to_consultation": "Go back to Consultation", - "no_treating_physicians_available": "This facility does not have any home facility doctors. Please contact your admin.", - "encounter_suggestion_edit_disallowed": "Not allowed to switch to this option in edit consultation", - "encounter_suggestion__A": "Admission", - "encounter_suggestion__DC": "Domiciliary Care", - "encounter_suggestion__OP": "Out-patient visit", - "encounter_suggestion__DD": "Consultation", - "encounter_suggestion__HI": "Consultation", - "encounter_suggestion__R": "Consultation", - "encounter_date_field_label__A": "Date & Time of Admission to the Facility", - "encounter_date_field_label__DC": "Date & Time of Domiciliary Care commencement", - "encounter_date_field_label__OP": "Date & Time of Out-patient visit", - "encounter_date_field_label__DD": "Date & Time of Consultation", - "encounter_date_field_label__HI": "Date & Time of Consultation", - "encounter_date_field_label__R": "Date & Time of Consultation", - "back_dated_encounter_date_caution": "You are creating an encounter for", - "encounter_duration_confirmation": "The duration of this encounter would be", - "consultation_notes": "General Instructions (Advice)", - "procedure_suggestions": "Procedure Suggestions", - "patient_notes_thread__Doctors": "Doctor's Discussions", - "patient_notes_thread__Nurses": "Nurse's Discussions" -} \ No newline at end of file diff --git a/src/Locale/en/CoverImageEdit.json b/src/Locale/en/CoverImageEdit.json deleted file mode 100644 index 24082d50494..00000000000 --- a/src/Locale/en/CoverImageEdit.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "edit_cover_photo": "Edit Cover Photo", - "no_cover_photo_uploaded_for_this_facility": "No cover photo uploaded for this facility", - "capture_cover_photo": "Capture Cover Photo" -} diff --git a/src/Locale/en/Diagnosis.json b/src/Locale/en/Diagnosis.json deleted file mode 100644 index c049e9bba6f..00000000000 --- a/src/Locale/en/Diagnosis.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "diagnosis": "Diagnosis", - "diagnoses": "Diagnoses", - "diagnosis_already_added": "This diagnosis was already added", - "principal": "Principal", - "principal_diagnosis": "Principal diagnosis", - "unconfirmed": "Unconfirmed", - "provisional": "Provisional", - "differential": "Differential", - "confirmed": "Confirmed", - "refuted": "Refuted", - "entered-in-error": "Entered in error", - "help_unconfirmed": "There is not sufficient diagnostic and/or clinical evidence to treat this as a confirmed condition.", - "help_provisional": "This is a tentative diagnosis - still a candidate that is under consideration.", - "help_differential": "One of a set of potential (and typically mutually exclusive) diagnoses asserted to further guide the diagnostic process and preliminary treatment.", - "help_confirmed": "There is sufficient diagnostic and/or clinical evidence to treat this as a confirmed condition.", - "help_refuted": "This condition has been ruled out by subsequent diagnostic and clinical evidence.", - "help_entered-in-error": "The statement was entered in error and is not valid.", - "search_icd11_placeholder": "Search for ICD-11 Diagnoses", - "icd11_as_recommended": "As per ICD-11 recommended by WHO" -} diff --git a/src/Locale/en/Entities.json b/src/Locale/en/Entities.json deleted file mode 100644 index aad78a2a7ee..00000000000 --- a/src/Locale/en/Entities.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "Facilities": "Facilities", - "Patients": "Patients", - "Sample Test": "Sample Test", - "Shifting": "Shifting", - "Resource": "Resource", - "External Results": "External Results", - "Users": "Users", - "Profile": "Profile", - "Dashboard": "Dashboard" -} diff --git a/src/Locale/en/ErrorPages.json b/src/Locale/en/ErrorPages.json deleted file mode 100644 index d660703d362..00000000000 --- a/src/Locale/en/ErrorPages.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "return_to_care": "Return to CARE", - "404_message": "It appears that you have stumbled upon a page that either does not exist or has been moved to another URL. Make sure you have entered the correct link!", - "error_404": "Error 404", - "page_not_found": "Page Not Found", - "session_expired": "Session Expired", - "invalid_password_reset_link": "Invalid password reset link", - "invalid_link_msg": "It appears that the password reset link you have used is either invalid or expired. Please request a new password reset link.", - "return_to_password_reset": "Return to Password Reset", - "return_to_login": "Return to Login", - "session_expired_msg": "It appears that your session has expired. This could be due to inactivity. Please login again to continue.", - "invalid_reset": "Invalid Reset" -} diff --git a/src/Locale/en/ExternalResult.json b/src/Locale/en/ExternalResult.json deleted file mode 100644 index 85f8653925e..00000000000 --- a/src/Locale/en/ExternalResult.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "please_upload_a_csv_file": "Please Upload A CSV file", - "upload_external_results": "Upload External Results", - "csv_file_in_the_specified_format": "Select a CSV file in the specified format", - "sample_format": "Sample Format", - "search_for_facility": "Search for Facility", - "select_local_body": "Select Local Body", - "select_wards": "Select wards", - "result_date": "Result Date", - "sample_collection_date": "Sample Collection Date", - "record_has_been_deleted_successfully": "Record has been deleted successfully.", - "error_while_deleting_record": "Error while deleting record", - "result_details": "Result details", - "confirm_delete": "Confirm Delete", - "are_you_sure_want_to_delete_this_record": "Are you sure want to delete this record?", - "patient_category": "Patient Category", - "source": "Source", - "result": "Result", - "sample_type": "Sample Type", - "patient_status": "Patient Status", - "mobile_number": "Mobile Number", - "patient_created": "Patient Created", - "care_external_results_id": "Care external results ID", - "update_record": "Update Record" -} diff --git a/src/Locale/en/Facility.json b/src/Locale/en/Facility.json deleted file mode 100644 index 4e835bec675..00000000000 --- a/src/Locale/en/Facility.json +++ /dev/null @@ -1,126 +0,0 @@ -{ - "facility_search_placeholder": "Search by Facility / District Name", - "advanced_filters": "Advanced Filters", - "facility_type": "Facility Type", - "facility_name": "Facility Name", - "KASP Empanelled": "KASP Empanelled", - "View Facility": "View Facility", - "no_duplicate_facility": "You should not create duplicate facilities", - "no_facilities": "No Facilities found", - "no_staff": "No staff found", - "no_bed_types_found": "No Bed Types found", - "total_beds": "Total Beds", - "create_facility": "Create a new facility", - "staff_list": "Staff List", - "bed_capacity": "Bed Capacity", - "cylinders": "Cylinders", - "cylinders_per_day": "Cylinders/day", - "liquid_oxygen_capacity": "Liquid Oxygen Capacity", - "expected_burn_rate": "Expected Burn Rate", - "type_b_cylinders": "B Type Cylinders", - "type_c_cylinders": "C Type Cylinders", - "type_d_cylinders": "D Type Cylinders", - "select_local_body": "Select Local Body", - "update_asset": "Update Asset", - "create_new_asset": "Create New Asset", - "you_need_at_least_a_location_to_create_an_assest": "You need at least a location to create an assest.", - "add_location": "Add Location", - "close_scanner": "Close Scanner", - "scan_asset_qr": "Scan Asset QR!", - "update": "Update", - "create": "Create", - "asset_name": "Asset Name", - "asset_location": "Asset Location", - "asset_type": "Asset Type", - "asset_class": "Asset Class", - "details_about_the_equipment": "Details about the equipment", - "working_status": "Working Status", - "why_the_asset_is_not_working": "Why the asset is not working?", - "describe_why_the_asset_is_not_working": "Describe why the asset is not working", - "asset_qr_id": "Asset QR ID", - "manufacturer": "Manufacturer", - "eg_xyz": "Eg. XYZ", - "eg_abc": "Eg. ABC", - "warranty_amc_expiry": "Warranty / AMC Expiry", - "customer_support_name": "Customer Support Name", - "customer_support_number": "Customer support number", - "customer_support_email": "Customer Support Email", - "eg_mail_example_com": "Eg. mail@example.com", - "vendor_name": "Vendor Name", - "serial_number": "Serial Number", - "last_serviced_on": "Last Serviced On", - "notes": "Notes", - "create_asset": "Create Asset", - "create_add_more": "Create & Add More", - "discharged_patients": "Discharged Patients", - "discharged_patients_empty": "No discharged patients present in this facility", - "update_facility_middleware_success": "Facility middleware updated successfully", - "treatment_summary__head_title": "Treatment Summary", - "treatment_summary__print": "Print Treatment Summary", - "treatment_summary__heading": "INTERIM TREATMENT SUMMARY", - "patient_registration__name": "Name", - "patient_registration__address": "Address", - "patient_registration__age": "Age", - "patient_consultation__op": "OP", - "patient_consultation__ip": "IP", - "patient_consultation__dc_admission": "Date of domiciliary care commenced", - "patient_consultation__admission": "Date of admission", - "patient_registration__gender": "Gender", - "patient_registration__contact": "Emergency Contact", - "patient_registration__comorbidities": "Comorbidities", - "patient_registration__comorbidities__disease": "Disease", - "patient_registration__comorbidities__details": "Details", - "patient_consultation__consultation_notes": "General Instructions", - "patient_consultation__special_instruction": "Special Instructions", - "suggested_investigations": "Suggested Investigations", - "investigations__date": "Date", - "investigations__name": "Name", - "investigations__result": "Result", - "investigations__ideal_value": "Ideal Value", - "investigations__range": "Value Range", - "investigations__unit": "Unit", - "patient_consultation__treatment__plan": "Plan", - "patient_consultation__treatment__summary": "Summary", - "patient_consultation__treatment__summary__date": "Date", - "patient_consultation__treatment__summary__spo2": "SpO2", - "patient_consultation__treatment__summary__temperature": "Temperature", - "diagnosis": "Diagnosis", - "diagnosis__principal": "Principal", - "diagnosis__confirmed": "Confirmed", - "diagnosis__provisional": "Provisional", - "diagnosis__unconfirmed": "Unconfirmed", - "diagnosis__differential": "Differential", - "active_prescriptions": "Active Prescriptions", - "prescriptions__medicine": "Medicine", - "prescriptions__route": "Route", - "prescriptions__dosage_frequency": "Dosage & Frequency", - "prescriptions__start_date": "Prescribed On", - "select_facility_for_discharged_patients_warning": "Facility needs to be selected to view discharged patients.", - "duplicate_patient_record_confirmation": "Admit the patient record to your facility by adding the year of birth", - "duplicate_patient_record_rejection": "I confirm that the suspect / patient I want to create is not on the list.", - "duplicate_patient_record_birth_unknown": "Please contact your district care coordinator, the shifting facility or the patient themselves if you are not sure about the patient's year of birth.", - "patient_transfer_birth_match_note": "Note: Year of birth must match the patient to process the transfer request.", - "cover_image_updated_note": "It could take a while to see the updated cover image", - "bed_type__100": "ICU Bed", - "bed_type__200": "Ordinary Bed", - "bed_type__300": "Oxygen Supported Bed", - "bed_type__400": "Isolation Bed", - "bed_type__500": "Others", - "available_features": "Available Features", - "update_facility": "Update Facility", - "configure_facility": "Configure Facility", - "inventory_management": "Inventory Management", - "location_management": "Location Management", - "resource_request": "Resource Request", - "view_asset": "View Assets", - "view_users": "View Users", - "view_abdm_records": "View ABDM Records", - "delete_facility": "Delete Facility", - "central_nursing_station": "Central Nursing Station", - "add_details_of_patient": "Add Details of Patient", - "choose_location": "Choose Location", - "live_monitoring": "Live Monitoring", - "open_live_monitoring": "Open Live Monitoring", - "abha_number_linked_successfully": "ABHA number linked successfully", - "failed_to_link_abha_number": "Failed to link ABHA number" -} diff --git a/src/Locale/en/FileUpload.json b/src/Locale/en/FileUpload.json deleted file mode 100644 index 4b3097eb9d3..00000000000 --- a/src/Locale/en/FileUpload.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "audio__allow_permission": "Please allow microphone permission in site settings", - "audio__allow_permission_helper": "You might have denied microphone access in the past.", - "audio__allow_permission_button": "Click here to know how to allow", - "audio__record": "Record Audio", - "audio__record_helper": "Click the button to start recording", - "audio__recording": "Recording", - "audio__recording_helper": "Please speak into your microphone.", - "audio__recording_helper_2": "Click on the button to stop recording.", - "audio__recorded": "Audio Recorded", - "audio__start_again": "Start Again", - "enter_file_name": "Enter File Name", - "no_files_found": "No {{type}} files found", - "upload_headings__patient": "Upload New Patient File", - "upload_headings__consultation": "Upload New Consultation File", - "upload_headings__sample_report": "Upload Sample Report", - "upload_headings__supporting_info": "Upload Supporting Info", - "file_list_headings__patient": "Patient Files", - "file_list_headings__consultation": "Consultation Files", - "file_list_headings__sample_report": "Sample Report", - "file_list_headings__supporting_info": "Supporting Info", - "file_error__choose_file": "Please choose a file to upload", - "file_error__file_name": "Please give a name for all files!", - "file_error__single_file_name": "Please give a name for the file", - "change_file": "Change File", - "file_error__file_size": "Maximum size of files is 100 MB", - "file_error__file_type": "Invalid file type \".{{extension}}\" Allowed types: {{allowedExtensions}}", - "file_uploaded": "File Uploaded Successfully", - "file_error__dynamic": "Error Uploading File: {{statusText}}", - "file_error__network": "Error Uploading File: Network Error" -} diff --git a/src/Locale/en/HCX.json b/src/Locale/en/HCX.json deleted file mode 100644 index 8c5d60c642d..00000000000 --- a/src/Locale/en/HCX.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "checking_policy_eligibility": "Checking Policy Eligibility", - "check_policy_eligibility": "Check Policy Eligibility", - "add_policy": "Add Insurance Policy", - "edit_policy": "Edit Insurance Policy", - "edit_policy_description": "Add or edit patient's insurance details", - "select_policy": "Select an Insurance Policy", - "select_eligible_policy": "Select an Eligible Insurance Policy", - "no_policy_found": "No Insurance Policy Found for this Patient", - "no_policy_added": "No Insurance Policy Added", - "checking_eligibility": "Checking Eligibility", - "check_eligibility": "Check Eligibility", - "eligible": "Eligible", - "not_eligible": "Not Eligible", - "policy": "Policy", - "policy__subscriber_id": "Member ID", - "policy__subscriber_id__example": "SUB001", - "policy__policy_id": "Policy ID / Policy Name", - "policy__policy_id__example": "POL001", - "policy__insurer": "Insurer", - "policy__insurer__example": "GICOFINDIA", - "policy__insurer_id": "Insurer ID", - "policy__insurer_id__example": "GICOFINDIA", - "policy__insurer_name": "Insurer Name", - "policy__insurer_name__example": "GIC OF INDIA", - "claims": "Claims", - "claim__item": "Item", - "claim__items": "Items", - "claim__add_item": "Add Item", - "claim__item__add_at_least_one": "Add at least one item", - "claim__item__fill_all_details": "Fill all the item details", - "claim__item__category": "Category", - "claim__item__procedure": "Procedure", - "claim__item__id": "ID", - "claim__item__id__example": "PROC001", - "claim__item__name": "Name", - "claim__item__name__example": "Knee Replacement", - "claim__item__price": "Price", - "claim__item__price__example": "100.00", - "claim__failed_to_create_preauthorization": "Failed to create Pre Authorization", - "claim__failed_to_create_claim": "Failed to create Claim", - "claim__creating_preauthorization": "Creating Pre Authorization", - "claim__creating_claim": "Creating Claim", - "claim__create_preauthorization": "Create Pre Authorization", - "claim__create_claim": "Create Claim", - "claim__use": "Use", - "claim__use__preauthorization": "Pre Authorization", - "claim__use__claim": "Claim", - "select_policy_to_add_items": "Select a Policy to Add Items", - "total_amount": "Total Amount", - "claim__status__rejected": "Rejected", - "claim__status__approved": "Approved", - "claim__status__pending": "Pending", - "claim__total_claim_amount": "Total Claim Amount", - "claim__total_approved_amount": "Total Approved Amount", - "communication__sent_to_hcx": "Sent communication to HCX", - "fetched_attachments_successfully": "Fetched attachments successfully", - "add_attachments": "Add Attachments", - "claim__request_claim": "Request Claim", - "claim__requesting_claim": "Requesting Claim", - "claim__fetched_claim_approval_results": "Fetched Claim Approval Results", - "claim__error_fetching_claim_approval_results": "Error Fetching Claim Approval Results" -} diff --git a/src/Locale/en/Hub.json b/src/Locale/en/Hub.json deleted file mode 100644 index 43454d1e215..00000000000 --- a/src/Locale/en/Hub.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "monitor": "Monitor", - "show_default_presets": "Show Default Presets", - "show_patient_presets": "Show Patient Presets", - "moving_camera": "Moving Camera", - "full_screen": "Full Screen", - "feed_is_currently_not_live": "Feed is currently not live", - "zoom_out": "Zoom Out", - "zoom_in": "Zoom In", - "right": "Right", - "left": "Left", - "down": "Down", - "up": "Up" -} diff --git a/src/Locale/en/LogUpdate.json b/src/Locale/en/LogUpdate.json deleted file mode 100644 index 386415d173e..00000000000 --- a/src/Locale/en/LogUpdate.json +++ /dev/null @@ -1,155 +0,0 @@ -{ - "LOG_UPDATE_CREATED_NOTIFICATION": "{{ roundType }} created successfully", - "LOG_UPDATE_UPDATED_NOTIFICATION": "{{ roundType }} updated successfully", - "LOG_UPDATE_FIELD_LABEL__rounds_type": "Rounds Type", - "LOG_UPDATE_FIELD_LABEL__patient_category": "Category", - "LOG_UPDATE_FIELD_LABEL__consciousness_level": "Level of Consciousness", - "LOG_UPDATE_FIELD_LABEL__sleep": "Sleep", - "LOG_UPDATE_FIELD_LABEL__bowel_issue": "Bowel", - "LOG_UPDATE_FIELD_LABEL__bladder_drainage": "Drainage", - "LOG_UPDATE_FIELD_LABEL__bladder_issue": "Issues", - "LOG_UPDATE_FIELD_LABEL__is_experiencing_dysuria": "Experiences Dysuria?", - "LOG_UPDATE_FIELD_LABEL__urination_frequency": "Frequency of Urination", - "LOG_UPDATE_FIELD_LABEL__nutrition_route": "Nutrition Route", - "LOG_UPDATE_FIELD_LABEL__oral_issue": "Oral issues", - "LOG_UPDATE_FIELD_LABEL__appetite": "Appetite", - "LOG_UPDATE_FIELD_LABEL__physical_examination_info": "Physical Examination Info", - "LOG_UPDATE_FIELD_LABEL__bp": "Blood Pressure", - "LOG_UPDATE_FIELD_LABEL__blood_sugar_level": "Blood Sugar Level", - "LOG_UPDATE_FIELD_LABEL__action": "Action", - "LOG_UPDATE_FIELD_LABEL__review_interval": "Review after", - "LOG_UPDATE_FIELD_LABEL__rhythm": "Heartbeat Rhythm", - "LOG_UPDATE_FIELD_LABEL__rhythm_detail": "Rhythm Description", - "LOG_UPDATE_FIELD_LABEL__ventilator_spo2": "SpO₂", - "LOG_UPDATE_FIELD_LABEL__resp": "Respiratory Rate", - "LOG_UPDATE_FIELD_LABEL__temperature": "Temperature", - "LOG_UPDATE_FIELD_LABEL__other_details": "Other details", - "LOG_UPDATE_FIELD_LABEL__pulse": "Pulse", - "ROUNDS_TYPE__NORMAL": "Brief Update", - "ROUNDS_TYPE__COMMUNITY_NURSES_LOG": "Community Nurse's Log", - "ROUNDS_TYPE__VENTILATOR": "Detailed Update", - "ROUNDS_TYPE__DOCTORS_LOG": "Progress Note", - "ROUNDS_TYPE__AUTOMATED": "Virtual Nursing Assistant", - "ROUNDS_TYPE__TELEMEDICINE": "Tele-medicine Log", - "RESPIRATORY_SUPPORT_SHORT__UNKNOWN": "None", - "RESPIRATORY_SUPPORT_SHORT__OXYGEN_SUPPORT": "O₂ Support", - "RESPIRATORY_SUPPORT_SHORT__NON_INVASIVE": "NIV", - "RESPIRATORY_SUPPORT_SHORT__INVASIVE": "IV", - "RESPIRATORY_SUPPORT__UNKNOWN": "None", - "RESPIRATORY_SUPPORT__OXYGEN_SUPPORT": "Oxygen Support", - "RESPIRATORY_SUPPORT__NON_INVASIVE": "Non-Invasive ventilator (NIV)", - "RESPIRATORY_SUPPORT__INVASIVE": "Invasive ventilator (IV)", - "VENTILATOR_MODE__CMV": "Control Mechanical Ventilation (CMV)", - "VENTILATOR_MODE__VCV": "Volume Control Ventilation (VCV)", - "VENTILATOR_MODE__PCV": "Pressure Control Ventilation (PCV)", - "VENTILATOR_MODE__SIMV": "Synchronised Intermittent Mandatory Ventilation (SIMV)", - "VENTILATOR_MODE__VC_SIMV": "Volume Controlled SIMV (VC-SIMV)", - "VENTILATOR_MODE__PC_SIMV": "Pressure Controlled SIMV (PC-SIMV)", - "VENTILATOR_MODE__PSV": "C-PAP / Pressure Support Ventilation (PSV)", - "CONSCIOUSNESS_LEVEL__UNRESPONSIVE": "Unresponsive", - "CONSCIOUSNESS_LEVEL__RESPONDS_TO_PAIN": "Responds to Pain", - "CONSCIOUSNESS_LEVEL__RESPONDS_TO_VOICE": "Responds to Voice", - "CONSCIOUSNESS_LEVEL__ALERT": "Alert", - "CONSCIOUSNESS_LEVEL__AGITATED_OR_CONFUSED": "Agitated or Confused", - "CONSCIOUSNESS_LEVEL__ONSET_OF_AGITATION_AND_CONFUSION": "Onset of Agitation and Confusion", - "BOWEL_ISSUE__NO_DIFFICULTY": "No difficulty", - "BOWEL_ISSUE__CONSTIPATION": "Constipation", - "BOWEL_ISSUE__DIARRHOEA": "Diarrhoea", - "BLADDER_DRAINAGE__NORMAL": "Normal", - "BLADDER_DRAINAGE__CONDOM_CATHETER": "Condom Catheter", - "BLADDER_DRAINAGE__DIAPER": "Diaper", - "BLADDER_DRAINAGE__INTERMITTENT_CATHETER": "Intermittent Catheter", - "BLADDER_DRAINAGE__CONTINUOUS_INDWELLING_CATHETER": "Continuous Indwelling Catheter", - "BLADDER_DRAINAGE__CONTINUOUS_SUPRAPUBIC_CATHETER": "Continuous Suprapubic Catheter", - "BLADDER_DRAINAGE__UROSTOMY": "Urostomy", - "BLADDER_ISSUE__NO_ISSUES": "No issues", - "BLADDER_ISSUE__INCONTINENCE": "Incontinence", - "BLADDER_ISSUE__RETENTION": "Retention", - "BLADDER_ISSUE__HESITANCY": "Hesitancy", - "URINATION_FREQUENCY__NORMAL": "Normal", - "URINATION_FREQUENCY__DECREASED": "Decreased", - "URINATION_FREQUENCY__INCREASED": "Increased", - "SLEEP__EXCESSIVE": "Excessive", - "SLEEP__SATISFACTORY": "Satisfactory", - "SLEEP__UNSATISFACTORY": "Unsatisfactory", - "SLEEP__NO_SLEEP": "No sleep", - "NUTRITION_ROUTE__ORAL": "Oral", - "NUTRITION_ROUTE__RYLES_TUBE": "Ryle's Tube", - "NUTRITION_ROUTE__GASTROSTOMY_OR_JEJUNOSTOMY": "Gastrostomy / Jejunostomy", - "NUTRITION_ROUTE__PEG": "PEG", - "NUTRITION_ROUTE__PARENTERAL_TUBING_FLUID": "Parenteral Tubing (Fluid)", - "NUTRITION_ROUTE__PARENTERAL_TUBING_TPN": "Parenteral Tubing (TPN)", - "ORAL_ISSUE__NO_ISSUE": "No issues", - "ORAL_ISSUE__DYSPHAGIA": "Dysphagia", - "ORAL_ISSUE__ODYNOPHAGIA": "Odynophagia", - "APPETITE__INCREASED": "Increased", - "APPETITE__SATISFACTORY": "Satisfactory", - "APPETITE__REDUCED": "Reduced", - "APPETITE__NO_TASTE_FOR_FOOD": "No taste for food", - "APPETITE__CANNOT_BE_ASSESSED": "Cannot be assessed", - "PUPIL_REACTION__UNKNOWN": "Unknown", - "PUPIL_REACTION__BRISK": "Brisk", - "PUPIL_REACTION__SLUGGISH": "Sluggish", - "PUPIL_REACTION__FIXED": "Fixed", - "PUPIL_REACTION__CANNOT_BE_ASSESSED": "Cannot be assessed", - "LIMB_RESPONSE__UNKNOWN": "Unknown", - "LIMB_RESPONSE__STRONG": "Strong", - "LIMB_RESPONSE__MODERATE": "Moderate", - "LIMB_RESPONSE__WEAK": "Weak", - "LIMB_RESPONSE__FLEXION": "Flexion", - "LIMB_RESPONSE__EXTENSION": "Extension", - "LIMB_RESPONSE__NONE": "None", - "OXYGEN_MODALITY__NASAL_PRONGS": "Nasal Prongs", - "OXYGEN_MODALITY__SIMPLE_FACE_MASK": "Simple Face Mask", - "OXYGEN_MODALITY__NON_REBREATHING_MASK": "Non Rebreathing Mask", - "OXYGEN_MODALITY__HIGH_FLOW_NASAL_CANNULA": "High Flow Nasal Cannula", - "INSULIN_INTAKE_FREQUENCY__UNKNOWN": "Unknown", - "INSULIN_INTAKE_FREQUENCY__OD": "Once a day (OD)", - "INSULIN_INTAKE_FREQUENCY__BD": "Twice a day (BD)", - "INSULIN_INTAKE_FREQUENCY__TD": "Thrice a day (TD)", - "NURSING_CARE_PROCEDURE__oral_care": "Oral Care", - "NURSING_CARE_PROCEDURE__hair_care": "Hair Care", - "NURSING_CARE_PROCEDURE__bed_bath": "Bed Bath", - "NURSING_CARE_PROCEDURE__eye_care": "Eye Care", - "NURSING_CARE_PROCEDURE__perineal_care": "Perineal Care", - "NURSING_CARE_PROCEDURE__skin_care": "Skin Care", - "NURSING_CARE_PROCEDURE__pre_enema": "P.R.E. Enema", - "NURSING_CARE_PROCEDURE__wound_dressing": "Wound Dressing", - "NURSING_CARE_PROCEDURE__lymphedema_care": "Lymphedema Care", - "NURSING_CARE_PROCEDURE__ascitic_tapping": "Ascitic Tapping", - "NURSING_CARE_PROCEDURE__colostomy_care": "Colostomy Care", - "NURSING_CARE_PROCEDURE__colostomy_change": "Colostomy Change", - "NURSING_CARE_PROCEDURE__personal_hygiene": "Other Personal Hygiene", - "NURSING_CARE_PROCEDURE__positioning": "Positioning", - "NURSING_CARE_PROCEDURE__suctioning": "Suctioning", - "NURSING_CARE_PROCEDURE__ryles_tube_care": "Ryle’s Tube Care", - "NURSING_CARE_PROCEDURE__ryles_tube_change": "Ryle’s Tube Change", - "NURSING_CARE_PROCEDURE__iv_sitecare": "IV Site Care", - "NURSING_CARE_PROCEDURE__nubulisation": "Nubulisation", - "NURSING_CARE_PROCEDURE__dressing": "Dressing", - "NURSING_CARE_PROCEDURE__dvt_pump_stocking": "DVT Pump Stocking", - "NURSING_CARE_PROCEDURE__restrain": "Restrain", - "NURSING_CARE_PROCEDURE__chest_tube_care": "Chest Tube Care", - "NURSING_CARE_PROCEDURE__tracheostomy_care": "Tracheostomy Care", - "NURSING_CARE_PROCEDURE__tracheostomy_tube_change": "Tracheostomy Tube Change", - "NURSING_CARE_PROCEDURE__stoma_care": "Stoma Care", - "NURSING_CARE_PROCEDURE__catheter_care": "Catheter Care", - "NURSING_CARE_PROCEDURE__catheter_change": "Catheter Change", - "HEARTBEAT_RHYTHM__REGULAR": "Regular", - "HEARTBEAT_RHYTHM__IRREGULAR": "Irregular", - "HEARTBEAT_RHYTHM__UNKNOWN": "Unknown", - "map_acronym": "M.A.P.", - "systolic": "Systolic", - "diastolic": "Diastolic", - "pain": "Pain", - "pain_chart_description": "Mark region and intensity of pain", - "bradycardia": "Bradycardia", - "tachycardia": "Tachycardia", - "vitals": "Vitals", - "procedures_select_placeholder": "Select procedures to add details", - "oral_issue_for_non_oral_nutrition_route_error": "Can be specified only if nutrition route is set to Oral", - "routine": "Routine", - "bladder": "Bladder", - "nutrition": "Nutrition", - "nursing_care": "Nursing Care" -} \ No newline at end of file diff --git a/src/Locale/en/Medicine.json b/src/Locale/en/Medicine.json deleted file mode 100644 index df0467de7b6..00000000000 --- a/src/Locale/en/Medicine.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "medicine": "Medicine", - "route": "Route", - "dosage": "Dosage", - "base_dosage": "Dosage", - "start_dosage": "Start Dosage", - "target_dosage": "Target Dosage", - "instruction_on_titration": "Instruction on titration", - "titrate_dosage": "Titrate Dosage", - "indicator": "Indicator", - "inidcator_event": "Indicator Event", - "max_dosage_24_hrs": "Max. dosage in 24 hrs.", - "min_time_bw_doses": "Min. time b/w doses", - "manage_prescriptions": "Manage Prescriptions", - "prescription_details": "Prescription Details", - "prescription_medications": "Prescription Medications", - "prn_prescriptions": "PRN Prescriptions", - "prescription": "Prescription", - "discharge_prescription": "Discharge Prescription", - "edit_prescriptions": "Edit Prescriptions", - "prescription_medication": "Prescription Medication", - "add_prescription_medication": "Add Prescription Medication", - "prn_prescription": "PRN Prescription", - "add_prn_prescription": "Add PRN Prescription", - "add_prescription_to_consultation_note": "Add a new prescription to this consultation.", - "medicine_administration_history": "Medicine Administration History", - "return_to_patient_dashboard": "Return to Patient Dashboard", - "administered_on": "Administered on", - "administer": "Administer", - "administer_medicine": "Administer Medicine", - "administer_medicines": "Administer Medicines", - "administer_selected_medicines": "Administer Selected Medicines", - "select_for_administration": "Select for Administration", - "medicines_administered": "Medicine(s) administered", - "medicines_administered_error": "Error administering medicine(s)", - "prescription_discontinued": "Prescription discontinued", - "administration_notes": "Administration Notes", - "last_administered": "Last administered", - "prescription_logs": "Prescription Logs", - "modification_caution_note": "No modifications possible once added", - "discontinue_caution_note": "Are you sure you want to discontinue this prescription?", - "confirm_discontinue": "Confirm Discontinue", - "edit_caution_note": "A new prescription will be added to the consultation with the edited details and the current prescription will be discontinued.", - "reason_for_discontinuation": "Reason for discontinuation", - "reason_for_edit": "Reason for edit", - "PRESCRIPTION_ROUTE_ORAL": "Oral", - "PRESCRIPTION_ROUTE_IV": "IV", - "PRESCRIPTION_ROUTE_IM": "IM", - "PRESCRIPTION_ROUTE_SC": "S/C", - "PRESCRIPTION_ROUTE_INHALATION": "Inhalation", - "PRESCRIPTION_ROUTE_NASOGASTRIC": "Nasogastric / Gastrostomy tube", - "PRESCRIPTION_ROUTE_INTRATHECAL": "intrathecal injection", - "PRESCRIPTION_ROUTE_TRANSDERMAL": "Transdermal", - "PRESCRIPTION_ROUTE_RECTAL": "Rectal", - "PRESCRIPTION_ROUTE_SUBLINGUAL": "Sublingual", - "PRESCRIPTION_FREQUENCY_STAT": "Imediately", - "PRESCRIPTION_FREQUENCY_OD": "Once daily", - "PRESCRIPTION_FREQUENCY_HS": "Night only", - "PRESCRIPTION_FREQUENCY_BD": "Twice daily", - "PRESCRIPTION_FREQUENCY_TID": "8th hourly", - "PRESCRIPTION_FREQUENCY_QID": "6th hourly", - "PRESCRIPTION_FREQUENCY_Q4H": "4th hourly", - "PRESCRIPTION_FREQUENCY_QOD": "Alternate day", - "PRESCRIPTION_FREQUENCY_QWK": "Once a week", - "inconsistent_dosage_units_error": "Dosage units must be same", - "max_dosage_in_24hrs_gte_base_dosage_error": "Max. dosage in 24 hours must be greater than or equal to base dosage", - "administration_dosage_range_error": "Dosage should be between start and target dosage" -} \ No newline at end of file diff --git a/src/Locale/en/Notifications.json b/src/Locale/en/Notifications.json deleted file mode 100644 index dac9c29730f..00000000000 --- a/src/Locale/en/Notifications.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "no_notices_for_you": "No notices for you.", - "mark_as_read": "Mark as Read", - "mark_as_unread": "Mark as Unread", - "subscribe": "Subscribe", - "subscribe_on_this_device": "Subscribe on this device", - "show_unread_notifications": "Show Unread", - "show_all_notifications": "Show All", - "filter_by_category": "Filter by category", - "mark_all_as_read": "Mark all as Read", - "reload": "Reload", - "Notifications": "Notifications", - "no_results_found": "No Results Found", - "load_more": "Load More", - "subscription_error": "Subscription Error", - "unsubscribe_failed": "Unsubscribe failed.", - "unsubscribe": "Unsubscribe", - "escape": "Escape", - "loading": "Loading...", - "invalid_asset_id_msg": "Oops! The asset ID you entered does not appear to be valid.", - "asset_not_found_msg": "Oops! The asset you are looking for does not exist. Please check the asset id." -} diff --git a/src/Locale/en/Patient.json b/src/Locale/en/Patient.json deleted file mode 100644 index fc6e0507cb9..00000000000 --- a/src/Locale/en/Patient.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "occupation": "Occupation", - "ration_card_category": "Ration Card Category", - "socioeconomic_status": "Socioeconomic status", - "domestic_healthcare_support": "Domestic healthcare support", - "has_domestic_healthcare_support": "Has domestic healthcare support?", - "SOCIOECONOMIC_STATUS__MIDDLE_CLASS": "Middle Class", - "SOCIOECONOMIC_STATUS__POOR": "Poor", - "SOCIOECONOMIC_STATUS__VERY_POOR": "Very Poor", - "SOCIOECONOMIC_STATUS__WELL_OFF": "Well Off", - "DOMESTIC_HEALTHCARE_SUPPORT__FAMILY_MEMBER": "Family member", - "DOMESTIC_HEALTHCARE_SUPPORT__PAID_CAREGIVER": "Paid caregiver", - "DOMESTIC_HEALTHCARE_SUPPORT__NO_SUPPORT": "No support" -} \ No newline at end of file diff --git a/src/Locale/en/Resource.json b/src/Locale/en/Resource.json deleted file mode 100644 index cc36bdb5d40..00000000000 --- a/src/Locale/en/Resource.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "create_resource_request": "Create Resource Request", - "contact_person": "Name of Contact Person at Facility", - "approving_facility": "Name of Approving Facility", - "contact_phone": "Contact Person Number", - "request_title": "Request Title", - "request_title_placeholder": "Type your title here", - "required_quantity": "Required Quantity", - "request_description": "Description of Request", - "request_description_placeholder": "Type your description here", - "search_resource": "Search Resource" -} diff --git a/src/Locale/en/Shifting.json b/src/Locale/en/Shifting.json deleted file mode 100644 index e1bc1916d89..00000000000 --- a/src/Locale/en/Shifting.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "emergency": "Emergency", - "up_shift": "Up Shift", - "antenatal": "Antenatal", - "phone_no": "Phone no.", - "patient_name": "Patient name", - "disease_status": "Disease status", - "breathlessness_level": "Breathlessness level", - "assigned_facility": "Facility assigned", - "origin_facility": "Current facility", - "shifting_approval_facility": "Shifting approval facility", - "shifting": "Shifting", - "search_patient": "Search Patient", - "list_view": "List View", - "comment_min_length": "Comment Should Contain At Least 1 Character", - "comment_added_successfully": "Comment added successfully", - "post_your_comment": "Post Your Comment", - "shifting_approving_facility": "Shifting approving facility", - "is_emergency_case": "Is emergency case", - "is_upshift_case": "Is upshift case", - "is_antenatal": "Is Antenatal", - "patient_phone_number": "Patient Phone Number", - "created_date": "Created Date", - "modified_date": "Modified Date", - "no_patients_to_show": "No patients to show.", - "shifting_status": "Shifting status", - "transfer_to_receiving_facility": "TRANSFER TO RECEIVING FACILITY", - "confirm_transfer_complete": "Confirm Transfer Complete!", - "mark_transfer_complete_confirmation": "Are you sure you want to mark this transfer as complete? The Origin facility will no longer have access to this patient", - "board_view": "Board View", - "shifting_deleted": "Shifting record has been deleted successfully.", - "details_of_shifting_approving_facility": "Details of shifting approving facility", - "details_of_assigned_facility": "Details of assigned facility", - "details_of_origin_facility": "Details of origin facility", - "details_of_patient": "Details of patient", - "record_delete_confirm": "Are you sure you want to delete this record?", - "phone_number_at_current_facility": "Phone Number of Contact person at current Facility", - "authorize_shift_delete": "Authorize shift delete", - "delete_record": "Delete Record", - "severity_of_breathlessness": "Severity of Breathlessness", - "facility_preference": "Facility preference", - "vehicle_preference": "Vehicle preference", - "is_up_shift": "Is up shift", - "patient_category": "Patient Category", - "ambulance_driver_name": "Name of ambulance driver", - "ambulance_phone_number": "Phone number of Ambulance", - "ambulance_number": "Ambulance No", - "is_emergency": "Is emergency", - "contact_person_at_the_facility": "Contact person at the current facility", - "update_status_details": "Update Status/Details", - "shifting_details": "Shifting details", - "auto_generated_for_care": "Auto Generated for Care", - "approved_by_district_covid_control_room": "Approved by District COVID Control Room", - "treatment_summary": "Treatment Summary", - "reason_for_referral": "Reason for referral", - "referred_to": "Referred to", - "covid_19_cat_gov": "Covid_19 Clinical Category as per Govt. of Kerala guideline (A/B/C)", - "district_program_management_supporting_unit": "District Program Management Supporting Unit", - "name_of_hospital": "Name of Hospital", - "passport_number": "Passport Number", - "test_type": "Test Type", - "medical_worker": "Medical Worker", - "error_deleting_shifting": "Error while deleting Shifting record", - "type_any_extra_comments_here": "type any extra comments here", - "type_your_reason_here": "Type your reason here", - "reason_for_shift": "Reason for shift", - "preferred_facility_type": "Preferred Facility Type", - "preferred_vehicle": "Preferred Vehicle", - "is_it_upshift": "is it upshift", - "is_this_an_upshift": "Is this an upshift?", - "is_this_an_emergency": "Is this an emergency?", - "what_facility_assign_the_patient_to": "What facility would you like to assign the patient to", - "name_of_shifting_approving_facility": "Name of shifting approving facility", - "update_shift_request": "Update Shift Request", - "shift_request_updated_successfully": "Shift request updated successfully", - "please_enter_a_reason_for_the_shift": "Please enter a reason for the shift.", - "please_select_preferred_vehicle_type": "Please select Preferred Vehicle Type", - "please_select_facility_type": "Please select Facility Type", - "please_select_breathlessness_level": "Please select Breathlessness Level", - "please_select_a_facility": "Please select a facility", - "please_select_status": "Please select Status", - "please_select_patient_category": "Please select Patient Category", - "shifting_approving_facility_can_not_be_empty": "Shifting approving facility can not be empty.", - "redirected_to_create_consultation": "Note: You will be redirected to create consultation form. Please complete the form to finish the transfer process", - "mark_this_transfer_as_complete_question": "Are you sure you want to mark this transfer as complete? The Origin facility will no longer have access to this patient", - "transfer_in_progress": "TRANSFER IN PROGRESS", - "patient_state": "Patient State", - "yet_to_be_decided": "Yet to be decided", - "awaiting_destination_approval": "AWAITING DESTINATION APPROVAL" -} diff --git a/src/Locale/en/Users.json b/src/Locale/en/Users.json deleted file mode 100644 index 035ed8933a5..00000000000 --- a/src/Locale/en/Users.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "user_management": "User Management", - "facilities": "Facilities", - "add_new_user": "Add New User", - "no_users_found": "No Users Found", - "home_facility": "Home Facility", - "no_home_facility": "No home facility assigned", - "clear_home_facility": "Clear Home Facility", - "linked_facilities": "Linked Facilities", - "no_linked_facilities": "No Linked Facilities", - "average_weekly_working_hours": "Average weekly working hours", - "set_average_weekly_working_hours_for": "Set Average weekly working hours for", - "search_by_username": "Search by username", - "last_online": "Last Online", - "total_users": "Total Users" -} diff --git a/src/Locale/en/index.js b/src/Locale/en/index.js deleted file mode 100644 index 808520605ed..00000000000 --- a/src/Locale/en/index.js +++ /dev/null @@ -1,45 +0,0 @@ -import Asset from "./Asset.json"; -import Auth from "./Auth.json"; -import Bed from "./Bed.json"; -import Common from "./Common.json"; -import Consultation from "./Consultation.json"; -import CoverImageEdit from "./CoverImageEdit.json"; -import Diagnosis from "./Diagnosis.json"; -import Entities from "./Entities.json"; -import ErrorPages from "./ErrorPages.json"; -import ExternalResult from "./ExternalResult.json"; -import Facility from "./Facility.json"; -import FileUpload from "./FileUpload.json"; -import HCX from "./HCX.json"; -import Hub from "./Hub.json"; -import LogUpdate from "./LogUpdate.json"; -import Medicine from "./Medicine.json"; -import Notifications from "./Notifications.json"; -import Patient from "./Patient.json"; -import Resource from "./Resource.json"; -import Shifting from "./Shifting.json"; -import Users from "./Users.json"; - -export default { - ...Auth, - ...Asset, - ...Common, - ...Consultation, - ...CoverImageEdit, - ...Entities, - ...ErrorPages, - ...ExternalResult, - ...Facility, - ...Hub, - ...Medicine, - ...Diagnosis, - ...Notifications, - ...Patient, - ...Resource, - ...Shifting, - ...Bed, - ...Users, - ...LogUpdate, - ...FileUpload, - ...HCX, -}; diff --git a/src/Locale/hi.json b/src/Locale/hi.json new file mode 100644 index 00000000000..93d9ef32f34 --- /dev/null +++ b/src/Locale/hi.json @@ -0,0 +1,813 @@ +{ + "404_message": "ऐसा लगता है कि आप किसी ऐसे पेज पर आ गए हैं जो या तो मौजूद नहीं है या उसे किसी दूसरे URL पर ले जाया गया है। सुनिश्चित करें कि आपने सही लिंक डाला है!", + "AUTOMATED": "स्वचालित", + "Assets": "संपत्ति", + "BED_WITH_OXYGEN_SUPPORT": "ऑक्सीजन सपोर्ट वाला बिस्तर", + "CONSCIOUSNESS_LEVEL__AGITATED_OR_CONFUSED": "उत्तेजित या भ्रमित", + "CONSCIOUSNESS_LEVEL__ALERT": "चेतावनी", + "CONSCIOUSNESS_LEVEL__ONSET_OF_AGITATION_AND_CONFUSION": "उत्तेजना और भ्रम की शुरुआत", + "CONSCIOUSNESS_LEVEL__RESPONDS_TO_PAIN": "दर्द का जवाब देता है", + "CONSCIOUSNESS_LEVEL__RESPONDS_TO_VOICE": "आवाज़ का जवाब देता है", + "CONSCIOUSNESS_LEVEL__UNRESPONSIVE": "अनुत्तरदायी", + "Cancel": "रद्द करना", + "DD/MM/YYYY": "दिनांक/माह/वर्ष", + "DOCTORS_LOG": "प्रगति नोट", + "Dashboard": "डैशबोर्ड", + "Facilities": "सुविधाएँ", + "GENDER__1": "पुरुष", + "GENDER__2": "महिला", + "GENDER__3": "नॉन-बाइनरी", + "HEARTBEAT_RHYTHM__IRREGULAR": "अनियमित", + "HEARTBEAT_RHYTHM__REGULAR": "नियमित", + "HEARTBEAT_RHYTHM__UNKNOWN": "अज्ञात", + "ICU": "आईसीयू", + "INSULIN_INTAKE_FREQUENCY__BD": "दिन में दो बार (बीडी)", + "INSULIN_INTAKE_FREQUENCY__OD": "दिन में एक बार (OD)", + "INSULIN_INTAKE_FREQUENCY__TD": "दिन में तीन बार (टीडी)", + "INSULIN_INTAKE_FREQUENCY__UNKNOWN": "अज्ञात", + "ISOLATION": "एकांत", + "KASP Empanelled": "KASP पैनलबद्ध", + "LIMB_RESPONSE__EXTENSION": "विस्तार", + "LIMB_RESPONSE__FLEXION": "मोड़", + "LIMB_RESPONSE__MODERATE": "मध्यम", + "LIMB_RESPONSE__NONE": "कोई नहीं", + "LIMB_RESPONSE__STRONG": "मज़बूत", + "LIMB_RESPONSE__UNKNOWN": "अज्ञात", + "LIMB_RESPONSE__WEAK": "कमज़ोर", + "NORMAL": "संक्षिप्त अद्यतन", + "NURSING_CARE_PROCEDURE__catheter_care": "कैथेटर देखभाल", + "NURSING_CARE_PROCEDURE__chest_tube_care": "चेस्ट ट्यूब की देखभाल", + "NURSING_CARE_PROCEDURE__dressing": "ड्रेसिंग", + "NURSING_CARE_PROCEDURE__dvt_pump_stocking": "डीवीटी पंप स्टॉकिंग", + "NURSING_CARE_PROCEDURE__iv_sitecare": "IV साइट देखभाल", + "NURSING_CARE_PROCEDURE__nubulisation": "नूबुलाइज़ेशन", + "NURSING_CARE_PROCEDURE__personal_hygiene": "व्यक्तिगत स्वच्छता", + "NURSING_CARE_PROCEDURE__positioning": "पोजिशनिंग", + "NURSING_CARE_PROCEDURE__restrain": "नियंत्रित करना", + "NURSING_CARE_PROCEDURE__ryles_tube_care": "राइल्स ट्यूब केयर", + "NURSING_CARE_PROCEDURE__stoma_care": "स्टोमा देखभाल", + "NURSING_CARE_PROCEDURE__suctioning": "सक्शनिंग", + "NURSING_CARE_PROCEDURE__tracheostomy_care": "ट्रैकियोस्टोमी देखभाल", + "Notice Board": "सूचना पट्ट", + "Notifications": "सूचनाएं", + "OXYGEN_MODALITY__HIGH_FLOW_NASAL_CANNULA": "उच्च प्रवाह नाक प्रवेशनी", + "OXYGEN_MODALITY__NASAL_PRONGS": "नाक के कांटे", + "OXYGEN_MODALITY__NON_REBREATHING_MASK": "नॉन रीब्रीदिंग मास्क", + "OXYGEN_MODALITY__SIMPLE_FACE_MASK": "सरल फेस मास्क", + "PRESCRIPTION_FREQUENCY_BD": "दो बार दैनिक लें", + "PRESCRIPTION_FREQUENCY_HS": "केवल रात्रि", + "PRESCRIPTION_FREQUENCY_OD": "एक बार दैनिक", + "PRESCRIPTION_FREQUENCY_Q4H": "4 घंटे प्रति घंटा", + "PRESCRIPTION_FREQUENCY_QID": "6वाँ प्रति घंटा", + "PRESCRIPTION_FREQUENCY_QOD": "वैकल्पिक दिन", + "PRESCRIPTION_FREQUENCY_QWK": "एक सप्ताह में एक बार", + "PRESCRIPTION_FREQUENCY_STAT": "तुरन्त", + "PRESCRIPTION_FREQUENCY_TID": "8वाँ प्रति घंटा", + "PRESCRIPTION_ROUTE_IM": "मैं हूँ", + "PRESCRIPTION_ROUTE_INHALATION": "साँस लेना", + "PRESCRIPTION_ROUTE_INTRATHECAL": "अंतःकपाल इंजेक्शन", + "PRESCRIPTION_ROUTE_IV": "चतुर्थ", + "PRESCRIPTION_ROUTE_NASOGASTRIC": "नासोगैस्ट्रिक / गैस्ट्रोस्टोमी ट्यूब", + "PRESCRIPTION_ROUTE_ORAL": "मौखिक", + "PRESCRIPTION_ROUTE_RECTAL": "रेक्टल", + "PRESCRIPTION_ROUTE_SC": "अनुसूचित जाति", + "PRESCRIPTION_ROUTE_SUBLINGUAL": "सबलिंगुअल", + "PRESCRIPTION_ROUTE_TRANSDERMAL": "ट्रांसडर्मल", + "PUPIL_REACTION__BRISK": "तेज", + "PUPIL_REACTION__CANNOT_BE_ASSESSED": "मूल्यांकन नहीं किया जा सकता", + "PUPIL_REACTION__FIXED": "तय", + "PUPIL_REACTION__SLUGGISH": "सुस्त", + "PUPIL_REACTION__UNKNOWN": "अज्ञात", + "Patients": "मरीजों", + "Profile": "प्रोफ़ाइल", + "REGULAR": "नियमित", + "RESPIRATORY_SUPPORT_SHORT__INVASIVE": "चतुर्थ", + "RESPIRATORY_SUPPORT_SHORT__NON_INVASIVE": "एनआईवी", + "RESPIRATORY_SUPPORT_SHORT__OXYGEN_SUPPORT": "O2 समर्थन", + "RESPIRATORY_SUPPORT_SHORT__UNKNOWN": "कोई नहीं", + "RESPIRATORY_SUPPORT__INVASIVE": "इनवेसिव वेंटिलेटर (IV)", + "RESPIRATORY_SUPPORT__NON_INVASIVE": "नॉन-इनवेसिव वेंटिलेटर (एनआईवी)", + "RESPIRATORY_SUPPORT__OXYGEN_SUPPORT": "ऑक्सीजन सहायता", + "RESPIRATORY_SUPPORT__UNKNOWN": "कोई नहीं", + "Resource": "संसाधन", + "SORT_OPTIONS__-bed__name": "बिस्तर संख्या एन-1", + "SORT_OPTIONS__-category_severity": "सर्वोच्च गंभीरता श्रेणी पहले", + "SORT_OPTIONS__-created_date": "नवीनतम निर्माण तिथि पहले", + "SORT_OPTIONS__-modified_date": "नवीनतम अद्यतन तिथि पहले", + "SORT_OPTIONS__-name": "मरीज का नाम ZA", + "SORT_OPTIONS__-review_time": "नवीनतम समीक्षा तिथि पहले", + "SORT_OPTIONS__-taken_at": "नवीनतम ली गई तिथि पहले", + "SORT_OPTIONS__bed__name": "बिस्तर नं. 1-एन", + "SORT_OPTIONS__category_severity": "सबसे कम गंभीरता वाली श्रेणी पहले", + "SORT_OPTIONS__created_date": "सबसे पुरानी निर्माण तिथि पहले", + "SORT_OPTIONS__facility__name,-last_consultation__current_bed__bed__name": "बिस्तर संख्या एन-1", + "SORT_OPTIONS__facility__name,last_consultation__current_bed__bed__name": "बिस्तर नं. 1-एन", + "SORT_OPTIONS__modified_date": "सबसे पुरानी अद्यतन तिथि पहले", + "SORT_OPTIONS__name": "मरीज़ का नाम AZ", + "SORT_OPTIONS__review_time": "सबसे पुरानी समीक्षा तिथि पहले", + "SORT_OPTIONS__taken_at": "सबसे पुरानी ली गई तारीख पहले", + "Sample Test": "नमूना परीक्षण", + "Shifting": "स्थानांतरण", + "Submit": "जमा करना", + "TELEMEDICINE": "सुदूर", + "Users": "उपयोगकर्ताओं", + "VENTILATOR": "विस्तृत अद्यतन", + "VENTILATOR_MODE__CMV": "मैकेनिकल वेंटिलेशन (CMV) को नियंत्रित करें", + "VENTILATOR_MODE__PCV": "दबाव नियंत्रण वेंटिलेशन (पीसीवी)", + "VENTILATOR_MODE__PC_SIMV": "दबाव नियंत्रित SIMV (PC-SIMV)", + "VENTILATOR_MODE__PSV": "सी-पीएपी / प्रेशर सपोर्ट वेंटिलेशन (पीएसवी)", + "VENTILATOR_MODE__SIMV": "समकालिक आंतरायिक अनिवार्य वेंटिलेशन (एसआईएमवी)", + "VENTILATOR_MODE__VCV": "वॉल्यूम नियंत्रण वेंटिलेशन (VCV)", + "VENTILATOR_MODE__VC_SIMV": "वॉल्यूम नियंत्रित SIMV (VC-SIMV)", + "View Facility": "सुविधा देखें", + "action_irreversible": "यह क्रिया अपरिवर्तनीय है", + "active": "सक्रिय", + "active_prescriptions": "सक्रिय नुस्खे", + "add": "जोड़ना", + "add_as": "के रूप में जोड़ें", + "add_beds": "बिस्तर(बिस्तर) जोड़ें", + "add_details_of_patient": "मरीज़ का विवरण जोड़ें", + "add_location": "स्थान जोड़ना", + "add_new_user": "नई उपयोगकर्ता को जोड़ना", + "add_notes": "नोट्स जोड़ें", + "add_prescription_medication": "प्रिस्क्रिप्शन दवा जोड़ें", + "add_prescription_to_consultation_note": "इस परामर्श में एक नया नुस्खा जोड़ें।", + "add_prn_prescription": "PRN प्रिस्क्रिप्शन जोड़ें", + "address": "पता", + "administer": "प्रशासन", + "administer_medicine": "दवाई देना", + "administer_medicines": "दवाइयाँ दें", + "administer_selected_medicines": "चयनित दवाएँ दें", + "administered_on": "प्रशासित", + "administration_dosage_range_error": "खुराक प्रारंभिक और लक्ष्य खुराक के बीच होनी चाहिए", + "administration_notes": "प्रशासन नोट्स", + "advanced_filters": "उन्नत फ़िल्टर", + "age": "आयु", + "all_changes_have_been_saved": "सभी परिवर्तन सहेज लिए गए हैं", + "all_details": "सभी विवरण", + "allergies": "एलर्जी", + "allowed_formats_are": "स्वीकृत प्रारूप हैं", + "already_a_member": "क्या पहले से ही सदस्य हैं?", + "ambulance_driver_name": "एम्बुलेंस चालक का नाम", + "ambulance_number": "एम्बुलेंस नं.", + "ambulance_phone_number": "एम्बुलेंस का फ़ोन नंबर", + "antenatal": "उत्पत्ति के पूर्व का", + "any_other_comments": "कोई अन्य टिप्पणी", + "apply": "आवेदन करना", + "approved_by_district_covid_control_room": "जिला कोविड नियंत्रण कक्ष द्वारा अनुमोदित", + "approving_facility": "अनुमोदन सुविधा का नाम", + "archive": "पुरालेख", + "archived": "संग्रहीत", + "are_you_still_watching": "क्या आप अभी भी देख रहे हैं?", + "are_you_sure_want_to_delete": "क्या आप वाकई {{name}}को हटाना चाहते हैं?", + "are_you_sure_want_to_delete_this_record": "क्या आप वाकई इस रिकॉर्ड को हटाना चाहते हैं?", + "asset_class": "परिसंपत्ति वर्ग", + "asset_location": "परिसंपत्ति स्थान", + "asset_name": "संपत्ति का नाम", + "asset_not_found_msg": "ओह! आप जिस संपत्ति की तलाश कर रहे हैं वह मौजूद नहीं है। कृपया संपत्ति आईडी की जाँच करें।", + "asset_qr_id": "एसेट क्यूआर आईडी", + "asset_type": "संपदा प्रकार", + "assigned_facility": "सुविधा सौंपी गई", + "assigned_to": "को सौंपना", + "audio__allow_permission": "कृपया साइट सेटिंग में माइक्रोफ़ोन की अनुमति दें", + "audio__allow_permission_button": "अनुमति देने का तरीका जानने के लिए यहां क्लिक करें", + "audio__allow_permission_helper": "हो सकता है कि आपने पहले भी माइक्रोफ़ोन तक पहुंच से इनकार किया हो.", + "audio__record": "ऑडियो रिकॉर्ड करें", + "audio__record_helper": "रिकॉर्डिंग शुरू करने के लिए बटन पर क्लिक करें", + "audio__recorded": "ऑडियो रिकॉर्ड किया गया", + "audio__recording": "रिकॉर्डिंग", + "audio__recording_helper": "कृपया अपने माइक्रोफ़ोन में बोलें.", + "audio__recording_helper_2": "रिकॉर्डिंग रोकने के लिए बटन पर क्लिक करें।", + "audio__start_again": "फिर से शुरू करें", + "audit_log": "ऑडिट लॉग", + "auth_login_title": "अधिकृत लॉगिन", + "authorize_shift_delete": "शिफ़्ट डिलीट को अधिकृत करें", + "auto_generated_for_care": "देखभाल के लिए स्वचालित रूप से उत्पन्न", + "available_features": "उपलब्ध सुविधाएँ", + "available_in": "में उपलब्ध", + "average_weekly_working_hours": "औसत साप्ताहिक कार्य घंटे", + "awaiting_destination_approval": "गंतव्य अनुमोदन की प्रतीक्षा में", + "back": "पीछे", + "back_dated_encounter_date_caution": "आप एक मुठभेड़ बना रहे हैं", + "back_to_consultation": "परामर्श पर वापस जाएँ", + "back_to_login": "लॉगिन पर वापस जाएं", + "base_dosage": "मात्रा बनाने की विधि", + "bed_capacity": "बिस्तर क्षमता", + "bed_search_placeholder": "बिस्तर के नाम से खोजें", + "bed_type": "बिस्तर का प्रकार", + "blood_group": "ब्लड ग्रुप", + "board_view": "बोर्ड दृश्य", + "bradycardia": "मंदनाड़ी", + "breathlessness_level": "सांस फूलने का स्तर", + "camera": "कैमरा", + "camera_permission_denied": "कैमरा अनुमति नहीं दी गई", + "cancel": "रद्द करना", + "capture": "कब्जा", + "capture_cover_photo": "कवर फ़ोटो कैप्चर करें", + "care": "देखभाल", + "category": "वर्ग", + "caution": "सावधानी", + "central_nursing_station": "सेंट्रल नर्सिंग स्टेशन", + "choose_file": "डिवाइस से अपलोड करें", + "choose_location": "स्थान का चयन", + "clear": "स्पष्ट", + "clear_all_filters": "सभी फ़िल्टर साफ़ करें", + "clear_home_facility": "क्लियर होम सुविधा", + "clear_selection": "चयन साफ़ करें", + "close": "बंद करना", + "close_scanner": "स्कैनर बंद करें", + "comment_added_successfully": "टिप्पणी सफलतापूर्वक जोड़ी गई", + "comment_min_length": "टिप्पणी में कम से कम 1 अक्षर होना चाहिए", + "comments": "टिप्पणियाँ", + "completed": "पुरा होना।", + "configure": "कॉन्फ़िगर", + "configure_facility": "सुविधा कॉन्फ़िगर करें", + "confirm": "पुष्टि करना", + "confirm_delete": "मिटाने की पुष्टि करें", + "confirm_discontinue": "बंद करने की पुष्टि करें", + "confirm_password": "पासवर्ड की पुष्टि कीजिये", + "confirm_transfer_complete": "स्थानांतरण पूर्ण होने की पुष्टि करें!", + "confirmed": "की पुष्टि", + "consultation_notes": "सामान्य निर्देश (सलाह)", + "consultation_updates": "परामर्श अद्यतन", + "contact_number": "संपर्क संख्या", + "contact_person": "सुविधा केंद्र पर संपर्क व्यक्ति का नाम", + "contact_person_at_the_facility": "वर्तमान सुविधा पर संपर्क व्यक्ति", + "contact_person_number": "संपर्क व्यक्ति संख्या", + "contact_phone": "संपर्क व्यक्ति संख्या", + "contact_your_admin_to_add_skills": "कौशल जोड़ने के लिए अपने व्यवस्थापक से संपर्क करें", + "continue": "जारी रखना", + "continue_watching": "देखना जारी रखें", + "contribute_github": "गिटहब पर योगदान दें", + "copied_to_clipboard": "क्लिपबोर्ड पर कॉपी किया गया", + "countries_travelled": "यात्रा किये गए देश", + "covid_19_cat_gov": "केरल सरकार के दिशानिर्देश के अनुसार कोविड_19 क्लिनिकल श्रेणी (ए/बी/सी)", + "create": "बनाएं", + "create_add_more": "और अधिक बनाएं और जोड़ें", + "create_asset": "संपत्ति बनाएं", + "create_facility": "एक नई सुविधा बनाएं", + "create_new_asset": "नई संपत्ति बनाएं", + "create_resource_request": "संसाधन अनुरोध बनाएँ", + "created": "बनाया था", + "created_date": "सृजित दिनांक", + "csv_file_in_the_specified_format": "निर्दिष्ट प्रारूप में CSV फ़ाइल चुनें", + "customer_support_email": "ग्राहक सहायता ईमेल", + "customer_support_name": "ग्राहक सहायता नाम", + "customer_support_number": "ग्राहक सहायता नंबर", + "cylinders": "सिलेंडर", + "cylinders_per_day": "सिलेंडर/दिन", + "date_and_time": "तिथि और समय", + "date_of_admission": "प्रवेश की तिथि", + "date_of_birth": "जन्म तिथि", + "date_of_positive_covid_19_swab": "कोविड 19 स्वैब पॉजिटिव होने की तिथि", + "date_of_test": "परीक्षण की तिथि", + "days": "दिन", + "delete": "मिटाना", + "delete_facility": "सुविधा हटाएं", + "delete_item": "{{name}}मिटाएँ", + "delete_record": "रिकॉर्ड मिटाएँ", + "deleted_successfully": "{{name}} सफलतापूर्वक हटा दिया गया", + "describe_why_the_asset_is_not_working": "बताएं कि परिसंपत्ति काम क्यों नहीं कर रही है", + "description": "विवरण", + "details_about_the_equipment": "उपकरण के बारे में विवरण", + "details_of_assigned_facility": "निर्दिष्ट सुविधा का विवरण", + "details_of_origin_facility": "मूल सुविधा का विवरण", + "details_of_patient": "मरीज का विवरण", + "details_of_shifting_approving_facility": "स्थानांतरण अनुमोदन सुविधा का विवरण", + "diagnoses": "निदान", + "diagnosis": "निदान", + "diagnosis__confirmed": "की पुष्टि", + "diagnosis__differential": "अंतर", + "diagnosis__principal": "प्रधानाचार्य", + "diagnosis__provisional": "अनंतिम", + "diagnosis__unconfirmed": "अपुष्ट", + "diagnosis_already_added": "यह निदान पहले ही जोड़ दिया गया था", + "diastolic": "डायस्टोलिक", + "differential": "अंतर", + "discard": "खारिज करना", + "discharge": "स्राव होना", + "discharge_from_care": "CARE से छुट्टी", + "discharge_prescription": "डिस्चार्ज प्रिस्क्रिप्शन", + "discharge_summary": "डिस्चार्ज सारांश", + "discharge_summary_not_ready": "डिस्चार्ज सारांश अभी तैयार नहीं है.", + "discharged": "छुट्टी दे दी गई", + "discharged_patients": "छुट्टी दिए गए मरीज़", + "discharged_patients_empty": "इस सुविधा में कोई भी डिस्चार्ज मरीज़ मौजूद नहीं है", + "disclaimer": "अस्वीकरण", + "discontinue": "बंद", + "discontinue_caution_note": "क्या आप वाकई इस नुस्खे को बंद करना चाहते हैं?", + "discontinued": "बंद", + "disease_status": "रोग की स्थिति", + "district": "ज़िला", + "district_program_management_supporting_unit": "जिला कार्यक्रम प्रबंधन सहायक इकाई", + "done": "हो गया", + "dosage": "मात्रा बनाने की विधि", + "down": "नीचे", + "download": "डाउनलोड करना", + "download_discharge_summary": "डिस्चार्ज सारांश डाउनलोड करें", + "download_type": "डाउनलोड प्रकार", + "downloading": "डाउनलोड", + "downloads": "डाउनलोड", + "drag_drop_image_to_upload": "अपलोड करने के लिए छवि को खींचें और छोड़ें", + "duplicate_patient_record_birth_unknown": "यदि आप रोगी के जन्म वर्ष के बारे में निश्चित नहीं हैं तो कृपया अपने जिला देखभाल समन्वयक, स्थानांतरण सुविधा या रोगी से संपर्क करें।", + "duplicate_patient_record_confirmation": "जन्म का वर्ष जोड़कर मरीज का रिकॉर्ड अपने अस्पताल में भर्ती करें", + "duplicate_patient_record_rejection": "मैं पुष्टि करता हूं कि जिस संदिग्ध/रोगी की सूची मैं बनाना चाहता हूं वह सूची में नहीं है।", + "edit": "संपादन करना", + "edit_caution_note": "परामर्श में संपादित विवरण के साथ एक नया नुस्खा जोड़ा जाएगा तथा वर्तमान नुस्खा बंद कर दिया जाएगा।", + "edit_cover_photo": "कवर फ़ोटो संपादित करें", + "edit_history": "इतिहास संपादित करें", + "edit_prescriptions": "नुस्खे संपादित करें", + "edited_by": "द्वारा संपादित", + "edited_on": "संपादित किया गया", + "eg_abc": "उदाहरण: एबीसी", + "eg_details_on_functionality_service_etc": "उदाहरणार्थ, कार्यक्षमता, सेवा आदि का विवरण।", + "eg_mail_example_com": "उदाहरण: mail@example.com", + "eg_xyz": "उदाहरण: XYZ", + "email": "मेल पता", + "email_address": "मेल पता", + "email_discharge_summary_description": "डिस्चार्ज सारांश प्राप्त करने के लिए अपना वैध ईमेल पता दर्ज करें", + "email_success": "हम जल्द ही आपको ईमेल भेजेंगे। कृपया अपना इनबॉक्स देखें।", + "emergency": "आपातकाल", + "emergency_contact_number": "आपातकालीन संपर्क नंबर", + "empty_date_time": "--:-- --; --/--/----", + "encounter_date_field_label__A": "सुविधा में प्रवेश की तिथि और समय", + "encounter_date_field_label__DC": "घरेलू देखभाल प्रारंभ की तिथि और समय", + "encounter_date_field_label__DD": "परामर्श की तिथि एवं समय", + "encounter_date_field_label__HI": "परामर्श की तिथि एवं समय", + "encounter_date_field_label__OP": "बाह्य-रोगी दौरे की तिथि और समय", + "encounter_date_field_label__R": "परामर्श की तिथि एवं समय", + "encounter_duration_confirmation": "इस मुठभेड़ की अवधि होगी", + "encounter_suggestion__A": "प्रवेश", + "encounter_suggestion__DC": "घरेलू देखभाल", + "encounter_suggestion__DD": "परामर्श", + "encounter_suggestion__HI": "परामर्श", + "encounter_suggestion__OP": "बाह्य-रोगी दौरा", + "encounter_suggestion__R": "परामर्श", + "encounter_suggestion_edit_disallowed": "संपादन परामर्श में इस विकल्प पर स्विच करने की अनुमति नहीं है", + "enter_file_name": "फ़ाइल का नाम दर्ज करें", + "enter_valid_age": "कृपया वैध आयु दर्ज करें", + "entered-in-error": "त्रुटिवश प्रविष्ट हुआ", + "error_404": "त्रुटि 404", + "error_deleting_shifting": "शिफ्टिंग रिकॉर्ड हटाते समय त्रुटि", + "error_while_deleting_record": "रिकॉर्ड हटाते समय त्रुटि हुई", + "escape": "पलायन", + "estimated_contact_date": "अनुमानित संपर्क तिथि", + "expected_burn_rate": "अपेक्षित बर्न दर", + "facilities": "सुविधाएँ", + "facility": "सुविधा", + "facility_name": "सुविधा का नाम", + "facility_preference": "सुविधा वरीयता", + "facility_search_placeholder": "सुविधा / जिला नाम से खोजें", + "facility_type": "सुविधा का प्रकार", + "features": "विशेषताएँ", + "feed_is_currently_not_live": "फ़ीड वर्तमान में लाइव नहीं है", + "feed_optimal_experience_for_apple_phones": "बेहतरीन दृश्य अनुभव के लिए, अपने डिवाइस को घुमाने पर विचार करें। सुनिश्चित करें कि आपके डिवाइस की सेटिंग में ऑटो-रोटेट सक्षम है।", + "feed_optimal_experience_for_phones": "सर्वोत्तम दृश्य अनुभव के लिए, अपने डिवाइस को घुमाने पर विचार करें।", + "field_required": "यह फ़ील्ड आवश्यक है", + "file_error__choose_file": "कृपया अपलोड करने के लिए कोई फ़ाइल चुनें", + "file_error__dynamic": "फ़ाइल अपलोड करते समय त्रुटि: {{statusText}}", + "file_error__file_name": "कृपया फ़ाइल का नाम दर्ज करें", + "file_error__file_size": "फ़ाइलों का अधिकतम आकार 100 एमबी है", + "file_error__file_type": "अमान्य फ़ाइल प्रकार \".{{extension}}\" स्वीकृत प्रकार: {{allowedExtensions}}", + "file_error__network": "फ़ाइल अपलोड करते समय त्रुटि: नेटवर्क त्रुटि", + "file_list_headings__consultation": "परामर्श फ़ाइलें", + "file_list_headings__patient": "रोगी फ़ाइलें", + "file_list_headings__sample_report": "नमूना रिपोर्ट", + "file_list_headings__supporting_info": "सहायक जानकारी", + "file_preview": "फ़ाइल पूर्वावलोकन", + "file_preview_not_supported": "इस फ़ाइल का पूर्वावलोकन नहीं किया जा सकता। इसे डाउनलोड करने का प्रयास करें।", + "file_uploaded": "फ़ाइल सफलतापूर्वक अपलोड की गई", + "filter": "फ़िल्टर", + "filter_by": "फिल्टर के द्वारा", + "filter_by_category": "श्रेणी के अनुसार फ़िल्टर करें", + "filters": "फिल्टर", + "first_name": "पहला नाम", + "footer_body": "ओपन हेल्थकेयर नेटवर्क एक ओपन-सोर्स पब्लिक यूटिलिटी है जिसे इनोवेटर्स और स्वयंसेवकों की एक बहु-विषयक टीम द्वारा डिज़ाइन किया गया है। ओपन हेल्थकेयर नेटवर्क केयर एक डिजिटल पब्लिक गुड है जिसे संयुक्त राष्ट्र द्वारा मान्यता प्राप्त है।", + "forget_password": "पासवर्ड भूल गए?", + "forget_password_instruction": "अपना उपयोगकर्ता नाम दर्ज करें, और यदि यह मौजूद है, तो हम आपको अपना पासवर्ड रीसेट करने के लिए एक लिंक भेजेंगे।", + "frequency": "आवृत्ति", + "full_screen": "पूर्ण स्क्रीन", + "gender": "लिंग", + "generate_report": "रिपोर्ट तैयार करें", + "generated_summary_caution": "यह CARE प्रणाली में प्राप्त जानकारी का उपयोग करके कंप्यूटर द्वारा तैयार किया गया सारांश है।", + "generating": "उत्पादक", + "generating_discharge_summary": "डिस्चार्ज सारांश तैयार करना", + "get_tests": "टेस्ट प्राप्त करें", + "goal": "हमारा लक्ष्य डिजिटल उपकरणों का उपयोग करके सार्वजनिक स्वास्थ्य सेवाओं की गुणवत्ता और पहुंच में निरंतर सुधार करना है।", + "help_confirmed": "इस स्थिति को पुष्ट मानने के लिए पर्याप्त नैदानिक और/या नैदानिक साक्ष्य मौजूद हैं।", + "help_differential": "संभावित (और आमतौर पर परस्पर अनन्य) निदानों के एक समूह में से एक, जो निदान प्रक्रिया और प्रारंभिक उपचार को आगे बढ़ाने के लिए निर्देशित किया जाता है।", + "help_entered-in-error": "यह कथन गलती से दर्ज किया गया है और मान्य नहीं है।", + "help_provisional": "यह एक अस्थायी निदान है - अभी भी इस पर विचार किया जा रहा है।", + "help_refuted": "बाद के निदानात्मक और नैदानिक साक्ष्यों से इस स्थिति को खारिज कर दिया गया है।", + "help_unconfirmed": "इसे एक पुष्ट स्थिति मानने के लिए पर्याप्त नैदानिक और/या नैदानिक साक्ष्य उपलब्ध नहीं हैं।", + "hide": "छिपाना", + "home_facility": "घर की सुविधा", + "icd11_as_recommended": "विश्व स्वास्थ्य संगठन द्वारा अनुशंसित ICD-11 के अनुसार", + "inconsistent_dosage_units_error": "खुराक इकाइयाँ समान होनी चाहिए", + "india_1": "भारत", + "indian_mobile": "भारतीय मोबाइल", + "indicator": "सूचक", + "inidcator_event": "संकेतक घटना", + "instruction_on_titration": "अनुमापन पर निर्देश", + "international_mobile": "अंतर्राष्ट्रीय मोबाइल", + "invalid_asset_id_msg": "ओह! आपके द्वारा दर्ज की गई संपत्ति आईडी वैध नहीं लगती।", + "invalid_email": "कृपया एक मान्य ईमेल पता प्रविष्ट करें", + "invalid_link_msg": "ऐसा प्रतीत होता है कि आपने जो पासवर्ड रीसेट लिंक इस्तेमाल किया है वह या तो अमान्य है या उसकी समय-सीमा समाप्त हो चुकी है। कृपया नया पासवर्ड रीसेट लिंक अनुरोध करें।", + "invalid_password": "पासवर्ड आवश्यकताओं को पूरा नहीं करता है", + "invalid_password_reset_link": "अमान्य पासवर्ड रीसेट लिंक", + "invalid_phone": "कृपया एक वैध नंबर डालें", + "invalid_phone_number": "अमान्य फ़ोन नंबर", + "invalid_pincode": "अमान्य पिनकोड", + "invalid_reset": "अमान्य रीसेट", + "invalid_username": "आवश्यक। 150 अक्षर या उससे कम। केवल अक्षर, अंक और @/./+/-/_।", + "inventory_management": "सूची प्रबंधन", + "investigation_reports": "जांच रिपोर्ट", + "investigations": "जांच", + "investigations__date": "तारीख", + "investigations__ideal_value": "आदर्श मूल्य", + "investigations__name": "नाम", + "investigations__range": "मूल्य पहुंच", + "investigations__result": "परिणाम", + "investigations__unit": "इकाई", + "investigations_suggested": "सुझाए गए जांच", + "is": "है", + "is_antenatal": "क्या यह प्रसवपूर्व है?", + "is_emergency": "क्या आपातकाल है?", + "is_emergency_case": "क्या यह आपातकालीन मामला है?", + "is_it_upshift": "क्या यह अपशिफ्ट है", + "is_this_an_emergency": "क्या यह आपातकाल है?", + "is_this_an_upshift": "क्या यह एक उन्नति है?", + "is_up_shift": "क्या शिफ्ट चालू है", + "is_upshift_case": "क्या अपशिफ्ट मामला है?", + "landline": "भारतीय लैंडलाइन", + "last_administered": "अंतिम प्रशासित", + "last_edited": "अंतिम बार संपादित", + "last_modified": "अंतिम संशोधित", + "last_name": "उपनाम", + "last_online": "अंतिम ऑनलाइन", + "last_serviced_on": "अंतिम सेवा कब दी गई", + "latitude_invalid": "अक्षांश -90 और 90 के बीच होना चाहिए", + "left": "बाएं", + "linked_facilities": "लिंक्ड सुविधाएं", + "liquid_oxygen_capacity": "द्रव ऑक्सीजन क्षमता", + "list_view": "लिस्ट व्यू", + "litres": "लीटर", + "litres_per_day": "लीटर/दिन", + "live": "रहना", + "live_monitoring": "लाइव मॉनिटरिंग", + "load_more": "और लोड करें", + "loading": "लोड हो रहा है...", + "local_body": "स्थानीय निकाय", + "local_ipaddress": "स्थानीय आईपी पता", + "location": "जगह", + "location_management": "स्थान प्रबंधन", + "log_lab_results": "लॉग लैब परिणाम", + "log_report": "लॉग रिपोर्ट", + "login": "लॉग इन करें", + "longitude_invalid": "देशांतर -180 और 180 के बीच होना चाहिए", + "lsg": "एलएसजी", + "make_multiple_beds_label": "क्या आप कई बिस्तर बनाना चाहते हैं?", + "manage_prescriptions": "नुस्खे प्रबंधित करें", + "manufacturer": "उत्पादक", + "map_acronym": "मानचित्र", + "mark_all_as_read": "सभी को पढ़ा हुआ मार्क करें", + "mark_as_read": "पढ़े हुए का चिह्न", + "mark_as_unread": "अपठित के रूप में चिह्नित करें", + "mark_this_transfer_as_complete_question": "क्या आप वाकई इस स्थानांतरण को पूर्ण के रूप में चिह्नित करना चाहते हैं? ओरिजिन सुविधा अब इस रोगी तक पहुँच नहीं पाएगी", + "mark_transfer_complete_confirmation": "क्या आप वाकई इस स्थानांतरण को पूर्ण के रूप में चिह्नित करना चाहते हैं? ओरिजिन सुविधा अब इस रोगी तक पहुँच नहीं पाएगी", + "max_dosage_24_hrs": "अधिकतम खुराक 24 घंटे में.", + "max_dosage_in_24hrs_gte_base_dosage_error": "24 घंटे में अधिकतम खुराक आधार खुराक से अधिक या उसके बराबर होनी चाहिए", + "max_size_for_image_uploaded_should_be": "अपलोड की गई छवि का अधिकतम आकार होना चाहिए", + "medical_worker": "चिकित्साकर्मी", + "medicine": "दवा", + "medicine_administration_history": "औषधि प्रशासन इतिहास", + "medicines_administered": "दी जाने वाली दवा(एँ)", + "medicines_administered_error": "दवा(एँ) देने में त्रुटि", + "middleware_hostname": "मिडलवेयर होस्टनाम", + "min_password_len_8": "न्यूनतम पासवर्ड लंबाई 8", + "min_time_bw_doses": "खुराकों के बीच न्यूनतम समय", + "mobile": "गतिमान", + "mobile_number": "मोबाइल नंबर", + "modification_caution_note": "एक बार जोड़ देने के बाद कोई संशोधन संभव नहीं", + "modified": "संशोधित", + "modified_date": "संशोधित तिथि", + "monitor": "निगरानी करना", + "more_info": "और जानकारी", + "moving_camera": "चलता कैमरा", + "name": "नाम", + "name_of_hospital": "अस्पताल का नाम", + "name_of_shifting_approving_facility": "स्थानांतरण अनुमोदन सुविधा का नाम", + "nationality": "राष्ट्रीयता", + "never": "कभी नहीं", + "new_password": "नया पासवर्ड", + "next_sessions": "अगले सत्र", + "no": "नहीं", + "no_bed_types_found": "कोई बिस्तर प्रकार नहीं मिला", + "no_changes": "कोई परिवर्तन नहीं", + "no_changes_made": "कोई परिवर्तन नहीं किया गया", + "no_consultation_updates": "कोई परामर्श अपडेट नहीं", + "no_cover_photo_uploaded_for_this_facility": "इस सुविधा के लिए कोई कवर फ़ोटो अपलोड नहीं किया गया", + "no_data_found": "डाटा प्राप्त नहीं हुआ", + "no_duplicate_facility": "आपको डुप्लिकेट सुविधाएं नहीं बनानी चाहिए", + "no_facilities": "कोई सुविधा नहीं मिली", + "no_files_found": "कोई {{type}} फ़ाइल नहीं मिली", + "no_home_facility": "कोई गृह सुविधा निर्दिष्ट नहीं की गई", + "no_investigation": "कोई जांच रिपोर्ट नहीं मिली", + "no_investigation_suggestions": "कोई जांच सुझाव नहीं", + "no_linked_facilities": "कोई लिंक्ड सुविधा नहीं", + "no_log_update_delta": "पिछले लॉग अद्यतन के बाद से कोई परिवर्तन नहीं", + "no_notices_for_you": "आपके लिए कोई नोटिस नहीं.", + "no_patients_to_show": "दिखाने के लिए कोई मरीज़ नहीं.", + "no_results_found": "कोई परिणाम नहीं मिला", + "no_staff": "कोई कर्मचारी नहीं मिला", + "no_treating_physicians_available": "इस सुविधा में कोई होम फैसिलिटी डॉक्टर नहीं है। कृपया अपने एडमिन से संपर्क करें।", + "no_users_found": "कोई उपयोगकर्ता नहीं मिला", + "none": "कोई नहीं", + "normal": "सामान्य", + "not_specified": "निर्दिष्ट नहीं है", + "notes": "नोट्स", + "notes_placeholder": "अपने नोट्स लिखें", + "notification_permission_denied": "सूचना अनुमति नामंजूर", + "notification_permission_granted": "सूचना अनुमति प्रदान की गई", + "number_of_aged_dependents_above_60": "वृद्ध आश्रितों की संख्या (60 से अधिक)", + "number_of_beds": "बिस्तरों की संख्या", + "number_of_beds_out_of_range_error": "बिस्तरों की संख्या 100 से अधिक नहीं हो सकती", + "number_of_chronic_diseased_dependents": "दीर्घकालिक रोग से पीड़ित आश्रितों की संख्या", + "on": "पर", + "ongoing_medications": "चल रही दवाएँ", + "open": "खुला", + "open_camera": "कैमरा खोलें", + "open_live_monitoring": "लाइव मॉनिटरिंग खोलें", + "optional": "वैकल्पिक", + "ordering": "आदेश", + "origin_facility": "वर्तमान सुविधा", + "oxygen_information": "ऑक्सीजन की जानकारी", + "page_not_found": "पृष्ठ नहीं मिला", + "pain": "दर्द", + "pain_chart_description": "दर्द का क्षेत्र और तीव्रता चिह्नित करें", + "passport_number": "पासपोर्ट नंबर", + "password": "पासवर्ड", + "password_mismatch": "पासवर्ड और पुष्टि पासवर्ड एक ही होना चाहिए.", + "password_reset_failure": "पासवर्ड रीसेट विफल", + "password_reset_success": "पासवर्ड सफलतापूर्वक रीसेट हो गया", + "password_sent": "पासवर्ड रीसेट ईमेल भेजा गया", + "patient_address": "मरीज का पता", + "patient_category": "रोगी श्रेणी", + "patient_consultation__admission": "प्रवेश की तिथि", + "patient_consultation__consultation_notes": "सामान्य निर्देश", + "patient_consultation__dc_admission": "घरेलू देखभाल शुरू होने की तिथि", + "patient_consultation__ip": "आई पी", + "patient_consultation__op": "सेशन", + "patient_consultation__special_instruction": "विशेष निर्देश", + "patient_consultation__treatment__plan": "योजना", + "patient_consultation__treatment__summary": "सारांश", + "patient_consultation__treatment__summary__date": "तारीख", + "patient_consultation__treatment__summary__spo2": "एसपीओ2", + "patient_consultation__treatment__summary__temperature": "तापमान", + "patient_created": "रोगी बनाया गया", + "patient_name": "मरीज का नाम", + "patient_no": "ओपी/आईपी संख्या", + "patient_phone_number": "मरीज़ का फ़ोन नंबर", + "patient_registration__address": "पता", + "patient_registration__age": "आयु", + "patient_registration__comorbidities": "comorbidities", + "patient_registration__comorbidities__details": "विवरण", + "patient_registration__comorbidities__disease": "बीमारी", + "patient_registration__contact": "आपातकालीन संपर्क", + "patient_registration__gender": "लिंग", + "patient_registration__name": "नाम", + "patient_state": "मरीज की स्थिति", + "patient_status": "रोगी की स्थिति", + "patient_transfer_birth_match_note": "ध्यान दें: स्थानांतरण अनुरोध पर कार्रवाई करने के लिए जन्म का वर्ष मरीज से मेल खाना चाहिए।", + "phone": "फ़ोन", + "phone_no": "फोन नंबर।", + "phone_number": "फ़ोन नंबर", + "phone_number_at_current_facility": "वर्तमान सुविधा पर संपर्क व्यक्ति का फ़ोन नंबर", + "pincode": "पिनकोड", + "please_enter_a_reason_for_the_shift": "कृपया बदलाव का कारण बताएं.", + "please_select_a_facility": "कृपया एक सुविधा चुनें", + "please_select_breathlessness_level": "कृपया सांस फूलने का स्तर चुनें", + "please_select_facility_type": "कृपया सुविधा प्रकार चुनें", + "please_select_patient_category": "कृपया रोगी श्रेणी का चयन करें", + "please_select_preferred_vehicle_type": "कृपया पसंदीदा वाहन प्रकार चुनें", + "please_select_status": "कृपया स्थिति चुनें", + "please_upload_a_csv_file": "कृपया एक CSV फ़ाइल अपलोड करें", + "post_your_comment": "अपनी टिप्पणी पोस्ट करें", + "powered_by": "द्वारा संचालित", + "preferred_facility_type": "पसंदीदा सुविधा प्रकार", + "preferred_vehicle": "पसंदीदा वाहन", + "prescription": "नुस्खा", + "prescription_details": "प्रिस्क्रिप्शन विवरण", + "prescription_discontinued": "प्रिस्क्रिप्शन बंद कर दिया गया", + "prescription_logs": "प्रिस्क्रिप्शन लॉग", + "prescription_medication": "दवा का पर्चा", + "prescription_medications": "प्रिस्क्रिप्शन दवाएं", + "prescriptions__dosage_frequency": "खुराक और आवृत्ति", + "prescriptions__medicine": "दवा", + "prescriptions__route": "मार्ग", + "prescriptions__start_date": "निर्धारित", + "prev_sessions": "पिछले सत्र", + "principal": "प्रधानाचार्य", + "principal_diagnosis": "मुख्य निदान", + "print": "छाप", + "print_referral_letter": "रेफरल पत्र प्रिंट करें", + "prn_prescription": "पीआरएन प्रिस्क्रिप्शन", + "prn_prescriptions": "पीआरएन प्रिस्क्रिप्शन", + "procedure_suggestions": "प्रक्रिया सुझाव", + "provisional": "अनंतिम", + "ration_card__APL": "एपीएल", + "ration_card__BPL": "गरीबी रेखा से नीचे", + "ration_card__NO_CARD": "गैर-कार्ड धारक", + "reason": "कारण", + "reason_for_discontinuation": "बंद करने का कारण", + "reason_for_edit": "संपादन का कारण", + "reason_for_referral": "निर्दिष्ट करने की वजह", + "reason_for_shift": "बदलाव का कारण", + "recommended_aspect_ratio_for": "इसके लिए अनुशंसित पहलू अनुपात", + "record": "ऑडियो रिकॉर्ड करें", + "record_delete_confirm": "क्या आप वाकई इस रिकॉर्ड को हटाना चाहते हैं?", + "record_has_been_deleted_successfully": "रिकार्ड सफलतापूर्वक हटा दिया गया है.", + "record_updates": "रिकॉर्ड अपडेट", + "recording": "रिकॉर्डिंग", + "redirected_to_create_consultation": "नोट: आपको परामर्श फ़ॉर्म बनाने के लिए पुनः निर्देशित किया जाएगा। कृपया स्थानांतरण प्रक्रिया समाप्त करने के लिए फ़ॉर्म पूरा करें", + "referral_letter": "रेफरल पत्र", + "referred_to": "करने के लिए भेजा", + "refresh_list": "सूची रीफ़्रेश करें", + "refuted": "का खंडन किया", + "register_hospital": "अस्पताल रजिस्टर करें", + "register_page_title": "अस्पताल प्रशासक के रूप में पंजीकरण करें", + "reload": "पुनः लोड करें", + "remove": "निकालना", + "rename": "नाम बदलें", + "report": "प्रतिवेदन", + "req_atleast_one_digit": "कम से कम एक अंक की आवश्यकता है", + "req_atleast_one_lowercase": "कम से कम एक लोअर केस अक्षर की आवश्यकता है", + "req_atleast_one_symbol": "कम से कम एक प्रतीक की आवश्यकता है", + "req_atleast_one_uppercase": "कम से कम एक अपर केस की आवश्यकता है", + "request_description": "अनुरोध का विवरण", + "request_description_placeholder": "अपना विवरण यहाँ लिखें", + "request_title": "शीर्षक का अनुरोध करें", + "request_title_placeholder": "अपना शीर्षक यहाँ लिखें", + "required": "आवश्यक", + "required_quantity": "आवश्यक मात्रा", + "reset": "रीसेट करें", + "reset_password": "पासवर्ड रीसेट", + "resource_request": "संसाधन अनुरोध", + "result": "परिणाम", + "result_date": "परिणाम दिनांक", + "result_details": "परिणाम विवरण", + "resume": "फिर शुरू करना", + "retake": "फिर से लेना", + "return_to_care": "CARE पर वापस लौटें", + "return_to_login": "लॉगिन पर वापस लौटें", + "return_to_password_reset": "पासवर्ड रीसेट पर वापस लौटें", + "return_to_patient_dashboard": "मरीज़ डैशबोर्ड पर वापस जाएँ", + "right": "सही", + "route": "मार्ग", + "sample_collection_date": "नमूना संग्रहण तिथि", + "sample_format": "नमूना प्रारूप", + "sample_type": "नमूना प्रकार", + "save": "बचाना", + "save_and_continue": "सहेजें और जारी रखें", + "save_investigation": "जांच सहेजें", + "scan_asset_qr": "एसेट क्यूआर स्कैन करें!", + "search_by_username": "उपयोगकर्ता नाम से खोजें", + "search_for_facility": "सुविधा खोजें", + "search_icd11_placeholder": "ICD-11 निदान खोजें", + "search_investigation_placeholder": "खोज जांच और समूह", + "search_patient": "मरीज खोजें", + "search_resource": "संसाधन खोजें", + "select": "चुनना", + "select_date": "तारीख़ चुनें", + "select_facility_for_discharged_patients_warning": "छुट्टी दिए गए मरीजों को देखने के लिए सुविधा का चयन किया जाना आवश्यक है।", + "select_for_administration": "प्रशासन के लिए चयन करें", + "select_groups": "समूह चुनें", + "select_investigation": "जांच का चयन करें (सभी जांच डिफ़ॉल्ट रूप से चयनित होंगी)", + "select_investigation_groups": "जांच समूह चुनें", + "select_investigations": "जांच का चयन करें", + "select_local_body": "स्थानीय निकाय का चयन करें", + "select_skills": "कुछ कौशल चुनें और जोड़ें", + "select_wards": "वार्ड चुनें", + "send_email": "ईमेल भेजें", + "send_reset_link": "रीसेट लिंक भेजें", + "serial_number": "क्रम संख्या", + "serviced_on": "सेवा पर", + "session_expired": "सत्र समाप्त हुआ", + "session_expired_msg": "ऐसा लगता है कि आपका सत्र समाप्त हो गया है। यह निष्क्रियता के कारण हो सकता है। कृपया जारी रखने के लिए फिर से लॉगिन करें।", + "set_average_weekly_working_hours_for": "औसत साप्ताहिक कार्य घंटे निर्धारित करें", + "settings_and_filters": "सेटिंग्स और फ़िल्टर", + "severity_of_breathlessness": "सांस फूलने की गंभीरता", + "shift_request_updated_successfully": "शिफ़्ट अनुरोध सफलतापूर्वक अपडेट किया गया", + "shifting": "स्थानांतरण", + "shifting_approval_facility": "स्थानांतरण अनुमोदन सुविधा", + "shifting_approving_facility": "स्थानांतरण अनुमोदन सुविधा", + "shifting_approving_facility_can_not_be_empty": "स्थानांतरण अनुमोदन सुविधा खाली नहीं हो सकती।", + "shifting_deleted": "स्थानांतरण रिकॉर्ड सफलतापूर्वक हटा दिया गया है.", + "shifting_details": "स्थानांतरण विवरण", + "shifting_status": "बदलती स्थिति", + "show_all": "सब दिखाएं", + "show_all_notifications": "सब दिखाएं", + "show_default_presets": "डिफ़ॉल्ट प्रीसेट दिखाएं", + "show_patient_presets": "मरीज़ प्रीसेट दिखाएँ", + "show_unread_notifications": "अपठित दिखाएँ", + "sign_out": "साइन आउट", + "something_went_wrong": "कुछ गलत हो गया..!", + "something_wrong": "कुछ ग़लत हुआ! बाद में पुनः प्रयास करें!", + "sort_by": "इसके अनुसार क्रमबद्ध करें", + "source": "स्रोत", + "srf_id": "एसआरएफ आईडी", + "staff_list": "स्टाफ सूची", + "start_dosage": "प्रारंभिक खुराक", + "state": "राज्य", + "status": "स्थिति", + "stop": "रुकना", + "stream_stop_due_to_inativity": "निष्क्रियता के कारण लाइव फ़ीड स्ट्रीमिंग बंद हो जाएगी", + "stream_stopped_due_to_inativity": "निष्क्रियता के कारण लाइव फ़ीड की स्ट्रीमिंग बंद हो गई है", + "sub_category": "उप श्रेणी", + "submit": "जमा करना", + "submitting": "भेजने से", + "subscribe": "सदस्यता लें", + "subscribe_on_this_device": "इस डिवाइस पर सदस्यता लें", + "subscription_error": "सदस्यता त्रुटि", + "suggested_investigations": "सुझाए गए जांच", + "summary": "सारांश", + "support": "सहायता", + "switch": "बदलना", + "systolic": "सिस्टोलिक", + "tachycardia": "tachycardia", + "target_dosage": "लक्ष्य खुराक", + "test_type": "परीक्षण प्रकार", + "titrate_dosage": "टाइट्रेट खुराक", + "to_be_conducted": "संचालित किया जाना है", + "total_beds": "कुल बिस्तर", + "total_users": "कुल उपयोगकर्ता", + "transfer_in_progress": "स्थानांतरण प्रगति पर है", + "transfer_to_receiving_facility": "प्राप्ति सुविधा में स्थानांतरण", + "travel_within_last_28_days": "घरेलू/अंतर्राष्ट्रीय यात्रा (पिछले 28 दिनों के भीतर)", + "treating_doctor": "इलाज करने वाला डॉक्टर", + "treatment_summary": "उपचार सारांश", + "treatment_summary__head_title": "उपचार सारांश", + "treatment_summary__heading": "अंतरिम उपचार सारांश", + "treatment_summary__print": "प्रिंट उपचार सारांश", + "try_again_later": "बाद में पुन: प्रयास!", + "type_any_extra_comments_here": "कोई भी अतिरिक्त टिप्पणी यहाँ लिखें", + "type_b_cylinders": "बी प्रकार सिलेंडर", + "type_c_cylinders": "सी प्रकार सिलेंडर", + "type_d_cylinders": "डी प्रकार सिलेंडर", + "type_to_search": "खोजने के लिए टाइप करें", + "type_your_comment": "अपनी टिप्पणी लिखें", + "type_your_reason_here": "अपना कारण यहाँ लिखें", + "unconfirmed": "अपुष्ट", + "unique_id": "अनोखा ID", + "unknown": "अज्ञात", + "unsubscribe": "सदस्यता रद्द", + "unsubscribe_failed": "सदस्यता रद्द करना विफल हुआ.", + "unsupported_browser": "असमर्थित ब्राउज़र", + "unsupported_browser_description": "आपका ब्राउज़र ({{name}} संस्करण {{version}}) समर्थित नहीं है। कृपया अपने ब्राउज़र को नवीनतम संस्करण में अपडेट करें या सर्वोत्तम अनुभव के लिए समर्थित ब्राउज़र पर स्विच करें।", + "up": "ऊपर", + "up_shift": "अप शिफ्ट", + "update": "अद्यतन", + "update_asset": "संपत्ति अपडेट करें", + "update_asset_service_record": "एसेट सेवा रिकॉर्ड अपडेट करें", + "update_bed": "बिस्तर अपडेट करें", + "update_facility": "अद्यतन सुविधा", + "update_facility_middleware_success": "सुविधा मिडलवेयर सफलतापूर्वक अपडेट किया गया", + "update_log": "लॉग अपडेट करें", + "update_record": "रिकॉर्ड अपडेट करें", + "update_record_for_asset": "संपत्ति के लिए रिकॉर्ड अपडेट करें", + "update_shift_request": "शिफ्ट अनुरोध अपडेट करें", + "update_status_details": "स्थिति/विवरण अपडेट करें", + "updated": "अद्यतन", + "updating": "अद्यतन करने", + "upload": "अपलोड करें", + "upload_an_image": "एक छवि अपलोड करें", + "upload_headings__consultation": "नई परामर्श फ़ाइल अपलोड करें", + "upload_headings__patient": "नई रोगी फ़ाइल अपलोड करें", + "upload_headings__sample_report": "नमूना रिपोर्ट अपलोड करें", + "upload_headings__supporting_info": "सहायक जानकारी अपलोड करें", + "uploading": "अपलोड हो रहा है", + "user_deleted_successfuly": "उपयोगकर्ता सफलतापूर्वक हटा दिया गया", + "user_management": "प्रयोक्ता प्रबंधन", + "username": "उपयोगकर्ता नाम", + "users": "उपयोगकर्ताओं", + "vehicle_preference": "वाहन वरीयता", + "vendor_name": "विक्रेता का नाम", + "view": "देखना", + "view_abdm_records": "ABDM रिकॉर्ड देखें", + "view_asset": "संपत्तियां देखें", + "view_details": "विवरण देखें", + "view_faciliy": "सुविधा देखें", + "view_patients": "मरीज़ देखें", + "view_users": "उपयोगकर्ता देखें", + "virtual_nursing_assistant": "वर्चुअल नर्सिंग सहायक", + "ward": "वार्ड", + "warranty_amc_expiry": "वारंटी / एएमसी समाप्ति", + "what_facility_assign_the_patient_to": "आप मरीज़ को कौन सी सुविधा देना चाहेंगे?", + "why_the_asset_is_not_working": "परिसंपत्ति काम क्यों नहीं कर रही है?", + "working_status": "कामकाजी स्थिति", + "yes": "हाँ", + "yet_to_be_decided": "अभी निर्णय होना बाकी", + "you_need_at_least_a_location_to_create_an_assest": "संपत्ति बनाने के लिए आपको कम से कम एक स्थान की आवश्यकता होगी।", + "zoom_in": "ज़ूम इन", + "zoom_out": "ज़ूम आउट" +} diff --git a/src/Locale/hi/Asset.json b/src/Locale/hi/Asset.json deleted file mode 100644 index 7900876aa05..00000000000 --- a/src/Locale/hi/Asset.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "create_asset": "संपत्ति बनाएं", - "edit_history": "इतिहास संपादित करें", - "update_record_for_asset": "संपत्ति के लिए रिकॉर्ड अपडेट करें", - "edited_on": "संपादित किया गया", - "edited_by": "द्वारा संपादित", - "serviced_on": "सेवा पर", - "notes": "नोट्स", - "back": "पीछे", - "close": "बंद करना", - "update_asset_service_record": "एसेट सेवा रिकॉर्ड अपडेट करें", - "eg_details_on_functionality_service_etc": "उदाहरणार्थ, कार्यक्षमता, सेवा आदि का विवरण।", - "updating": "अद्यतन करने", - "update": "अद्यतन", - "are_you_still_watching": "क्या आप अभी भी देख रहे हैं?", - "stream_stop_due_to_inativity": "निष्क्रियता के कारण लाइव फ़ीड स्ट्रीमिंग बंद हो जाएगी", - "stream_stopped_due_to_inativity": "निष्क्रियता के कारण लाइव फ़ीड की स्ट्रीमिंग बंद हो गई है", - "continue_watching": "देखना जारी रखें", - "resume": "फिर शुरू करना" -} \ No newline at end of file diff --git a/src/Locale/hi/Auth.json b/src/Locale/hi/Auth.json deleted file mode 100644 index eddc7e56015..00000000000 --- a/src/Locale/hi/Auth.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "username": "उपयोगकर्ता नाम", - "password": "पासवर्ड", - "new_password": "नया पासवर्ड", - "confirm_password": "पासवर्ड की पुष्टि कीजिये", - "first_name": "पहला नाम", - "last_name": "उपनाम", - "email": "मेल पता", - "phone_number": "फ़ोन नंबर", - "district": "ज़िला", - "gender": "लिंग", - "age": "आयु", - "login": "लॉग इन करें", - "password_mismatch": "पासवर्ड और पुष्टि पासवर्ड एक ही होना चाहिए.", - "enter_valid_age": "कृपया वैध आयु दर्ज करें", - "invalid_username": "आवश्यक। 150 अक्षर या उससे कम। केवल अक्षर, अंक और @/./+/-/_।", - "invalid_password": "पासवर्ड आवश्यकताओं को पूरा नहीं करता है", - "invalid_email": "कृपया एक मान्य ईमेल पता प्रविष्ट करें", - "invalid_phone": "कृपया एक वैध नंबर डालें", - "register_hospital": "अस्पताल रजिस्टर करें", - "register_page_title": "अस्पताल प्रशासक के रूप में पंजीकरण करें", - "auth_login_title": "अधिकृत लॉगिन", - "forget_password": "पासवर्ड भूल गए?", - "forget_password_instruction": "अपना उपयोगकर्ता नाम दर्ज करें, और यदि यह मौजूद है, तो हम आपको अपना पासवर्ड रीसेट करने के लिए एक लिंक भेजेंगे।", - "send_reset_link": "रीसेट लिंक भेजें", - "already_a_member": "क्या पहले से ही सदस्य हैं?", - "password_sent": "पासवर्ड रीसेट ईमेल भेजा गया", - "password_reset_success": "पासवर्ड सफलतापूर्वक रीसेट हो गया", - "password_reset_failure": "पासवर्ड रीसेट विफल", - "reset_password": "पासवर्ड रीसेट", - "available_in": "में उपलब्ध", - "sign_out": "साइन आउट", - "back_to_login": "लॉगिन पर वापस जाएं", - "min_password_len_8": "न्यूनतम पासवर्ड लंबाई 8", - "req_atleast_one_digit": "कम से कम एक अंक की आवश्यकता है", - "req_atleast_one_uppercase": "कम से कम एक अपर केस की आवश्यकता है", - "req_atleast_one_lowercase": "कम से कम एक लोअर केस अक्षर की आवश्यकता है", - "req_atleast_one_symbol": "कम से कम एक प्रतीक की आवश्यकता है" -} diff --git a/src/Locale/hi/Bed.json b/src/Locale/hi/Bed.json deleted file mode 100644 index 3580caf94b7..00000000000 --- a/src/Locale/hi/Bed.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "bed_search_placeholder": "बिस्तर के नाम से खोजें", - "BED_WITH_OXYGEN_SUPPORT": "ऑक्सीजन सपोर्ट वाला बिस्तर", - "REGULAR": "नियमित", - "ICU": "आईसीयू", - "ISOLATION": "एकांत", - "add_beds": "बिस्तर(बिस्तर) जोड़ें", - "update_bed": "बिस्तर अपडेट करें", - "bed_type": "बिस्तर का प्रकार", - "make_multiple_beds_label": "क्या आप कई बिस्तर बनाना चाहते हैं?", - "number_of_beds": "बिस्तरों की संख्या", - "number_of_beds_out_of_range_error": "बिस्तरों की संख्या 100 से अधिक नहीं हो सकती" -} diff --git a/src/Locale/hi/Common.json b/src/Locale/hi/Common.json deleted file mode 100644 index 4cd3bbe3e36..00000000000 --- a/src/Locale/hi/Common.json +++ /dev/null @@ -1,223 +0,0 @@ -{ - "goal": "हमारा लक्ष्य डिजिटल उपकरणों का उपयोग करके सार्वजनिक स्वास्थ्य सेवाओं की गुणवत्ता और पहुंच में निरंतर सुधार करना है।", - "something_wrong": "कुछ ग़लत हुआ! बाद में पुनः प्रयास करें!", - "try_again_later": "बाद में पुन: प्रयास!", - "contribute_github": "गिटहब पर योगदान दें", - "footer_body": "ओपन हेल्थकेयर नेटवर्क एक ओपन-सोर्स पब्लिक यूटिलिटी है जिसे इनोवेटर्स और स्वयंसेवकों की एक बहु-विषयक टीम द्वारा डिज़ाइन किया गया है। ओपन हेल्थकेयर नेटवर्क केयर एक डिजिटल पब्लिक गुड है जिसे संयुक्त राष्ट्र द्वारा मान्यता प्राप्त है।", - "reset": "रीसेट करें", - "download": "डाउनलोड करना", - "downloads": "डाउनलोड", - "downloading": "डाउनलोड", - "generating": "उत्पादक", - "send_email": "ईमेल भेजें", - "email_address": "मेल पता", - "email_success": "हम जल्द ही आपको ईमेल भेजेंगे। कृपया अपना इनबॉक्स देखें।", - "disclaimer": "अस्वीकरण", - "category": "वर्ग", - "sub_category": "उप श्रेणी", - "download_type": "डाउनलोड प्रकार", - "state": "राज्य", - "district": "ज़िला", - "location": "जगह", - "ward": "वार्ड", - "Notice Board": "सूचना पट्ट", - "Assets": "संपत्ति", - "Notifications": "सूचनाएं", - "Submit": "जमा करना", - "Cancel": "रद्द करना", - "back": "पीछे", - "powered_by": "द्वारा संचालित", - "care": "देखभाल", - "something_went_wrong": "कुछ गलत हो गया..!", - "stop": "रुकना", - "record": "ऑडियो रिकॉर्ड करें", - "recording": "रिकॉर्डिंग", - "yes": "हाँ", - "no": "नहीं", - "status": "स्थिति", - "created": "बनाया था", - "modified": "संशोधित", - "updated": "अद्यतन", - "update": "अद्यतन", - "configure": "कॉन्फ़िगर", - "assigned_to": "को सौंपना", - "cancel": "रद्द करना", - "clear": "स्पष्ट", - "apply": "आवेदन करना", - "filter_by": "फिल्टर के द्वारा", - "filter": "फ़िल्टर", - "settings_and_filters": "सेटिंग्स और फ़िल्टर", - "ordering": "आदेश", - "phone_number": "फ़ोन नंबर", - "international_mobile": "अंतर्राष्ट्रीय मोबाइल", - "indian_mobile": "भारतीय मोबाइल", - "mobile": "गतिमान", - "landline": "भारतीय लैंडलाइन", - "support": "सहायता", - "emergency_contact_number": "आपातकालीन संपर्क नंबर", - "last_modified": "अंतिम संशोधित", - "patient_address": "मरीज का पता", - "all_details": "सभी विवरण", - "confirm": "पुष्टि करना", - "refresh_list": "सूची रीफ़्रेश करें", - "last_edited": "अंतिम बार संपादित", - "audit_log": "ऑडिट लॉग", - "comments": "टिप्पणियाँ", - "contact_person_number": "संपर्क व्यक्ति संख्या", - "referral_letter": "रेफरल पत्र", - "close": "बंद करना", - "print": "छाप", - "print_referral_letter": "रेफरल पत्र प्रिंट करें", - "date_of_positive_covid_19_swab": "कोविड 19 स्वैब पॉजिटिव होने की तिथि", - "patient_no": "ओपी/आईपी संख्या", - "date_of_admission": "प्रवेश की तिथि", - "india_1": "भारत", - "unique_id": "अनोखा ID", - "date_and_time": "तिथि और समय", - "facility_type": "सुविधा का प्रकार", - "number_of_chronic_diseased_dependents": "दीर्घकालिक रोग से पीड़ित आश्रितों की संख्या", - "number_of_aged_dependents_above_60": "वृद्ध आश्रितों की संख्या (60 से अधिक)", - "ongoing_medications": "चल रही दवाएँ", - "countries_travelled": "यात्रा किये गए देश", - "travel_within_last_28_days": "घरेलू/अंतर्राष्ट्रीय यात्रा (पिछले 28 दिनों के भीतर)", - "estimated_contact_date": "अनुमानित संपर्क तिथि", - "blood_group": "ब्लड ग्रुप", - "date_of_birth": "जन्म तिथि", - "date_of_test": "परीक्षण की तिथि", - "srf_id": "एसआरएफ आईडी", - "contact_number": "संपर्क संख्या", - "diagnosis": "निदान", - "copied_to_clipboard": "क्लिपबोर्ड पर कॉपी किया गया", - "age": "आयु", - "is": "है", - "reason": "कारण", - "description": "विवरण", - "name": "नाम", - "address": "पता", - "phone": "फ़ोन", - "nationality": "राष्ट्रीयता", - "allergies": "एलर्जी", - "type_your_comment": "अपनी टिप्पणी लिखें", - "any_other_comments": "कोई अन्य टिप्पणी", - "loading": "लोड हो रहा है", - "facility": "सुविधा", - "local_body": "स्थानीय निकाय", - "filters": "फिल्टर", - "unknown": "अज्ञात", - "active": "सक्रिय", - "completed": "पुरा होना।", - "on": "पर", - "open": "खुला", - "features": "विशेषताएँ", - "pincode": "पिनकोड", - "required": "आवश्यक", - "field_required": "यह फ़ील्ड आवश्यक है", - "litres": "लीटर", - "litres_per_day": "लीटर/दिन", - "invalid_pincode": "अमान्य पिनकोड", - "invalid_phone_number": "अमान्य फ़ोन नंबर", - "latitude_invalid": "अक्षांश -90 और 90 के बीच होना चाहिए", - "longitude_invalid": "देशांतर -180 और 180 के बीच होना चाहिए", - "save": "बचाना", - "continue": "जारी रखना", - "save_and_continue": "सहेजें और जारी रखें", - "select": "चुनना", - "lsg": "एलएसजी", - "delete": "मिटाना", - "remove": "निकालना", - "max_size_for_image_uploaded_should_be": "अपलोड की गई छवि का अधिकतम आकार होना चाहिए", - "allowed_formats_are": "स्वीकृत प्रारूप हैं", - "recommended_aspect_ratio_for": "इसके लिए अनुशंसित पहलू अनुपात", - "drag_drop_image_to_upload": "अपलोड करने के लिए छवि को खींचें और छोड़ें", - "upload_an_image": "एक छवि अपलोड करें", - "upload": "अपलोड करें", - "uploading": "अपलोड हो रहा है", - "switch": "बदलना", - "capture": "कब्जा", - "retake": "फिर से लेना", - "submit": "जमा करना", - "camera": "कैमरा", - "submitting": "भेजने से", - "view_details": "विवरण देखें", - "type_to_search": "खोजने के लिए टाइप करें", - "show_all": "सब दिखाएं", - "hide": "छिपाना", - "select_skills": "कुछ कौशल चुनें और जोड़ें", - "contact_your_admin_to_add_skills": "कौशल जोड़ने के लिए अपने व्यवस्थापक से संपर्क करें", - "add": "जोड़ना", - "add_as": "के रूप में जोड़ें", - "sort_by": "इसके अनुसार क्रमबद्ध करें", - "none": "कोई नहीं", - "choose_file": "डिवाइस से अपलोड करें", - "open_camera": "कैमरा खोलें", - "file_preview": "फ़ाइल पूर्वावलोकन", - "file_preview_not_supported": "इस फ़ाइल का पूर्वावलोकन नहीं किया जा सकता। इसे डाउनलोड करने का प्रयास करें।", - "view_faciliy": "सुविधा देखें", - "view_patients": "मरीज़ देखें", - "frequency": "आवृत्ति", - "days": "दिन", - "never": "कभी नहीं", - "notes": "नोट्स", - "add_notes": "नोट्स जोड़ें", - "notes_placeholder": "अपने नोट्स लिखें", - "optional": "वैकल्पिक", - "discontinue": "बंद", - "discontinued": "बंद", - "not_specified": "निर्दिष्ट नहीं है", - "all_changes_have_been_saved": "सभी परिवर्तन सहेज लिए गए हैं", - "no_data_found": "डाटा प्राप्त नहीं हुआ", - "edit": "संपादन करना", - "clear_selection": "चयन साफ़ करें", - "select_date": "तारीख़ चुनें", - "DD/MM/YYYY": "दिनांक/माह/वर्ष", - "clear_all_filters": "सभी फ़िल्टर साफ़ करें", - "summary": "सारांश", - "report": "प्रतिवेदन", - "treating_doctor": "इलाज करने वाला डॉक्टर", - "ration_card__NO_CARD": "गैर-कार्ड धारक", - "ration_card__BPL": "गरीबी रेखा से नीचे", - "ration_card__APL": "एपीएल", - "empty_date_time": "--:-- --; --/--/----", - "caution": "सावधानी", - "feed_optimal_experience_for_phones": "सर्वोत्तम दृश्य अनुभव के लिए, अपने डिवाइस को घुमाने पर विचार करें।", - "feed_optimal_experience_for_apple_phones": "बेहतरीन दृश्य अनुभव के लिए, अपने डिवाइस को घुमाने पर विचार करें। सुनिश्चित करें कि आपके डिवाइस की सेटिंग में ऑटो-रोटेट सक्षम है।", - "action_irreversible": "यह क्रिया अपरिवर्तनीय है", - "GENDER__1": "पुरुष", - "GENDER__2": "महिला", - "GENDER__3": "नॉन-बाइनरी", - "normal": "सामान्य", - "done": "हो गया", - "view": "देखना", - "rename": "नाम बदलें", - "more_info": "और जानकारी", - "archive": "पुरालेख", - "discard": "खारिज करना", - "live": "रहना", - "discharged": "छुट्टी दे दी गई", - "archived": "संग्रहीत", - "no_changes_made": "कोई परिवर्तन नहीं किया गया", - "user_deleted_successfuly": "उपयोगकर्ता सफलतापूर्वक हटा दिया गया", - "users": "उपयोगकर्ताओं", - "are_you_sure_want_to_delete": "क्या आप वाकई {{name}}को हटाना चाहते हैं?", - "oxygen_information": "ऑक्सीजन की जानकारी", - "deleted_successfully": "{{name}} सफलतापूर्वक हटा दिया गया", - "delete_item": "{{name}}मिटाएँ", - "unsupported_browser": "असमर्थित ब्राउज़र", - "unsupported_browser_description": "आपका ब्राउज़र ({{name}} संस्करण {{version}}) समर्थित नहीं है। कृपया अपने ब्राउज़र को नवीनतम संस्करण में अपडेट करें या सर्वोत्तम अनुभव के लिए समर्थित ब्राउज़र पर स्विच करें।", - "SORT_OPTIONS__-created_date": "नवीनतम निर्माण तिथि पहले", - "SORT_OPTIONS__created_date": "सबसे पुरानी निर्माण तिथि पहले", - "SORT_OPTIONS__-category_severity": "सर्वोच्च गंभीरता श्रेणी पहले", - "SORT_OPTIONS__category_severity": "सबसे कम गंभीरता वाली श्रेणी पहले", - "SORT_OPTIONS__-modified_date": "नवीनतम अद्यतन तिथि पहले", - "SORT_OPTIONS__modified_date": "सबसे पुरानी अद्यतन तिथि पहले", - "SORT_OPTIONS__facility__name,last_consultation__current_bed__bed__name": "बिस्तर नं. 1-एन", - "SORT_OPTIONS__facility__name,-last_consultation__current_bed__bed__name": "बिस्तर संख्या एन-1", - "SORT_OPTIONS__-review_time": "नवीनतम समीक्षा तिथि पहले", - "SORT_OPTIONS__review_time": "सबसे पुरानी समीक्षा तिथि पहले", - "SORT_OPTIONS__taken_at": "सबसे पुरानी ली गई तारीख पहले", - "SORT_OPTIONS__-taken_at": "नवीनतम ली गई तिथि पहले", - "SORT_OPTIONS__name": "मरीज़ का नाम AZ", - "SORT_OPTIONS__-name": "मरीज का नाम ZA", - "SORT_OPTIONS__bed__name": "बिस्तर नं. 1-एन", - "SORT_OPTIONS__-bed__name": "बिस्तर संख्या एन-1" -} \ No newline at end of file diff --git a/src/Locale/hi/Consultation.json b/src/Locale/hi/Consultation.json deleted file mode 100644 index a7bd1042530..00000000000 --- a/src/Locale/hi/Consultation.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "no_consultation_updates": "कोई परामर्श अपडेट नहीं", - "consultation_updates": "परामर्श अद्यतन", - "update_log": "लॉग अपडेट करें", - "record_updates": "रिकॉर्ड अपडेट", - "log_lab_results": "लॉग लैब परिणाम", - "no_log_update_delta": "पिछले लॉग अद्यतन के बाद से कोई परिवर्तन नहीं", - "virtual_nursing_assistant": "वर्चुअल नर्सिंग सहायक", - "discharge": "स्राव होना", - "discharge_summary": "डिस्चार्ज सारांश", - "discharge_from_care": "CARE से छुट्टी", - "generating_discharge_summary": "डिस्चार्ज सारांश तैयार करना", - "discharge_summary_not_ready": "डिस्चार्ज सारांश अभी तैयार नहीं है.", - "download_discharge_summary": "डिस्चार्ज सारांश डाउनलोड करें", - "email_discharge_summary_description": "डिस्चार्ज सारांश प्राप्त करने के लिए अपना वैध ईमेल पता दर्ज करें", - "generated_summary_caution": "यह CARE प्रणाली में प्राप्त जानकारी का उपयोग करके कंप्यूटर द्वारा तैयार किया गया सारांश है।", - "NORMAL": "संक्षिप्त अद्यतन", - "VENTILATOR": "विस्तृत अद्यतन", - "DOCTORS_LOG": "प्रगति नोट", - "AUTOMATED": "स्वचालित", - "TELEMEDICINE": "सुदूर", - "investigations": "जांच", - "search_investigation_placeholder": "खोज जांच और समूह", - "save_investigation": "जांच सहेजें", - "investigation_reports": "जांच रिपोर्ट", - "no_investigation": "कोई जांच रिपोर्ट नहीं मिली", - "investigations_suggested": "सुझाए गए जांच", - "to_be_conducted": "संचालित किया जाना है", - "log_report": "लॉग रिपोर्ट", - "no_investigation_suggestions": "कोई जांच सुझाव नहीं", - "select_investigation": "जांच का चयन करें (सभी जांच डिफ़ॉल्ट रूप से चयनित होंगी)", - "select_investigations": "जांच का चयन करें", - "get_tests": "टेस्ट प्राप्त करें", - "select_investigation_groups": "जांच समूह चुनें", - "select_groups": "समूह चुनें", - "generate_report": "रिपोर्ट तैयार करें", - "prev_sessions": "पिछले सत्र", - "next_sessions": "अगले सत्र", - "no_changes": "कोई परिवर्तन नहीं", - "back_to_consultation": "परामर्श पर वापस जाएँ", - "no_treating_physicians_available": "इस सुविधा में कोई होम फैसिलिटी डॉक्टर नहीं है। कृपया अपने एडमिन से संपर्क करें।", - "encounter_suggestion_edit_disallowed": "संपादन परामर्श में इस विकल्प पर स्विच करने की अनुमति नहीं है", - "encounter_suggestion__A": "प्रवेश", - "encounter_suggestion__DC": "घरेलू देखभाल", - "encounter_suggestion__OP": "बाह्य-रोगी दौरा", - "encounter_suggestion__DD": "परामर्श", - "encounter_suggestion__HI": "परामर्श", - "encounter_suggestion__R": "परामर्श", - "encounter_date_field_label__A": "सुविधा में प्रवेश की तिथि और समय", - "encounter_date_field_label__DC": "घरेलू देखभाल प्रारंभ की तिथि और समय", - "encounter_date_field_label__OP": "बाह्य-रोगी दौरे की तिथि और समय", - "encounter_date_field_label__DD": "परामर्श की तिथि एवं समय", - "encounter_date_field_label__HI": "परामर्श की तिथि एवं समय", - "encounter_date_field_label__R": "परामर्श की तिथि एवं समय", - "back_dated_encounter_date_caution": "आप एक मुठभेड़ बना रहे हैं", - "encounter_duration_confirmation": "इस मुठभेड़ की अवधि होगी", - "consultation_notes": "सामान्य निर्देश (सलाह)", - "procedure_suggestions": "प्रक्रिया सुझाव" -} diff --git a/src/Locale/hi/CoverImageEdit.json b/src/Locale/hi/CoverImageEdit.json deleted file mode 100644 index 901a7a28e2d..00000000000 --- a/src/Locale/hi/CoverImageEdit.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "edit_cover_photo": "कवर फ़ोटो संपादित करें", - "no_cover_photo_uploaded_for_this_facility": "इस सुविधा के लिए कोई कवर फ़ोटो अपलोड नहीं किया गया", - "capture_cover_photo": "कवर फ़ोटो कैप्चर करें" -} diff --git a/src/Locale/hi/Diagnosis.json b/src/Locale/hi/Diagnosis.json deleted file mode 100644 index edde96df72f..00000000000 --- a/src/Locale/hi/Diagnosis.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "diagnosis": "निदान", - "diagnoses": "निदान", - "diagnosis_already_added": "यह निदान पहले ही जोड़ दिया गया था", - "principal": "प्रधानाचार्य", - "principal_diagnosis": "मुख्य निदान", - "unconfirmed": "अपुष्ट", - "provisional": "अनंतिम", - "differential": "अंतर", - "confirmed": "की पुष्टि", - "refuted": "का खंडन किया", - "entered-in-error": "त्रुटिवश प्रविष्ट हुआ", - "help_unconfirmed": "इसे एक पुष्ट स्थिति मानने के लिए पर्याप्त नैदानिक और/या नैदानिक साक्ष्य उपलब्ध नहीं हैं।", - "help_provisional": "यह एक अस्थायी निदान है - अभी भी इस पर विचार किया जा रहा है।", - "help_differential": "संभावित (और आमतौर पर परस्पर अनन्य) निदानों के एक समूह में से एक, जो निदान प्रक्रिया और प्रारंभिक उपचार को आगे बढ़ाने के लिए निर्देशित किया जाता है।", - "help_confirmed": "इस स्थिति को पुष्ट मानने के लिए पर्याप्त नैदानिक और/या नैदानिक साक्ष्य मौजूद हैं।", - "help_refuted": "बाद के निदानात्मक और नैदानिक साक्ष्यों से इस स्थिति को खारिज कर दिया गया है।", - "help_entered-in-error": "यह कथन गलती से दर्ज किया गया है और मान्य नहीं है।", - "search_icd11_placeholder": "ICD-11 निदान खोजें", - "icd11_as_recommended": "विश्व स्वास्थ्य संगठन द्वारा अनुशंसित ICD-11 के अनुसार" -} diff --git a/src/Locale/hi/Entities.json b/src/Locale/hi/Entities.json deleted file mode 100644 index edfbf313685..00000000000 --- a/src/Locale/hi/Entities.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "Facilities": "सुविधाएँ", - "Patients": "मरीजों", - "Sample Test": "नमूना परीक्षण", - "Shifting": "स्थानांतरण", - "Resource": "संसाधन", - "External Results": "बाह्य परिणाम", - "Users": "उपयोगकर्ताओं", - "Profile": "प्रोफ़ाइल", - "Dashboard": "डैशबोर्ड" -} diff --git a/src/Locale/hi/ErrorPages.json b/src/Locale/hi/ErrorPages.json deleted file mode 100644 index c03a5f8545f..00000000000 --- a/src/Locale/hi/ErrorPages.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "return_to_care": "CARE पर वापस लौटें", - "404_message": "ऐसा लगता है कि आप किसी ऐसे पेज पर आ गए हैं जो या तो मौजूद नहीं है या उसे किसी दूसरे URL पर ले जाया गया है। सुनिश्चित करें कि आपने सही लिंक डाला है!", - "error_404": "त्रुटि 404", - "page_not_found": "पृष्ठ नहीं मिला", - "session_expired": "सत्र समाप्त हुआ", - "invalid_password_reset_link": "अमान्य पासवर्ड रीसेट लिंक", - "invalid_link_msg": "ऐसा प्रतीत होता है कि आपने जो पासवर्ड रीसेट लिंक इस्तेमाल किया है वह या तो अमान्य है या उसकी समय-सीमा समाप्त हो चुकी है। कृपया नया पासवर्ड रीसेट लिंक अनुरोध करें।", - "return_to_password_reset": "पासवर्ड रीसेट पर वापस लौटें", - "return_to_login": "लॉगिन पर वापस लौटें", - "session_expired_msg": "ऐसा लगता है कि आपका सत्र समाप्त हो गया है। यह निष्क्रियता के कारण हो सकता है। कृपया जारी रखने के लिए फिर से लॉगिन करें।", - "invalid_reset": "अमान्य रीसेट" -} diff --git a/src/Locale/hi/ExternalResult.json b/src/Locale/hi/ExternalResult.json deleted file mode 100644 index 07b5c91547a..00000000000 --- a/src/Locale/hi/ExternalResult.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "please_upload_a_csv_file": "कृपया एक CSV फ़ाइल अपलोड करें", - "upload_external_results": "बाहरी परिणाम अपलोड करें", - "csv_file_in_the_specified_format": "निर्दिष्ट प्रारूप में CSV फ़ाइल चुनें", - "sample_format": "नमूना प्रारूप", - "search_for_facility": "सुविधा खोजें", - "select_local_body": "स्थानीय निकाय का चयन करें", - "select_wards": "वार्ड चुनें", - "result_date": "परिणाम दिनांक", - "sample_collection_date": "नमूना संग्रहण तिथि", - "record_has_been_deleted_successfully": "रिकार्ड सफलतापूर्वक हटा दिया गया है.", - "error_while_deleting_record": "रिकॉर्ड हटाते समय त्रुटि हुई", - "result_details": "परिणाम विवरण", - "confirm_delete": "मिटाने की पुष्टि करें", - "are_you_sure_want_to_delete_this_record": "क्या आप वाकई इस रिकॉर्ड को हटाना चाहते हैं?", - "patient_category": "रोगी श्रेणी", - "source": "स्रोत", - "result": "परिणाम", - "sample_type": "नमूना प्रकार", - "patient_status": "रोगी की स्थिति", - "mobile_number": "मोबाइल नंबर", - "patient_created": "रोगी बनाया गया", - "care_external_results_id": "देखभाल बाह्य परिणाम आईडी", - "update_record": "रिकॉर्ड अपडेट करें" -} diff --git a/src/Locale/hi/Facility.json b/src/Locale/hi/Facility.json deleted file mode 100644 index 67032df0cb9..00000000000 --- a/src/Locale/hi/Facility.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "facility_search_placeholder": "सुविधा / जिला नाम से खोजें", - "advanced_filters": "उन्नत फ़िल्टर", - "facility_type": "सुविधा का प्रकार", - "facility_name": "सुविधा का नाम", - "KASP Empanelled": "KASP पैनलबद्ध", - "View Facility": "सुविधा देखें", - "no_duplicate_facility": "आपको डुप्लिकेट सुविधाएं नहीं बनानी चाहिए", - "no_facilities": "कोई सुविधा नहीं मिली", - "no_staff": "कोई कर्मचारी नहीं मिला", - "no_bed_types_found": "कोई बिस्तर प्रकार नहीं मिला", - "total_beds": "कुल बिस्तर", - "create_facility": "एक नई सुविधा बनाएं", - "staff_list": "स्टाफ सूची", - "bed_capacity": "बिस्तर क्षमता", - "cylinders": "सिलेंडर", - "cylinders_per_day": "सिलेंडर/दिन", - "liquid_oxygen_capacity": "द्रव ऑक्सीजन क्षमता", - "expected_burn_rate": "अपेक्षित बर्न दर", - "type_b_cylinders": "बी प्रकार सिलेंडर", - "type_c_cylinders": "सी प्रकार सिलेंडर", - "type_d_cylinders": "डी प्रकार सिलेंडर", - "select_local_body": "स्थानीय निकाय का चयन करें", - "update_asset": "संपत्ति अपडेट करें", - "create_new_asset": "नई संपत्ति बनाएं", - "you_need_at_least_a_location_to_create_an_assest": "संपत्ति बनाने के लिए आपको कम से कम एक स्थान की आवश्यकता होगी।", - "add_location": "स्थान जोड़ना", - "close_scanner": "स्कैनर बंद करें", - "scan_asset_qr": "एसेट क्यूआर स्कैन करें!", - "update": "अद्यतन", - "create": "बनाएं", - "asset_name": "संपत्ति का नाम", - "asset_location": "परिसंपत्ति स्थान", - "asset_type": "संपदा प्रकार", - "asset_class": "परिसंपत्ति वर्ग", - "details_about_the_equipment": "उपकरण के बारे में विवरण", - "working_status": "कामकाजी स्थिति", - "why_the_asset_is_not_working": "परिसंपत्ति काम क्यों नहीं कर रही है?", - "describe_why_the_asset_is_not_working": "बताएं कि परिसंपत्ति काम क्यों नहीं कर रही है", - "asset_qr_id": "एसेट क्यूआर आईडी", - "manufacturer": "उत्पादक", - "eg_xyz": "उदाहरण: XYZ", - "eg_abc": "उदाहरण: एबीसी", - "warranty_amc_expiry": "वारंटी / एएमसी समाप्ति", - "customer_support_name": "ग्राहक सहायता नाम", - "customer_support_number": "ग्राहक सहायता नंबर", - "customer_support_email": "ग्राहक सहायता ईमेल", - "eg_mail_example_com": "उदाहरण: mail@example.com", - "vendor_name": "विक्रेता का नाम", - "serial_number": "क्रम संख्या", - "last_serviced_on": "अंतिम सेवा कब दी गई", - "notes": "नोट्स", - "create_asset": "संपत्ति बनाएं", - "create_add_more": "और अधिक बनाएं और जोड़ें", - "discharged_patients": "छुट्टी दिए गए मरीज़", - "discharged_patients_empty": "इस सुविधा में कोई भी डिस्चार्ज मरीज़ मौजूद नहीं है", - "update_facility_middleware_success": "सुविधा मिडलवेयर सफलतापूर्वक अपडेट किया गया", - "treatment_summary__head_title": "उपचार सारांश", - "treatment_summary__print": "प्रिंट उपचार सारांश", - "treatment_summary__heading": "अंतरिम उपचार सारांश", - "patient_registration__name": "नाम", - "patient_registration__address": "पता", - "patient_registration__age": "आयु", - "patient_consultation__op": "सेशन", - "patient_consultation__ip": "आई पी", - "patient_consultation__dc_admission": "घरेलू देखभाल शुरू होने की तिथि", - "patient_consultation__admission": "प्रवेश की तिथि", - "patient_registration__gender": "लिंग", - "patient_registration__contact": "आपातकालीन संपर्क", - "patient_registration__comorbidities": "comorbidities", - "patient_registration__comorbidities__disease": "बीमारी", - "patient_registration__comorbidities__details": "विवरण", - "patient_consultation__consultation_notes": "सामान्य निर्देश", - "patient_consultation__special_instruction": "विशेष निर्देश", - "suggested_investigations": "सुझाए गए जांच", - "investigations__date": "तारीख", - "investigations__name": "नाम", - "investigations__result": "परिणाम", - "investigations__ideal_value": "आदर्श मूल्य", - "investigations__range": "मूल्य पहुंच", - "investigations__unit": "इकाई", - "patient_consultation__treatment__plan": "योजना", - "patient_consultation__treatment__summary": "सारांश", - "patient_consultation__treatment__summary__date": "तारीख", - "patient_consultation__treatment__summary__spo2": "एसपीओ2", - "patient_consultation__treatment__summary__temperature": "तापमान", - "diagnosis": "निदान", - "diagnosis__principal": "प्रधानाचार्य", - "diagnosis__confirmed": "की पुष्टि", - "diagnosis__provisional": "अनंतिम", - "diagnosis__unconfirmed": "अपुष्ट", - "diagnosis__differential": "अंतर", - "active_prescriptions": "सक्रिय नुस्खे", - "prescriptions__medicine": "दवा", - "prescriptions__route": "मार्ग", - "prescriptions__dosage_frequency": "खुराक और आवृत्ति", - "prescriptions__start_date": "निर्धारित", - "select_facility_for_discharged_patients_warning": "छुट्टी दिए गए मरीजों को देखने के लिए सुविधा का चयन किया जाना आवश्यक है।", - "duplicate_patient_record_confirmation": "जन्म का वर्ष जोड़कर मरीज का रिकॉर्ड अपने अस्पताल में भर्ती करें", - "duplicate_patient_record_rejection": "मैं पुष्टि करता हूं कि जिस संदिग्ध/रोगी की सूची मैं बनाना चाहता हूं वह सूची में नहीं है।", - "duplicate_patient_record_birth_unknown": "यदि आप रोगी के जन्म वर्ष के बारे में निश्चित नहीं हैं तो कृपया अपने जिला देखभाल समन्वयक, स्थानांतरण सुविधा या रोगी से संपर्क करें।", - "patient_transfer_birth_match_note": "ध्यान दें: स्थानांतरण अनुरोध पर कार्रवाई करने के लिए जन्म का वर्ष मरीज से मेल खाना चाहिए।", - "cover_image_updated_note": "अपडेट की गई कवर छवि देखने में कुछ समय लग सकता है", - "available_features": "उपलब्ध सुविधाएँ", - "update_facility": "अद्यतन सुविधा", - "configure_facility": "सुविधा कॉन्फ़िगर करें", - "inventory_management": "सूची प्रबंधन", - "location_management": "स्थान प्रबंधन", - "resource_request": "संसाधन अनुरोध", - "view_asset": "संपत्तियां देखें", - "view_users": "उपयोगकर्ता देखें", - "view_abdm_records": "ABDM रिकॉर्ड देखें", - "delete_facility": "सुविधा हटाएं", - "central_nursing_station": "सेंट्रल नर्सिंग स्टेशन", - "add_details_of_patient": "मरीज़ का विवरण जोड़ें", - "choose_location": "स्थान का चयन", - "live_monitoring": "लाइव मॉनिटरिंग", - "open_live_monitoring": "लाइव मॉनिटरिंग खोलें" -} diff --git a/src/Locale/hi/FileUpload.json b/src/Locale/hi/FileUpload.json deleted file mode 100644 index b2e7e5fa966..00000000000 --- a/src/Locale/hi/FileUpload.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "audio__allow_permission": "कृपया साइट सेटिंग में माइक्रोफ़ोन की अनुमति दें", - "audio__allow_permission_helper": "हो सकता है कि आपने पहले भी माइक्रोफ़ोन तक पहुंच से इनकार किया हो.", - "audio__allow_permission_button": "अनुमति देने का तरीका जानने के लिए यहां क्लिक करें", - "audio__record": "ऑडियो रिकॉर्ड करें", - "audio__record_helper": "रिकॉर्डिंग शुरू करने के लिए बटन पर क्लिक करें", - "audio__recording": "रिकॉर्डिंग", - "audio__recording_helper": "कृपया अपने माइक्रोफ़ोन में बोलें.", - "audio__recording_helper_2": "रिकॉर्डिंग रोकने के लिए बटन पर क्लिक करें।", - "audio__recorded": "ऑडियो रिकॉर्ड किया गया", - "audio__start_again": "फिर से शुरू करें", - "enter_file_name": "फ़ाइल का नाम दर्ज करें", - "no_files_found": "कोई {{type}} फ़ाइल नहीं मिली", - "upload_headings__patient": "नई रोगी फ़ाइल अपलोड करें", - "upload_headings__consultation": "नई परामर्श फ़ाइल अपलोड करें", - "upload_headings__sample_report": "नमूना रिपोर्ट अपलोड करें", - "upload_headings__supporting_info": "सहायक जानकारी अपलोड करें", - "file_list_headings__patient": "रोगी फ़ाइलें", - "file_list_headings__consultation": "परामर्श फ़ाइलें", - "file_list_headings__sample_report": "नमूना रिपोर्ट", - "file_list_headings__supporting_info": "सहायक जानकारी", - "file_error__choose_file": "कृपया अपलोड करने के लिए कोई फ़ाइल चुनें", - "file_error__file_name": "कृपया फ़ाइल का नाम दर्ज करें", - "file_error__file_size": "फ़ाइलों का अधिकतम आकार 100 एमबी है", - "file_error__file_type": "अमान्य फ़ाइल प्रकार \".{{extension}}\" स्वीकृत प्रकार: {{allowedExtensions}}", - "file_uploaded": "फ़ाइल सफलतापूर्वक अपलोड की गई", - "file_error__dynamic": "फ़ाइल अपलोड करते समय त्रुटि: {{statusText}}", - "file_error__network": "फ़ाइल अपलोड करते समय त्रुटि: नेटवर्क त्रुटि" -} diff --git a/src/Locale/hi/Hub.json b/src/Locale/hi/Hub.json deleted file mode 100644 index 54a2ecc49f9..00000000000 --- a/src/Locale/hi/Hub.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "monitor": "निगरानी करना", - "show_default_presets": "डिफ़ॉल्ट प्रीसेट दिखाएं", - "show_patient_presets": "मरीज़ प्रीसेट दिखाएँ", - "moving_camera": "चलता कैमरा", - "full_screen": "पूर्ण स्क्रीन", - "feed_is_currently_not_live": "फ़ीड वर्तमान में लाइव नहीं है", - "zoom_out": "ज़ूम आउट", - "zoom_in": "ज़ूम इन", - "right": "सही", - "left": "बाएं", - "down": "नीचे", - "up": "ऊपर" -} diff --git a/src/Locale/hi/LogUpdate.json b/src/Locale/hi/LogUpdate.json deleted file mode 100644 index 9adc6a1e093..00000000000 --- a/src/Locale/hi/LogUpdate.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "RESPIRATORY_SUPPORT_SHORT__UNKNOWN": "कोई नहीं", - "RESPIRATORY_SUPPORT_SHORT__OXYGEN_SUPPORT": "O2 समर्थन", - "RESPIRATORY_SUPPORT_SHORT__NON_INVASIVE": "एनआईवी", - "RESPIRATORY_SUPPORT_SHORT__INVASIVE": "चतुर्थ", - "RESPIRATORY_SUPPORT__UNKNOWN": "कोई नहीं", - "RESPIRATORY_SUPPORT__OXYGEN_SUPPORT": "ऑक्सीजन सहायता", - "RESPIRATORY_SUPPORT__NON_INVASIVE": "नॉन-इनवेसिव वेंटिलेटर (एनआईवी)", - "RESPIRATORY_SUPPORT__INVASIVE": "इनवेसिव वेंटिलेटर (IV)", - "VENTILATOR_MODE__CMV": "मैकेनिकल वेंटिलेशन (CMV) को नियंत्रित करें", - "VENTILATOR_MODE__VCV": "वॉल्यूम नियंत्रण वेंटिलेशन (VCV)", - "VENTILATOR_MODE__PCV": "दबाव नियंत्रण वेंटिलेशन (पीसीवी)", - "VENTILATOR_MODE__SIMV": "समकालिक आंतरायिक अनिवार्य वेंटिलेशन (एसआईएमवी)", - "VENTILATOR_MODE__VC_SIMV": "वॉल्यूम नियंत्रित SIMV (VC-SIMV)", - "VENTILATOR_MODE__PC_SIMV": "दबाव नियंत्रित SIMV (PC-SIMV)", - "VENTILATOR_MODE__PSV": "सी-पीएपी / प्रेशर सपोर्ट वेंटिलेशन (पीएसवी)", - "CONSCIOUSNESS_LEVEL__UNRESPONSIVE": "अनुत्तरदायी", - "CONSCIOUSNESS_LEVEL__RESPONDS_TO_PAIN": "दर्द का जवाब देता है", - "CONSCIOUSNESS_LEVEL__RESPONDS_TO_VOICE": "आवाज़ का जवाब देता है", - "CONSCIOUSNESS_LEVEL__ALERT": "चेतावनी", - "CONSCIOUSNESS_LEVEL__AGITATED_OR_CONFUSED": "उत्तेजित या भ्रमित", - "CONSCIOUSNESS_LEVEL__ONSET_OF_AGITATION_AND_CONFUSION": "उत्तेजना और भ्रम की शुरुआत", - "PUPIL_REACTION__UNKNOWN": "अज्ञात", - "PUPIL_REACTION__BRISK": "तेज", - "PUPIL_REACTION__SLUGGISH": "सुस्त", - "PUPIL_REACTION__FIXED": "तय", - "PUPIL_REACTION__CANNOT_BE_ASSESSED": "मूल्यांकन नहीं किया जा सकता", - "LIMB_RESPONSE__UNKNOWN": "अज्ञात", - "LIMB_RESPONSE__STRONG": "मज़बूत", - "LIMB_RESPONSE__MODERATE": "मध्यम", - "LIMB_RESPONSE__WEAK": "कमज़ोर", - "LIMB_RESPONSE__FLEXION": "मोड़", - "LIMB_RESPONSE__EXTENSION": "विस्तार", - "LIMB_RESPONSE__NONE": "कोई नहीं", - "OXYGEN_MODALITY__NASAL_PRONGS": "नाक के कांटे", - "OXYGEN_MODALITY__SIMPLE_FACE_MASK": "सरल फेस मास्क", - "OXYGEN_MODALITY__NON_REBREATHING_MASK": "नॉन रीब्रीदिंग मास्क", - "OXYGEN_MODALITY__HIGH_FLOW_NASAL_CANNULA": "उच्च प्रवाह नाक प्रवेशनी", - "INSULIN_INTAKE_FREQUENCY__UNKNOWN": "अज्ञात", - "INSULIN_INTAKE_FREQUENCY__OD": "दिन में एक बार (OD)", - "INSULIN_INTAKE_FREQUENCY__BD": "दिन में दो बार (बीडी)", - "INSULIN_INTAKE_FREQUENCY__TD": "दिन में तीन बार (टीडी)", - "NURSING_CARE_PROCEDURE__personal_hygiene": "व्यक्तिगत स्वच्छता", - "NURSING_CARE_PROCEDURE__positioning": "पोजिशनिंग", - "NURSING_CARE_PROCEDURE__suctioning": "सक्शनिंग", - "NURSING_CARE_PROCEDURE__ryles_tube_care": "राइल्स ट्यूब केयर", - "NURSING_CARE_PROCEDURE__iv_sitecare": "IV साइट देखभाल", - "NURSING_CARE_PROCEDURE__nubulisation": "नूबुलाइज़ेशन", - "NURSING_CARE_PROCEDURE__dressing": "ड्रेसिंग", - "NURSING_CARE_PROCEDURE__dvt_pump_stocking": "डीवीटी पंप स्टॉकिंग", - "NURSING_CARE_PROCEDURE__restrain": "नियंत्रित करना", - "NURSING_CARE_PROCEDURE__chest_tube_care": "चेस्ट ट्यूब की देखभाल", - "NURSING_CARE_PROCEDURE__tracheostomy_care": "ट्रैकियोस्टोमी देखभाल", - "NURSING_CARE_PROCEDURE__stoma_care": "स्टोमा देखभाल", - "NURSING_CARE_PROCEDURE__catheter_care": "कैथेटर देखभाल", - "HEARTBEAT_RHYTHM__REGULAR": "नियमित", - "HEARTBEAT_RHYTHM__IRREGULAR": "अनियमित", - "HEARTBEAT_RHYTHM__UNKNOWN": "अज्ञात", - "map_acronym": "मानचित्र", - "systolic": "सिस्टोलिक", - "diastolic": "डायस्टोलिक", - "pain": "दर्द", - "pain_chart_description": "दर्द का क्षेत्र और तीव्रता चिह्नित करें", - "bradycardia": "मंदनाड़ी", - "tachycardia": "tachycardia" -} \ No newline at end of file diff --git a/src/Locale/hi/Medicine.json b/src/Locale/hi/Medicine.json deleted file mode 100644 index 746cdb32856..00000000000 --- a/src/Locale/hi/Medicine.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "medicine": "दवा", - "route": "मार्ग", - "dosage": "मात्रा बनाने की विधि", - "base_dosage": "मात्रा बनाने की विधि", - "start_dosage": "प्रारंभिक खुराक", - "target_dosage": "लक्ष्य खुराक", - "instruction_on_titration": "अनुमापन पर निर्देश", - "titrate_dosage": "टाइट्रेट खुराक", - "indicator": "सूचक", - "inidcator_event": "संकेतक घटना", - "max_dosage_24_hrs": "अधिकतम खुराक 24 घंटे में.", - "min_time_bw_doses": "खुराकों के बीच न्यूनतम समय", - "manage_prescriptions": "नुस्खे प्रबंधित करें", - "prescription_details": "प्रिस्क्रिप्शन विवरण", - "prescription_medications": "प्रिस्क्रिप्शन दवाएं", - "prn_prescriptions": "पीआरएन प्रिस्क्रिप्शन", - "prescription": "नुस्खा", - "discharge_prescription": "डिस्चार्ज प्रिस्क्रिप्शन", - "edit_prescriptions": "नुस्खे संपादित करें", - "prescription_medication": "दवा का पर्चा", - "add_prescription_medication": "प्रिस्क्रिप्शन दवा जोड़ें", - "prn_prescription": "पीआरएन प्रिस्क्रिप्शन", - "add_prn_prescription": "PRN प्रिस्क्रिप्शन जोड़ें", - "add_prescription_to_consultation_note": "इस परामर्श में एक नया नुस्खा जोड़ें।", - "medicine_administration_history": "औषधि प्रशासन इतिहास", - "return_to_patient_dashboard": "मरीज़ डैशबोर्ड पर वापस जाएँ", - "administered_on": "प्रशासित", - "administer": "प्रशासन", - "administer_medicine": "दवाई देना", - "administer_medicines": "दवाइयाँ दें", - "administer_selected_medicines": "चयनित दवाएँ दें", - "select_for_administration": "प्रशासन के लिए चयन करें", - "medicines_administered": "दी जाने वाली दवा(एँ)", - "medicines_administered_error": "दवा(एँ) देने में त्रुटि", - "prescription_discontinued": "प्रिस्क्रिप्शन बंद कर दिया गया", - "administration_notes": "प्रशासन नोट्स", - "last_administered": "अंतिम प्रशासित", - "prescription_logs": "प्रिस्क्रिप्शन लॉग", - "modification_caution_note": "एक बार जोड़ देने के बाद कोई संशोधन संभव नहीं", - "discontinue_caution_note": "क्या आप वाकई इस नुस्खे को बंद करना चाहते हैं?", - "confirm_discontinue": "बंद करने की पुष्टि करें", - "edit_caution_note": "परामर्श में संपादित विवरण के साथ एक नया नुस्खा जोड़ा जाएगा तथा वर्तमान नुस्खा बंद कर दिया जाएगा।", - "reason_for_discontinuation": "बंद करने का कारण", - "reason_for_edit": "संपादन का कारण", - "PRESCRIPTION_ROUTE_ORAL": "मौखिक", - "PRESCRIPTION_ROUTE_IV": "चतुर्थ", - "PRESCRIPTION_ROUTE_IM": "मैं हूँ", - "PRESCRIPTION_ROUTE_SC": "अनुसूचित जाति", - "PRESCRIPTION_ROUTE_INHALATION": "साँस लेना", - "PRESCRIPTION_ROUTE_NASOGASTRIC": "नासोगैस्ट्रिक / गैस्ट्रोस्टोमी ट्यूब", - "PRESCRIPTION_ROUTE_INTRATHECAL": "अंतःकपाल इंजेक्शन", - "PRESCRIPTION_ROUTE_TRANSDERMAL": "ट्रांसडर्मल", - "PRESCRIPTION_ROUTE_RECTAL": "रेक्टल", - "PRESCRIPTION_ROUTE_SUBLINGUAL": "सबलिंगुअल", - "PRESCRIPTION_FREQUENCY_STAT": "तुरन्त", - "PRESCRIPTION_FREQUENCY_OD": "एक बार दैनिक", - "PRESCRIPTION_FREQUENCY_HS": "केवल रात्रि", - "PRESCRIPTION_FREQUENCY_BD": "दो बार दैनिक लें", - "PRESCRIPTION_FREQUENCY_TID": "8वाँ प्रति घंटा", - "PRESCRIPTION_FREQUENCY_QID": "6वाँ प्रति घंटा", - "PRESCRIPTION_FREQUENCY_Q4H": "4 घंटे प्रति घंटा", - "PRESCRIPTION_FREQUENCY_QOD": "वैकल्पिक दिन", - "PRESCRIPTION_FREQUENCY_QWK": "एक सप्ताह में एक बार", - "inconsistent_dosage_units_error": "खुराक इकाइयाँ समान होनी चाहिए", - "max_dosage_in_24hrs_gte_base_dosage_error": "24 घंटे में अधिकतम खुराक आधार खुराक से अधिक या उसके बराबर होनी चाहिए", - "administration_dosage_range_error": "खुराक प्रारंभिक और लक्ष्य खुराक के बीच होनी चाहिए" -} \ No newline at end of file diff --git a/src/Locale/hi/Notifications.json b/src/Locale/hi/Notifications.json deleted file mode 100644 index b6526ad8b11..00000000000 --- a/src/Locale/hi/Notifications.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "no_notices_for_you": "आपके लिए कोई नोटिस नहीं.", - "mark_as_read": "पढ़े हुए का चिह्न", - "mark_as_unread": "अपठित के रूप में चिह्नित करें", - "subscribe": "सदस्यता लें", - "subscribe_on_this_device": "इस डिवाइस पर सदस्यता लें", - "show_unread_notifications": "अपठित दिखाएँ", - "show_all_notifications": "सब दिखाएं", - "filter_by_category": "श्रेणी के अनुसार फ़िल्टर करें", - "mark_all_as_read": "सभी को पढ़ा हुआ मार्क करें", - "reload": "पुनः लोड करें", - "Notifications": "सूचनाएं", - "no_results_found": "कोई परिणाम नहीं मिला", - "load_more": "और लोड करें", - "subscription_error": "सदस्यता त्रुटि", - "unsubscribe_failed": "सदस्यता रद्द करना विफल हुआ.", - "unsubscribe": "सदस्यता रद्द", - "escape": "पलायन", - "loading": "लोड हो रहा है...", - "invalid_asset_id_msg": "ओह! आपके द्वारा दर्ज की गई संपत्ति आईडी वैध नहीं लगती।", - "asset_not_found_msg": "ओह! आप जिस संपत्ति की तलाश कर रहे हैं वह मौजूद नहीं है। कृपया संपत्ति आईडी की जाँच करें।" -} diff --git a/src/Locale/hi/Resource.json b/src/Locale/hi/Resource.json deleted file mode 100644 index ac0695b5ad9..00000000000 --- a/src/Locale/hi/Resource.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "create_resource_request": "संसाधन अनुरोध बनाएँ", - "contact_person": "सुविधा केंद्र पर संपर्क व्यक्ति का नाम", - "approving_facility": "अनुमोदन सुविधा का नाम", - "contact_phone": "संपर्क व्यक्ति संख्या", - "request_title": "शीर्षक का अनुरोध करें", - "request_title_placeholder": "अपना शीर्षक यहाँ लिखें", - "required_quantity": "आवश्यक मात्रा", - "request_description": "अनुरोध का विवरण", - "request_description_placeholder": "अपना विवरण यहाँ लिखें", - "search_resource": "संसाधन खोजें" -} diff --git a/src/Locale/hi/Shifting.json b/src/Locale/hi/Shifting.json deleted file mode 100644 index 652e0839d09..00000000000 --- a/src/Locale/hi/Shifting.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "emergency": "आपातकाल", - "up_shift": "अप शिफ्ट", - "antenatal": "उत्पत्ति के पूर्व का", - "phone_no": "फोन नंबर।", - "patient_name": "मरीज का नाम", - "disease_status": "रोग की स्थिति", - "breathlessness_level": "सांस फूलने का स्तर", - "assigned_facility": "सुविधा सौंपी गई", - "origin_facility": "वर्तमान सुविधा", - "shifting_approval_facility": "स्थानांतरण अनुमोदन सुविधा", - "shifting": "स्थानांतरण", - "search_patient": "मरीज खोजें", - "list_view": "लिस्ट व्यू", - "comment_min_length": "टिप्पणी में कम से कम 1 अक्षर होना चाहिए", - "comment_added_successfully": "टिप्पणी सफलतापूर्वक जोड़ी गई", - "post_your_comment": "अपनी टिप्पणी पोस्ट करें", - "shifting_approving_facility": "स्थानांतरण अनुमोदन सुविधा", - "is_emergency_case": "क्या यह आपातकालीन मामला है?", - "is_upshift_case": "क्या अपशिफ्ट मामला है?", - "is_antenatal": "क्या यह प्रसवपूर्व है?", - "patient_phone_number": "मरीज़ का फ़ोन नंबर", - "created_date": "सृजित दिनांक", - "modified_date": "संशोधित तिथि", - "no_patients_to_show": "दिखाने के लिए कोई मरीज़ नहीं.", - "shifting_status": "बदलती स्थिति", - "transfer_to_receiving_facility": "प्राप्ति सुविधा में स्थानांतरण", - "confirm_transfer_complete": "स्थानांतरण पूर्ण होने की पुष्टि करें!", - "mark_transfer_complete_confirmation": "क्या आप वाकई इस स्थानांतरण को पूर्ण के रूप में चिह्नित करना चाहते हैं? ओरिजिन सुविधा अब इस रोगी तक पहुँच नहीं पाएगी", - "board_view": "बोर्ड दृश्य", - "shifting_deleted": "स्थानांतरण रिकॉर्ड सफलतापूर्वक हटा दिया गया है.", - "details_of_shifting_approving_facility": "स्थानांतरण अनुमोदन सुविधा का विवरण", - "details_of_assigned_facility": "निर्दिष्ट सुविधा का विवरण", - "details_of_origin_facility": "मूल सुविधा का विवरण", - "details_of_patient": "मरीज का विवरण", - "record_delete_confirm": "क्या आप वाकई इस रिकॉर्ड को हटाना चाहते हैं?", - "phone_number_at_current_facility": "वर्तमान सुविधा पर संपर्क व्यक्ति का फ़ोन नंबर", - "authorize_shift_delete": "शिफ़्ट डिलीट को अधिकृत करें", - "delete_record": "रिकॉर्ड मिटाएँ", - "severity_of_breathlessness": "सांस फूलने की गंभीरता", - "facility_preference": "सुविधा वरीयता", - "vehicle_preference": "वाहन वरीयता", - "is_up_shift": "क्या शिफ्ट चालू है", - "patient_category": "रोगी श्रेणी", - "ambulance_driver_name": "एम्बुलेंस चालक का नाम", - "ambulance_phone_number": "एम्बुलेंस का फ़ोन नंबर", - "ambulance_number": "एम्बुलेंस नं.", - "is_emergency": "क्या आपातकाल है?", - "contact_person_at_the_facility": "वर्तमान सुविधा पर संपर्क व्यक्ति", - "update_status_details": "स्थिति/विवरण अपडेट करें", - "shifting_details": "स्थानांतरण विवरण", - "auto_generated_for_care": "देखभाल के लिए स्वचालित रूप से उत्पन्न", - "approved_by_district_covid_control_room": "जिला कोविड नियंत्रण कक्ष द्वारा अनुमोदित", - "treatment_summary": "उपचार सारांश", - "reason_for_referral": "निर्दिष्ट करने की वजह", - "referred_to": "करने के लिए भेजा", - "covid_19_cat_gov": "केरल सरकार के दिशानिर्देश के अनुसार कोविड_19 क्लिनिकल श्रेणी (ए/बी/सी)", - "district_program_management_supporting_unit": "जिला कार्यक्रम प्रबंधन सहायक इकाई", - "name_of_hospital": "अस्पताल का नाम", - "passport_number": "पासपोर्ट नंबर", - "test_type": "परीक्षण प्रकार", - "medical_worker": "चिकित्साकर्मी", - "error_deleting_shifting": "शिफ्टिंग रिकॉर्ड हटाते समय त्रुटि", - "type_any_extra_comments_here": "कोई भी अतिरिक्त टिप्पणी यहाँ लिखें", - "type_your_reason_here": "अपना कारण यहाँ लिखें", - "reason_for_shift": "बदलाव का कारण", - "preferred_facility_type": "पसंदीदा सुविधा प्रकार", - "preferred_vehicle": "पसंदीदा वाहन", - "is_it_upshift": "क्या यह अपशिफ्ट है", - "is_this_an_upshift": "क्या यह एक उन्नति है?", - "is_this_an_emergency": "क्या यह आपातकाल है?", - "what_facility_assign_the_patient_to": "आप मरीज़ को कौन सी सुविधा देना चाहेंगे?", - "name_of_shifting_approving_facility": "स्थानांतरण अनुमोदन सुविधा का नाम", - "update_shift_request": "शिफ्ट अनुरोध अपडेट करें", - "shift_request_updated_successfully": "शिफ़्ट अनुरोध सफलतापूर्वक अपडेट किया गया", - "please_enter_a_reason_for_the_shift": "कृपया बदलाव का कारण बताएं.", - "please_select_preferred_vehicle_type": "कृपया पसंदीदा वाहन प्रकार चुनें", - "please_select_facility_type": "कृपया सुविधा प्रकार चुनें", - "please_select_breathlessness_level": "कृपया सांस फूलने का स्तर चुनें", - "please_select_a_facility": "कृपया एक सुविधा चुनें", - "please_select_status": "कृपया स्थिति चुनें", - "please_select_patient_category": "कृपया रोगी श्रेणी का चयन करें", - "shifting_approving_facility_can_not_be_empty": "स्थानांतरण अनुमोदन सुविधा खाली नहीं हो सकती।", - "redirected_to_create_consultation": "नोट: आपको परामर्श फ़ॉर्म बनाने के लिए पुनः निर्देशित किया जाएगा। कृपया स्थानांतरण प्रक्रिया समाप्त करने के लिए फ़ॉर्म पूरा करें", - "mark_this_transfer_as_complete_question": "क्या आप वाकई इस स्थानांतरण को पूर्ण के रूप में चिह्नित करना चाहते हैं? ओरिजिन सुविधा अब इस रोगी तक पहुँच नहीं पाएगी", - "transfer_in_progress": "स्थानांतरण प्रगति पर है", - "patient_state": "मरीज की स्थिति", - "yet_to_be_decided": "अभी निर्णय होना बाकी", - "awaiting_destination_approval": "गंतव्य अनुमोदन की प्रतीक्षा में" -} diff --git a/src/Locale/hi/Users.json b/src/Locale/hi/Users.json deleted file mode 100644 index 750cac438de..00000000000 --- a/src/Locale/hi/Users.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "user_management": "प्रयोक्ता प्रबंधन", - "facilities": "सुविधाएँ", - "add_new_user": "नई उपयोगकर्ता को जोड़ना", - "no_users_found": "कोई उपयोगकर्ता नहीं मिला", - "home_facility": "घर की सुविधा", - "no_home_facility": "कोई गृह सुविधा निर्दिष्ट नहीं की गई", - "clear_home_facility": "क्लियर होम सुविधा", - "linked_facilities": "लिंक्ड सुविधाएं", - "no_linked_facilities": "कोई लिंक्ड सुविधा नहीं", - "average_weekly_working_hours": "औसत साप्ताहिक कार्य घंटे", - "set_average_weekly_working_hours_for": "औसत साप्ताहिक कार्य घंटे निर्धारित करें", - "search_by_username": "उपयोगकर्ता नाम से खोजें", - "last_online": "अंतिम ऑनलाइन", - "total_users": "कुल उपयोगकर्ता" -} diff --git a/src/Locale/kn.json b/src/Locale/kn.json new file mode 100644 index 00000000000..acaebe8e421 --- /dev/null +++ b/src/Locale/kn.json @@ -0,0 +1,813 @@ +{ + "404_message": "ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದ ಅಥವಾ ಇನ್ನೊಂದು URL ಗೆ ಸರಿಸಿದ ಪುಟದಲ್ಲಿ ನೀವು ಎಡವಿ ಬಿದ್ದಿರುವಂತೆ ತೋರುತ್ತಿದೆ. ನೀವು ಸರಿಯಾದ ಲಿಂಕ್ ಅನ್ನು ನಮೂದಿಸಿದ್ದೀರಿ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ!", + "AUTOMATED": "ಸ್ವಯಂಚಾಲಿತ", + "Assets": "ಸ್ವತ್ತುಗಳು", + "BED_WITH_OXYGEN_SUPPORT": "ಆಮ್ಲಜನಕ ಬೆಂಬಲದೊಂದಿಗೆ ಬೆಡ್", + "CONSCIOUSNESS_LEVEL__AGITATED_OR_CONFUSED": "ಕ್ಷೋಭೆ ಅಥವಾ ಗೊಂದಲ", + "CONSCIOUSNESS_LEVEL__ALERT": "ಎಚ್ಚರಿಕೆ", + "CONSCIOUSNESS_LEVEL__ONSET_OF_AGITATION_AND_CONFUSION": "ಆಂದೋಲನ ಮತ್ತು ಗೊಂದಲದ ಆರಂಭ", + "CONSCIOUSNESS_LEVEL__RESPONDS_TO_PAIN": "ನೋವಿಗೆ ಸ್ಪಂದಿಸುತ್ತದೆ", + "CONSCIOUSNESS_LEVEL__RESPONDS_TO_VOICE": "ಧ್ವನಿಗೆ ಪ್ರತಿಕ್ರಿಯಿಸುತ್ತದೆ", + "CONSCIOUSNESS_LEVEL__UNRESPONSIVE": "ಪ್ರತಿಕ್ರಿಯಿಸದ", + "Cancel": "ರದ್ದುಮಾಡಿ", + "DD/MM/YYYY": "DD/MM/YYYY", + "DOCTORS_LOG": "ಪ್ರಗತಿ ಟಿಪ್ಪಣಿ", + "Dashboard": "ಡ್ಯಾಶ್‌ಬೋರ್ಡ್", + "Facilities": "ಸೌಲಭ್ಯಗಳು", + "GENDER__1": "ಪುರುಷ", + "GENDER__2": "ಹೆಣ್ಣು", + "GENDER__3": "ಬೈನರಿ ಅಲ್ಲದ", + "HEARTBEAT_RHYTHM__IRREGULAR": "ಅನಿಯಮಿತ", + "HEARTBEAT_RHYTHM__REGULAR": "ನಿಯಮಿತ", + "HEARTBEAT_RHYTHM__UNKNOWN": "ಅಜ್ಞಾತ", + "ICU": "ಐಸಿಯು", + "INSULIN_INTAKE_FREQUENCY__BD": "ದಿನಕ್ಕೆ ಎರಡು ಬಾರಿ (BD)", + "INSULIN_INTAKE_FREQUENCY__OD": "ದಿನಕ್ಕೆ ಒಮ್ಮೆ (OD)", + "INSULIN_INTAKE_FREQUENCY__TD": "ದಿನಕ್ಕೆ ಮೂರು ಬಾರಿ (ಟಿಡಿ)", + "INSULIN_INTAKE_FREQUENCY__UNKNOWN": "ಅಜ್ಞಾತ", + "ISOLATION": "ಪ್ರತ್ಯೇಕತೆ", + "KASP Empanelled": "ಕೆಎಎಸ್ಪಿ ಎಂಪನೇಲ್ಡ್", + "LIMB_RESPONSE__EXTENSION": "ವಿಸ್ತರಣೆ", + "LIMB_RESPONSE__FLEXION": "ಬಾಗುವಿಕೆ", + "LIMB_RESPONSE__MODERATE": "ಮಧ್ಯಮ", + "LIMB_RESPONSE__NONE": "ಯಾವುದೂ ಇಲ್ಲ", + "LIMB_RESPONSE__STRONG": "ಬಲಶಾಲಿ", + "LIMB_RESPONSE__UNKNOWN": "ಅಜ್ಞಾತ", + "LIMB_RESPONSE__WEAK": "ದುರ್ಬಲ", + "NORMAL": "ಸಂಕ್ಷಿಪ್ತ ನವೀಕರಣ", + "NURSING_CARE_PROCEDURE__catheter_care": "ಕ್ಯಾತಿಟರ್ ಕೇರ್", + "NURSING_CARE_PROCEDURE__chest_tube_care": "ಚೆಸ್ಟ್ ಟ್ಯೂಬ್ ಕೇರ್", + "NURSING_CARE_PROCEDURE__dressing": "ಡ್ರೆಸ್ಸಿಂಗ್", + "NURSING_CARE_PROCEDURE__dvt_pump_stocking": "DVT ಪಂಪ್ ಸ್ಟಾಕಿಂಗ್", + "NURSING_CARE_PROCEDURE__iv_sitecare": "IV ಸೈಟ್ ಕೇರ್", + "NURSING_CARE_PROCEDURE__nubulisation": "ನೂಬುಲೈಸೇಶನ್", + "NURSING_CARE_PROCEDURE__personal_hygiene": "ವೈಯಕ್ತಿಕ ನೈರ್ಮಲ್ಯ", + "NURSING_CARE_PROCEDURE__positioning": "ಸ್ಥಾನೀಕರಣ", + "NURSING_CARE_PROCEDURE__restrain": "ನಿಗ್ರಹಿಸಿ", + "NURSING_CARE_PROCEDURE__ryles_tube_care": "ರೈಲ್ಸ್ ಟ್ಯೂಬ್ ಕೇರ್", + "NURSING_CARE_PROCEDURE__stoma_care": "ಸ್ಟೊಮಾ ಕೇರ್", + "NURSING_CARE_PROCEDURE__suctioning": "ಹೀರುವುದು", + "NURSING_CARE_PROCEDURE__tracheostomy_care": "ಟ್ರಾಕಿಯೊಸ್ಟೊಮಿ ಕೇರ್", + "Notice Board": "ಸೂಚನಾ ಫಲಕ", + "Notifications": "ಅಧಿಸೂಚನೆಗಳು", + "OXYGEN_MODALITY__HIGH_FLOW_NASAL_CANNULA": "ಹೈ ಫ್ಲೋ ನಾಸಲ್ ಕ್ಯಾನುಲಾ", + "OXYGEN_MODALITY__NASAL_PRONGS": "ಮೂಗಿನ ಪ್ರಾಂಗ್ಸ್", + "OXYGEN_MODALITY__NON_REBREATHING_MASK": "ನಾನ್ ರಿಬ್ರೆಥಿಂಗ್ ಮಾಸ್ಕ್", + "OXYGEN_MODALITY__SIMPLE_FACE_MASK": "ಸರಳ ಫೇಸ್ ಮಾಸ್ಕ್", + "PRESCRIPTION_FREQUENCY_BD": "ದಿನಕ್ಕೆ ಎರಡು ಬಾರಿ", + "PRESCRIPTION_FREQUENCY_HS": "ರಾತ್ರಿ ಮಾತ್ರ", + "PRESCRIPTION_FREQUENCY_OD": "ದಿನಕ್ಕೆ ಒಮ್ಮೆ", + "PRESCRIPTION_FREQUENCY_Q4H": "4 ನೇ ಗಂಟೆಗೆ", + "PRESCRIPTION_FREQUENCY_QID": "6 ನೇ ಗಂಟೆಗೆ", + "PRESCRIPTION_FREQUENCY_QOD": "ಪರ್ಯಾಯ ದಿನ", + "PRESCRIPTION_FREQUENCY_QWK": "ವಾರಕ್ಕೊಮ್ಮೆ", + "PRESCRIPTION_FREQUENCY_STAT": "ತಕ್ಷಣವೇ", + "PRESCRIPTION_FREQUENCY_TID": "8 ನೇ ಗಂಟೆಗೆ", + "PRESCRIPTION_ROUTE_IM": "IM", + "PRESCRIPTION_ROUTE_INHALATION": "ಇನ್ಹಲೇಷನ್", + "PRESCRIPTION_ROUTE_INTRATHECAL": "ಇಂಟ್ರಾಥೆಕಲ್ ಇಂಜೆಕ್ಷನ್", + "PRESCRIPTION_ROUTE_IV": "IV", + "PRESCRIPTION_ROUTE_NASOGASTRIC": "ನಾಸೊಗ್ಯಾಸ್ಟ್ರಿಕ್ / ಗ್ಯಾಸ್ಟ್ರೋಸ್ಟೊಮಿ ಟ್ಯೂಬ್", + "PRESCRIPTION_ROUTE_ORAL": "ಮೌಖಿಕ", + "PRESCRIPTION_ROUTE_RECTAL": "ಗುದನಾಳ", + "PRESCRIPTION_ROUTE_SC": "ಎಸ್/ಸಿ", + "PRESCRIPTION_ROUTE_SUBLINGUAL": "ಉಪಭಾಷೆ", + "PRESCRIPTION_ROUTE_TRANSDERMAL": "ಟ್ರಾನ್ಸ್ಡರ್ಮಲ್", + "PUPIL_REACTION__BRISK": "ಚುರುಕಾದ", + "PUPIL_REACTION__CANNOT_BE_ASSESSED": "ಮೌಲ್ಯಮಾಪನ ಮಾಡಲಾಗುವುದಿಲ್ಲ", + "PUPIL_REACTION__FIXED": "ನಿವಾರಿಸಲಾಗಿದೆ", + "PUPIL_REACTION__SLUGGISH": "ಜಡ", + "PUPIL_REACTION__UNKNOWN": "ಅಜ್ಞಾತ", + "Patients": "ರೋಗಿಗಳು", + "Profile": "ಪ್ರೊಫೈಲ್", + "REGULAR": "ನಿಯಮಿತ", + "RESPIRATORY_SUPPORT_SHORT__INVASIVE": "IV", + "RESPIRATORY_SUPPORT_SHORT__NON_INVASIVE": "NIV", + "RESPIRATORY_SUPPORT_SHORT__OXYGEN_SUPPORT": "O2 ಬೆಂಬಲ", + "RESPIRATORY_SUPPORT_SHORT__UNKNOWN": "ಯಾವುದೂ ಇಲ್ಲ", + "RESPIRATORY_SUPPORT__INVASIVE": "ಆಕ್ರಮಣಕಾರಿ ವೆಂಟಿಲೇಟರ್ (IV)", + "RESPIRATORY_SUPPORT__NON_INVASIVE": "ನಾನ್-ಇನ್ವೇಸಿವ್ ವೆಂಟಿಲೇಟರ್ (NIV)", + "RESPIRATORY_SUPPORT__OXYGEN_SUPPORT": "ಆಮ್ಲಜನಕ ಬೆಂಬಲ", + "RESPIRATORY_SUPPORT__UNKNOWN": "ಯಾವುದೂ ಇಲ್ಲ", + "Resource": "ಸಂಪನ್ಮೂಲ", + "SORT_OPTIONS__-bed__name": "ಹಾಸಿಗೆ ಸಂಖ್ಯೆ N-1", + "SORT_OPTIONS__-category_severity": "ಅತ್ಯಧಿಕ ತೀವ್ರತೆಯ ವಿಭಾಗ ಮೊದಲು", + "SORT_OPTIONS__-created_date": "ಇತ್ತೀಚಿಗೆ ರಚಿಸಿದ ದಿನಾಂಕ ಮೊದಲು", + "SORT_OPTIONS__-modified_date": "ಮೊದಲು ಇತ್ತೀಚಿನ ನವೀಕರಿಸಿದ ದಿನಾಂಕ", + "SORT_OPTIONS__-name": "ರೋಗಿಯ ಹೆಸರು ZA", + "SORT_OPTIONS__-review_time": "ಇತ್ತೀಚಿನ ವಿಮರ್ಶೆ ದಿನಾಂಕ ಮೊದಲು", + "SORT_OPTIONS__-taken_at": "ಇತ್ತೀಚೆಗೆ ತೆಗೆದುಕೊಂಡ ದಿನಾಂಕ ಮೊದಲು", + "SORT_OPTIONS__bed__name": "ಹಾಸಿಗೆ ಸಂಖ್ಯೆ 1-N", + "SORT_OPTIONS__category_severity": "ಕಡಿಮೆ ತೀವ್ರತೆಯ ವರ್ಗ ಮೊದಲು", + "SORT_OPTIONS__created_date": "ಮೊದಲು ರಚಿಸಿದ ಹಳೆಯ ದಿನಾಂಕ", + "SORT_OPTIONS__facility__name,-last_consultation__current_bed__bed__name": "ಹಾಸಿಗೆ ಸಂಖ್ಯೆ N-1", + "SORT_OPTIONS__facility__name,last_consultation__current_bed__bed__name": "ಹಾಸಿಗೆ ಸಂಖ್ಯೆ 1-N", + "SORT_OPTIONS__modified_date": "ಹಳೆಯ ನವೀಕರಿಸಿದ ದಿನಾಂಕ ಮೊದಲು", + "SORT_OPTIONS__name": "ರೋಗಿಯ ಹೆಸರು AZ", + "SORT_OPTIONS__review_time": "ಹಳೆಯ ವಿಮರ್ಶೆ ದಿನಾಂಕ ಮೊದಲು", + "SORT_OPTIONS__taken_at": "ಹಳೆಯ ತೆಗೆದ ದಿನಾಂಕ ಮೊದಲು", + "SORT_OPTIONS__unsupported_browser_description": "ನಿಮ್ಮ ಬ್ರೌಸರ್ ({{name}} ಆವೃತ್ತಿ {{version}}) ಬೆಂಬಲಿತವಾಗಿಲ್ಲ. ದಯವಿಟ್ಟು ನಿಮ್ಮ ಬ್ರೌಸರ್ ಅನ್ನು ಇತ್ತೀಚಿನ ಆವೃತ್ತಿಗೆ ನವೀಕರಿಸಿ ಅಥವಾ ಉತ್ತಮ ಅನುಭವಕ್ಕಾಗಿ ಬೆಂಬಲಿತ ಬ್ರೌಸರ್‌ಗೆ ಬದಲಿಸಿ.", + "Sample Test": "ಮಾದರಿ ಪರೀಕ್ಷೆ", + "Shifting": "ಸ್ಥಳಾಂತರ", + "Submit": "ಸಲ್ಲಿಸಿ", + "TELEMEDICINE": "ಟೆಲಿಮೆಡಿಸಿನ್", + "Users": "ಬಳಕೆದಾರರು", + "VENTILATOR": "ವಿವರವಾದ ನವೀಕರಣ", + "VENTILATOR_MODE__CMV": "ಕಂಟ್ರೋಲ್ ಮೆಕ್ಯಾನಿಕಲ್ ವೆಂಟಿಲೇಷನ್ (CMV)", + "VENTILATOR_MODE__PCV": "ಪ್ರೆಶರ್ ಕಂಟ್ರೋಲ್ ವೆಂಟಿಲೇಷನ್ (PCV)", + "VENTILATOR_MODE__PC_SIMV": "ಒತ್ತಡ ನಿಯಂತ್ರಿತ SIMV (PC-SIMV)", + "VENTILATOR_MODE__PSV": "C-PAP / ಪ್ರೆಶರ್ ಸಪೋರ್ಟ್ ವೆಂಟಿಲೇಷನ್ (PSV)", + "VENTILATOR_MODE__SIMV": "ಸಿಂಕ್ರೊನೈಸ್ ಮಾಡಿದ ಮಧ್ಯಂತರ ಕಡ್ಡಾಯ ವಾತಾಯನ (SIMV)", + "VENTILATOR_MODE__VCV": "ವಾಲ್ಯೂಮ್ ಕಂಟ್ರೋಲ್ ವೆಂಟಿಲೇಶನ್ (VCV)", + "VENTILATOR_MODE__VC_SIMV": "ವಾಲ್ಯೂಮ್ ಕಂಟ್ರೋಲ್ಡ್ SIMV (VC-SIMV)", + "View Facility": "ವೀಕ್ಷಣೆ ಸೌಲಭ್ಯ", + "action_irreversible": "ಈ ಕ್ರಿಯೆಯು ಬದಲಾಯಿಸಲಾಗದು", + "active": "ಸಕ್ರಿಯ", + "active_prescriptions": "ಸಕ್ರಿಯ ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್ಗಳು", + "add": "ಸೇರಿಸಿ", + "add_as": "ಎಂದು ಸೇರಿಸಿ", + "add_beds": "ಬೆಡ್(ಗಳು) ಸೇರಿಸಿ", + "add_details_of_patient": "ರೋಗಿಯ ವಿವರಗಳನ್ನು ಸೇರಿಸಿ", + "add_location": "ಸ್ಥಳವನ್ನು ಸೇರಿಸಿ", + "add_new_user": "ಹೊಸ ಬಳಕೆದಾರರನ್ನು ಸೇರಿಸಿ", + "add_notes": "ಟಿಪ್ಪಣಿಗಳನ್ನು ಸೇರಿಸಿ", + "add_prescription_medication": "ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್ ಔಷಧಿಗಳನ್ನು ಸೇರಿಸಿ", + "add_prescription_to_consultation_note": "ಈ ಸಮಾಲೋಚನೆಗೆ ಹೊಸ ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್ ಸೇರಿಸಿ.", + "add_prn_prescription": "PRN ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್ ಸೇರಿಸಿ", + "address": "ವಿಳಾಸ", + "administer": "ನಿರ್ವಹಿಸು", + "administer_medicine": "ಔಷಧವನ್ನು ನಿರ್ವಹಿಸಿ", + "administer_medicines": "ಔಷಧಗಳನ್ನು ನಿರ್ವಹಿಸಿ", + "administer_selected_medicines": "ಆಯ್ದ ಔಷಧಗಳನ್ನು ನಿರ್ವಹಿಸಿ", + "administered_on": "ರಂದು ನಿರ್ವಹಿಸಲಾಗಿದೆ", + "administration_dosage_range_error": "ಡೋಸೇಜ್ ಪ್ರಾರಂಭ ಮತ್ತು ಗುರಿ ಡೋಸೇಜ್ ನಡುವೆ ಇರಬೇಕು", + "administration_notes": "ಆಡಳಿತ ಟಿಪ್ಪಣಿಗಳು", + "advanced_filters": "ಸುಧಾರಿತ ಫಿಲ್ಟರ್‌ಗಳು", + "age": "ವಯಸ್ಸು", + "all_changes_have_been_saved": "ಎಲ್ಲಾ ಬದಲಾವಣೆಗಳನ್ನು ಉಳಿಸಲಾಗಿದೆ", + "all_details": "ಎಲ್ಲಾ ವಿವರಗಳು", + "allergies": "ಅಲರ್ಜಿಗಳು", + "allowed_formats_are": "ಅನುಮತಿಸಲಾದ ಸ್ವರೂಪಗಳು", + "already_a_member": "ಈಗಾಗಲೇ ಸದಸ್ಯರೇ?", + "ambulance_driver_name": "ಆಂಬ್ಯುಲೆನ್ಸ್ ಚಾಲಕನ ಹೆಸರು", + "ambulance_number": "ಆಂಬ್ಯುಲೆನ್ಸ್ ನಂ", + "ambulance_phone_number": "ಆಂಬ್ಯುಲೆನ್ಸ್‌ನ ದೂರವಾಣಿ ಸಂಖ್ಯೆ", + "antenatal": "ಪ್ರಸವಪೂರ್ವ", + "any_other_comments": "ಯಾವುದೇ ಇತರ ಕಾಮೆಂಟ್‌ಗಳು", + "apply": "ಅನ್ವಯಿಸು", + "approved_by_district_covid_control_room": "ಜಿಲ್ಲಾ COVID ನಿಯಂತ್ರಣ ಕೊಠಡಿಯಿಂದ ಅನುಮೋದಿಸಲಾಗಿದೆ", + "approving_facility": "ಅನುಮೋದಿಸುವ ಸೌಲಭ್ಯದ ಹೆಸರು", + "archive": "ಆರ್ಕೈವ್", + "archived": "ಆರ್ಕೈವ್ ಮಾಡಲಾಗಿದೆ", + "are_you_still_watching": "ನೀವು ಇನ್ನೂ ನೋಡುತ್ತಿದ್ದೀರಾ?", + "are_you_sure_want_to_delete": "{{name}}ಅಳಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?", + "are_you_sure_want_to_delete_this_record": "ಈ ದಾಖಲೆಯನ್ನು ಅಳಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?", + "asset_class": "ಆಸ್ತಿ ವರ್ಗ", + "asset_location": "ಆಸ್ತಿಯ ಸ್ಥಳ", + "asset_name": "ಆಸ್ತಿ ಹೆಸರು", + "asset_not_found_msg": "ಓಹ್! ನೀವು ಹುಡುಕುತ್ತಿರುವ ಸ್ವತ್ತು ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ. ದಯವಿಟ್ಟು ಸ್ವತ್ತಿನ ಐಡಿಯನ್ನು ಪರಿಶೀಲಿಸಿ.", + "asset_qr_id": "ಆಸ್ತಿ QR ID", + "asset_type": "ಆಸ್ತಿ ಪ್ರಕಾರ", + "assigned_facility": "ಸೌಲಭ್ಯವನ್ನು ನಿಯೋಜಿಸಲಾಗಿದೆ", + "assigned_to": "ಗೆ ನಿಯೋಜಿಸಲಾಗಿದೆ", + "audio__allow_permission": "ದಯವಿಟ್ಟು ಸೈಟ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಮೈಕ್ರೊಫೋನ್ ಅನುಮತಿಯನ್ನು ಅನುಮತಿಸಿ", + "audio__allow_permission_button": "ಹೇಗೆ ಅನುಮತಿಸಬೇಕೆಂದು ತಿಳಿಯಲು ಇಲ್ಲಿ ಕ್ಲಿಕ್ ಮಾಡಿ", + "audio__allow_permission_helper": "ನೀವು ಹಿಂದೆ ಮೈಕ್ರೋಫೋನ್ ಪ್ರವೇಶವನ್ನು ನಿರಾಕರಿಸಿರಬಹುದು.", + "audio__record": "ರೆಕಾರ್ಡ್ ಆಡಿಯೋ", + "audio__record_helper": "ರೆಕಾರ್ಡಿಂಗ್ ಪ್ರಾರಂಭಿಸಲು ಬಟನ್ ಕ್ಲಿಕ್ ಮಾಡಿ", + "audio__recorded": "ಆಡಿಯೋ ರೆಕಾರ್ಡ್ ಮಾಡಲಾಗಿದೆ", + "audio__recording": "ರೆಕಾರ್ಡಿಂಗ್", + "audio__recording_helper": "ದಯವಿಟ್ಟು ನಿಮ್ಮ ಮೈಕ್ರೋಫೋನ್‌ನಲ್ಲಿ ಮಾತನಾಡಿ.", + "audio__recording_helper_2": "ರೆಕಾರ್ಡಿಂಗ್ ನಿಲ್ಲಿಸಲು ಬಟನ್ ಮೇಲೆ ಕ್ಲಿಕ್ ಮಾಡಿ.", + "audio__start_again": "ಮತ್ತೆ ಪ್ರಾರಂಭಿಸಿ", + "audit_log": "ಆಡಿಟ್ ಲಾಗ್", + "auth_login_title": "ಅಧಿಕೃತ ಲಾಗಿನ್", + "authorize_shift_delete": "ಶಿಫ್ಟ್ ಅಳಿಸುವಿಕೆಯನ್ನು ಅಧಿಕೃತಗೊಳಿಸಿ", + "auto_generated_for_care": "ಆರೈಕೆಗಾಗಿ ಸ್ವಯಂ ರಚಿಸಲಾಗಿದೆ", + "available_features": "ಲಭ್ಯವಿರುವ ವೈಶಿಷ್ಟ್ಯಗಳು", + "available_in": "ಲಭ್ಯವಿರುವ ಭಾಷೆಗಳು", + "average_weekly_working_hours": "ಸರಾಸರಿ ವಾರದ ಕೆಲಸದ ಸಮಯ", + "awaiting_destination_approval": "ಗಮ್ಯಸ್ಥಾನದ ಅನುಮೋದನೆಗಾಗಿ ನಿರೀಕ್ಷಿಸಲಾಗುತ್ತಿದೆ", + "back": "ಹಿಂದೆ", + "back_dated_encounter_date_caution": "ಇದಕ್ಕಾಗಿ ನೀವು ಎನ್‌ಕೌಂಟರ್ ಅನ್ನು ರಚಿಸುತ್ತಿದ್ದೀರಿ", + "back_to_consultation": "ಸಮಾಲೋಚನೆಗೆ ಹಿಂತಿರುಗಿ", + "back_to_login": "ಲಾಗಿನ್ ಪುಟಕ್ಕೆ ಹಿಂತಿರುಗಿ", + "base_dosage": "ಡೋಸೇಜ್", + "bed_capacity": "ಹಾಸಿಗೆ ಸಾಮರ್ಥ್ಯ", + "bed_search_placeholder": "ಹಾಸಿಗೆಗಳ ಹೆಸರಿನ ಮೂಲಕ ಹುಡುಕಿ", + "bed_type": "ಹಾಸಿಗೆಯ ಪ್ರಕಾರ", + "blood_group": "ರಕ್ತದ ಗುಂಪು", + "board_view": "ಬೋರ್ಡ್ ವೀಕ್ಷಣೆ", + "bradycardia": "ಬ್ರಾಡಿಕಾರ್ಡಿಯಾ", + "breathlessness_level": "ಉಸಿರಾಟದ ಮಟ್ಟ", + "camera": "ಕ್ಯಾಮೆರಾ", + "camera_permission_denied": "ಕ್ಯಾಮೆರಾ ಅನುಮತಿ ನಿರಾಕರಿಸಲಾಗಿದೆ", + "cancel": "ರದ್ದುಮಾಡಿ", + "capture": "ಸೆರೆಹಿಡಿಯಿರಿ", + "capture_cover_photo": "ಕವರ್ ಫೋಟೋ ಸೆರೆಹಿಡಿಯಿರಿ", + "care": "ಕಾಳಜಿ", + "category": "ವರ್ಗ", + "caution": "ಎಚ್ಚರಿಕೆ", + "central_nursing_station": "ಕೇಂದ್ರ ನರ್ಸಿಂಗ್ ಸ್ಟೇಷನ್", + "choose_file": "ಸಾಧನದಿಂದ ಅಪ್ಲೋಡ್ ಮಾಡಿ", + "choose_location": "ಸ್ಥಳವನ್ನು ಆಯ್ಕೆಮಾಡಿ", + "clear": "ತೆರವುಗೊಳಿಸಿ", + "clear_all_filters": "ಎಲ್ಲಾ ಫಿಲ್ಟರ್‌ಗಳನ್ನು ತೆರವುಗೊಳಿಸಿ", + "clear_home_facility": "ಮನೆ ಸೌಲಭ್ಯವನ್ನು ತೆರವುಗೊಳಿಸಿ", + "clear_selection": "ಆಯ್ಕೆಯನ್ನು ತೆರವುಗೊಳಿಸಿ", + "close": "ಮುಚ್ಚಿ", + "close_scanner": "ಸ್ಕ್ಯಾನರ್ ಅನ್ನು ಮುಚ್ಚಿ", + "comment_added_successfully": "ಕಾಮೆಂಟ್ ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಸೇರಿಸಲಾಗಿದೆ", + "comment_min_length": "ಕಾಮೆಂಟ್ ಕನಿಷ್ಠ 1 ಅಕ್ಷರವನ್ನು ಹೊಂದಿರಬೇಕು", + "comments": "ಕಾಮೆಂಟ್‌ಗಳು", + "completed": "ಪೂರ್ಣಗೊಂಡಿದೆ", + "configure": "ಕಾನ್ಫಿಗರ್ ಮಾಡಿ", + "configure_facility": "ಸೌಲಭ್ಯವನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ", + "confirm": "ದೃಢೀಕರಿಸಿ", + "confirm_delete": "ಅಳಿಸುವುದನ್ನು ದೃಢೀಕರಿಸಿ", + "confirm_discontinue": "ಸ್ಥಗಿತಗೊಳಿಸುವುದನ್ನು ದೃಢೀಕರಿಸಿ", + "confirm_password": "ಪಾಸ್ವರ್ಡ್ ದೃಢೀಕರಿಸಿ", + "confirm_transfer_complete": "ವರ್ಗಾವಣೆ ಪೂರ್ಣಗೊಂಡಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿ!", + "confirmed": "ದೃಢಪಡಿಸಿದೆ", + "consultation_notes": "ಸಾಮಾನ್ಯ ಸೂಚನೆಗಳು (ಸಲಹೆ)", + "consultation_updates": "ಸಮಾಲೋಚನೆ ನವೀಕರಣಗಳು", + "contact_number": "ಸಂಪರ್ಕ ಸಂಖ್ಯೆ", + "contact_person": "ಸೌಲಭ್ಯದಲ್ಲಿರುವ ಸಂಪರ್ಕ ವ್ಯಕ್ತಿಯ ಹೆಸರು", + "contact_person_at_the_facility": "ಪ್ರಸ್ತುತ ಸೌಲಭ್ಯದಲ್ಲಿರುವ ವ್ಯಕ್ತಿಯನ್ನು ಸಂಪರ್ಕಿಸಿ", + "contact_person_number": "ಸಂಪರ್ಕ ವ್ಯಕ್ತಿಯ ಸಂಖ್ಯೆ", + "contact_phone": "ಸಂಪರ್ಕ ವ್ಯಕ್ತಿ ಸಂಖ್ಯೆ", + "contact_your_admin_to_add_skills": "ಕೌಶಲ್ಯಗಳನ್ನು ಸೇರಿಸಲು ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ", + "continue": "ಮುಂದುವರಿಸಿ", + "continue_watching": "ನೋಡುವುದನ್ನು ಮುಂದುವರಿಸಿ", + "contribute_github": "GitHub ನಲ್ಲಿ ಕೊಡುಗೆ ನೀಡಿ", + "copied_to_clipboard": "ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ಗೆ ನಕಲಿಸಲಾಗಿದೆ", + "countries_travelled": "ದೇಶಗಳು ಸಂಚರಿಸಿದವು", + "covid_19_cat_gov": "ಸರ್ಕಾರದ ಪ್ರಕಾರ ಕೋವಿಡ್_19 ಕ್ಲಿನಿಕಲ್ ವರ್ಗ. ಕೇರಳ ಮಾರ್ಗಸೂಚಿ (A/B/C)", + "create": "ರಚಿಸಿ", + "create_add_more": "ರಚಿಸಿ ಮತ್ತು ಇನ್ನಷ್ಟು ಸೇರಿಸಿ", + "create_asset": "ಆಸ್ತಿಯನ್ನು ರಚಿಸಿ", + "create_facility": "ಹೊಸ ಸೌಲಭ್ಯವನ್ನು ರಚಿಸಿ", + "create_new_asset": "ಹೊಸ ಆಸ್ತಿಯನ್ನು ರಚಿಸಿ", + "create_resource_request": "ಸಂಪನ್ಮೂಲ ವಿನಂತಿಯನ್ನು ರಚಿಸಿ", + "created": "ರಚಿಸಲಾಗಿದೆ", + "created_date": "ರಚಿಸಿದ ದಿನಾಂಕ", + "csv_file_in_the_specified_format": "ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಸ್ವರೂಪದಲ್ಲಿ CSV ಫೈಲ್ ಅನ್ನು ಆಯ್ಕೆಮಾಡಿ", + "customer_support_email": "ಗ್ರಾಹಕ ಬೆಂಬಲ ಇಮೇಲ್", + "customer_support_name": "ಗ್ರಾಹಕ ಬೆಂಬಲ ಹೆಸರು", + "customer_support_number": "ಗ್ರಾಹಕ ಬೆಂಬಲ ಸಂಖ್ಯೆ", + "cylinders": "ಸಿಲಿಂಡರ್ಗಳು", + "cylinders_per_day": "ಸಿಲಿಂಡರ್ಗಳು / ದಿನ", + "date_and_time": "ದಿನಾಂಕ ಮತ್ತು ಸಮಯ", + "date_of_admission": "ಪ್ರವೇಶ ದಿನಾಂಕ", + "date_of_birth": "ಹುಟ್ಟಿದ ದಿನಾಂಕ", + "date_of_positive_covid_19_swab": "ಧನಾತ್ಮಕ ಕೋವಿಡ್ 19 ಸ್ವ್ಯಾಬ್ ದಿನಾಂಕ", + "date_of_test": "ಪರೀಕ್ಷೆಯ ದಿನಾಂಕ", + "days": "ದಿನಗಳು", + "delete": "ಅಳಿಸಿ", + "delete_facility": "ಸೌಲಭ್ಯವನ್ನು ಅಳಿಸಿ", + "delete_item": "{{name}}ಅಳಿಸಿ", + "delete_record": "ದಾಖಲೆ ಅಳಿಸಿ", + "deleted_successfully": "{{name}} ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಅಳಿಸಲಾಗಿದೆ", + "describe_why_the_asset_is_not_working": "ಸ್ವತ್ತು ಏಕೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿಲ್ಲ ಎಂಬುದನ್ನು ವಿವರಿಸಿ", + "description": "ವಿವರಣೆ", + "details_about_the_equipment": "ಸಲಕರಣೆಗಳ ಬಗ್ಗೆ ವಿವರಗಳು", + "details_of_assigned_facility": "ನಿಯೋಜಿಸಲಾದ ಸೌಲಭ್ಯದ ವಿವರಗಳು", + "details_of_origin_facility": "ಮೂಲ ಸೌಲಭ್ಯದ ವಿವರಗಳು", + "details_of_patient": "ರೋಗಿಯ ವಿವರಗಳು", + "details_of_shifting_approving_facility": "ಅನುಮೋದಿಸುವ ಸೌಲಭ್ಯವನ್ನು ಬದಲಾಯಿಸುವ ವಿವರಗಳು", + "diagnoses": "ರೋಗನಿರ್ಣಯಗಳು", + "diagnosis": "ರೋಗನಿರ್ಣಯ", + "diagnosis__confirmed": "ದೃಢಪಡಿಸಿದೆ", + "diagnosis__differential": "ಭೇದಾತ್ಮಕ", + "diagnosis__principal": "ಪ್ರಿನ್ಸಿಪಾಲ್", + "diagnosis__provisional": "ತಾತ್ಕಾಲಿಕ", + "diagnosis__unconfirmed": "ದೃಢೀಕರಿಸಲಾಗಿಲ್ಲ", + "diagnosis_already_added": "ಈ ರೋಗನಿರ್ಣಯವನ್ನು ಈಗಾಗಲೇ ಸೇರಿಸಲಾಗಿದೆ", + "diastolic": "ಡಯಾಸ್ಟೊಲಿಕ್", + "differential": "ಭೇದಾತ್ಮಕ", + "discard": "ತಿರಸ್ಕರಿಸು", + "discharge": "ವಿಸರ್ಜನೆ", + "discharge_from_care": "CARE ನಿಂದ ಬಿಡುಗಡೆ", + "discharge_prescription": "ಡಿಸ್ಚಾರ್ಜ್ ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್", + "discharge_summary": "ಡಿಸ್ಚಾರ್ಜ್ ಸಾರಾಂಶ", + "discharge_summary_not_ready": "ಡಿಸ್ಚಾರ್ಜ್ ಸಾರಾಂಶ ಇನ್ನೂ ಸಿದ್ಧವಾಗಿಲ್ಲ.", + "discharged": "ಡಿಸ್ಚಾರ್ಜ್ ಮಾಡಲಾಗಿದೆ", + "discharged_patients": "ಬಿಡುಗಡೆಯಾದ ರೋಗಿಗಳು", + "discharged_patients_empty": "ಈ ಸೌಲಭ್ಯದಲ್ಲಿ ಬಿಡುಗಡೆಯಾದ ಯಾವುದೇ ರೋಗಿಗಳು ಇರುವುದಿಲ್ಲ", + "disclaimer": "ಹಕ್ಕು ನಿರಾಕರಣೆ", + "discontinue": "ಸ್ಥಗಿತಗೊಳಿಸಿ", + "discontinue_caution_note": "ಈ ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್ ಅನ್ನು ನಿಲ್ಲಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?", + "discontinued": "ಸ್ಥಗಿತಗೊಳಿಸಲಾಗಿದೆ", + "disease_status": "ರೋಗದ ಸ್ಥಿತಿ", + "district": "ಜಿಲ್ಲೆ", + "district_program_management_supporting_unit": "ಜಿಲ್ಲಾ ಕಾರ್ಯಕ್ರಮ ನಿರ್ವಹಣಾ ಪೋಷಕ ಘಟಕ", + "done": "ಮುಗಿದಿದೆ", + "dosage": "ಡೋಸೇಜ್", + "down": "ಕೆಳಗೆ", + "download": "ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ", + "download_discharge_summary": "ಡಿಸ್ಚಾರ್ಜ್ ಸಾರಾಂಶವನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ", + "download_type": "ಡೌನ್‌ಲೋಡ್ ಪ್ರಕಾರ", + "downloading": "ಡೌನ್‌ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ", + "downloads": "ಡೌನ್‌ಲೋಡ್‌ಗಳು", + "drag_drop_image_to_upload": "ಅಪ್‌ಲೋಡ್ ಮಾಡಲು ಚಿತ್ರವನ್ನು ಎಳೆಯಿರಿ ಮತ್ತು ಬಿಡಿ", + "duplicate_patient_record_birth_unknown": "ರೋಗಿಯ ಜನ್ಮ ವರ್ಷದ ಬಗ್ಗೆ ನಿಮಗೆ ಖಚಿತವಿಲ್ಲದಿದ್ದರೆ ದಯವಿಟ್ಟು ನಿಮ್ಮ ಜಿಲ್ಲಾ ಆರೈಕೆ ಸಂಯೋಜಕರು, ಸ್ಥಳಾಂತರ ಸೌಲಭ್ಯ ಅಥವಾ ರೋಗಿಯನ್ನು ಸಂಪರ್ಕಿಸಿ.", + "duplicate_patient_record_confirmation": "ಹುಟ್ಟಿದ ವರ್ಷವನ್ನು ಸೇರಿಸುವ ಮೂಲಕ ನಿಮ್ಮ ಸೌಲಭ್ಯಕ್ಕೆ ರೋಗಿಯ ದಾಖಲೆಯನ್ನು ಒಪ್ಪಿಕೊಳ್ಳಿ", + "duplicate_patient_record_rejection": "ನಾನು ರಚಿಸಲು ಬಯಸುವ ಶಂಕಿತ / ರೋಗಿಯು ಪಟ್ಟಿಯಲ್ಲಿಲ್ಲ ಎಂದು ನಾನು ದೃಢೀಕರಿಸುತ್ತೇನೆ.", + "edit": "ಸಂಪಾದಿಸು", + "edit_caution_note": "ಸಂಪಾದಿತ ವಿವರಗಳೊಂದಿಗೆ ಹೊಸ ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್ ಅನ್ನು ಸಮಾಲೋಚನೆಗೆ ಸೇರಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಪ್ರಸ್ತುತ ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್ ಅನ್ನು ಸ್ಥಗಿತಗೊಳಿಸಲಾಗುತ್ತದೆ.", + "edit_cover_photo": "ಕವರ್ ಫೋಟೋ ಸಂಪಾದಿಸಿ", + "edit_history": "ಇತಿಹಾಸವನ್ನು ಸಂಪಾದಿಸಿ", + "edit_prescriptions": "ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್‌ಗಳನ್ನು ಸಂಪಾದಿಸಿ", + "edited_by": "ಸಂಪಾದಿಸಿದವರು", + "edited_on": "ರಂದು ಸಂಪಾದಿಸಲಾಗಿದೆ", + "eg_abc": "ಉದಾ. ಎಬಿಸಿ", + "eg_details_on_functionality_service_etc": "ಉದಾ. ಕಾರ್ಯನಿರ್ವಹಣೆ, ಸೇವೆ ಇತ್ಯಾದಿಗಳ ವಿವರಗಳು.", + "eg_mail_example_com": "ಉದಾ. mail@example.com", + "eg_xyz": "ಉದಾ. XYZ", + "email": "ಇಮೇಲ್ ವಿಳಾಸ", + "email_address": "ಇಮೇಲ್ ವಿಳಾಸ", + "email_discharge_summary_description": "ಡಿಸ್ಚಾರ್ಜ್ ಸಾರಾಂಶವನ್ನು ಸ್ವೀಕರಿಸಲು ನಿಮ್ಮ ಮಾನ್ಯ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ನಮೂದಿಸಿ", + "email_success": "ನಾವು ಶೀಘ್ರದಲ್ಲೇ ಇಮೇಲ್ ಕಳುಹಿಸುತ್ತೇವೆ. ದಯವಿಟ್ಟು ನಿಮ್ಮ ಇನ್‌ಬಾಕ್ಸ್ ಪರಿಶೀಲಿಸಿ.", + "emergency": "ತುರ್ತು ಪರಿಸ್ಥಿತಿ", + "emergency_contact_number": "ತುರ್ತು ಸಂಪರ್ಕ ಸಂಖ್ಯೆ", + "empty_date_time": "--:-- --; ------------", + "encounter_date_field_label__A": "ಸೌಲಭ್ಯಕ್ಕೆ ಪ್ರವೇಶದ ದಿನಾಂಕ ಮತ್ತು ಸಮಯ", + "encounter_date_field_label__DC": "ಡೊಮಿಸಿಲಿಯರಿ ಕೇರ್ ಪ್ರಾರಂಭದ ದಿನಾಂಕ ಮತ್ತು ಸಮಯ", + "encounter_date_field_label__DD": "ಸಮಾಲೋಚನೆಯ ದಿನಾಂಕ ಮತ್ತು ಸಮಯ", + "encounter_date_field_label__HI": "ಸಮಾಲೋಚನೆಯ ದಿನಾಂಕ ಮತ್ತು ಸಮಯ", + "encounter_date_field_label__OP": "ಹೊರರೋಗಿ ಭೇಟಿಯ ದಿನಾಂಕ ಮತ್ತು ಸಮಯ", + "encounter_date_field_label__R": "ಸಮಾಲೋಚನೆಯ ದಿನಾಂಕ ಮತ್ತು ಸಮಯ", + "encounter_duration_confirmation": "ಈ ಎನ್ಕೌಂಟರ್ನ ಅವಧಿಯು ಇರುತ್ತದೆ", + "encounter_suggestion__A": "ಪ್ರವೇಶ", + "encounter_suggestion__DC": "ಡೊಮಿಸಿಲಿಯರಿ ಕೇರ್", + "encounter_suggestion__DD": "ಸಮಾಲೋಚನೆ", + "encounter_suggestion__HI": "ಸಮಾಲೋಚನೆ", + "encounter_suggestion__OP": "ಹೊರರೋಗಿಗಳ ಭೇಟಿ", + "encounter_suggestion__R": "ಸಮಾಲೋಚನೆ", + "encounter_suggestion_edit_disallowed": "ಸಂಪಾದನೆ ಸಮಾಲೋಚನೆಯಲ್ಲಿ ಈ ಆಯ್ಕೆಗೆ ಬದಲಾಯಿಸಲು ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ", + "enter_file_name": "ಫೈಲ್ ಹೆಸರನ್ನು ನಮೂದಿಸಿ", + "enter_valid_age": "ದಯವಿಟ್ಟು ಮಾನ್ಯವಾದ ವಯಸ್ಸನ್ನು ನಮೂದಿಸಿ", + "entered-in-error": "ತಪ್ಪಾಗಿ ನಮೂದಿಸಲಾಗಿದೆ", + "error_404": "ದೋಷ 404", + "error_deleting_shifting": "ಶಿಫ್ಟಿಂಗ್ ರೆಕಾರ್ಡ್ ಅನ್ನು ಅಳಿಸುವಾಗ ದೋಷ", + "error_while_deleting_record": "ದಾಖಲೆಯನ್ನು ಅಳಿಸುವಾಗ ದೋಷ", + "escape": "ಎಸ್ಕೇಪ್", + "estimated_contact_date": "ಅಂದಾಜು ಸಂಪರ್ಕ ದಿನಾಂಕ", + "expected_burn_rate": "ನಿರೀಕ್ಷಿತ ಬರ್ನ್ ದರ", + "facilities": "ಸೌಲಭ್ಯಗಳು", + "facility": "ಸೌಲಭ್ಯ", + "facility_name": "ಸೌಲಭ್ಯದ ಹೆಸರು", + "facility_preference": "ಸೌಲಭ್ಯ ಆದ್ಯತೆ", + "facility_search_placeholder": "ಸೌಲಭ್ಯ / ಜಿಲ್ಲೆಯ ಹೆಸರಿನ ಮೂಲಕ ಹುಡುಕಿ", + "facility_type": "ಸೌಲಭ್ಯದ ಪ್ರಕಾರ", + "features": "ವೈಶಿಷ್ಟ್ಯಗಳು", + "feed_is_currently_not_live": "ಫೀಡ್ ಪ್ರಸ್ತುತ ಲೈವ್ ಆಗಿಲ್ಲ", + "feed_optimal_experience_for_apple_phones": "ಅತ್ಯುತ್ತಮ ವೀಕ್ಷಣೆಯ ಅನುಭವಕ್ಕಾಗಿ, ನಿಮ್ಮ ಸಾಧನವನ್ನು ತಿರುಗಿಸಲು ಪರಿಗಣಿಸಿ. ನಿಮ್ಮ ಸಾಧನದ ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಸ್ವಯಂ-ತಿರುಗುವಿಕೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.", + "feed_optimal_experience_for_phones": "ಅತ್ಯುತ್ತಮ ವೀಕ್ಷಣೆಯ ಅನುಭವಕ್ಕಾಗಿ, ನಿಮ್ಮ ಸಾಧನವನ್ನು ತಿರುಗಿಸಲು ಪರಿಗಣಿಸಿ.", + "field_required": "ಈ ಕ್ಷೇತ್ರದ ಅಗತ್ಯವಿದೆ", + "file_error__choose_file": "ದಯವಿಟ್ಟು ಅಪ್‌ಲೋಡ್ ಮಾಡಲು ಫೈಲ್ ಅನ್ನು ಆಯ್ಕೆಮಾಡಿ", + "file_error__dynamic": "ಫೈಲ್ ಅಪ್‌ಲೋಡ್ ಮಾಡುವಲ್ಲಿ ದೋಷ: {{statusText}}", + "file_error__file_name": "ದಯವಿಟ್ಟು ಫೈಲ್ ಹೆಸರನ್ನು ನಮೂದಿಸಿ", + "file_error__file_size": "ಫೈಲ್‌ಗಳ ಗರಿಷ್ಠ ಗಾತ್ರ 100 MB", + "file_error__file_type": "ಅಮಾನ್ಯವಾದ ಫೈಲ್ ಪ್ರಕಾರ \".{{extension}}\" ಅನುಮತಿಸಲಾದ ಪ್ರಕಾರಗಳು: {{allowedExtensions}}", + "file_error__network": "ಫೈಲ್ ಅಪ್‌ಲೋಡ್ ಮಾಡುವಲ್ಲಿ ದೋಷ: ನೆಟ್‌ವರ್ಕ್ ದೋಷ", + "file_list_headings__consultation": "ಸಮಾಲೋಚನೆ ಫೈಲ್ಗಳು", + "file_list_headings__patient": "ರೋಗಿಯ ಫೈಲ್ಗಳು", + "file_list_headings__sample_report": "ಮಾದರಿ ವರದಿ", + "file_list_headings__supporting_info": "ಪೋಷಕ ಮಾಹಿತಿ", + "file_preview": "ಫೈಲ್ ಪೂರ್ವವೀಕ್ಷಣೆ", + "file_preview_not_supported": "ಈ ಫೈಲ್ ಅನ್ನು ಪೂರ್ವವೀಕ್ಷಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಅದನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ.", + "file_uploaded": "ಫೈಲ್ ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಅಪ್‌ಲೋಡ್ ಮಾಡಲಾಗಿದೆ", + "filter": "ಫಿಲ್ಟರ್", + "filter_by": "ಮೂಲಕ ಫಿಲ್ಟರ್ ಮಾಡಿ", + "filter_by_category": "ವರ್ಗದ ಪ್ರಕಾರ ಫಿಲ್ಟರ್ ಮಾಡಿ", + "filters": "ಶೋಧಕಗಳು", + "first_name": "ಮೊದಲ ಹೆಸರು", + "footer_body": "ಕೊರೊನಾಸೇಫ್ ನೆಟ್‌ವರ್ಕ್ ಎಂಬುದು ತೆರೆದ ಮೂಲ ಸಾರ್ವಜನಿಕ ಉಪಯುಕ್ತತೆಯಾಗಿದ್ದು, ನಾವೀನ್ಯಕಾರರು ಮತ್ತು ಸ್ವಯಂಸೇವಕರ ಬಹು-ಶಿಸ್ತಿನ ತಂಡದಿಂದ ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ. ಕರೋನಾ ಸೇಫ್ ಕೇರ್ ವಿಶ್ವಸಂಸ್ಥೆಯಿಂದ ಗುರುತಿಸಲ್ಪಟ್ಟ ಡಿಜಿಟಲ್ ಸಾರ್ವಜನಿಕ ಸೇವೆಯಾಗಿದೆ.", + "forget_password": "ಪಾಸ್ವರ್ಡ್ ಮರೆತಿರಾ?", + "forget_password_instruction": "ನಿಮ್ಮ ಬಳಕೆದಾರ ಹೆಸರನ್ನು ನಮೂದಿಸಿ ಮತ್ತು ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಮರುಹೊಂದಿಸಲು ನಾವು ನಿಮಗೆ ಲಿಂಕ್ ಅನ್ನು ಕಳುಹಿಸುತ್ತೇವೆ.", + "frequency": "ಆವರ್ತನ", + "full_screen": "ಪೂರ್ಣ ಪರದೆ", + "gender": "ಲಿಂಗ", + "generate_report": "ವರದಿಯನ್ನು ರಚಿಸಿ", + "generated_summary_caution": "ಇದು CARE ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಸೆರೆಹಿಡಿಯಲಾದ ಮಾಹಿತಿಯನ್ನು ಬಳಸಿಕೊಂಡು ಕಂಪ್ಯೂಟರ್ ರಚಿಸಿದ ಸಾರಾಂಶವಾಗಿದೆ.", + "generating": "ಉತ್ಪಾದಿಸುತ್ತಿದೆ", + "generating_discharge_summary": "ಡಿಸ್ಚಾರ್ಜ್ ಸಾರಾಂಶವನ್ನು ರಚಿಸಲಾಗುತ್ತಿದೆ", + "get_tests": "ಪರೀಕ್ಷೆಗಳನ್ನು ಪಡೆಯಿರಿ", + "goal": "ಡಿಜಿಟಲ್ ಉಪಕರಣಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಸಾರ್ವಜನಿಕ ಆರೋಗ್ಯ ಸೇವೆಗಳ ಗುಣಮಟ್ಟ ಮತ್ತು ಪ್ರವೇಶವನ್ನು ನಿರಂತರವಾಗಿ ಸುಧಾರಿಸುವುದು ನಮ್ಮ ಗುರಿಯಾಗಿದೆ", + "help_confirmed": "ಇದನ್ನು ದೃಢಪಡಿಸಿದ ಸ್ಥಿತಿ ಎಂದು ಪರಿಗಣಿಸಲು ಸಾಕಷ್ಟು ರೋಗನಿರ್ಣಯ ಮತ್ತು/ಅಥವಾ ಕ್ಲಿನಿಕಲ್ ಪುರಾವೆಗಳಿವೆ.", + "help_differential": "ರೋಗನಿರ್ಣಯ ಪ್ರಕ್ರಿಯೆ ಮತ್ತು ಪ್ರಾಥಮಿಕ ಚಿಕಿತ್ಸೆಯನ್ನು ಮತ್ತಷ್ಟು ಮಾರ್ಗದರ್ಶನ ಮಾಡಲು ಸಮರ್ಥಿಸಲಾದ ಸಂಭಾವ್ಯ (ಮತ್ತು ಸಾಮಾನ್ಯವಾಗಿ ಪರಸ್ಪರ ಪ್ರತ್ಯೇಕವಾದ) ರೋಗನಿರ್ಣಯಗಳ ಒಂದು ಸೆಟ್.", + "help_entered-in-error": "ಹೇಳಿಕೆಯನ್ನು ತಪ್ಪಾಗಿ ನಮೂದಿಸಲಾಗಿದೆ ಮತ್ತು ಮಾನ್ಯವಾಗಿಲ್ಲ.", + "help_provisional": "ಇದು ತಾತ್ಕಾಲಿಕ ರೋಗನಿರ್ಣಯ - ಇನ್ನೂ ಪರಿಗಣನೆಯಲ್ಲಿರುವ ಅಭ್ಯರ್ಥಿ.", + "help_refuted": "ನಂತರದ ರೋಗನಿರ್ಣಯ ಮತ್ತು ಕ್ಲಿನಿಕಲ್ ಪುರಾವೆಗಳಿಂದ ಈ ಸ್ಥಿತಿಯನ್ನು ತಳ್ಳಿಹಾಕಲಾಗಿದೆ.", + "help_unconfirmed": "ಇದನ್ನು ದೃಢಪಡಿಸಿದ ಸ್ಥಿತಿ ಎಂದು ಪರಿಗಣಿಸಲು ಸಾಕಷ್ಟು ರೋಗನಿರ್ಣಯ ಮತ್ತು/ಅಥವಾ ವೈದ್ಯಕೀಯ ಪುರಾವೆಗಳಿಲ್ಲ.", + "hide": "ಮರೆಮಾಡಿ", + "home_facility": "ಮನೆ ಸೌಲಭ್ಯ", + "icd11_as_recommended": "WHO ಶಿಫಾರಸು ಮಾಡಿದ ICD-11 ಪ್ರಕಾರ", + "inconsistent_dosage_units_error": "ಡೋಸೇಜ್ ಘಟಕಗಳು ಒಂದೇ ಆಗಿರಬೇಕು", + "india_1": "ಭಾರತ", + "indian_mobile": "ಭಾರತೀಯ ಮೊಬೈಲ್", + "indicator": "ಸೂಚಕ", + "inidcator_event": "ಸೂಚಕ ಈವೆಂಟ್", + "instruction_on_titration": "ಟೈಟರೇಶನ್ ಕುರಿತು ಸೂಚನೆ", + "international_mobile": "ಅಂತಾರಾಷ್ಟ್ರೀಯ ಮೊಬೈಲ್", + "invalid_asset_id_msg": "ಓಹ್! ನೀವು ನಮೂದಿಸಿದ ಸ್ವತ್ತು ಐಡಿ ಮಾನ್ಯವಾಗಿರುವಂತೆ ತೋರುತ್ತಿಲ್ಲ.", + "invalid_email": "ದಯವಿಟ್ಟು ಸರಿಯಾದ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ನಮೂದಿಸಿ", + "invalid_link_msg": "ನೀವು ಬಳಸಿದ ಪಾಸ್‌ವರ್ಡ್ ಮರುಹೊಂದಿಸುವ ಲಿಂಕ್ ಅಮಾನ್ಯವಾಗಿದೆ ಅಥವಾ ಅವಧಿ ಮೀರಿದೆ ಎಂದು ತೋರುತ್ತಿದೆ. ದಯವಿಟ್ಟು ಹೊಸ ಪಾಸ್‌ವರ್ಡ್ ಮರುಹೊಂದಿಸುವ ಲಿಂಕ್ ಅನ್ನು ವಿನಂತಿಸಿ.", + "invalid_password": "ಪಾಸ್ವರ್ಡ್ ಅವಶ್ಯಕತೆಗಳನ್ನು ಪೂರೈಸುವುದಿಲ್ಲ", + "invalid_password_reset_link": "ಅಮಾನ್ಯವಾದ ಪಾಸ್‌ವರ್ಡ್ ಮರುಹೊಂದಿಸುವ ಲಿಂಕ್", + "invalid_phone": "ದಯವಿಟ್ಟು ಮಾನ್ಯವಾದ ಫೋನ್ ಸಂಖ್ಯೆಯನ್ನು ನಮೂದಿಸಿ", + "invalid_phone_number": "ಅಮಾನ್ಯವಾದ ಫೋನ್ ಸಂಖ್ಯೆ", + "invalid_pincode": "ಅಮಾನ್ಯವಾದ ಪಿನ್‌ಕೋಡ್", + "invalid_reset": "ಅಮಾನ್ಯ ಮರುಹೊಂದಿಸಿ", + "invalid_username": "ಅಗತ್ಯವಿದೆ. 150 ಅಕ್ಷರಗಳು ಅಥವಾ ಕಡಿಮೆ. ಅಕ್ಷರಗಳು, ಅಂಕೆಗಳು ಮತ್ತು @/./+/-/_ ಮಾತ್ರ.", + "inventory_management": "ದಾಸ್ತಾನು ನಿರ್ವಹಣೆ", + "investigation_reports": "ತನಿಖಾ ವರದಿಗಳು", + "investigations": "ತನಿಖೆಗಳು", + "investigations__date": "ದಿನಾಂಕ", + "investigations__ideal_value": "ಆದರ್ಶ ಮೌಲ್ಯ", + "investigations__name": "ಹೆಸರು", + "investigations__range": "ಮೌಲ್ಯ ಶ್ರೇಣಿ", + "investigations__result": "ಫಲಿತಾಂಶ", + "investigations__unit": "ಘಟಕ", + "investigations_suggested": "ತನಿಖೆಗಳನ್ನು ಸೂಚಿಸಲಾಗಿದೆ", + "is": "ಆಗಿದೆ", + "is_antenatal": "ಪ್ರಸವಪೂರ್ವವಾಗಿದೆ", + "is_emergency": "ತುರ್ತು ಆಗಿದೆ", + "is_emergency_case": "ತುರ್ತು ಪ್ರಕರಣವಾಗಿದೆ", + "is_it_upshift": "ಇದು ಮೇಲ್ಮುಖವಾಗಿದೆಯೇ", + "is_this_an_emergency": "ಇದು ತುರ್ತು ಪರಿಸ್ಥಿತಿಯೇ?", + "is_this_an_upshift": "ಇದು ಉನ್ನತಿಯೇ?", + "is_up_shift": "ಶಿಫ್ಟ್ ಆಗಿದೆ", + "is_upshift_case": "ಅಪ್ ಶಿಫ್ಟ್ ಕೇಸ್ ಆಗಿದೆ", + "landline": "ಭಾರತೀಯ ಸ್ಥಿರ ದೂರವಾಣಿ", + "last_administered": "ಕೊನೆಯದಾಗಿ ನಿರ್ವಹಿಸಲಾಗಿದೆ", + "last_edited": "ಕೊನೆಯದಾಗಿ ಸಂಪಾದಿಸಲಾಗಿದೆ", + "last_modified": "ಕೊನೆಯದಾಗಿ ಮಾರ್ಪಡಿಸಲಾಗಿದೆ", + "last_name": "ಕೊನೆಯ ಹೆಸರು", + "last_online": "ಕೊನೆಯ ಆನ್‌ಲೈನ್", + "last_serviced_on": "ಕೊನೆಯದಾಗಿ ಸೇವೆ ಸಲ್ಲಿಸಲಾಗಿದೆ", + "latitude_invalid": "ಅಕ್ಷಾಂಶವು -90 ಮತ್ತು 90 ರ ನಡುವೆ ಇರಬೇಕು", + "left": "ಎಡಕ್ಕೆ", + "linked_facilities": "ಲಿಂಕ್ಡ್ ಸೌಲಭ್ಯಗಳು", + "liquid_oxygen_capacity": "ದ್ರವ ಆಮ್ಲಜನಕದ ಸಾಮರ್ಥ್ಯ", + "list_view": "ಪಟ್ಟಿ ವೀಕ್ಷಣೆ", + "litres": "ಲೀಟರ್", + "litres_per_day": "ಲೀಟರ್ / ದಿನ", + "live": "ಲೈವ್", + "live_monitoring": "ಲೈವ್ ಮಾನಿಟರಿಂಗ್", + "load_more": "ಇನ್ನಷ್ಟು ಲೋಡ್ ಮಾಡಿ", + "loading": "ಲೋಡ್ ಆಗುತ್ತಿದೆ...", + "local_body": "ಸ್ಥಳೀಯ ಸಂಸ್ಥೆ", + "local_ipaddress": "ಸ್ಥಳೀಯ IP ವಿಳಾಸ", + "location": "ಸ್ಥಳ", + "location_management": "ಸ್ಥಳ ನಿರ್ವಹಣೆ", + "log_lab_results": "ಲಾಗ್ ಲ್ಯಾಬ್ ಫಲಿತಾಂಶಗಳು", + "log_report": "ಲಾಗ್ ವರದಿ", + "login": "ಲಾಗಿನ್", + "longitude_invalid": "ರೇಖಾಂಶವು -180 ಮತ್ತು 180 ರ ನಡುವೆ ಇರಬೇಕು", + "lsg": "Lsg", + "make_multiple_beds_label": "ನೀವು ಬಹು ಹಾಸಿಗೆಗಳನ್ನು ಮಾಡಲು ಬಯಸುವಿರಾ?", + "manage_prescriptions": "ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಿ", + "manufacturer": "ತಯಾರಕ", + "map_acronym": "ನಕ್ಷೆ", + "mark_all_as_read": "ಎಲ್ಲವನ್ನೂ ಓದಿ ಎಂದು ಗುರುತಿಸಿ", + "mark_as_read": "ಓದಿದಂತೆ ಗುರುತಿಸಿ", + "mark_as_unread": "ಓದದಿರುವಂತೆ ಗುರುತಿಸಿ", + "mark_this_transfer_as_complete_question": "ಈ ವರ್ಗಾವಣೆ ಪೂರ್ಣಗೊಂಡಿದೆ ಎಂದು ಗುರುತಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ? ಮೂಲ ಸೌಲಭ್ಯವು ಇನ್ನು ಮುಂದೆ ಈ ರೋಗಿಗೆ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿರುವುದಿಲ್ಲ", + "mark_transfer_complete_confirmation": "ಈ ವರ್ಗಾವಣೆ ಪೂರ್ಣಗೊಂಡಿದೆ ಎಂದು ಗುರುತಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ? ಮೂಲ ಸೌಲಭ್ಯವು ಇನ್ನು ಮುಂದೆ ಈ ರೋಗಿಗೆ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿರುವುದಿಲ್ಲ", + "max_dosage_24_hrs": "ಗರಿಷ್ಠ 24 ಗಂಟೆಗಳಲ್ಲಿ ಡೋಸೇಜ್", + "max_dosage_in_24hrs_gte_base_dosage_error": "ಗರಿಷ್ಠ 24 ಗಂಟೆಗಳಲ್ಲಿ ಡೋಸೇಜ್ ಬೇಸ್ ಡೋಸೇಜ್‌ಗಿಂತ ಹೆಚ್ಚಾಗಿರಬೇಕು ಅಥವಾ ಸಮನಾಗಿರಬೇಕು", + "max_size_for_image_uploaded_should_be": "ಅಪ್‌ಲೋಡ್ ಮಾಡಿದ ಚಿತ್ರಕ್ಕೆ ಗರಿಷ್ಠ ಗಾತ್ರ ಇರಬೇಕು", + "medical_worker": "ವೈದ್ಯಕೀಯ ಕೆಲಸಗಾರ", + "medicine": "ಔಷಧಿ", + "medicine_administration_history": "ಮೆಡಿಸಿನ್ ಅಡ್ಮಿನಿಸ್ಟ್ರೇಷನ್ ಇತಿಹಾಸ", + "medicines_administered": "ಔಷಧ(ಗಳು) ನಿರ್ವಹಿಸಲಾಗಿದೆ", + "medicines_administered_error": "ಔಷಧ(ಗಳನ್ನು) ನಿರ್ವಹಿಸುವಲ್ಲಿ ದೋಷ", + "middleware_hostname": "ಮಿಡಲ್ವೇರ್ ಹೋಸ್ಟ್ ಹೆಸರು", + "min_password_len_8": "ಕನಿಷ್ಠ ಪಾಸ್‌ವರ್ಡ್ ಉದ್ದ 8", + "min_time_bw_doses": "ಕನಿಷ್ಠ ಸಮಯ b/w ಪ್ರಮಾಣಗಳು", + "mobile": "ಮೊಬೈಲ್", + "mobile_number": "ಮೊಬೈಲ್ ಸಂಖ್ಯೆ", + "modification_caution_note": "ಒಮ್ಮೆ ಸೇರಿಸಿದ ನಂತರ ಯಾವುದೇ ಮಾರ್ಪಾಡುಗಳು ಸಾಧ್ಯವಿಲ್ಲ", + "modified": "ಮಾರ್ಪಡಿಸಲಾಗಿದೆ", + "modified_date": "ಮಾರ್ಪಡಿಸಿದ ದಿನಾಂಕ", + "monitor": "ಮಾನಿಟರ್", + "more_info": "ಹೆಚ್ಚಿನ ಮಾಹಿತಿ", + "moving_camera": "ಮೂವಿಂಗ್ ಕ್ಯಾಮೆರಾ", + "name": "ಹೆಸರು", + "name_of_hospital": "ಆಸ್ಪತ್ರೆಯ ಹೆಸರು", + "name_of_shifting_approving_facility": "ಶಿಫ್ಟಿಂಗ್ ಅನುಮೋದಿಸುವ ಸೌಲಭ್ಯದ ಹೆಸರು", + "nationality": "ರಾಷ್ಟ್ರೀಯತೆ", + "never": "ಎಂದಿಗೂ", + "new_password": "ಹೊಸ ಪಾಸ್ವರ್ಡ್", + "next_sessions": "ಮುಂದಿನ ಸೆಷನ್‌ಗಳು", + "no": "ಸಂ", + "no_bed_types_found": "ಯಾವುದೇ ಹಾಸಿಗೆಯ ಪ್ರಕಾರಗಳು ಕಂಡುಬಂದಿಲ್ಲ", + "no_changes": "ಯಾವುದೇ ಬದಲಾವಣೆಗಳಿಲ್ಲ", + "no_changes_made": "ಯಾವುದೇ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡಲಾಗಿಲ್ಲ", + "no_consultation_updates": "ಸಮಾಲೋಚನೆಯ ನವೀಕರಣಗಳಿಲ್ಲ", + "no_cover_photo_uploaded_for_this_facility": "ಈ ಸೌಲಭ್ಯಕ್ಕಾಗಿ ಯಾವುದೇ ಕವರ್ ಫೋಟೋ ಅಪ್‌ಲೋಡ್ ಮಾಡಲಾಗಿಲ್ಲ", + "no_data_found": "ಯಾವುದೇ ಡೇಟಾ ಕಂಡುಬಂದಿಲ್ಲ", + "no_duplicate_facility": "ನೀವು ನಕಲಿ ಸೌಲಭ್ಯಗಳನ್ನು ರಚಿಸಬಾರದು", + "no_facilities": "ಯಾವುದೇ ಸೌಲಭ್ಯಗಳು ಕಂಡುಬಂದಿಲ್ಲ", + "no_files_found": "ಯಾವುದೇ {{type}} ಫೈಲ್‌ಗಳು ಕಂಡುಬಂದಿಲ್ಲ", + "no_home_facility": "ಮನೆ ಸೌಲಭ್ಯ ನೀಡಿಲ್ಲ", + "no_investigation": "ಯಾವುದೇ ತನಿಖಾ ವರದಿಗಳು ಕಂಡುಬಂದಿಲ್ಲ", + "no_investigation_suggestions": "ಯಾವುದೇ ತನಿಖೆಯ ಸಲಹೆಗಳಿಲ್ಲ", + "no_linked_facilities": "ಯಾವುದೇ ಲಿಂಕ್ ಮಾಡಲಾದ ಸೌಲಭ್ಯಗಳಿಲ್ಲ", + "no_log_update_delta": "ಹಿಂದಿನ ಲಾಗ್ ನವೀಕರಣದ ನಂತರ ಯಾವುದೇ ಬದಲಾವಣೆಗಳಿಲ್ಲ", + "no_notices_for_you": "ನಿಮಗಾಗಿ ಯಾವುದೇ ಸೂಚನೆಗಳಿಲ್ಲ.", + "no_patients_to_show": "ತೋರಿಸಲು ರೋಗಿಗಳಿಲ್ಲ.", + "no_results_found": "ಯಾವುದೇ ಫಲಿತಾಂಶಗಳು ಕಂಡುಬಂದಿಲ್ಲ", + "no_staff": "ಸಿಬ್ಬಂದಿ ಪತ್ತೆಯಾಗಿಲ್ಲ", + "no_treating_physicians_available": "ಈ ಸೌಲಭ್ಯವು ಯಾವುದೇ ಮನೆ ಸೌಲಭ್ಯ ವೈದ್ಯರನ್ನು ಹೊಂದಿಲ್ಲ. ದಯವಿಟ್ಟು ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ.", + "no_users_found": "ಯಾವುದೇ ಬಳಕೆದಾರರು ಕಂಡುಬಂದಿಲ್ಲ", + "none": "ಯಾವುದೂ ಇಲ್ಲ", + "normal": "ಸಾಮಾನ್ಯ", + "not_specified": "ನಿರ್ದಿಷ್ಟಪಡಿಸಲಾಗಿಲ್ಲ", + "notes": "ಟಿಪ್ಪಣಿಗಳು", + "notes_placeholder": "ನಿಮ್ಮ ಟಿಪ್ಪಣಿಗಳನ್ನು ಟೈಪ್ ಮಾಡಿ", + "notification_permission_denied": "ಅಧಿಸೂಚನೆ ಅನುಮತಿ ನಿರಾಕರಿಸಲಾಗಿದೆ", + "notification_permission_granted": "ಅಧಿಸೂಚನೆ ಅನುಮತಿ ನೀಡಲಾಗಿದೆ", + "number_of_aged_dependents_above_60": "ವಯಸ್ಸಾದ ಅವಲಂಬಿತರ ಸಂಖ್ಯೆ (60 ಕ್ಕಿಂತ ಹೆಚ್ಚು)", + "number_of_beds": "ಹಾಸಿಗೆಗಳ ಸಂಖ್ಯೆ", + "number_of_beds_out_of_range_error": "ಹಾಸಿಗೆಗಳ ಸಂಖ್ಯೆ 100 ಕ್ಕಿಂತ ಹೆಚ್ಚಿರಬಾರದು", + "number_of_chronic_diseased_dependents": "ದೀರ್ಘಕಾಲದ ರೋಗಗಳ ಅವಲಂಬಿತರ ಸಂಖ್ಯೆ", + "on": "ಆನ್", + "ongoing_medications": "ನಡೆಯುತ್ತಿರುವ ಔಷಧಿಗಳು", + "open": "ತೆರೆಯಿರಿ", + "open_camera": "ಕ್ಯಾಮರಾ ತೆರೆಯಿರಿ", + "open_live_monitoring": "ಲೈವ್ ಮಾನಿಟರಿಂಗ್ ತೆರೆಯಿರಿ", + "optional": "ಐಚ್ಛಿಕ", + "ordering": "ಆರ್ಡರ್ ಮಾಡಲಾಗುತ್ತಿದೆ", + "origin_facility": "ಪ್ರಸ್ತುತ ಸೌಲಭ್ಯ", + "oxygen_information": "ಆಮ್ಲಜನಕ ಮಾಹಿತಿ", + "page_not_found": "ಪುಟ ಕಂಡುಬಂದಿಲ್ಲ", + "pain": "ನೋವು", + "pain_chart_description": "ನೋವಿನ ಪ್ರದೇಶ ಮತ್ತು ತೀವ್ರತೆಯನ್ನು ಗುರುತಿಸಿ", + "passport_number": "ಪಾಸ್ಪೋರ್ಟ್ ಸಂಖ್ಯೆ", + "password": "ಪಾಸ್ವರ್ಡ್", + "password_mismatch": "ಪಾಸ್ವರ್ಡ್ ಮತ್ತು ದೃಢೀಕರಣ ಪಾಸ್ವರ್ಡ್ ಒಂದೇ ಆಗಿರಬೇಕು.", + "password_reset_failure": "ಪಾಸ್ವರ್ಡ್ ಮರುಹೊಂದಿಸಲು ವಿಫಲವಾಗಿದೆ", + "password_reset_success": "ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಮರುಹೊಂದಿಸಲಾಗಿದೆ", + "password_sent": "ಪಾಸ್ವರ್ಡ್ ಮರುಹೊಂದಿಸುವ ಇಮೇಲ್ ಕಳುಹಿಸಲಾಗಿದೆ", + "patient_address": "ರೋಗಿಯ ವಿಳಾಸ", + "patient_category": "ರೋಗಿಗಳ ವರ್ಗ", + "patient_consultation__admission": "ಪ್ರವೇಶ ದಿನಾಂಕ", + "patient_consultation__consultation_notes": "ಸಾಮಾನ್ಯ ಸೂಚನೆಗಳು", + "patient_consultation__dc_admission": "ಮನೆಯ ಆರೈಕೆಯ ದಿನಾಂಕ ಪ್ರಾರಂಭವಾಗಿದೆ", + "patient_consultation__ip": "IP", + "patient_consultation__op": "OP", + "patient_consultation__special_instruction": "ವಿಶೇಷ ಸೂಚನೆಗಳು", + "patient_consultation__treatment__plan": "ಯೋಜನೆ", + "patient_consultation__treatment__summary": "ಸಾರಾಂಶ", + "patient_consultation__treatment__summary__date": "ದಿನಾಂಕ", + "patient_consultation__treatment__summary__spo2": "SpO2", + "patient_consultation__treatment__summary__temperature": "ತಾಪಮಾನ", + "patient_created": "ರೋಗಿಯನ್ನು ರಚಿಸಲಾಗಿದೆ", + "patient_name": "ರೋಗಿಯ ಹೆಸರು", + "patient_no": "OP/IP ಸಂ", + "patient_phone_number": "ರೋಗಿಯ ಫೋನ್ ಸಂಖ್ಯೆ", + "patient_registration__address": "ವಿಳಾಸ", + "patient_registration__age": "ವಯಸ್ಸು", + "patient_registration__comorbidities": "ಸಹವರ್ತಿ ರೋಗಗಳು", + "patient_registration__comorbidities__details": "ವಿವರಗಳು", + "patient_registration__comorbidities__disease": "ರೋಗ", + "patient_registration__contact": "ತುರ್ತು ಸಂಪರ್ಕ", + "patient_registration__gender": "ಲಿಂಗ", + "patient_registration__name": "ಹೆಸರು", + "patient_state": "ರೋಗಿಯ ಸ್ಥಿತಿ", + "patient_status": "ರೋಗಿಯ ಸ್ಥಿತಿ", + "patient_transfer_birth_match_note": "ಗಮನಿಸಿ: ವರ್ಗಾವಣೆ ವಿನಂತಿಯನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಹುಟ್ಟಿದ ವರ್ಷವು ರೋಗಿಗೆ ಹೊಂದಿಕೆಯಾಗಬೇಕು.", + "phone": "ಫೋನ್", + "phone_no": "ದೂರವಾಣಿ ಸಂಖ್ಯೆ.", + "phone_number": "ದೂರವಾಣಿ ಸಂಖ್ಯೆ", + "phone_number_at_current_facility": "ಪ್ರಸ್ತುತ ಸೌಲಭ್ಯದಲ್ಲಿರುವ ವ್ಯಕ್ತಿಯ ಸಂಪರ್ಕದ ಫೋನ್ ಸಂಖ್ಯೆ", + "pincode": "ಪಿನ್‌ಕೋಡ್", + "please_enter_a_reason_for_the_shift": "ದಯವಿಟ್ಟು ಶಿಫ್ಟ್‌ಗೆ ಕಾರಣವನ್ನು ನಮೂದಿಸಿ.", + "please_select_a_facility": "ದಯವಿಟ್ಟು ಸೌಲಭ್ಯವನ್ನು ಆಯ್ಕೆಮಾಡಿ", + "please_select_breathlessness_level": "ದಯವಿಟ್ಟು ಉಸಿರಾಟದ ಮಟ್ಟವನ್ನು ಆಯ್ಕೆಮಾಡಿ", + "please_select_facility_type": "ದಯವಿಟ್ಟು ಸೌಲಭ್ಯದ ಪ್ರಕಾರವನ್ನು ಆಯ್ಕೆಮಾಡಿ", + "please_select_patient_category": "ದಯವಿಟ್ಟು ರೋಗಿಯ ವರ್ಗವನ್ನು ಆಯ್ಕೆಮಾಡಿ", + "please_select_preferred_vehicle_type": "ದಯವಿಟ್ಟು ಆದ್ಯತೆಯ ವಾಹನದ ಪ್ರಕಾರವನ್ನು ಆಯ್ಕೆಮಾಡಿ", + "please_select_status": "ದಯವಿಟ್ಟು ಸ್ಥಿತಿಯನ್ನು ಆಯ್ಕೆಮಾಡಿ", + "please_upload_a_csv_file": "ದಯವಿಟ್ಟು CSV ಫೈಲ್ ಅನ್ನು ಅಪ್‌ಲೋಡ್ ಮಾಡಿ", + "post_your_comment": "ನಿಮ್ಮ ಕಾಮೆಂಟ್ ಅನ್ನು ಪೋಸ್ಟ್ ಮಾಡಿ", + "powered_by": "ನಡೆಸಲ್ಪಡುತ್ತಿದೆ", + "preferred_facility_type": "ಆದ್ಯತೆಯ ಸೌಲಭ್ಯದ ಪ್ರಕಾರ", + "preferred_vehicle": "ಆದ್ಯತೆಯ ವಾಹನ", + "prescription": "ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್", + "prescription_details": "ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್ ವಿವರಗಳು", + "prescription_discontinued": "ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್ ಸ್ಥಗಿತಗೊಂಡಿದೆ", + "prescription_logs": "ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್ ದಾಖಲೆಗಳು", + "prescription_medication": "ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್ ಔಷಧಿ", + "prescription_medications": "ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್ ಔಷಧಿಗಳು", + "prescriptions__dosage_frequency": "ಡೋಸೇಜ್ ಮತ್ತು ಆವರ್ತನ", + "prescriptions__medicine": "ಔಷಧಿ", + "prescriptions__route": "ಮಾರ್ಗ", + "prescriptions__start_date": "ರಂದು ಸೂಚಿಸಲಾಗಿದೆ", + "prev_sessions": "ಹಿಂದಿನ ಅವಧಿಗಳು", + "principal": "ಪ್ರಿನ್ಸಿಪಾಲ್", + "principal_diagnosis": "ಮುಖ್ಯ ರೋಗನಿರ್ಣಯ", + "print": "ಮುದ್ರಿಸು", + "print_referral_letter": "ರೆಫರಲ್ ಲೆಟರ್ ಅನ್ನು ಮುದ್ರಿಸಿ", + "prn_prescription": "PRN ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್", + "prn_prescriptions": "PRN ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್‌ಗಳು", + "procedure_suggestions": "ಕಾರ್ಯವಿಧಾನದ ಸಲಹೆಗಳು", + "provisional": "ತಾತ್ಕಾಲಿಕ", + "ration_card__APL": "ಎಪಿಎಲ್", + "ration_card__BPL": "ಬಿಪಿಎಲ್", + "ration_card__NO_CARD": "ಕಾರ್ಡ್ ಅಲ್ಲದ ಹೋಲ್ಡರ್", + "reason": "ಕಾರಣ", + "reason_for_discontinuation": "ಸ್ಥಗಿತಗೊಳ್ಳಲು ಕಾರಣ", + "reason_for_edit": "ಸಂಪಾದನೆಗೆ ಕಾರಣ", + "reason_for_referral": "ಉಲ್ಲೇಖಕ್ಕೆ ಕಾರಣ", + "reason_for_shift": "ಸ್ಥಳಾಂತರಕ್ಕೆ ಕಾರಣ", + "recommended_aspect_ratio_for": "ಇದಕ್ಕಾಗಿ ಶಿಫಾರಸು ಮಾಡಲಾದ ಆಕಾರ ಅನುಪಾತ", + "record": "ರೆಕಾರ್ಡ್ ಆಡಿಯೋ", + "record_delete_confirm": "ಈ ದಾಖಲೆಯನ್ನು ಅಳಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?", + "record_has_been_deleted_successfully": "ದಾಖಲೆಯನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಅಳಿಸಲಾಗಿದೆ.", + "record_updates": "ರೆಕಾರ್ಡ್ ನವೀಕರಣಗಳು", + "recording": "ರೆಕಾರ್ಡಿಂಗ್", + "redirected_to_create_consultation": "ಗಮನಿಸಿ: ಸಮಾಲೋಚನೆ ಫಾರ್ಮ್ ರಚಿಸಲು ನಿಮ್ಮನ್ನು ಮರುನಿರ್ದೇಶಿಸಲಾಗುತ್ತದೆ. ವರ್ಗಾವಣೆ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ದಯವಿಟ್ಟು ಫಾರ್ಮ್ ಅನ್ನು ಪೂರ್ಣಗೊಳಿಸಿ", + "referral_letter": "ಉಲ್ಲೇಖ ಪತ್ರ", + "referred_to": "ಉಲ್ಲೇಖಿಸಲಾಗಿದೆ", + "refresh_list": "ಪಟ್ಟಿಯನ್ನು ರಿಫ್ರೆಶ್ ಮಾಡಿ", + "refuted": "ನಿರಾಕರಿಸಲಾಗಿದೆ", + "register_hospital": "ಆಸ್ಪತ್ರೆಯನ್ನು ನೋಂದಾಯಿಸಿ", + "register_page_title": "ಆಸ್ಪತ್ರೆ ನಿರ್ವಾಹಕರಾಗಿ ನೋಂದಾಯಿಸಿ", + "reload": "ಮರುಲೋಡ್ ಮಾಡಿ", + "remove": "ತೆಗೆದುಹಾಕಿ", + "rename": "ಮರುಹೆಸರಿಸು", + "report": "ವರದಿ", + "req_atleast_one_digit": "ಕನಿಷ್ಠ ಒಂದು ಅಂಕಿ ಅಗತ್ಯವಿದೆ", + "req_atleast_one_lowercase": "ಕನಿಷ್ಠ ಒಂದು ಸಣ್ಣ ಅಕ್ಷರದ ಅಗತ್ಯವಿದೆ", + "req_atleast_one_symbol": "ಕನಿಷ್ಠ ಒಂದು ಚಿಹ್ನೆಯ ಅಗತ್ಯವಿದೆ", + "req_atleast_one_uppercase": "ಕನಿಷ್ಠ ಒಂದು ದೊಡ್ಡ ಪ್ರಕರಣದ ಅಗತ್ಯವಿದೆ", + "request_description": "ವಿನಂತಿಯ ವಿವರಣೆ", + "request_description_placeholder": "ನಿಮ್ಮ ವಿವರಣೆಯನ್ನು ಇಲ್ಲಿ ಟೈಪ್ ಮಾಡಿ", + "request_title": "ವಿನಂತಿ ಶೀರ್ಷಿಕೆ", + "request_title_placeholder": "ನಿಮ್ಮ ಶೀರ್ಷಿಕೆಯನ್ನು ಇಲ್ಲಿ ಟೈಪ್ ಮಾಡಿ", + "required": "ಅಗತ್ಯವಿದೆ", + "required_quantity": "ಅಗತ್ಯವಿರುವ ಪ್ರಮಾಣ", + "reset": "ಮರುಹೊಂದಿಸಿ", + "reset_password": "ಪಾಸ್ವರ್ಡ್ ಮರುಹೊಂದಿಸಿ", + "resource_request": "ಸಂಪನ್ಮೂಲ ವಿನಂತಿ", + "result": "ಫಲಿತಾಂಶ", + "result_date": "ಫಲಿತಾಂಶ ದಿನಾಂಕ", + "result_details": "ಫಲಿತಾಂಶದ ವಿವರಗಳು", + "resume": "ಪುನರಾರಂಭಿಸಿ", + "retake": "ಮರುಪಡೆಯಿರಿ", + "return_to_care": "CARE ಗೆ ಹಿಂತಿರುಗಿ", + "return_to_login": "ಲಾಗಿನ್‌ಗೆ ಹಿಂತಿರುಗಿ", + "return_to_password_reset": "ಪಾಸ್ವರ್ಡ್ ಮರುಹೊಂದಿಸಲು ಹಿಂತಿರುಗಿ", + "return_to_patient_dashboard": "ರೋಗಿಯ ಡ್ಯಾಶ್‌ಬೋರ್ಡ್‌ಗೆ ಹಿಂತಿರುಗಿ", + "right": "ಸರಿ", + "route": "ಮಾರ್ಗ", + "sample_collection_date": "ಮಾದರಿ ಸಂಗ್ರಹ ದಿನಾಂಕ", + "sample_format": "ಮಾದರಿ ಸ್ವರೂಪ", + "sample_type": "ಮಾದರಿ ಪ್ರಕಾರ", + "save": "ಉಳಿಸಿ", + "save_and_continue": "ಉಳಿಸಿ ಮತ್ತು ಮುಂದುವರಿಸಿ", + "save_investigation": "ತನಿಖೆಯನ್ನು ಉಳಿಸಿ", + "scan_asset_qr": "ಸ್ವತ್ತು QR ಅನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಿ!", + "search_by_username": "ಬಳಕೆದಾರ ಹೆಸರಿನ ಮೂಲಕ ಹುಡುಕಿ", + "search_for_facility": "ಸೌಲಭ್ಯಕ್ಕಾಗಿ ಹುಡುಕಿ", + "search_icd11_placeholder": "ICD-11 ರೋಗನಿರ್ಣಯಗಳಿಗಾಗಿ ಹುಡುಕಿ", + "search_investigation_placeholder": "ಹುಡುಕಾಟ ತನಿಖೆ ಮತ್ತು ಗುಂಪುಗಳು", + "search_patient": "ರೋಗಿಯನ್ನು ಹುಡುಕಿ", + "search_resource": "ಹುಡುಕಾಟ ಸಂಪನ್ಮೂಲ", + "select": "ಆಯ್ಕೆ ಮಾಡಿ", + "select_date": "ದಿನಾಂಕವನ್ನು ಆಯ್ಕೆಮಾಡಿ", + "select_facility_for_discharged_patients_warning": "ಬಿಡುಗಡೆಯಾದ ರೋಗಿಗಳನ್ನು ವೀಕ್ಷಿಸಲು ಸೌಲಭ್ಯವನ್ನು ಆಯ್ಕೆ ಮಾಡಬೇಕಾಗಿದೆ.", + "select_for_administration": "ಆಡಳಿತಕ್ಕಾಗಿ ಆಯ್ಕೆಮಾಡಿ", + "select_groups": "ಗುಂಪುಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ", + "select_investigation": "ತನಿಖೆಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ (ಎಲ್ಲಾ ತನಿಖೆಗಳನ್ನು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಆಯ್ಕೆ ಮಾಡಲಾಗುತ್ತದೆ)", + "select_investigation_groups": "ತನಿಖಾ ಗುಂಪುಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ", + "select_investigations": "ತನಿಖೆಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ", + "select_local_body": "ಸ್ಥಳೀಯ ಸಂಸ್ಥೆಯನ್ನು ಆಯ್ಕೆಮಾಡಿ", + "select_skills": "ಕೆಲವು ಕೌಶಲ್ಯಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ ಮತ್ತು ಸೇರಿಸಿ", + "select_wards": "ವಾರ್ಡ್‌ಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ", + "send_email": "ಇಮೇಲ್ ಕಳುಹಿಸಿ", + "send_reset_link": "ಮರುಹೊಂದಿಸುವ ಲಿಂಕ್ ಕಳುಹಿಸಿ", + "serial_number": "ಸರಣಿ ಸಂಖ್ಯೆ", + "serviced_on": "ಸೇವೆ ಸಲ್ಲಿಸಲಾಗಿದೆ", + "session_expired": "ಅವಧಿ ಮುಗಿದಿದೆ", + "session_expired_msg": "ನಿಮ್ಮ ಅವಧಿ ಮುಗಿದಿದೆ ಎಂದು ತೋರುತ್ತಿದೆ. ಇದು ನಿಷ್ಕ್ರಿಯತೆಯ ಕಾರಣದಿಂದಾಗಿರಬಹುದು. ಮುಂದುವರಿಸಲು ದಯವಿಟ್ಟು ಮತ್ತೆ ಲಾಗಿನ್ ಮಾಡಿ.", + "set_average_weekly_working_hours_for": "ಸರಾಸರಿ ಸಾಪ್ತಾಹಿಕ ಕೆಲಸದ ಸಮಯವನ್ನು ಹೊಂದಿಸಿ", + "settings_and_filters": "ಸೆಟ್ಟಿಂಗ್‌ಗಳು ಮತ್ತು ಫಿಲ್ಟರ್‌ಗಳು", + "severity_of_breathlessness": "ಉಸಿರಾಟದ ತೀವ್ರತೆ", + "shift_request_updated_successfully": "ಶಿಫ್ಟ್ ವಿನಂತಿಯನ್ನು ಯಶಸ್ವಿಯಾಗಿ ನವೀಕರಿಸಲಾಗಿದೆ", + "shifting": "ಶಿಫ್ಟಿಂಗ್", + "shifting_approval_facility": "ಶಿಫ್ಟಿಂಗ್ ಅನುಮೋದನೆ ಸೌಲಭ್ಯ", + "shifting_approving_facility": "ಅನುಮೋದಿಸುವ ಸೌಲಭ್ಯವನ್ನು ಬದಲಾಯಿಸಲಾಗುತ್ತಿದೆ", + "shifting_approving_facility_can_not_be_empty": "ಶಿಫ್ಟಿಂಗ್ ಅನುಮೋದಿಸುವ ಸೌಲಭ್ಯ ಖಾಲಿ ಇರುವಂತಿಲ್ಲ.", + "shifting_deleted": "ಶಿಫ್ಟಿಂಗ್ ದಾಖಲೆಯನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಅಳಿಸಲಾಗಿದೆ.", + "shifting_details": "ವಿವರಗಳನ್ನು ಬದಲಾಯಿಸಲಾಗುತ್ತಿದೆ", + "shifting_status": "ಸ್ಥಿತಿಯನ್ನು ಬದಲಾಯಿಸಲಾಗುತ್ತಿದೆ", + "show_all": "ಎಲ್ಲವನ್ನೂ ತೋರಿಸು", + "show_all_notifications": "ಎಲ್ಲವನ್ನೂ ತೋರಿಸು", + "show_default_presets": "ಡೀಫಾಲ್ಟ್ ಪೂರ್ವನಿಗದಿಗಳನ್ನು ತೋರಿಸಿ", + "show_patient_presets": "ರೋಗಿಯ ಪೂರ್ವನಿಗದಿಗಳನ್ನು ತೋರಿಸಿ", + "show_unread_notifications": "ಓದದಿರುವುದನ್ನು ತೋರಿಸಿ", + "sign_out": "ಸೈನ್ ಔಟ್ ಮಾಡಿ", + "something_went_wrong": "ಏನೋ ತಪ್ಪಾಗಿದೆ..!", + "something_wrong": "ಏನೋ ತಪ್ಪಾಗಿದೆ! ನಂತರ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ!", + "sort_by": "ವಿಂಗಡಿಸಿ", + "source": "ಮೂಲ", + "srf_id": "SRF ID", + "staff_list": "ಸಿಬ್ಬಂದಿ ಪಟ್ಟಿ", + "start_dosage": "ಡೋಸೇಜ್ ಪ್ರಾರಂಭಿಸಿ", + "state": "ರಾಜ್ಯ", + "status": "ಸ್ಥಿತಿ", + "stop": "ನಿಲ್ಲಿಸು", + "stream_stop_due_to_inativity": "ನಿಷ್ಕ್ರಿಯತೆಯ ಕಾರಣ ಲೈವ್ ಫೀಡ್ ಸ್ಟ್ರೀಮಿಂಗ್ ಅನ್ನು ನಿಲ್ಲಿಸುತ್ತದೆ", + "stream_stopped_due_to_inativity": "ನಿಷ್ಕ್ರಿಯತೆಯಿಂದಾಗಿ ಲೈವ್ ಫೀಡ್ ಸ್ಟ್ರೀಮಿಂಗ್ ಅನ್ನು ನಿಲ್ಲಿಸಿದೆ", + "sub_category": "ಉಪ ವರ್ಗ", + "submit": "ಸಲ್ಲಿಸಿ", + "submitting": "ಸಲ್ಲಿಸಲಾಗುತ್ತಿದೆ", + "subscribe": "ಚಂದಾದಾರರಾಗಿ", + "subscribe_on_this_device": "ಈ ಸಾಧನದಲ್ಲಿ ಚಂದಾದಾರರಾಗಿ", + "subscription_error": "ಚಂದಾದಾರಿಕೆ ದೋಷ", + "suggested_investigations": "ಸೂಚಿಸಿದ ತನಿಖೆಗಳು", + "summary": "ಸಾರಾಂಶ", + "support": "ಬೆಂಬಲ", + "switch": "ಬದಲಿಸಿ", + "systolic": "ಸಿಸ್ಟೊಲಿಕ್", + "tachycardia": "ಟಾಕಿಕಾರ್ಡಿಯಾ", + "target_dosage": "ಗುರಿ ಡೋಸೇಜ್", + "test_type": "ಪರೀಕ್ಷಾ ಪ್ರಕಾರ", + "titrate_dosage": "ಟೈಟ್ರೇಟ್ ಡೋಸೇಜ್", + "to_be_conducted": "ನಡೆಸಲಾಗುವುದು", + "total_beds": "ಒಟ್ಟು ಹಾಸಿಗೆಗಳು", + "total_users": "ಒಟ್ಟು ಬಳಕೆದಾರರು", + "transfer_in_progress": "ವರ್ಗಾವಣೆ ಪ್ರಗತಿಯಲ್ಲಿದೆ", + "transfer_to_receiving_facility": "ಸ್ವೀಕರಿಸುವ ಸೌಲಭ್ಯಕ್ಕೆ ವರ್ಗಾಯಿಸಿ", + "travel_within_last_28_days": "ದೇಶೀಯ/ಅಂತರರಾಷ್ಟ್ರೀಯ ಪ್ರಯಾಣ (ಕಳೆದ 28 ದಿನಗಳಲ್ಲಿ)", + "treating_doctor": "ಚಿಕಿತ್ಸೆ ನೀಡುತ್ತಿರುವ ವೈದ್ಯರು", + "treatment_summary": "ಚಿಕಿತ್ಸೆಯ ಸಾರಾಂಶ", + "treatment_summary__head_title": "ಚಿಕಿತ್ಸೆಯ ಸಾರಾಂಶ", + "treatment_summary__heading": "ಮಧ್ಯಂತರ ಚಿಕಿತ್ಸೆಯ ಸಾರಾಂಶ", + "treatment_summary__print": "ಪ್ರಿಂಟ್ ಟ್ರೀಟ್ಮೆಂಟ್ ಸಾರಾಂಶ", + "try_again_later": "ನಂತರ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ!", + "type_any_extra_comments_here": "ಯಾವುದೇ ಹೆಚ್ಚುವರಿ ಕಾಮೆಂಟ್‌ಗಳನ್ನು ಇಲ್ಲಿ ಟೈಪ್ ಮಾಡಿ", + "type_b_cylinders": "ಬಿ ಮಾದರಿಯ ಸಿಲಿಂಡರ್‌ಗಳು", + "type_c_cylinders": "ಸಿ ಮಾದರಿಯ ಸಿಲಿಂಡರ್‌ಗಳು", + "type_d_cylinders": "ಡಿ ಮಾದರಿಯ ಸಿಲಿಂಡರ್‌ಗಳು", + "type_to_search": "ಹುಡುಕಲು ಟೈಪ್ ಮಾಡಿ", + "type_your_comment": "ನಿಮ್ಮ ಕಾಮೆಂಟ್ ಅನ್ನು ಟೈಪ್ ಮಾಡಿ", + "type_your_reason_here": "ನಿಮ್ಮ ಕಾರಣವನ್ನು ಇಲ್ಲಿ ಟೈಪ್ ಮಾಡಿ", + "unconfirmed": "ದೃಢೀಕರಿಸಲಾಗಿಲ್ಲ", + "unique_id": "ವಿಶಿಷ್ಟ ಐಡಿ", + "unknown": "ಅಜ್ಞಾತ", + "unsubscribe": "ಅನ್‌ಸಬ್‌ಸ್ಕ್ರೈಬ್ ಮಾಡಿ", + "unsubscribe_failed": "ಅನ್‌ಸಬ್‌ಸ್ಕ್ರೈಬ್ ವಿಫಲವಾಗಿದೆ.", + "unsupported_browser": "ಬೆಂಬಲಿತವಲ್ಲದ ಬ್ರೌಸರ್", + "up": "ಮೇಲಕ್ಕೆ", + "up_shift": "ಅಪ್ ಶಿಫ್ಟ್", + "update": "ನವೀಕರಿಸಿ", + "update_asset": "ಆಸ್ತಿಯನ್ನು ನವೀಕರಿಸಿ", + "update_asset_service_record": "ಸ್ವತ್ತು ಸೇವಾ ದಾಖಲೆಯನ್ನು ನವೀಕರಿಸಿ", + "update_bed": "ಹಾಸಿಗೆಯನ್ನು ನವೀಕರಿಸಿ", + "update_facility": "ನವೀಕರಣ ಸೌಲಭ್ಯ", + "update_facility_middleware_success": "ಸೌಲಭ್ಯ ಮಿಡಲ್‌ವೇರ್ ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ನವೀಕರಿಸಲಾಗಿದೆ", + "update_log": "ಲಾಗ್ ಅನ್ನು ನವೀಕರಿಸಿ", + "update_record": "ದಾಖಲೆಯನ್ನು ನವೀಕರಿಸಿ", + "update_record_for_asset": "ಆಸ್ತಿಗಾಗಿ ದಾಖಲೆಯನ್ನು ನವೀಕರಿಸಿ", + "update_shift_request": "ಶಿಫ್ಟ್ ವಿನಂತಿಯನ್ನು ನವೀಕರಿಸಿ", + "update_status_details": "ಸ್ಥಿತಿ/ವಿವರಗಳನ್ನು ನವೀಕರಿಸಿ", + "updated": "ನವೀಕರಿಸಲಾಗಿದೆ", + "updating": "ನವೀಕರಿಸಲಾಗುತ್ತಿದೆ", + "upload": "ಅಪ್ಲೋಡ್ ಮಾಡಿ", + "upload_an_image": "ಚಿತ್ರವನ್ನು ಅಪ್‌ಲೋಡ್ ಮಾಡಿ", + "upload_headings__consultation": "ಹೊಸ ಸಮಾಲೋಚನೆ ಫೈಲ್ ಅನ್ನು ಅಪ್ಲೋಡ್ ಮಾಡಿ", + "upload_headings__patient": "ಹೊಸ ರೋಗಿಯ ಫೈಲ್ ಅನ್ನು ಅಪ್‌ಲೋಡ್ ಮಾಡಿ", + "upload_headings__sample_report": "ಮಾದರಿ ವರದಿಯನ್ನು ಅಪ್ಲೋಡ್ ಮಾಡಿ", + "upload_headings__supporting_info": "ಪೋಷಕ ಮಾಹಿತಿಯನ್ನು ಅಪ್ಲೋಡ್ ಮಾಡಿ", + "uploading": "ಅಪ್‌ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ", + "user_deleted_successfuly": "ಬಳಕೆದಾರರನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಅಳಿಸಲಾಗಿದೆ", + "user_management": "ಬಳಕೆದಾರ ನಿರ್ವಹಣೆ", + "username": "ಬಳಕೆದಾರ ಹೆಸರು", + "users": "ಬಳಕೆದಾರರು", + "vehicle_preference": "ವಾಹನ ಆದ್ಯತೆ", + "vendor_name": "ಮಾರಾಟಗಾರರ ಹೆಸರು", + "view": "ವೀಕ್ಷಿಸಿ", + "view_abdm_records": "ABDM ದಾಖಲೆಗಳನ್ನು ವೀಕ್ಷಿಸಿ", + "view_asset": "ಸ್ವತ್ತುಗಳನ್ನು ವೀಕ್ಷಿಸಿ", + "view_details": "ವಿವರಗಳನ್ನು ವೀಕ್ಷಿಸಿ", + "view_faciliy": "ವೀಕ್ಷಣೆ ಸೌಲಭ್ಯ", + "view_patients": "ರೋಗಿಗಳನ್ನು ವೀಕ್ಷಿಸಿ", + "view_users": "ಬಳಕೆದಾರರನ್ನು ವೀಕ್ಷಿಸಿ", + "virtual_nursing_assistant": "ವರ್ಚುವಲ್ ನರ್ಸಿಂಗ್ ಸಹಾಯಕ", + "ward": "ವಾರ್ಡ್", + "warranty_amc_expiry": "ವಾರಂಟಿ / AMC ಮುಕ್ತಾಯ", + "what_facility_assign_the_patient_to": "ರೋಗಿಯನ್ನು ಯಾವ ಸೌಲಭ್ಯಕ್ಕೆ ನಿಯೋಜಿಸಲು ನೀವು ಬಯಸುತ್ತೀರಿ", + "why_the_asset_is_not_working": "ಸ್ವತ್ತು ಏಕೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿಲ್ಲ?", + "working_status": "ಕೆಲಸದ ಸ್ಥಿತಿ", + "yes": "ಹೌದು", + "yet_to_be_decided": "ಇನ್ನೂ ನಿರ್ಧರಿಸಬೇಕಿದೆ", + "you_need_at_least_a_location_to_create_an_assest": "ಆಸ್ತಿಯನ್ನು ರಚಿಸಲು ನಿಮಗೆ ಕನಿಷ್ಠ ಸ್ಥಳದ ಅಗತ್ಯವಿದೆ.", + "zoom_in": "ಜೂಮ್ ಇನ್", + "zoom_out": "ಜೂಮ್ ಔಟ್" +} diff --git a/src/Locale/kn/Asset.json b/src/Locale/kn/Asset.json deleted file mode 100644 index be7a3daca22..00000000000 --- a/src/Locale/kn/Asset.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "create_asset": "ಆಸ್ತಿಯನ್ನು ರಚಿಸಿ", - "edit_history": "ಇತಿಹಾಸವನ್ನು ಸಂಪಾದಿಸಿ", - "update_record_for_asset": "ಆಸ್ತಿಗಾಗಿ ದಾಖಲೆಯನ್ನು ನವೀಕರಿಸಿ", - "edited_on": "ರಂದು ಸಂಪಾದಿಸಲಾಗಿದೆ", - "edited_by": "ಸಂಪಾದಿಸಿದವರು", - "serviced_on": "ಸೇವೆ ಸಲ್ಲಿಸಲಾಗಿದೆ", - "notes": "ಟಿಪ್ಪಣಿಗಳು", - "back": "ಹಿಂದೆ", - "close": "ಮುಚ್ಚಿ", - "update_asset_service_record": "ಸ್ವತ್ತು ಸೇವಾ ದಾಖಲೆಯನ್ನು ನವೀಕರಿಸಿ", - "eg_details_on_functionality_service_etc": "ಉದಾ. ಕಾರ್ಯನಿರ್ವಹಣೆ, ಸೇವೆ ಇತ್ಯಾದಿಗಳ ವಿವರಗಳು.", - "updating": "ನವೀಕರಿಸಲಾಗುತ್ತಿದೆ", - "update": "ನವೀಕರಿಸಿ", - "are_you_still_watching": "ನೀವು ಇನ್ನೂ ನೋಡುತ್ತಿದ್ದೀರಾ?", - "stream_stop_due_to_inativity": "ನಿಷ್ಕ್ರಿಯತೆಯ ಕಾರಣ ಲೈವ್ ಫೀಡ್ ಸ್ಟ್ರೀಮಿಂಗ್ ಅನ್ನು ನಿಲ್ಲಿಸುತ್ತದೆ", - "stream_stopped_due_to_inativity": "ನಿಷ್ಕ್ರಿಯತೆಯಿಂದಾಗಿ ಲೈವ್ ಫೀಡ್ ಸ್ಟ್ರೀಮಿಂಗ್ ಅನ್ನು ನಿಲ್ಲಿಸಿದೆ", - "continue_watching": "ನೋಡುವುದನ್ನು ಮುಂದುವರಿಸಿ", - "resume": "ಪುನರಾರಂಭಿಸಿ" -} \ No newline at end of file diff --git a/src/Locale/kn/Auth.json b/src/Locale/kn/Auth.json deleted file mode 100644 index 25c4e1f19de..00000000000 --- a/src/Locale/kn/Auth.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "username": "ಬಳಕೆದಾರ ಹೆಸರು", - "password": "ಪಾಸ್ವರ್ಡ್", - "new_password": "ಹೊಸ ಪಾಸ್ವರ್ಡ್", - "confirm_password": "ಪಾಸ್ವರ್ಡ್ ದೃಢೀಕರಿಸಿ", - "first_name": "ಮೊದಲ ಹೆಸರು", - "last_name": "ಕೊನೆಯ ಹೆಸರು", - "email": "ಇಮೇಲ್ ವಿಳಾಸ", - "phone_number": "ದೂರವಾಣಿ ಸಂಖ್ಯೆ", - "district": "ಜಿಲ್ಲೆ", - "gender": "ಲಿಂಗ", - "age": "ವಯಸ್ಸು", - "login": "ಲಾಗಿನ್", - "password_mismatch": "ಪಾಸ್ವರ್ಡ್ ಮತ್ತು ದೃಢೀಕರಣ ಪಾಸ್ವರ್ಡ್ ಒಂದೇ ಆಗಿರಬೇಕು.", - "enter_valid_age": "ದಯವಿಟ್ಟು ಮಾನ್ಯವಾದ ವಯಸ್ಸನ್ನು ನಮೂದಿಸಿ", - "invalid_username": "ಅಗತ್ಯವಿದೆ. 150 ಅಕ್ಷರಗಳು ಅಥವಾ ಕಡಿಮೆ. ಅಕ್ಷರಗಳು, ಅಂಕೆಗಳು ಮತ್ತು @/./+/-/_ ಮಾತ್ರ.", - "invalid_password": "ಪಾಸ್ವರ್ಡ್ ಅವಶ್ಯಕತೆಗಳನ್ನು ಪೂರೈಸುವುದಿಲ್ಲ", - "invalid_email": "ದಯವಿಟ್ಟು ಸರಿಯಾದ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ನಮೂದಿಸಿ", - "invalid_phone": "ದಯವಿಟ್ಟು ಮಾನ್ಯವಾದ ಫೋನ್ ಸಂಖ್ಯೆಯನ್ನು ನಮೂದಿಸಿ", - "register_hospital": "ಆಸ್ಪತ್ರೆಯನ್ನು ನೋಂದಾಯಿಸಿ", - "register_page_title": "ಆಸ್ಪತ್ರೆ ನಿರ್ವಾಹಕರಾಗಿ ನೋಂದಾಯಿಸಿ", - "auth_login_title": "ಅಧಿಕೃತ ಲಾಗಿನ್", - "forget_password": "ಪಾಸ್ವರ್ಡ್ ಮರೆತಿರಾ?", - "forget_password_instruction": "ನಿಮ್ಮ ಬಳಕೆದಾರ ಹೆಸರನ್ನು ನಮೂದಿಸಿ ಮತ್ತು ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಮರುಹೊಂದಿಸಲು ನಾವು ನಿಮಗೆ ಲಿಂಕ್ ಅನ್ನು ಕಳುಹಿಸುತ್ತೇವೆ.", - "send_reset_link": "ಮರುಹೊಂದಿಸುವ ಲಿಂಕ್ ಕಳುಹಿಸಿ", - "already_a_member": "ಈಗಾಗಲೇ ಸದಸ್ಯರೇ?", - "password_sent": "ಪಾಸ್ವರ್ಡ್ ಮರುಹೊಂದಿಸುವ ಇಮೇಲ್ ಕಳುಹಿಸಲಾಗಿದೆ", - "password_reset_success": "ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಮರುಹೊಂದಿಸಲಾಗಿದೆ", - "password_reset_failure": "ಪಾಸ್ವರ್ಡ್ ಮರುಹೊಂದಿಸಲು ವಿಫಲವಾಗಿದೆ", - "reset_password": "ಪಾಸ್ವರ್ಡ್ ಮರುಹೊಂದಿಸಿ", - "available_in": "ಲಭ್ಯವಿರುವ ಭಾಷೆಗಳು", - "sign_out": "ಸೈನ್ ಔಟ್ ಮಾಡಿ", - "back_to_login": "ಲಾಗಿನ್ ಪುಟಕ್ಕೆ ಹಿಂತಿರುಗಿ", - "min_password_len_8": "ಕನಿಷ್ಠ ಪಾಸ್‌ವರ್ಡ್ ಉದ್ದ 8", - "req_atleast_one_digit": "ಕನಿಷ್ಠ ಒಂದು ಅಂಕಿ ಅಗತ್ಯವಿದೆ", - "req_atleast_one_uppercase": "ಕನಿಷ್ಠ ಒಂದು ದೊಡ್ಡ ಪ್ರಕರಣದ ಅಗತ್ಯವಿದೆ", - "req_atleast_one_lowercase": "ಕನಿಷ್ಠ ಒಂದು ಸಣ್ಣ ಅಕ್ಷರದ ಅಗತ್ಯವಿದೆ", - "req_atleast_one_symbol": "ಕನಿಷ್ಠ ಒಂದು ಚಿಹ್ನೆಯ ಅಗತ್ಯವಿದೆ" -} diff --git a/src/Locale/kn/Bed.json b/src/Locale/kn/Bed.json deleted file mode 100644 index 0067a749202..00000000000 --- a/src/Locale/kn/Bed.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "bed_search_placeholder": "ಹಾಸಿಗೆಗಳ ಹೆಸರಿನ ಮೂಲಕ ಹುಡುಕಿ", - "BED_WITH_OXYGEN_SUPPORT": "ಆಮ್ಲಜನಕ ಬೆಂಬಲದೊಂದಿಗೆ ಬೆಡ್", - "REGULAR": "ನಿಯಮಿತ", - "ICU": "ಐಸಿಯು", - "ISOLATION": "ಪ್ರತ್ಯೇಕತೆ", - "add_beds": "ಬೆಡ್(ಗಳು) ಸೇರಿಸಿ", - "update_bed": "ಹಾಸಿಗೆಯನ್ನು ನವೀಕರಿಸಿ", - "bed_type": "ಹಾಸಿಗೆಯ ಪ್ರಕಾರ", - "make_multiple_beds_label": "ನೀವು ಬಹು ಹಾಸಿಗೆಗಳನ್ನು ಮಾಡಲು ಬಯಸುವಿರಾ?", - "number_of_beds": "ಹಾಸಿಗೆಗಳ ಸಂಖ್ಯೆ", - "number_of_beds_out_of_range_error": "ಹಾಸಿಗೆಗಳ ಸಂಖ್ಯೆ 100 ಕ್ಕಿಂತ ಹೆಚ್ಚಿರಬಾರದು" -} diff --git a/src/Locale/kn/Common.json b/src/Locale/kn/Common.json deleted file mode 100644 index 6eeaa71ea48..00000000000 --- a/src/Locale/kn/Common.json +++ /dev/null @@ -1,223 +0,0 @@ -{ - "goal": "ಡಿಜಿಟಲ್ ಉಪಕರಣಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಸಾರ್ವಜನಿಕ ಆರೋಗ್ಯ ಸೇವೆಗಳ ಗುಣಮಟ್ಟ ಮತ್ತು ಪ್ರವೇಶವನ್ನು ನಿರಂತರವಾಗಿ ಸುಧಾರಿಸುವುದು ನಮ್ಮ ಗುರಿಯಾಗಿದೆ", - "something_wrong": "ಏನೋ ತಪ್ಪಾಗಿದೆ! ನಂತರ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ!", - "try_again_later": "ನಂತರ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ!", - "contribute_github": "GitHub ನಲ್ಲಿ ಕೊಡುಗೆ ನೀಡಿ", - "footer_body": "ಕೊರೊನಾಸೇಫ್ ನೆಟ್‌ವರ್ಕ್ ಎಂಬುದು ತೆರೆದ ಮೂಲ ಸಾರ್ವಜನಿಕ ಉಪಯುಕ್ತತೆಯಾಗಿದ್ದು, ನಾವೀನ್ಯಕಾರರು ಮತ್ತು ಸ್ವಯಂಸೇವಕರ ಬಹು-ಶಿಸ್ತಿನ ತಂಡದಿಂದ ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ. ಕರೋನಾ ಸೇಫ್ ಕೇರ್ ವಿಶ್ವಸಂಸ್ಥೆಯಿಂದ ಗುರುತಿಸಲ್ಪಟ್ಟ ಡಿಜಿಟಲ್ ಸಾರ್ವಜನಿಕ ಸೇವೆಯಾಗಿದೆ.", - "reset": "ಮರುಹೊಂದಿಸಿ", - "download": "ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ", - "downloads": "ಡೌನ್‌ಲೋಡ್‌ಗಳು", - "downloading": "ಡೌನ್‌ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ", - "generating": "ಉತ್ಪಾದಿಸುತ್ತಿದೆ", - "send_email": "ಇಮೇಲ್ ಕಳುಹಿಸಿ", - "email_address": "ಇಮೇಲ್ ವಿಳಾಸ", - "email_success": "ನಾವು ಶೀಘ್ರದಲ್ಲೇ ಇಮೇಲ್ ಕಳುಹಿಸುತ್ತೇವೆ. ದಯವಿಟ್ಟು ನಿಮ್ಮ ಇನ್‌ಬಾಕ್ಸ್ ಪರಿಶೀಲಿಸಿ.", - "disclaimer": "ಹಕ್ಕು ನಿರಾಕರಣೆ", - "category": "ವರ್ಗ", - "sub_category": "ಉಪ ವರ್ಗ", - "download_type": "ಡೌನ್‌ಲೋಡ್ ಪ್ರಕಾರ", - "state": "ರಾಜ್ಯ", - "district": "ಜಿಲ್ಲೆ", - "location": "ಸ್ಥಳ", - "ward": "ವಾರ್ಡ್", - "Notice Board": "ಸೂಚನಾ ಫಲಕ", - "Assets": "ಸ್ವತ್ತುಗಳು", - "Notifications": "ಅಧಿಸೂಚನೆಗಳು", - "Submit": "ಸಲ್ಲಿಸಿ", - "Cancel": "ರದ್ದುಮಾಡಿ", - "back": "ಹಿಂದೆ", - "powered_by": "ನಡೆಸಲ್ಪಡುತ್ತಿದೆ", - "care": "ಕಾಳಜಿ", - "something_went_wrong": "ಏನೋ ತಪ್ಪಾಗಿದೆ..!", - "stop": "ನಿಲ್ಲಿಸು", - "record": "ರೆಕಾರ್ಡ್ ಆಡಿಯೋ", - "recording": "ರೆಕಾರ್ಡಿಂಗ್", - "yes": "ಹೌದು", - "no": "ಸಂ", - "status": "ಸ್ಥಿತಿ", - "created": "ರಚಿಸಲಾಗಿದೆ", - "modified": "ಮಾರ್ಪಡಿಸಲಾಗಿದೆ", - "updated": "ನವೀಕರಿಸಲಾಗಿದೆ", - "update": "ನವೀಕರಿಸಿ", - "configure": "ಕಾನ್ಫಿಗರ್ ಮಾಡಿ", - "assigned_to": "ಗೆ ನಿಯೋಜಿಸಲಾಗಿದೆ", - "cancel": "ರದ್ದುಮಾಡಿ", - "clear": "ತೆರವುಗೊಳಿಸಿ", - "apply": "ಅನ್ವಯಿಸು", - "filter_by": "ಮೂಲಕ ಫಿಲ್ಟರ್ ಮಾಡಿ", - "filter": "ಫಿಲ್ಟರ್", - "settings_and_filters": "ಸೆಟ್ಟಿಂಗ್‌ಗಳು ಮತ್ತು ಫಿಲ್ಟರ್‌ಗಳು", - "ordering": "ಆರ್ಡರ್ ಮಾಡಲಾಗುತ್ತಿದೆ", - "phone_number": "ದೂರವಾಣಿ ಸಂಖ್ಯೆ", - "international_mobile": "ಅಂತಾರಾಷ್ಟ್ರೀಯ ಮೊಬೈಲ್", - "indian_mobile": "ಭಾರತೀಯ ಮೊಬೈಲ್", - "mobile": "ಮೊಬೈಲ್", - "landline": "ಭಾರತೀಯ ಸ್ಥಿರ ದೂರವಾಣಿ", - "support": "ಬೆಂಬಲ", - "emergency_contact_number": "ತುರ್ತು ಸಂಪರ್ಕ ಸಂಖ್ಯೆ", - "last_modified": "ಕೊನೆಯದಾಗಿ ಮಾರ್ಪಡಿಸಲಾಗಿದೆ", - "patient_address": "ರೋಗಿಯ ವಿಳಾಸ", - "all_details": "ಎಲ್ಲಾ ವಿವರಗಳು", - "confirm": "ದೃಢೀಕರಿಸಿ", - "refresh_list": "ಪಟ್ಟಿಯನ್ನು ರಿಫ್ರೆಶ್ ಮಾಡಿ", - "last_edited": "ಕೊನೆಯದಾಗಿ ಸಂಪಾದಿಸಲಾಗಿದೆ", - "audit_log": "ಆಡಿಟ್ ಲಾಗ್", - "comments": "ಕಾಮೆಂಟ್‌ಗಳು", - "contact_person_number": "ಸಂಪರ್ಕ ವ್ಯಕ್ತಿಯ ಸಂಖ್ಯೆ", - "referral_letter": "ಉಲ್ಲೇಖ ಪತ್ರ", - "close": "ಮುಚ್ಚಿ", - "print": "ಮುದ್ರಿಸು", - "print_referral_letter": "ರೆಫರಲ್ ಲೆಟರ್ ಅನ್ನು ಮುದ್ರಿಸಿ", - "date_of_positive_covid_19_swab": "ಧನಾತ್ಮಕ ಕೋವಿಡ್ 19 ಸ್ವ್ಯಾಬ್ ದಿನಾಂಕ", - "patient_no": "OP/IP ಸಂ", - "date_of_admission": "ಪ್ರವೇಶ ದಿನಾಂಕ", - "india_1": "ಭಾರತ", - "unique_id": "ವಿಶಿಷ್ಟ ಐಡಿ", - "date_and_time": "ದಿನಾಂಕ ಮತ್ತು ಸಮಯ", - "facility_type": "ಸೌಲಭ್ಯದ ಪ್ರಕಾರ", - "number_of_chronic_diseased_dependents": "ದೀರ್ಘಕಾಲದ ರೋಗಗಳ ಅವಲಂಬಿತರ ಸಂಖ್ಯೆ", - "number_of_aged_dependents_above_60": "ವಯಸ್ಸಾದ ಅವಲಂಬಿತರ ಸಂಖ್ಯೆ (60 ಕ್ಕಿಂತ ಹೆಚ್ಚು)", - "ongoing_medications": "ನಡೆಯುತ್ತಿರುವ ಔಷಧಿಗಳು", - "countries_travelled": "ದೇಶಗಳು ಸಂಚರಿಸಿದವು", - "travel_within_last_28_days": "ದೇಶೀಯ/ಅಂತರರಾಷ್ಟ್ರೀಯ ಪ್ರಯಾಣ (ಕಳೆದ 28 ದಿನಗಳಲ್ಲಿ)", - "estimated_contact_date": "ಅಂದಾಜು ಸಂಪರ್ಕ ದಿನಾಂಕ", - "blood_group": "ರಕ್ತದ ಗುಂಪು", - "date_of_birth": "ಹುಟ್ಟಿದ ದಿನಾಂಕ", - "date_of_test": "ಪರೀಕ್ಷೆಯ ದಿನಾಂಕ", - "srf_id": "SRF ID", - "contact_number": "ಸಂಪರ್ಕ ಸಂಖ್ಯೆ", - "diagnosis": "ರೋಗನಿರ್ಣಯ", - "copied_to_clipboard": "ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ಗೆ ನಕಲಿಸಲಾಗಿದೆ", - "age": "ವಯಸ್ಸು", - "is": "ಆಗಿದೆ", - "reason": "ಕಾರಣ", - "description": "ವಿವರಣೆ", - "name": "ಹೆಸರು", - "address": "ವಿಳಾಸ", - "phone": "ಫೋನ್", - "nationality": "ರಾಷ್ಟ್ರೀಯತೆ", - "allergies": "ಅಲರ್ಜಿಗಳು", - "type_your_comment": "ನಿಮ್ಮ ಕಾಮೆಂಟ್ ಅನ್ನು ಟೈಪ್ ಮಾಡಿ", - "any_other_comments": "ಯಾವುದೇ ಇತರ ಕಾಮೆಂಟ್‌ಗಳು", - "loading": "ಲೋಡ್ ಆಗುತ್ತಿದೆ", - "facility": "ಸೌಲಭ್ಯ", - "local_body": "ಸ್ಥಳೀಯ ಸಂಸ್ಥೆ", - "filters": "ಶೋಧಕಗಳು", - "unknown": "ಅಜ್ಞಾತ", - "active": "ಸಕ್ರಿಯ", - "completed": "ಪೂರ್ಣಗೊಂಡಿದೆ", - "on": "ಆನ್", - "open": "ತೆರೆಯಿರಿ", - "features": "ವೈಶಿಷ್ಟ್ಯಗಳು", - "pincode": "ಪಿನ್‌ಕೋಡ್", - "required": "ಅಗತ್ಯವಿದೆ", - "field_required": "ಈ ಕ್ಷೇತ್ರದ ಅಗತ್ಯವಿದೆ", - "litres": "ಲೀಟರ್", - "litres_per_day": "ಲೀಟರ್ / ದಿನ", - "invalid_pincode": "ಅಮಾನ್ಯವಾದ ಪಿನ್‌ಕೋಡ್", - "invalid_phone_number": "ಅಮಾನ್ಯವಾದ ಫೋನ್ ಸಂಖ್ಯೆ", - "latitude_invalid": "ಅಕ್ಷಾಂಶವು -90 ಮತ್ತು 90 ರ ನಡುವೆ ಇರಬೇಕು", - "longitude_invalid": "ರೇಖಾಂಶವು -180 ಮತ್ತು 180 ರ ನಡುವೆ ಇರಬೇಕು", - "save": "ಉಳಿಸಿ", - "continue": "ಮುಂದುವರಿಸಿ", - "save_and_continue": "ಉಳಿಸಿ ಮತ್ತು ಮುಂದುವರಿಸಿ", - "select": "ಆಯ್ಕೆ ಮಾಡಿ", - "lsg": "Lsg", - "delete": "ಅಳಿಸಿ", - "remove": "ತೆಗೆದುಹಾಕಿ", - "max_size_for_image_uploaded_should_be": "ಅಪ್‌ಲೋಡ್ ಮಾಡಿದ ಚಿತ್ರಕ್ಕೆ ಗರಿಷ್ಠ ಗಾತ್ರ ಇರಬೇಕು", - "allowed_formats_are": "ಅನುಮತಿಸಲಾದ ಸ್ವರೂಪಗಳು", - "recommended_aspect_ratio_for": "ಇದಕ್ಕಾಗಿ ಶಿಫಾರಸು ಮಾಡಲಾದ ಆಕಾರ ಅನುಪಾತ", - "drag_drop_image_to_upload": "ಅಪ್‌ಲೋಡ್ ಮಾಡಲು ಚಿತ್ರವನ್ನು ಎಳೆಯಿರಿ ಮತ್ತು ಬಿಡಿ", - "upload_an_image": "ಚಿತ್ರವನ್ನು ಅಪ್‌ಲೋಡ್ ಮಾಡಿ", - "upload": "ಅಪ್ಲೋಡ್ ಮಾಡಿ", - "uploading": "ಅಪ್‌ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ", - "switch": "ಬದಲಿಸಿ", - "capture": "ಸೆರೆಹಿಡಿಯಿರಿ", - "retake": "ಮರುಪಡೆಯಿರಿ", - "submit": "ಸಲ್ಲಿಸಿ", - "camera": "ಕ್ಯಾಮೆರಾ", - "submitting": "ಸಲ್ಲಿಸಲಾಗುತ್ತಿದೆ", - "view_details": "ವಿವರಗಳನ್ನು ವೀಕ್ಷಿಸಿ", - "type_to_search": "ಹುಡುಕಲು ಟೈಪ್ ಮಾಡಿ", - "show_all": "ಎಲ್ಲವನ್ನೂ ತೋರಿಸು", - "hide": "ಮರೆಮಾಡಿ", - "select_skills": "ಕೆಲವು ಕೌಶಲ್ಯಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ ಮತ್ತು ಸೇರಿಸಿ", - "contact_your_admin_to_add_skills": "ಕೌಶಲ್ಯಗಳನ್ನು ಸೇರಿಸಲು ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ", - "add": "ಸೇರಿಸಿ", - "add_as": "ಎಂದು ಸೇರಿಸಿ", - "sort_by": "ವಿಂಗಡಿಸಿ", - "none": "ಯಾವುದೂ ಇಲ್ಲ", - "choose_file": "ಸಾಧನದಿಂದ ಅಪ್ಲೋಡ್ ಮಾಡಿ", - "open_camera": "ಕ್ಯಾಮರಾ ತೆರೆಯಿರಿ", - "file_preview": "ಫೈಲ್ ಪೂರ್ವವೀಕ್ಷಣೆ", - "file_preview_not_supported": "ಈ ಫೈಲ್ ಅನ್ನು ಪೂರ್ವವೀಕ್ಷಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಅದನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ.", - "view_faciliy": "ವೀಕ್ಷಣೆ ಸೌಲಭ್ಯ", - "view_patients": "ರೋಗಿಗಳನ್ನು ವೀಕ್ಷಿಸಿ", - "frequency": "ಆವರ್ತನ", - "days": "ದಿನಗಳು", - "never": "ಎಂದಿಗೂ", - "notes": "ಟಿಪ್ಪಣಿಗಳು", - "add_notes": "ಟಿಪ್ಪಣಿಗಳನ್ನು ಸೇರಿಸಿ", - "notes_placeholder": "ನಿಮ್ಮ ಟಿಪ್ಪಣಿಗಳನ್ನು ಟೈಪ್ ಮಾಡಿ", - "optional": "ಐಚ್ಛಿಕ", - "discontinue": "ಸ್ಥಗಿತಗೊಳಿಸಿ", - "discontinued": "ಸ್ಥಗಿತಗೊಳಿಸಲಾಗಿದೆ", - "not_specified": "ನಿರ್ದಿಷ್ಟಪಡಿಸಲಾಗಿಲ್ಲ", - "all_changes_have_been_saved": "ಎಲ್ಲಾ ಬದಲಾವಣೆಗಳನ್ನು ಉಳಿಸಲಾಗಿದೆ", - "no_data_found": "ಯಾವುದೇ ಡೇಟಾ ಕಂಡುಬಂದಿಲ್ಲ", - "edit": "ಸಂಪಾದಿಸು", - "clear_selection": "ಆಯ್ಕೆಯನ್ನು ತೆರವುಗೊಳಿಸಿ", - "select_date": "ದಿನಾಂಕವನ್ನು ಆಯ್ಕೆಮಾಡಿ", - "DD/MM/YYYY": "DD/MM/YYYY", - "clear_all_filters": "ಎಲ್ಲಾ ಫಿಲ್ಟರ್‌ಗಳನ್ನು ತೆರವುಗೊಳಿಸಿ", - "summary": "ಸಾರಾಂಶ", - "report": "ವರದಿ", - "treating_doctor": "ಚಿಕಿತ್ಸೆ ನೀಡುತ್ತಿರುವ ವೈದ್ಯರು", - "ration_card__NO_CARD": "ಕಾರ್ಡ್ ಅಲ್ಲದ ಹೋಲ್ಡರ್", - "ration_card__BPL": "ಬಿಪಿಎಲ್", - "ration_card__APL": "ಎಪಿಎಲ್", - "empty_date_time": "--:-- --; ------------", - "caution": "ಎಚ್ಚರಿಕೆ", - "feed_optimal_experience_for_phones": "ಅತ್ಯುತ್ತಮ ವೀಕ್ಷಣೆಯ ಅನುಭವಕ್ಕಾಗಿ, ನಿಮ್ಮ ಸಾಧನವನ್ನು ತಿರುಗಿಸಲು ಪರಿಗಣಿಸಿ.", - "feed_optimal_experience_for_apple_phones": "ಅತ್ಯುತ್ತಮ ವೀಕ್ಷಣೆಯ ಅನುಭವಕ್ಕಾಗಿ, ನಿಮ್ಮ ಸಾಧನವನ್ನು ತಿರುಗಿಸಲು ಪರಿಗಣಿಸಿ. ನಿಮ್ಮ ಸಾಧನದ ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಸ್ವಯಂ-ತಿರುಗುವಿಕೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.", - "action_irreversible": "ಈ ಕ್ರಿಯೆಯು ಬದಲಾಯಿಸಲಾಗದು", - "GENDER__1": "ಪುರುಷ", - "GENDER__2": "ಹೆಣ್ಣು", - "GENDER__3": "ಬೈನರಿ ಅಲ್ಲದ", - "normal": "ಸಾಮಾನ್ಯ", - "done": "ಮುಗಿದಿದೆ", - "view": "ವೀಕ್ಷಿಸಿ", - "rename": "ಮರುಹೆಸರಿಸು", - "more_info": "ಹೆಚ್ಚಿನ ಮಾಹಿತಿ", - "archive": "ಆರ್ಕೈವ್", - "discard": "ತಿರಸ್ಕರಿಸು", - "live": "ಲೈವ್", - "discharged": "ಡಿಸ್ಚಾರ್ಜ್ ಮಾಡಲಾಗಿದೆ", - "archived": "ಆರ್ಕೈವ್ ಮಾಡಲಾಗಿದೆ", - "no_changes_made": "ಯಾವುದೇ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡಲಾಗಿಲ್ಲ", - "user_deleted_successfuly": "ಬಳಕೆದಾರರನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಅಳಿಸಲಾಗಿದೆ", - "users": "ಬಳಕೆದಾರರು", - "are_you_sure_want_to_delete": "{{name}}ಅಳಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?", - "oxygen_information": "ಆಮ್ಲಜನಕ ಮಾಹಿತಿ", - "deleted_successfully": "{{name}} ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಅಳಿಸಲಾಗಿದೆ", - "delete_item": "{{name}}ಅಳಿಸಿ", - "unsupported_browser": "ಬೆಂಬಲಿತವಲ್ಲದ ಬ್ರೌಸರ್", - "SORT_OPTIONS__unsupported_browser_description": "ನಿಮ್ಮ ಬ್ರೌಸರ್ ({{name}} ಆವೃತ್ತಿ {{version}}) ಬೆಂಬಲಿತವಾಗಿಲ್ಲ. ದಯವಿಟ್ಟು ನಿಮ್ಮ ಬ್ರೌಸರ್ ಅನ್ನು ಇತ್ತೀಚಿನ ಆವೃತ್ತಿಗೆ ನವೀಕರಿಸಿ ಅಥವಾ ಉತ್ತಮ ಅನುಭವಕ್ಕಾಗಿ ಬೆಂಬಲಿತ ಬ್ರೌಸರ್‌ಗೆ ಬದಲಿಸಿ.", - "SORT_OPTIONS__-created_date": "ಇತ್ತೀಚಿಗೆ ರಚಿಸಿದ ದಿನಾಂಕ ಮೊದಲು", - "SORT_OPTIONS__created_date": "ಮೊದಲು ರಚಿಸಿದ ಹಳೆಯ ದಿನಾಂಕ", - "SORT_OPTIONS__-category_severity": "ಅತ್ಯಧಿಕ ತೀವ್ರತೆಯ ವಿಭಾಗ ಮೊದಲು", - "SORT_OPTIONS__category_severity": "ಕಡಿಮೆ ತೀವ್ರತೆಯ ವರ್ಗ ಮೊದಲು", - "SORT_OPTIONS__-modified_date": "ಮೊದಲು ಇತ್ತೀಚಿನ ನವೀಕರಿಸಿದ ದಿನಾಂಕ", - "SORT_OPTIONS__modified_date": "ಹಳೆಯ ನವೀಕರಿಸಿದ ದಿನಾಂಕ ಮೊದಲು", - "SORT_OPTIONS__facility__name,last_consultation__current_bed__bed__name": "ಹಾಸಿಗೆ ಸಂಖ್ಯೆ 1-N", - "SORT_OPTIONS__facility__name,-last_consultation__current_bed__bed__name": "ಹಾಸಿಗೆ ಸಂಖ್ಯೆ N-1", - "SORT_OPTIONS__-review_time": "ಇತ್ತೀಚಿನ ವಿಮರ್ಶೆ ದಿನಾಂಕ ಮೊದಲು", - "SORT_OPTIONS__review_time": "ಹಳೆಯ ವಿಮರ್ಶೆ ದಿನಾಂಕ ಮೊದಲು", - "SORT_OPTIONS__taken_at": "ಹಳೆಯ ತೆಗೆದ ದಿನಾಂಕ ಮೊದಲು", - "SORT_OPTIONS__-taken_at": "ಇತ್ತೀಚೆಗೆ ತೆಗೆದುಕೊಂಡ ದಿನಾಂಕ ಮೊದಲು", - "SORT_OPTIONS__name": "ರೋಗಿಯ ಹೆಸರು AZ", - "SORT_OPTIONS__-name": "ರೋಗಿಯ ಹೆಸರು ZA", - "SORT_OPTIONS__bed__name": "ಹಾಸಿಗೆ ಸಂಖ್ಯೆ 1-N", - "SORT_OPTIONS__-bed__name": "ಹಾಸಿಗೆ ಸಂಖ್ಯೆ N-1" -} \ No newline at end of file diff --git a/src/Locale/kn/Consultation.json b/src/Locale/kn/Consultation.json deleted file mode 100644 index a47ba8a4f19..00000000000 --- a/src/Locale/kn/Consultation.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "no_consultation_updates": "ಸಮಾಲೋಚನೆಯ ನವೀಕರಣಗಳಿಲ್ಲ", - "consultation_updates": "ಸಮಾಲೋಚನೆ ನವೀಕರಣಗಳು", - "update_log": "ಲಾಗ್ ಅನ್ನು ನವೀಕರಿಸಿ", - "record_updates": "ರೆಕಾರ್ಡ್ ನವೀಕರಣಗಳು", - "log_lab_results": "ಲಾಗ್ ಲ್ಯಾಬ್ ಫಲಿತಾಂಶಗಳು", - "no_log_update_delta": "ಹಿಂದಿನ ಲಾಗ್ ನವೀಕರಣದ ನಂತರ ಯಾವುದೇ ಬದಲಾವಣೆಗಳಿಲ್ಲ", - "virtual_nursing_assistant": "ವರ್ಚುವಲ್ ನರ್ಸಿಂಗ್ ಸಹಾಯಕ", - "discharge": "ವಿಸರ್ಜನೆ", - "discharge_summary": "ಡಿಸ್ಚಾರ್ಜ್ ಸಾರಾಂಶ", - "discharge_from_care": "CARE ನಿಂದ ಬಿಡುಗಡೆ", - "generating_discharge_summary": "ಡಿಸ್ಚಾರ್ಜ್ ಸಾರಾಂಶವನ್ನು ರಚಿಸಲಾಗುತ್ತಿದೆ", - "discharge_summary_not_ready": "ಡಿಸ್ಚಾರ್ಜ್ ಸಾರಾಂಶ ಇನ್ನೂ ಸಿದ್ಧವಾಗಿಲ್ಲ.", - "download_discharge_summary": "ಡಿಸ್ಚಾರ್ಜ್ ಸಾರಾಂಶವನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ", - "email_discharge_summary_description": "ಡಿಸ್ಚಾರ್ಜ್ ಸಾರಾಂಶವನ್ನು ಸ್ವೀಕರಿಸಲು ನಿಮ್ಮ ಮಾನ್ಯ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ನಮೂದಿಸಿ", - "generated_summary_caution": "ಇದು CARE ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಸೆರೆಹಿಡಿಯಲಾದ ಮಾಹಿತಿಯನ್ನು ಬಳಸಿಕೊಂಡು ಕಂಪ್ಯೂಟರ್ ರಚಿಸಿದ ಸಾರಾಂಶವಾಗಿದೆ.", - "NORMAL": "ಸಂಕ್ಷಿಪ್ತ ನವೀಕರಣ", - "VENTILATOR": "ವಿವರವಾದ ನವೀಕರಣ", - "DOCTORS_LOG": "ಪ್ರಗತಿ ಟಿಪ್ಪಣಿ", - "AUTOMATED": "ಸ್ವಯಂಚಾಲಿತ", - "TELEMEDICINE": "ಟೆಲಿಮೆಡಿಸಿನ್", - "investigations": "ತನಿಖೆಗಳು", - "search_investigation_placeholder": "ಹುಡುಕಾಟ ತನಿಖೆ ಮತ್ತು ಗುಂಪುಗಳು", - "save_investigation": "ತನಿಖೆಯನ್ನು ಉಳಿಸಿ", - "investigation_reports": "ತನಿಖಾ ವರದಿಗಳು", - "no_investigation": "ಯಾವುದೇ ತನಿಖಾ ವರದಿಗಳು ಕಂಡುಬಂದಿಲ್ಲ", - "investigations_suggested": "ತನಿಖೆಗಳನ್ನು ಸೂಚಿಸಲಾಗಿದೆ", - "to_be_conducted": "ನಡೆಸಲಾಗುವುದು", - "log_report": "ಲಾಗ್ ವರದಿ", - "no_investigation_suggestions": "ಯಾವುದೇ ತನಿಖೆಯ ಸಲಹೆಗಳಿಲ್ಲ", - "select_investigation": "ತನಿಖೆಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ (ಎಲ್ಲಾ ತನಿಖೆಗಳನ್ನು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಆಯ್ಕೆ ಮಾಡಲಾಗುತ್ತದೆ)", - "select_investigations": "ತನಿಖೆಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ", - "get_tests": "ಪರೀಕ್ಷೆಗಳನ್ನು ಪಡೆಯಿರಿ", - "select_investigation_groups": "ತನಿಖಾ ಗುಂಪುಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ", - "select_groups": "ಗುಂಪುಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ", - "generate_report": "ವರದಿಯನ್ನು ರಚಿಸಿ", - "prev_sessions": "ಹಿಂದಿನ ಅವಧಿಗಳು", - "next_sessions": "ಮುಂದಿನ ಸೆಷನ್‌ಗಳು", - "no_changes": "ಯಾವುದೇ ಬದಲಾವಣೆಗಳಿಲ್ಲ", - "back_to_consultation": "ಸಮಾಲೋಚನೆಗೆ ಹಿಂತಿರುಗಿ", - "no_treating_physicians_available": "ಈ ಸೌಲಭ್ಯವು ಯಾವುದೇ ಮನೆ ಸೌಲಭ್ಯ ವೈದ್ಯರನ್ನು ಹೊಂದಿಲ್ಲ. ದಯವಿಟ್ಟು ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ.", - "encounter_suggestion_edit_disallowed": "ಸಂಪಾದನೆ ಸಮಾಲೋಚನೆಯಲ್ಲಿ ಈ ಆಯ್ಕೆಗೆ ಬದಲಾಯಿಸಲು ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ", - "encounter_suggestion__A": "ಪ್ರವೇಶ", - "encounter_suggestion__DC": "ಡೊಮಿಸಿಲಿಯರಿ ಕೇರ್", - "encounter_suggestion__OP": "ಹೊರರೋಗಿಗಳ ಭೇಟಿ", - "encounter_suggestion__DD": "ಸಮಾಲೋಚನೆ", - "encounter_suggestion__HI": "ಸಮಾಲೋಚನೆ", - "encounter_suggestion__R": "ಸಮಾಲೋಚನೆ", - "encounter_date_field_label__A": "ಸೌಲಭ್ಯಕ್ಕೆ ಪ್ರವೇಶದ ದಿನಾಂಕ ಮತ್ತು ಸಮಯ", - "encounter_date_field_label__DC": "ಡೊಮಿಸಿಲಿಯರಿ ಕೇರ್ ಪ್ರಾರಂಭದ ದಿನಾಂಕ ಮತ್ತು ಸಮಯ", - "encounter_date_field_label__OP": "ಹೊರರೋಗಿ ಭೇಟಿಯ ದಿನಾಂಕ ಮತ್ತು ಸಮಯ", - "encounter_date_field_label__DD": "ಸಮಾಲೋಚನೆಯ ದಿನಾಂಕ ಮತ್ತು ಸಮಯ", - "encounter_date_field_label__HI": "ಸಮಾಲೋಚನೆಯ ದಿನಾಂಕ ಮತ್ತು ಸಮಯ", - "encounter_date_field_label__R": "ಸಮಾಲೋಚನೆಯ ದಿನಾಂಕ ಮತ್ತು ಸಮಯ", - "back_dated_encounter_date_caution": "ಇದಕ್ಕಾಗಿ ನೀವು ಎನ್‌ಕೌಂಟರ್ ಅನ್ನು ರಚಿಸುತ್ತಿದ್ದೀರಿ", - "encounter_duration_confirmation": "ಈ ಎನ್ಕೌಂಟರ್ನ ಅವಧಿಯು ಇರುತ್ತದೆ", - "consultation_notes": "ಸಾಮಾನ್ಯ ಸೂಚನೆಗಳು (ಸಲಹೆ)", - "procedure_suggestions": "ಕಾರ್ಯವಿಧಾನದ ಸಲಹೆಗಳು" -} diff --git a/src/Locale/kn/CoverImageEdit.json b/src/Locale/kn/CoverImageEdit.json deleted file mode 100644 index 47698991c71..00000000000 --- a/src/Locale/kn/CoverImageEdit.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "edit_cover_photo": "ಕವರ್ ಫೋಟೋ ಸಂಪಾದಿಸಿ", - "no_cover_photo_uploaded_for_this_facility": "ಈ ಸೌಲಭ್ಯಕ್ಕಾಗಿ ಯಾವುದೇ ಕವರ್ ಫೋಟೋ ಅಪ್‌ಲೋಡ್ ಮಾಡಲಾಗಿಲ್ಲ", - "capture_cover_photo": "ಕವರ್ ಫೋಟೋ ಸೆರೆಹಿಡಿಯಿರಿ" -} diff --git a/src/Locale/kn/Diagnosis.json b/src/Locale/kn/Diagnosis.json deleted file mode 100644 index 1498db6c1b6..00000000000 --- a/src/Locale/kn/Diagnosis.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "diagnosis": "ರೋಗನಿರ್ಣಯ", - "diagnoses": "ರೋಗನಿರ್ಣಯಗಳು", - "diagnosis_already_added": "ಈ ರೋಗನಿರ್ಣಯವನ್ನು ಈಗಾಗಲೇ ಸೇರಿಸಲಾಗಿದೆ", - "principal": "ಪ್ರಿನ್ಸಿಪಾಲ್", - "principal_diagnosis": "ಮುಖ್ಯ ರೋಗನಿರ್ಣಯ", - "unconfirmed": "ದೃಢೀಕರಿಸಲಾಗಿಲ್ಲ", - "provisional": "ತಾತ್ಕಾಲಿಕ", - "differential": "ಭೇದಾತ್ಮಕ", - "confirmed": "ದೃಢಪಡಿಸಿದೆ", - "refuted": "ನಿರಾಕರಿಸಲಾಗಿದೆ", - "entered-in-error": "ತಪ್ಪಾಗಿ ನಮೂದಿಸಲಾಗಿದೆ", - "help_unconfirmed": "ಇದನ್ನು ದೃಢಪಡಿಸಿದ ಸ್ಥಿತಿ ಎಂದು ಪರಿಗಣಿಸಲು ಸಾಕಷ್ಟು ರೋಗನಿರ್ಣಯ ಮತ್ತು/ಅಥವಾ ವೈದ್ಯಕೀಯ ಪುರಾವೆಗಳಿಲ್ಲ.", - "help_provisional": "ಇದು ತಾತ್ಕಾಲಿಕ ರೋಗನಿರ್ಣಯ - ಇನ್ನೂ ಪರಿಗಣನೆಯಲ್ಲಿರುವ ಅಭ್ಯರ್ಥಿ.", - "help_differential": "ರೋಗನಿರ್ಣಯ ಪ್ರಕ್ರಿಯೆ ಮತ್ತು ಪ್ರಾಥಮಿಕ ಚಿಕಿತ್ಸೆಯನ್ನು ಮತ್ತಷ್ಟು ಮಾರ್ಗದರ್ಶನ ಮಾಡಲು ಸಮರ್ಥಿಸಲಾದ ಸಂಭಾವ್ಯ (ಮತ್ತು ಸಾಮಾನ್ಯವಾಗಿ ಪರಸ್ಪರ ಪ್ರತ್ಯೇಕವಾದ) ರೋಗನಿರ್ಣಯಗಳ ಒಂದು ಸೆಟ್.", - "help_confirmed": "ಇದನ್ನು ದೃಢಪಡಿಸಿದ ಸ್ಥಿತಿ ಎಂದು ಪರಿಗಣಿಸಲು ಸಾಕಷ್ಟು ರೋಗನಿರ್ಣಯ ಮತ್ತು/ಅಥವಾ ಕ್ಲಿನಿಕಲ್ ಪುರಾವೆಗಳಿವೆ.", - "help_refuted": "ನಂತರದ ರೋಗನಿರ್ಣಯ ಮತ್ತು ಕ್ಲಿನಿಕಲ್ ಪುರಾವೆಗಳಿಂದ ಈ ಸ್ಥಿತಿಯನ್ನು ತಳ್ಳಿಹಾಕಲಾಗಿದೆ.", - "help_entered-in-error": "ಹೇಳಿಕೆಯನ್ನು ತಪ್ಪಾಗಿ ನಮೂದಿಸಲಾಗಿದೆ ಮತ್ತು ಮಾನ್ಯವಾಗಿಲ್ಲ.", - "search_icd11_placeholder": "ICD-11 ರೋಗನಿರ್ಣಯಗಳಿಗಾಗಿ ಹುಡುಕಿ", - "icd11_as_recommended": "WHO ಶಿಫಾರಸು ಮಾಡಿದ ICD-11 ಪ್ರಕಾರ" -} diff --git a/src/Locale/kn/Entities.json b/src/Locale/kn/Entities.json deleted file mode 100644 index b8c2c72faad..00000000000 --- a/src/Locale/kn/Entities.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "Facilities": "ಸೌಲಭ್ಯಗಳು", - "Patients": "ರೋಗಿಗಳು", - "Sample Test": "ಮಾದರಿ ಪರೀಕ್ಷೆ", - "Shifting": "ಸ್ಥಳಾಂತರ", - "Resource": "ಸಂಪನ್ಮೂಲ", - "External Results": "ಬಾಹ್ಯ ಫಲಿತಾಂಶಗಳು", - "Users": "ಬಳಕೆದಾರರು", - "Profile": "ಪ್ರೊಫೈಲ್", - "Dashboard": "ಡ್ಯಾಶ್‌ಬೋರ್ಡ್" -} diff --git a/src/Locale/kn/ErrorPages.json b/src/Locale/kn/ErrorPages.json deleted file mode 100644 index 138cf9e5cac..00000000000 --- a/src/Locale/kn/ErrorPages.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "return_to_care": "CARE ಗೆ ಹಿಂತಿರುಗಿ", - "404_message": "ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದ ಅಥವಾ ಇನ್ನೊಂದು URL ಗೆ ಸರಿಸಿದ ಪುಟದಲ್ಲಿ ನೀವು ಎಡವಿ ಬಿದ್ದಿರುವಂತೆ ತೋರುತ್ತಿದೆ. ನೀವು ಸರಿಯಾದ ಲಿಂಕ್ ಅನ್ನು ನಮೂದಿಸಿದ್ದೀರಿ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ!", - "error_404": "ದೋಷ 404", - "page_not_found": "ಪುಟ ಕಂಡುಬಂದಿಲ್ಲ", - "session_expired": "ಅವಧಿ ಮುಗಿದಿದೆ", - "invalid_password_reset_link": "ಅಮಾನ್ಯವಾದ ಪಾಸ್‌ವರ್ಡ್ ಮರುಹೊಂದಿಸುವ ಲಿಂಕ್", - "invalid_link_msg": "ನೀವು ಬಳಸಿದ ಪಾಸ್‌ವರ್ಡ್ ಮರುಹೊಂದಿಸುವ ಲಿಂಕ್ ಅಮಾನ್ಯವಾಗಿದೆ ಅಥವಾ ಅವಧಿ ಮೀರಿದೆ ಎಂದು ತೋರುತ್ತಿದೆ. ದಯವಿಟ್ಟು ಹೊಸ ಪಾಸ್‌ವರ್ಡ್ ಮರುಹೊಂದಿಸುವ ಲಿಂಕ್ ಅನ್ನು ವಿನಂತಿಸಿ.", - "return_to_password_reset": "ಪಾಸ್ವರ್ಡ್ ಮರುಹೊಂದಿಸಲು ಹಿಂತಿರುಗಿ", - "return_to_login": "ಲಾಗಿನ್‌ಗೆ ಹಿಂತಿರುಗಿ", - "session_expired_msg": "ನಿಮ್ಮ ಅವಧಿ ಮುಗಿದಿದೆ ಎಂದು ತೋರುತ್ತಿದೆ. ಇದು ನಿಷ್ಕ್ರಿಯತೆಯ ಕಾರಣದಿಂದಾಗಿರಬಹುದು. ಮುಂದುವರಿಸಲು ದಯವಿಟ್ಟು ಮತ್ತೆ ಲಾಗಿನ್ ಮಾಡಿ.", - "invalid_reset": "ಅಮಾನ್ಯ ಮರುಹೊಂದಿಸಿ" -} diff --git a/src/Locale/kn/ExternalResult.json b/src/Locale/kn/ExternalResult.json deleted file mode 100644 index b8be0e872aa..00000000000 --- a/src/Locale/kn/ExternalResult.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "please_upload_a_csv_file": "ದಯವಿಟ್ಟು CSV ಫೈಲ್ ಅನ್ನು ಅಪ್‌ಲೋಡ್ ಮಾಡಿ", - "upload_external_results": "ಬಾಹ್ಯ ಫಲಿತಾಂಶಗಳನ್ನು ಅಪ್ಲೋಡ್ ಮಾಡಿ", - "csv_file_in_the_specified_format": "ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಸ್ವರೂಪದಲ್ಲಿ CSV ಫೈಲ್ ಅನ್ನು ಆಯ್ಕೆಮಾಡಿ", - "sample_format": "ಮಾದರಿ ಸ್ವರೂಪ", - "search_for_facility": "ಸೌಲಭ್ಯಕ್ಕಾಗಿ ಹುಡುಕಿ", - "select_local_body": "ಸ್ಥಳೀಯ ಸಂಸ್ಥೆಯನ್ನು ಆಯ್ಕೆಮಾಡಿ", - "select_wards": "ವಾರ್ಡ್‌ಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ", - "result_date": "ಫಲಿತಾಂಶ ದಿನಾಂಕ", - "sample_collection_date": "ಮಾದರಿ ಸಂಗ್ರಹ ದಿನಾಂಕ", - "record_has_been_deleted_successfully": "ದಾಖಲೆಯನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಅಳಿಸಲಾಗಿದೆ.", - "error_while_deleting_record": "ದಾಖಲೆಯನ್ನು ಅಳಿಸುವಾಗ ದೋಷ", - "result_details": "ಫಲಿತಾಂಶದ ವಿವರಗಳು", - "confirm_delete": "ಅಳಿಸುವುದನ್ನು ದೃಢೀಕರಿಸಿ", - "are_you_sure_want_to_delete_this_record": "ಈ ದಾಖಲೆಯನ್ನು ಅಳಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?", - "patient_category": "ರೋಗಿಗಳ ವರ್ಗ", - "source": "ಮೂಲ", - "result": "ಫಲಿತಾಂಶ", - "sample_type": "ಮಾದರಿ ಪ್ರಕಾರ", - "patient_status": "ರೋಗಿಯ ಸ್ಥಿತಿ", - "mobile_number": "ಮೊಬೈಲ್ ಸಂಖ್ಯೆ", - "patient_created": "ರೋಗಿಯನ್ನು ರಚಿಸಲಾಗಿದೆ", - "care_external_results_id": "ಬಾಹ್ಯ ಫಲಿತಾಂಶಗಳ ಐಡಿಯನ್ನು ನೋಡಿಕೊಳ್ಳಿ", - "update_record": "ದಾಖಲೆಯನ್ನು ನವೀಕರಿಸಿ" -} diff --git a/src/Locale/kn/Facility.json b/src/Locale/kn/Facility.json deleted file mode 100644 index 5bc9128ae54..00000000000 --- a/src/Locale/kn/Facility.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "facility_search_placeholder": "ಸೌಲಭ್ಯ / ಜಿಲ್ಲೆಯ ಹೆಸರಿನ ಮೂಲಕ ಹುಡುಕಿ", - "advanced_filters": "ಸುಧಾರಿತ ಫಿಲ್ಟರ್‌ಗಳು", - "facility_type": "ಸೌಲಭ್ಯದ ಪ್ರಕಾರ", - "facility_name": "ಸೌಲಭ್ಯದ ಹೆಸರು", - "KASP Empanelled": "ಕೆಎಎಸ್ಪಿ ಎಂಪನೇಲ್ಡ್", - "View Facility": "ವೀಕ್ಷಣೆ ಸೌಲಭ್ಯ", - "no_duplicate_facility": "ನೀವು ನಕಲಿ ಸೌಲಭ್ಯಗಳನ್ನು ರಚಿಸಬಾರದು", - "no_facilities": "ಯಾವುದೇ ಸೌಲಭ್ಯಗಳು ಕಂಡುಬಂದಿಲ್ಲ", - "no_staff": "ಸಿಬ್ಬಂದಿ ಪತ್ತೆಯಾಗಿಲ್ಲ", - "no_bed_types_found": "ಯಾವುದೇ ಹಾಸಿಗೆಯ ಪ್ರಕಾರಗಳು ಕಂಡುಬಂದಿಲ್ಲ", - "total_beds": "ಒಟ್ಟು ಹಾಸಿಗೆಗಳು", - "create_facility": "ಹೊಸ ಸೌಲಭ್ಯವನ್ನು ರಚಿಸಿ", - "staff_list": "ಸಿಬ್ಬಂದಿ ಪಟ್ಟಿ", - "bed_capacity": "ಹಾಸಿಗೆ ಸಾಮರ್ಥ್ಯ", - "cylinders": "ಸಿಲಿಂಡರ್ಗಳು", - "cylinders_per_day": "ಸಿಲಿಂಡರ್ಗಳು / ದಿನ", - "liquid_oxygen_capacity": "ದ್ರವ ಆಮ್ಲಜನಕದ ಸಾಮರ್ಥ್ಯ", - "expected_burn_rate": "ನಿರೀಕ್ಷಿತ ಬರ್ನ್ ದರ", - "type_b_cylinders": "ಬಿ ಮಾದರಿಯ ಸಿಲಿಂಡರ್‌ಗಳು", - "type_c_cylinders": "ಸಿ ಮಾದರಿಯ ಸಿಲಿಂಡರ್‌ಗಳು", - "type_d_cylinders": "ಡಿ ಮಾದರಿಯ ಸಿಲಿಂಡರ್‌ಗಳು", - "select_local_body": "ಸ್ಥಳೀಯ ಸಂಸ್ಥೆಯನ್ನು ಆಯ್ಕೆಮಾಡಿ", - "update_asset": "ಆಸ್ತಿಯನ್ನು ನವೀಕರಿಸಿ", - "create_new_asset": "ಹೊಸ ಆಸ್ತಿಯನ್ನು ರಚಿಸಿ", - "you_need_at_least_a_location_to_create_an_assest": "ಆಸ್ತಿಯನ್ನು ರಚಿಸಲು ನಿಮಗೆ ಕನಿಷ್ಠ ಸ್ಥಳದ ಅಗತ್ಯವಿದೆ.", - "add_location": "ಸ್ಥಳವನ್ನು ಸೇರಿಸಿ", - "close_scanner": "ಸ್ಕ್ಯಾನರ್ ಅನ್ನು ಮುಚ್ಚಿ", - "scan_asset_qr": "ಸ್ವತ್ತು QR ಅನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಿ!", - "update": "ನವೀಕರಿಸಿ", - "create": "ರಚಿಸಿ", - "asset_name": "ಆಸ್ತಿ ಹೆಸರು", - "asset_location": "ಆಸ್ತಿಯ ಸ್ಥಳ", - "asset_type": "ಆಸ್ತಿ ಪ್ರಕಾರ", - "asset_class": "ಆಸ್ತಿ ವರ್ಗ", - "details_about_the_equipment": "ಸಲಕರಣೆಗಳ ಬಗ್ಗೆ ವಿವರಗಳು", - "working_status": "ಕೆಲಸದ ಸ್ಥಿತಿ", - "why_the_asset_is_not_working": "ಸ್ವತ್ತು ಏಕೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿಲ್ಲ?", - "describe_why_the_asset_is_not_working": "ಸ್ವತ್ತು ಏಕೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿಲ್ಲ ಎಂಬುದನ್ನು ವಿವರಿಸಿ", - "asset_qr_id": "ಆಸ್ತಿ QR ID", - "manufacturer": "ತಯಾರಕ", - "eg_xyz": "ಉದಾ. XYZ", - "eg_abc": "ಉದಾ. ಎಬಿಸಿ", - "warranty_amc_expiry": "ವಾರಂಟಿ / AMC ಮುಕ್ತಾಯ", - "customer_support_name": "ಗ್ರಾಹಕ ಬೆಂಬಲ ಹೆಸರು", - "customer_support_number": "ಗ್ರಾಹಕ ಬೆಂಬಲ ಸಂಖ್ಯೆ", - "customer_support_email": "ಗ್ರಾಹಕ ಬೆಂಬಲ ಇಮೇಲ್", - "eg_mail_example_com": "ಉದಾ. mail@example.com", - "vendor_name": "ಮಾರಾಟಗಾರರ ಹೆಸರು", - "serial_number": "ಸರಣಿ ಸಂಖ್ಯೆ", - "last_serviced_on": "ಕೊನೆಯದಾಗಿ ಸೇವೆ ಸಲ್ಲಿಸಲಾಗಿದೆ", - "notes": "ಟಿಪ್ಪಣಿಗಳು", - "create_asset": "ಆಸ್ತಿಯನ್ನು ರಚಿಸಿ", - "create_add_more": "ರಚಿಸಿ ಮತ್ತು ಇನ್ನಷ್ಟು ಸೇರಿಸಿ", - "discharged_patients": "ಬಿಡುಗಡೆಯಾದ ರೋಗಿಗಳು", - "discharged_patients_empty": "ಈ ಸೌಲಭ್ಯದಲ್ಲಿ ಬಿಡುಗಡೆಯಾದ ಯಾವುದೇ ರೋಗಿಗಳು ಇರುವುದಿಲ್ಲ", - "update_facility_middleware_success": "ಸೌಲಭ್ಯ ಮಿಡಲ್‌ವೇರ್ ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ನವೀಕರಿಸಲಾಗಿದೆ", - "treatment_summary__head_title": "ಚಿಕಿತ್ಸೆಯ ಸಾರಾಂಶ", - "treatment_summary__print": "ಪ್ರಿಂಟ್ ಟ್ರೀಟ್ಮೆಂಟ್ ಸಾರಾಂಶ", - "treatment_summary__heading": "ಮಧ್ಯಂತರ ಚಿಕಿತ್ಸೆಯ ಸಾರಾಂಶ", - "patient_registration__name": "ಹೆಸರು", - "patient_registration__address": "ವಿಳಾಸ", - "patient_registration__age": "ವಯಸ್ಸು", - "patient_consultation__op": "OP", - "patient_consultation__ip": "IP", - "patient_consultation__dc_admission": "ಮನೆಯ ಆರೈಕೆಯ ದಿನಾಂಕ ಪ್ರಾರಂಭವಾಗಿದೆ", - "patient_consultation__admission": "ಪ್ರವೇಶ ದಿನಾಂಕ", - "patient_registration__gender": "ಲಿಂಗ", - "patient_registration__contact": "ತುರ್ತು ಸಂಪರ್ಕ", - "patient_registration__comorbidities": "ಸಹವರ್ತಿ ರೋಗಗಳು", - "patient_registration__comorbidities__disease": "ರೋಗ", - "patient_registration__comorbidities__details": "ವಿವರಗಳು", - "patient_consultation__consultation_notes": "ಸಾಮಾನ್ಯ ಸೂಚನೆಗಳು", - "patient_consultation__special_instruction": "ವಿಶೇಷ ಸೂಚನೆಗಳು", - "suggested_investigations": "ಸೂಚಿಸಿದ ತನಿಖೆಗಳು", - "investigations__date": "ದಿನಾಂಕ", - "investigations__name": "ಹೆಸರು", - "investigations__result": "ಫಲಿತಾಂಶ", - "investigations__ideal_value": "ಆದರ್ಶ ಮೌಲ್ಯ", - "investigations__range": "ಮೌಲ್ಯ ಶ್ರೇಣಿ", - "investigations__unit": "ಘಟಕ", - "patient_consultation__treatment__plan": "ಯೋಜನೆ", - "patient_consultation__treatment__summary": "ಸಾರಾಂಶ", - "patient_consultation__treatment__summary__date": "ದಿನಾಂಕ", - "patient_consultation__treatment__summary__spo2": "SpO2", - "patient_consultation__treatment__summary__temperature": "ತಾಪಮಾನ", - "diagnosis": "ರೋಗನಿರ್ಣಯ", - "diagnosis__principal": "ಪ್ರಿನ್ಸಿಪಾಲ್", - "diagnosis__confirmed": "ದೃಢಪಡಿಸಿದೆ", - "diagnosis__provisional": "ತಾತ್ಕಾಲಿಕ", - "diagnosis__unconfirmed": "ದೃಢೀಕರಿಸಲಾಗಿಲ್ಲ", - "diagnosis__differential": "ಭೇದಾತ್ಮಕ", - "active_prescriptions": "ಸಕ್ರಿಯ ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್ಗಳು", - "prescriptions__medicine": "ಔಷಧಿ", - "prescriptions__route": "ಮಾರ್ಗ", - "prescriptions__dosage_frequency": "ಡೋಸೇಜ್ ಮತ್ತು ಆವರ್ತನ", - "prescriptions__start_date": "ರಂದು ಸೂಚಿಸಲಾಗಿದೆ", - "select_facility_for_discharged_patients_warning": "ಬಿಡುಗಡೆಯಾದ ರೋಗಿಗಳನ್ನು ವೀಕ್ಷಿಸಲು ಸೌಲಭ್ಯವನ್ನು ಆಯ್ಕೆ ಮಾಡಬೇಕಾಗಿದೆ.", - "duplicate_patient_record_confirmation": "ಹುಟ್ಟಿದ ವರ್ಷವನ್ನು ಸೇರಿಸುವ ಮೂಲಕ ನಿಮ್ಮ ಸೌಲಭ್ಯಕ್ಕೆ ರೋಗಿಯ ದಾಖಲೆಯನ್ನು ಒಪ್ಪಿಕೊಳ್ಳಿ", - "duplicate_patient_record_rejection": "ನಾನು ರಚಿಸಲು ಬಯಸುವ ಶಂಕಿತ / ರೋಗಿಯು ಪಟ್ಟಿಯಲ್ಲಿಲ್ಲ ಎಂದು ನಾನು ದೃಢೀಕರಿಸುತ್ತೇನೆ.", - "duplicate_patient_record_birth_unknown": "ರೋಗಿಯ ಜನ್ಮ ವರ್ಷದ ಬಗ್ಗೆ ನಿಮಗೆ ಖಚಿತವಿಲ್ಲದಿದ್ದರೆ ದಯವಿಟ್ಟು ನಿಮ್ಮ ಜಿಲ್ಲಾ ಆರೈಕೆ ಸಂಯೋಜಕರು, ಸ್ಥಳಾಂತರ ಸೌಲಭ್ಯ ಅಥವಾ ರೋಗಿಯನ್ನು ಸಂಪರ್ಕಿಸಿ.", - "patient_transfer_birth_match_note": "ಗಮನಿಸಿ: ವರ್ಗಾವಣೆ ವಿನಂತಿಯನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಹುಟ್ಟಿದ ವರ್ಷವು ರೋಗಿಗೆ ಹೊಂದಿಕೆಯಾಗಬೇಕು.", - "cover_image_updated_note": "ನವೀಕರಿಸಿದ ಕವರ್ ಚಿತ್ರವನ್ನು ನೋಡಲು ಸ್ವಲ್ಪ ಸಮಯ ತೆಗೆದುಕೊಳ್ಳಬಹುದು", - "available_features": "ಲಭ್ಯವಿರುವ ವೈಶಿಷ್ಟ್ಯಗಳು", - "update_facility": "ನವೀಕರಣ ಸೌಲಭ್ಯ", - "configure_facility": "ಸೌಲಭ್ಯವನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ", - "inventory_management": "ದಾಸ್ತಾನು ನಿರ್ವಹಣೆ", - "location_management": "ಸ್ಥಳ ನಿರ್ವಹಣೆ", - "resource_request": "ಸಂಪನ್ಮೂಲ ವಿನಂತಿ", - "view_asset": "ಸ್ವತ್ತುಗಳನ್ನು ವೀಕ್ಷಿಸಿ", - "view_users": "ಬಳಕೆದಾರರನ್ನು ವೀಕ್ಷಿಸಿ", - "view_abdm_records": "ABDM ದಾಖಲೆಗಳನ್ನು ವೀಕ್ಷಿಸಿ", - "delete_facility": "ಸೌಲಭ್ಯವನ್ನು ಅಳಿಸಿ", - "central_nursing_station": "ಕೇಂದ್ರ ನರ್ಸಿಂಗ್ ಸ್ಟೇಷನ್", - "add_details_of_patient": "ರೋಗಿಯ ವಿವರಗಳನ್ನು ಸೇರಿಸಿ", - "choose_location": "ಸ್ಥಳವನ್ನು ಆಯ್ಕೆಮಾಡಿ", - "live_monitoring": "ಲೈವ್ ಮಾನಿಟರಿಂಗ್", - "open_live_monitoring": "ಲೈವ್ ಮಾನಿಟರಿಂಗ್ ತೆರೆಯಿರಿ" -} diff --git a/src/Locale/kn/FileUpload.json b/src/Locale/kn/FileUpload.json deleted file mode 100644 index 8a62a726ed5..00000000000 --- a/src/Locale/kn/FileUpload.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "audio__allow_permission": "ದಯವಿಟ್ಟು ಸೈಟ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಮೈಕ್ರೊಫೋನ್ ಅನುಮತಿಯನ್ನು ಅನುಮತಿಸಿ", - "audio__allow_permission_helper": "ನೀವು ಹಿಂದೆ ಮೈಕ್ರೋಫೋನ್ ಪ್ರವೇಶವನ್ನು ನಿರಾಕರಿಸಿರಬಹುದು.", - "audio__allow_permission_button": "ಹೇಗೆ ಅನುಮತಿಸಬೇಕೆಂದು ತಿಳಿಯಲು ಇಲ್ಲಿ ಕ್ಲಿಕ್ ಮಾಡಿ", - "audio__record": "ರೆಕಾರ್ಡ್ ಆಡಿಯೋ", - "audio__record_helper": "ರೆಕಾರ್ಡಿಂಗ್ ಪ್ರಾರಂಭಿಸಲು ಬಟನ್ ಕ್ಲಿಕ್ ಮಾಡಿ", - "audio__recording": "ರೆಕಾರ್ಡಿಂಗ್", - "audio__recording_helper": "ದಯವಿಟ್ಟು ನಿಮ್ಮ ಮೈಕ್ರೋಫೋನ್‌ನಲ್ಲಿ ಮಾತನಾಡಿ.", - "audio__recording_helper_2": "ರೆಕಾರ್ಡಿಂಗ್ ನಿಲ್ಲಿಸಲು ಬಟನ್ ಮೇಲೆ ಕ್ಲಿಕ್ ಮಾಡಿ.", - "audio__recorded": "ಆಡಿಯೋ ರೆಕಾರ್ಡ್ ಮಾಡಲಾಗಿದೆ", - "audio__start_again": "ಮತ್ತೆ ಪ್ರಾರಂಭಿಸಿ", - "enter_file_name": "ಫೈಲ್ ಹೆಸರನ್ನು ನಮೂದಿಸಿ", - "no_files_found": "ಯಾವುದೇ {{type}} ಫೈಲ್‌ಗಳು ಕಂಡುಬಂದಿಲ್ಲ", - "upload_headings__patient": "ಹೊಸ ರೋಗಿಯ ಫೈಲ್ ಅನ್ನು ಅಪ್‌ಲೋಡ್ ಮಾಡಿ", - "upload_headings__consultation": "ಹೊಸ ಸಮಾಲೋಚನೆ ಫೈಲ್ ಅನ್ನು ಅಪ್ಲೋಡ್ ಮಾಡಿ", - "upload_headings__sample_report": "ಮಾದರಿ ವರದಿಯನ್ನು ಅಪ್ಲೋಡ್ ಮಾಡಿ", - "upload_headings__supporting_info": "ಪೋಷಕ ಮಾಹಿತಿಯನ್ನು ಅಪ್ಲೋಡ್ ಮಾಡಿ", - "file_list_headings__patient": "ರೋಗಿಯ ಫೈಲ್ಗಳು", - "file_list_headings__consultation": "ಸಮಾಲೋಚನೆ ಫೈಲ್ಗಳು", - "file_list_headings__sample_report": "ಮಾದರಿ ವರದಿ", - "file_list_headings__supporting_info": "ಪೋಷಕ ಮಾಹಿತಿ", - "file_error__choose_file": "ದಯವಿಟ್ಟು ಅಪ್‌ಲೋಡ್ ಮಾಡಲು ಫೈಲ್ ಅನ್ನು ಆಯ್ಕೆಮಾಡಿ", - "file_error__file_name": "ದಯವಿಟ್ಟು ಫೈಲ್ ಹೆಸರನ್ನು ನಮೂದಿಸಿ", - "file_error__file_size": "ಫೈಲ್‌ಗಳ ಗರಿಷ್ಠ ಗಾತ್ರ 100 MB", - "file_error__file_type": "ಅಮಾನ್ಯವಾದ ಫೈಲ್ ಪ್ರಕಾರ \".{{extension}}\" ಅನುಮತಿಸಲಾದ ಪ್ರಕಾರಗಳು: {{allowedExtensions}}", - "file_uploaded": "ಫೈಲ್ ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಅಪ್‌ಲೋಡ್ ಮಾಡಲಾಗಿದೆ", - "file_error__dynamic": "ಫೈಲ್ ಅಪ್‌ಲೋಡ್ ಮಾಡುವಲ್ಲಿ ದೋಷ: {{statusText}}", - "file_error__network": "ಫೈಲ್ ಅಪ್‌ಲೋಡ್ ಮಾಡುವಲ್ಲಿ ದೋಷ: ನೆಟ್‌ವರ್ಕ್ ದೋಷ" -} diff --git a/src/Locale/kn/Hub.json b/src/Locale/kn/Hub.json deleted file mode 100644 index d41fb99e161..00000000000 --- a/src/Locale/kn/Hub.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "monitor": "ಮಾನಿಟರ್", - "show_default_presets": "ಡೀಫಾಲ್ಟ್ ಪೂರ್ವನಿಗದಿಗಳನ್ನು ತೋರಿಸಿ", - "show_patient_presets": "ರೋಗಿಯ ಪೂರ್ವನಿಗದಿಗಳನ್ನು ತೋರಿಸಿ", - "moving_camera": "ಮೂವಿಂಗ್ ಕ್ಯಾಮೆರಾ", - "full_screen": "ಪೂರ್ಣ ಪರದೆ", - "feed_is_currently_not_live": "ಫೀಡ್ ಪ್ರಸ್ತುತ ಲೈವ್ ಆಗಿಲ್ಲ", - "zoom_out": "ಜೂಮ್ ಔಟ್", - "zoom_in": "ಜೂಮ್ ಇನ್", - "right": "ಸರಿ", - "left": "ಎಡಕ್ಕೆ", - "down": "ಕೆಳಗೆ", - "up": "ಮೇಲಕ್ಕೆ" -} diff --git a/src/Locale/kn/LogUpdate.json b/src/Locale/kn/LogUpdate.json deleted file mode 100644 index 188b02c3925..00000000000 --- a/src/Locale/kn/LogUpdate.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "RESPIRATORY_SUPPORT_SHORT__UNKNOWN": "ಯಾವುದೂ ಇಲ್ಲ", - "RESPIRATORY_SUPPORT_SHORT__OXYGEN_SUPPORT": "O2 ಬೆಂಬಲ", - "RESPIRATORY_SUPPORT_SHORT__NON_INVASIVE": "NIV", - "RESPIRATORY_SUPPORT_SHORT__INVASIVE": "IV", - "RESPIRATORY_SUPPORT__UNKNOWN": "ಯಾವುದೂ ಇಲ್ಲ", - "RESPIRATORY_SUPPORT__OXYGEN_SUPPORT": "ಆಮ್ಲಜನಕ ಬೆಂಬಲ", - "RESPIRATORY_SUPPORT__NON_INVASIVE": "ನಾನ್-ಇನ್ವೇಸಿವ್ ವೆಂಟಿಲೇಟರ್ (NIV)", - "RESPIRATORY_SUPPORT__INVASIVE": "ಆಕ್ರಮಣಕಾರಿ ವೆಂಟಿಲೇಟರ್ (IV)", - "VENTILATOR_MODE__CMV": "ಕಂಟ್ರೋಲ್ ಮೆಕ್ಯಾನಿಕಲ್ ವೆಂಟಿಲೇಷನ್ (CMV)", - "VENTILATOR_MODE__VCV": "ವಾಲ್ಯೂಮ್ ಕಂಟ್ರೋಲ್ ವೆಂಟಿಲೇಶನ್ (VCV)", - "VENTILATOR_MODE__PCV": "ಪ್ರೆಶರ್ ಕಂಟ್ರೋಲ್ ವೆಂಟಿಲೇಷನ್ (PCV)", - "VENTILATOR_MODE__SIMV": "ಸಿಂಕ್ರೊನೈಸ್ ಮಾಡಿದ ಮಧ್ಯಂತರ ಕಡ್ಡಾಯ ವಾತಾಯನ (SIMV)", - "VENTILATOR_MODE__VC_SIMV": "ವಾಲ್ಯೂಮ್ ಕಂಟ್ರೋಲ್ಡ್ SIMV (VC-SIMV)", - "VENTILATOR_MODE__PC_SIMV": "ಒತ್ತಡ ನಿಯಂತ್ರಿತ SIMV (PC-SIMV)", - "VENTILATOR_MODE__PSV": "C-PAP / ಪ್ರೆಶರ್ ಸಪೋರ್ಟ್ ವೆಂಟಿಲೇಷನ್ (PSV)", - "CONSCIOUSNESS_LEVEL__UNRESPONSIVE": "ಪ್ರತಿಕ್ರಿಯಿಸದ", - "CONSCIOUSNESS_LEVEL__RESPONDS_TO_PAIN": "ನೋವಿಗೆ ಸ್ಪಂದಿಸುತ್ತದೆ", - "CONSCIOUSNESS_LEVEL__RESPONDS_TO_VOICE": "ಧ್ವನಿಗೆ ಪ್ರತಿಕ್ರಿಯಿಸುತ್ತದೆ", - "CONSCIOUSNESS_LEVEL__ALERT": "ಎಚ್ಚರಿಕೆ", - "CONSCIOUSNESS_LEVEL__AGITATED_OR_CONFUSED": "ಕ್ಷೋಭೆ ಅಥವಾ ಗೊಂದಲ", - "CONSCIOUSNESS_LEVEL__ONSET_OF_AGITATION_AND_CONFUSION": "ಆಂದೋಲನ ಮತ್ತು ಗೊಂದಲದ ಆರಂಭ", - "PUPIL_REACTION__UNKNOWN": "ಅಜ್ಞಾತ", - "PUPIL_REACTION__BRISK": "ಚುರುಕಾದ", - "PUPIL_REACTION__SLUGGISH": "ಜಡ", - "PUPIL_REACTION__FIXED": "ನಿವಾರಿಸಲಾಗಿದೆ", - "PUPIL_REACTION__CANNOT_BE_ASSESSED": "ಮೌಲ್ಯಮಾಪನ ಮಾಡಲಾಗುವುದಿಲ್ಲ", - "LIMB_RESPONSE__UNKNOWN": "ಅಜ್ಞಾತ", - "LIMB_RESPONSE__STRONG": "ಬಲಶಾಲಿ", - "LIMB_RESPONSE__MODERATE": "ಮಧ್ಯಮ", - "LIMB_RESPONSE__WEAK": "ದುರ್ಬಲ", - "LIMB_RESPONSE__FLEXION": "ಬಾಗುವಿಕೆ", - "LIMB_RESPONSE__EXTENSION": "ವಿಸ್ತರಣೆ", - "LIMB_RESPONSE__NONE": "ಯಾವುದೂ ಇಲ್ಲ", - "OXYGEN_MODALITY__NASAL_PRONGS": "ಮೂಗಿನ ಪ್ರಾಂಗ್ಸ್", - "OXYGEN_MODALITY__SIMPLE_FACE_MASK": "ಸರಳ ಫೇಸ್ ಮಾಸ್ಕ್", - "OXYGEN_MODALITY__NON_REBREATHING_MASK": "ನಾನ್ ರಿಬ್ರೆಥಿಂಗ್ ಮಾಸ್ಕ್", - "OXYGEN_MODALITY__HIGH_FLOW_NASAL_CANNULA": "ಹೈ ಫ್ಲೋ ನಾಸಲ್ ಕ್ಯಾನುಲಾ", - "INSULIN_INTAKE_FREQUENCY__UNKNOWN": "ಅಜ್ಞಾತ", - "INSULIN_INTAKE_FREQUENCY__OD": "ದಿನಕ್ಕೆ ಒಮ್ಮೆ (OD)", - "INSULIN_INTAKE_FREQUENCY__BD": "ದಿನಕ್ಕೆ ಎರಡು ಬಾರಿ (BD)", - "INSULIN_INTAKE_FREQUENCY__TD": "ದಿನಕ್ಕೆ ಮೂರು ಬಾರಿ (ಟಿಡಿ)", - "NURSING_CARE_PROCEDURE__personal_hygiene": "ವೈಯಕ್ತಿಕ ನೈರ್ಮಲ್ಯ", - "NURSING_CARE_PROCEDURE__positioning": "ಸ್ಥಾನೀಕರಣ", - "NURSING_CARE_PROCEDURE__suctioning": "ಹೀರುವುದು", - "NURSING_CARE_PROCEDURE__ryles_tube_care": "ರೈಲ್ಸ್ ಟ್ಯೂಬ್ ಕೇರ್", - "NURSING_CARE_PROCEDURE__iv_sitecare": "IV ಸೈಟ್ ಕೇರ್", - "NURSING_CARE_PROCEDURE__nubulisation": "ನೂಬುಲೈಸೇಶನ್", - "NURSING_CARE_PROCEDURE__dressing": "ಡ್ರೆಸ್ಸಿಂಗ್", - "NURSING_CARE_PROCEDURE__dvt_pump_stocking": "DVT ಪಂಪ್ ಸ್ಟಾಕಿಂಗ್", - "NURSING_CARE_PROCEDURE__restrain": "ನಿಗ್ರಹಿಸಿ", - "NURSING_CARE_PROCEDURE__chest_tube_care": "ಚೆಸ್ಟ್ ಟ್ಯೂಬ್ ಕೇರ್", - "NURSING_CARE_PROCEDURE__tracheostomy_care": "ಟ್ರಾಕಿಯೊಸ್ಟೊಮಿ ಕೇರ್", - "NURSING_CARE_PROCEDURE__stoma_care": "ಸ್ಟೊಮಾ ಕೇರ್", - "NURSING_CARE_PROCEDURE__catheter_care": "ಕ್ಯಾತಿಟರ್ ಕೇರ್", - "HEARTBEAT_RHYTHM__REGULAR": "ನಿಯಮಿತ", - "HEARTBEAT_RHYTHM__IRREGULAR": "ಅನಿಯಮಿತ", - "HEARTBEAT_RHYTHM__UNKNOWN": "ಅಜ್ಞಾತ", - "map_acronym": "ನಕ್ಷೆ", - "systolic": "ಸಿಸ್ಟೊಲಿಕ್", - "diastolic": "ಡಯಾಸ್ಟೊಲಿಕ್", - "pain": "ನೋವು", - "pain_chart_description": "ನೋವಿನ ಪ್ರದೇಶ ಮತ್ತು ತೀವ್ರತೆಯನ್ನು ಗುರುತಿಸಿ", - "bradycardia": "ಬ್ರಾಡಿಕಾರ್ಡಿಯಾ", - "tachycardia": "ಟಾಕಿಕಾರ್ಡಿಯಾ" -} \ No newline at end of file diff --git a/src/Locale/kn/Medicine.json b/src/Locale/kn/Medicine.json deleted file mode 100644 index 1f5b1583153..00000000000 --- a/src/Locale/kn/Medicine.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "medicine": "ಔಷಧಿ", - "route": "ಮಾರ್ಗ", - "dosage": "ಡೋಸೇಜ್", - "base_dosage": "ಡೋಸೇಜ್", - "start_dosage": "ಡೋಸೇಜ್ ಪ್ರಾರಂಭಿಸಿ", - "target_dosage": "ಗುರಿ ಡೋಸೇಜ್", - "instruction_on_titration": "ಟೈಟರೇಶನ್ ಕುರಿತು ಸೂಚನೆ", - "titrate_dosage": "ಟೈಟ್ರೇಟ್ ಡೋಸೇಜ್", - "indicator": "ಸೂಚಕ", - "inidcator_event": "ಸೂಚಕ ಈವೆಂಟ್", - "max_dosage_24_hrs": "ಗರಿಷ್ಠ 24 ಗಂಟೆಗಳಲ್ಲಿ ಡೋಸೇಜ್", - "min_time_bw_doses": "ಕನಿಷ್ಠ ಸಮಯ b/w ಪ್ರಮಾಣಗಳು", - "manage_prescriptions": "ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಿ", - "prescription_details": "ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್ ವಿವರಗಳು", - "prescription_medications": "ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್ ಔಷಧಿಗಳು", - "prn_prescriptions": "PRN ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್‌ಗಳು", - "prescription": "ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್", - "discharge_prescription": "ಡಿಸ್ಚಾರ್ಜ್ ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್", - "edit_prescriptions": "ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್‌ಗಳನ್ನು ಸಂಪಾದಿಸಿ", - "prescription_medication": "ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್ ಔಷಧಿ", - "add_prescription_medication": "ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್ ಔಷಧಿಗಳನ್ನು ಸೇರಿಸಿ", - "prn_prescription": "PRN ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್", - "add_prn_prescription": "PRN ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್ ಸೇರಿಸಿ", - "add_prescription_to_consultation_note": "ಈ ಸಮಾಲೋಚನೆಗೆ ಹೊಸ ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್ ಸೇರಿಸಿ.", - "medicine_administration_history": "ಮೆಡಿಸಿನ್ ಅಡ್ಮಿನಿಸ್ಟ್ರೇಷನ್ ಇತಿಹಾಸ", - "return_to_patient_dashboard": "ರೋಗಿಯ ಡ್ಯಾಶ್‌ಬೋರ್ಡ್‌ಗೆ ಹಿಂತಿರುಗಿ", - "administered_on": "ರಂದು ನಿರ್ವಹಿಸಲಾಗಿದೆ", - "administer": "ನಿರ್ವಹಿಸು", - "administer_medicine": "ಔಷಧವನ್ನು ನಿರ್ವಹಿಸಿ", - "administer_medicines": "ಔಷಧಗಳನ್ನು ನಿರ್ವಹಿಸಿ", - "administer_selected_medicines": "ಆಯ್ದ ಔಷಧಗಳನ್ನು ನಿರ್ವಹಿಸಿ", - "select_for_administration": "ಆಡಳಿತಕ್ಕಾಗಿ ಆಯ್ಕೆಮಾಡಿ", - "medicines_administered": "ಔಷಧ(ಗಳು) ನಿರ್ವಹಿಸಲಾಗಿದೆ", - "medicines_administered_error": "ಔಷಧ(ಗಳನ್ನು) ನಿರ್ವಹಿಸುವಲ್ಲಿ ದೋಷ", - "prescription_discontinued": "ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್ ಸ್ಥಗಿತಗೊಂಡಿದೆ", - "administration_notes": "ಆಡಳಿತ ಟಿಪ್ಪಣಿಗಳು", - "last_administered": "ಕೊನೆಯದಾಗಿ ನಿರ್ವಹಿಸಲಾಗಿದೆ", - "prescription_logs": "ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್ ದಾಖಲೆಗಳು", - "modification_caution_note": "ಒಮ್ಮೆ ಸೇರಿಸಿದ ನಂತರ ಯಾವುದೇ ಮಾರ್ಪಾಡುಗಳು ಸಾಧ್ಯವಿಲ್ಲ", - "discontinue_caution_note": "ಈ ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್ ಅನ್ನು ನಿಲ್ಲಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?", - "confirm_discontinue": "ಸ್ಥಗಿತಗೊಳಿಸುವುದನ್ನು ದೃಢೀಕರಿಸಿ", - "edit_caution_note": "ಸಂಪಾದಿತ ವಿವರಗಳೊಂದಿಗೆ ಹೊಸ ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್ ಅನ್ನು ಸಮಾಲೋಚನೆಗೆ ಸೇರಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಪ್ರಸ್ತುತ ಪ್ರಿಸ್ಕ್ರಿಪ್ಷನ್ ಅನ್ನು ಸ್ಥಗಿತಗೊಳಿಸಲಾಗುತ್ತದೆ.", - "reason_for_discontinuation": "ಸ್ಥಗಿತಗೊಳ್ಳಲು ಕಾರಣ", - "reason_for_edit": "ಸಂಪಾದನೆಗೆ ಕಾರಣ", - "PRESCRIPTION_ROUTE_ORAL": "ಮೌಖಿಕ", - "PRESCRIPTION_ROUTE_IV": "IV", - "PRESCRIPTION_ROUTE_IM": "IM", - "PRESCRIPTION_ROUTE_SC": "ಎಸ್/ಸಿ", - "PRESCRIPTION_ROUTE_INHALATION": "ಇನ್ಹಲೇಷನ್", - "PRESCRIPTION_ROUTE_NASOGASTRIC": "ನಾಸೊಗ್ಯಾಸ್ಟ್ರಿಕ್ / ಗ್ಯಾಸ್ಟ್ರೋಸ್ಟೊಮಿ ಟ್ಯೂಬ್", - "PRESCRIPTION_ROUTE_INTRATHECAL": "ಇಂಟ್ರಾಥೆಕಲ್ ಇಂಜೆಕ್ಷನ್", - "PRESCRIPTION_ROUTE_TRANSDERMAL": "ಟ್ರಾನ್ಸ್ಡರ್ಮಲ್", - "PRESCRIPTION_ROUTE_RECTAL": "ಗುದನಾಳ", - "PRESCRIPTION_ROUTE_SUBLINGUAL": "ಉಪಭಾಷೆ", - "PRESCRIPTION_FREQUENCY_STAT": "ತಕ್ಷಣವೇ", - "PRESCRIPTION_FREQUENCY_OD": "ದಿನಕ್ಕೆ ಒಮ್ಮೆ", - "PRESCRIPTION_FREQUENCY_HS": "ರಾತ್ರಿ ಮಾತ್ರ", - "PRESCRIPTION_FREQUENCY_BD": "ದಿನಕ್ಕೆ ಎರಡು ಬಾರಿ", - "PRESCRIPTION_FREQUENCY_TID": "8 ನೇ ಗಂಟೆಗೆ", - "PRESCRIPTION_FREQUENCY_QID": "6 ನೇ ಗಂಟೆಗೆ", - "PRESCRIPTION_FREQUENCY_Q4H": "4 ನೇ ಗಂಟೆಗೆ", - "PRESCRIPTION_FREQUENCY_QOD": "ಪರ್ಯಾಯ ದಿನ", - "PRESCRIPTION_FREQUENCY_QWK": "ವಾರಕ್ಕೊಮ್ಮೆ", - "inconsistent_dosage_units_error": "ಡೋಸೇಜ್ ಘಟಕಗಳು ಒಂದೇ ಆಗಿರಬೇಕು", - "max_dosage_in_24hrs_gte_base_dosage_error": "ಗರಿಷ್ಠ 24 ಗಂಟೆಗಳಲ್ಲಿ ಡೋಸೇಜ್ ಬೇಸ್ ಡೋಸೇಜ್‌ಗಿಂತ ಹೆಚ್ಚಾಗಿರಬೇಕು ಅಥವಾ ಸಮನಾಗಿರಬೇಕು", - "administration_dosage_range_error": "ಡೋಸೇಜ್ ಪ್ರಾರಂಭ ಮತ್ತು ಗುರಿ ಡೋಸೇಜ್ ನಡುವೆ ಇರಬೇಕು" -} \ No newline at end of file diff --git a/src/Locale/kn/Notifications.json b/src/Locale/kn/Notifications.json deleted file mode 100644 index 48ceadfa4c6..00000000000 --- a/src/Locale/kn/Notifications.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "no_notices_for_you": "ನಿಮಗಾಗಿ ಯಾವುದೇ ಸೂಚನೆಗಳಿಲ್ಲ.", - "mark_as_read": "ಓದಿದಂತೆ ಗುರುತಿಸಿ", - "mark_as_unread": "ಓದದಿರುವಂತೆ ಗುರುತಿಸಿ", - "subscribe": "ಚಂದಾದಾರರಾಗಿ", - "subscribe_on_this_device": "ಈ ಸಾಧನದಲ್ಲಿ ಚಂದಾದಾರರಾಗಿ", - "show_unread_notifications": "ಓದದಿರುವುದನ್ನು ತೋರಿಸಿ", - "show_all_notifications": "ಎಲ್ಲವನ್ನೂ ತೋರಿಸು", - "filter_by_category": "ವರ್ಗದ ಪ್ರಕಾರ ಫಿಲ್ಟರ್ ಮಾಡಿ", - "mark_all_as_read": "ಎಲ್ಲವನ್ನೂ ಓದಿ ಎಂದು ಗುರುತಿಸಿ", - "reload": "ಮರುಲೋಡ್ ಮಾಡಿ", - "Notifications": "ಅಧಿಸೂಚನೆಗಳು", - "no_results_found": "ಯಾವುದೇ ಫಲಿತಾಂಶಗಳು ಕಂಡುಬಂದಿಲ್ಲ", - "load_more": "ಇನ್ನಷ್ಟು ಲೋಡ್ ಮಾಡಿ", - "subscription_error": "ಚಂದಾದಾರಿಕೆ ದೋಷ", - "unsubscribe_failed": "ಅನ್‌ಸಬ್‌ಸ್ಕ್ರೈಬ್ ವಿಫಲವಾಗಿದೆ.", - "unsubscribe": "ಅನ್‌ಸಬ್‌ಸ್ಕ್ರೈಬ್ ಮಾಡಿ", - "escape": "ಎಸ್ಕೇಪ್", - "loading": "ಲೋಡ್ ಆಗುತ್ತಿದೆ...", - "invalid_asset_id_msg": "ಓಹ್! ನೀವು ನಮೂದಿಸಿದ ಸ್ವತ್ತು ಐಡಿ ಮಾನ್ಯವಾಗಿರುವಂತೆ ತೋರುತ್ತಿಲ್ಲ.", - "asset_not_found_msg": "ಓಹ್! ನೀವು ಹುಡುಕುತ್ತಿರುವ ಸ್ವತ್ತು ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ. ದಯವಿಟ್ಟು ಸ್ವತ್ತಿನ ಐಡಿಯನ್ನು ಪರಿಶೀಲಿಸಿ." -} diff --git a/src/Locale/kn/Resource.json b/src/Locale/kn/Resource.json deleted file mode 100644 index 2ee497ba780..00000000000 --- a/src/Locale/kn/Resource.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "create_resource_request": "ಸಂಪನ್ಮೂಲ ವಿನಂತಿಯನ್ನು ರಚಿಸಿ", - "contact_person": "ಸೌಲಭ್ಯದಲ್ಲಿರುವ ಸಂಪರ್ಕ ವ್ಯಕ್ತಿಯ ಹೆಸರು", - "approving_facility": "ಅನುಮೋದಿಸುವ ಸೌಲಭ್ಯದ ಹೆಸರು", - "contact_phone": "ಸಂಪರ್ಕ ವ್ಯಕ್ತಿ ಸಂಖ್ಯೆ", - "request_title": "ವಿನಂತಿ ಶೀರ್ಷಿಕೆ", - "request_title_placeholder": "ನಿಮ್ಮ ಶೀರ್ಷಿಕೆಯನ್ನು ಇಲ್ಲಿ ಟೈಪ್ ಮಾಡಿ", - "required_quantity": "ಅಗತ್ಯವಿರುವ ಪ್ರಮಾಣ", - "request_description": "ವಿನಂತಿಯ ವಿವರಣೆ", - "request_description_placeholder": "ನಿಮ್ಮ ವಿವರಣೆಯನ್ನು ಇಲ್ಲಿ ಟೈಪ್ ಮಾಡಿ", - "search_resource": "ಹುಡುಕಾಟ ಸಂಪನ್ಮೂಲ" -} diff --git a/src/Locale/kn/Shifting.json b/src/Locale/kn/Shifting.json deleted file mode 100644 index 3458b962f7c..00000000000 --- a/src/Locale/kn/Shifting.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "emergency": "ತುರ್ತು ಪರಿಸ್ಥಿತಿ", - "up_shift": "ಅಪ್ ಶಿಫ್ಟ್", - "antenatal": "ಪ್ರಸವಪೂರ್ವ", - "phone_no": "ದೂರವಾಣಿ ಸಂಖ್ಯೆ.", - "patient_name": "ರೋಗಿಯ ಹೆಸರು", - "disease_status": "ರೋಗದ ಸ್ಥಿತಿ", - "breathlessness_level": "ಉಸಿರಾಟದ ಮಟ್ಟ", - "assigned_facility": "ಸೌಲಭ್ಯವನ್ನು ನಿಯೋಜಿಸಲಾಗಿದೆ", - "origin_facility": "ಪ್ರಸ್ತುತ ಸೌಲಭ್ಯ", - "shifting_approval_facility": "ಶಿಫ್ಟಿಂಗ್ ಅನುಮೋದನೆ ಸೌಲಭ್ಯ", - "shifting": "ಶಿಫ್ಟಿಂಗ್", - "search_patient": "ರೋಗಿಯನ್ನು ಹುಡುಕಿ", - "list_view": "ಪಟ್ಟಿ ವೀಕ್ಷಣೆ", - "comment_min_length": "ಕಾಮೆಂಟ್ ಕನಿಷ್ಠ 1 ಅಕ್ಷರವನ್ನು ಹೊಂದಿರಬೇಕು", - "comment_added_successfully": "ಕಾಮೆಂಟ್ ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಸೇರಿಸಲಾಗಿದೆ", - "post_your_comment": "ನಿಮ್ಮ ಕಾಮೆಂಟ್ ಅನ್ನು ಪೋಸ್ಟ್ ಮಾಡಿ", - "shifting_approving_facility": "ಅನುಮೋದಿಸುವ ಸೌಲಭ್ಯವನ್ನು ಬದಲಾಯಿಸಲಾಗುತ್ತಿದೆ", - "is_emergency_case": "ತುರ್ತು ಪ್ರಕರಣವಾಗಿದೆ", - "is_upshift_case": "ಅಪ್ ಶಿಫ್ಟ್ ಕೇಸ್ ಆಗಿದೆ", - "is_antenatal": "ಪ್ರಸವಪೂರ್ವವಾಗಿದೆ", - "patient_phone_number": "ರೋಗಿಯ ಫೋನ್ ಸಂಖ್ಯೆ", - "created_date": "ರಚಿಸಿದ ದಿನಾಂಕ", - "modified_date": "ಮಾರ್ಪಡಿಸಿದ ದಿನಾಂಕ", - "no_patients_to_show": "ತೋರಿಸಲು ರೋಗಿಗಳಿಲ್ಲ.", - "shifting_status": "ಸ್ಥಿತಿಯನ್ನು ಬದಲಾಯಿಸಲಾಗುತ್ತಿದೆ", - "transfer_to_receiving_facility": "ಸ್ವೀಕರಿಸುವ ಸೌಲಭ್ಯಕ್ಕೆ ವರ್ಗಾಯಿಸಿ", - "confirm_transfer_complete": "ವರ್ಗಾವಣೆ ಪೂರ್ಣಗೊಂಡಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿ!", - "mark_transfer_complete_confirmation": "ಈ ವರ್ಗಾವಣೆ ಪೂರ್ಣಗೊಂಡಿದೆ ಎಂದು ಗುರುತಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ? ಮೂಲ ಸೌಲಭ್ಯವು ಇನ್ನು ಮುಂದೆ ಈ ರೋಗಿಗೆ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿರುವುದಿಲ್ಲ", - "board_view": "ಬೋರ್ಡ್ ವೀಕ್ಷಣೆ", - "shifting_deleted": "ಶಿಫ್ಟಿಂಗ್ ದಾಖಲೆಯನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಅಳಿಸಲಾಗಿದೆ.", - "details_of_shifting_approving_facility": "ಅನುಮೋದಿಸುವ ಸೌಲಭ್ಯವನ್ನು ಬದಲಾಯಿಸುವ ವಿವರಗಳು", - "details_of_assigned_facility": "ನಿಯೋಜಿಸಲಾದ ಸೌಲಭ್ಯದ ವಿವರಗಳು", - "details_of_origin_facility": "ಮೂಲ ಸೌಲಭ್ಯದ ವಿವರಗಳು", - "details_of_patient": "ರೋಗಿಯ ವಿವರಗಳು", - "record_delete_confirm": "ಈ ದಾಖಲೆಯನ್ನು ಅಳಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?", - "phone_number_at_current_facility": "ಪ್ರಸ್ತುತ ಸೌಲಭ್ಯದಲ್ಲಿರುವ ವ್ಯಕ್ತಿಯ ಸಂಪರ್ಕದ ಫೋನ್ ಸಂಖ್ಯೆ", - "authorize_shift_delete": "ಶಿಫ್ಟ್ ಅಳಿಸುವಿಕೆಯನ್ನು ಅಧಿಕೃತಗೊಳಿಸಿ", - "delete_record": "ದಾಖಲೆ ಅಳಿಸಿ", - "severity_of_breathlessness": "ಉಸಿರಾಟದ ತೀವ್ರತೆ", - "facility_preference": "ಸೌಲಭ್ಯ ಆದ್ಯತೆ", - "vehicle_preference": "ವಾಹನ ಆದ್ಯತೆ", - "is_up_shift": "ಶಿಫ್ಟ್ ಆಗಿದೆ", - "patient_category": "ರೋಗಿಗಳ ವರ್ಗ", - "ambulance_driver_name": "ಆಂಬ್ಯುಲೆನ್ಸ್ ಚಾಲಕನ ಹೆಸರು", - "ambulance_phone_number": "ಆಂಬ್ಯುಲೆನ್ಸ್‌ನ ದೂರವಾಣಿ ಸಂಖ್ಯೆ", - "ambulance_number": "ಆಂಬ್ಯುಲೆನ್ಸ್ ನಂ", - "is_emergency": "ತುರ್ತು ಆಗಿದೆ", - "contact_person_at_the_facility": "ಪ್ರಸ್ತುತ ಸೌಲಭ್ಯದಲ್ಲಿರುವ ವ್ಯಕ್ತಿಯನ್ನು ಸಂಪರ್ಕಿಸಿ", - "update_status_details": "ಸ್ಥಿತಿ/ವಿವರಗಳನ್ನು ನವೀಕರಿಸಿ", - "shifting_details": "ವಿವರಗಳನ್ನು ಬದಲಾಯಿಸಲಾಗುತ್ತಿದೆ", - "auto_generated_for_care": "ಆರೈಕೆಗಾಗಿ ಸ್ವಯಂ ರಚಿಸಲಾಗಿದೆ", - "approved_by_district_covid_control_room": "ಜಿಲ್ಲಾ COVID ನಿಯಂತ್ರಣ ಕೊಠಡಿಯಿಂದ ಅನುಮೋದಿಸಲಾಗಿದೆ", - "treatment_summary": "ಚಿಕಿತ್ಸೆಯ ಸಾರಾಂಶ", - "reason_for_referral": "ಉಲ್ಲೇಖಕ್ಕೆ ಕಾರಣ", - "referred_to": "ಉಲ್ಲೇಖಿಸಲಾಗಿದೆ", - "covid_19_cat_gov": "ಸರ್ಕಾರದ ಪ್ರಕಾರ ಕೋವಿಡ್_19 ಕ್ಲಿನಿಕಲ್ ವರ್ಗ. ಕೇರಳ ಮಾರ್ಗಸೂಚಿ (A/B/C)", - "district_program_management_supporting_unit": "ಜಿಲ್ಲಾ ಕಾರ್ಯಕ್ರಮ ನಿರ್ವಹಣಾ ಪೋಷಕ ಘಟಕ", - "name_of_hospital": "ಆಸ್ಪತ್ರೆಯ ಹೆಸರು", - "passport_number": "ಪಾಸ್ಪೋರ್ಟ್ ಸಂಖ್ಯೆ", - "test_type": "ಪರೀಕ್ಷಾ ಪ್ರಕಾರ", - "medical_worker": "ವೈದ್ಯಕೀಯ ಕೆಲಸಗಾರ", - "error_deleting_shifting": "ಶಿಫ್ಟಿಂಗ್ ರೆಕಾರ್ಡ್ ಅನ್ನು ಅಳಿಸುವಾಗ ದೋಷ", - "type_any_extra_comments_here": "ಯಾವುದೇ ಹೆಚ್ಚುವರಿ ಕಾಮೆಂಟ್‌ಗಳನ್ನು ಇಲ್ಲಿ ಟೈಪ್ ಮಾಡಿ", - "type_your_reason_here": "ನಿಮ್ಮ ಕಾರಣವನ್ನು ಇಲ್ಲಿ ಟೈಪ್ ಮಾಡಿ", - "reason_for_shift": "ಸ್ಥಳಾಂತರಕ್ಕೆ ಕಾರಣ", - "preferred_facility_type": "ಆದ್ಯತೆಯ ಸೌಲಭ್ಯದ ಪ್ರಕಾರ", - "preferred_vehicle": "ಆದ್ಯತೆಯ ವಾಹನ", - "is_it_upshift": "ಇದು ಮೇಲ್ಮುಖವಾಗಿದೆಯೇ", - "is_this_an_upshift": "ಇದು ಉನ್ನತಿಯೇ?", - "is_this_an_emergency": "ಇದು ತುರ್ತು ಪರಿಸ್ಥಿತಿಯೇ?", - "what_facility_assign_the_patient_to": "ರೋಗಿಯನ್ನು ಯಾವ ಸೌಲಭ್ಯಕ್ಕೆ ನಿಯೋಜಿಸಲು ನೀವು ಬಯಸುತ್ತೀರಿ", - "name_of_shifting_approving_facility": "ಶಿಫ್ಟಿಂಗ್ ಅನುಮೋದಿಸುವ ಸೌಲಭ್ಯದ ಹೆಸರು", - "update_shift_request": "ಶಿಫ್ಟ್ ವಿನಂತಿಯನ್ನು ನವೀಕರಿಸಿ", - "shift_request_updated_successfully": "ಶಿಫ್ಟ್ ವಿನಂತಿಯನ್ನು ಯಶಸ್ವಿಯಾಗಿ ನವೀಕರಿಸಲಾಗಿದೆ", - "please_enter_a_reason_for_the_shift": "ದಯವಿಟ್ಟು ಶಿಫ್ಟ್‌ಗೆ ಕಾರಣವನ್ನು ನಮೂದಿಸಿ.", - "please_select_preferred_vehicle_type": "ದಯವಿಟ್ಟು ಆದ್ಯತೆಯ ವಾಹನದ ಪ್ರಕಾರವನ್ನು ಆಯ್ಕೆಮಾಡಿ", - "please_select_facility_type": "ದಯವಿಟ್ಟು ಸೌಲಭ್ಯದ ಪ್ರಕಾರವನ್ನು ಆಯ್ಕೆಮಾಡಿ", - "please_select_breathlessness_level": "ದಯವಿಟ್ಟು ಉಸಿರಾಟದ ಮಟ್ಟವನ್ನು ಆಯ್ಕೆಮಾಡಿ", - "please_select_a_facility": "ದಯವಿಟ್ಟು ಸೌಲಭ್ಯವನ್ನು ಆಯ್ಕೆಮಾಡಿ", - "please_select_status": "ದಯವಿಟ್ಟು ಸ್ಥಿತಿಯನ್ನು ಆಯ್ಕೆಮಾಡಿ", - "please_select_patient_category": "ದಯವಿಟ್ಟು ರೋಗಿಯ ವರ್ಗವನ್ನು ಆಯ್ಕೆಮಾಡಿ", - "shifting_approving_facility_can_not_be_empty": "ಶಿಫ್ಟಿಂಗ್ ಅನುಮೋದಿಸುವ ಸೌಲಭ್ಯ ಖಾಲಿ ಇರುವಂತಿಲ್ಲ.", - "redirected_to_create_consultation": "ಗಮನಿಸಿ: ಸಮಾಲೋಚನೆ ಫಾರ್ಮ್ ರಚಿಸಲು ನಿಮ್ಮನ್ನು ಮರುನಿರ್ದೇಶಿಸಲಾಗುತ್ತದೆ. ವರ್ಗಾವಣೆ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ದಯವಿಟ್ಟು ಫಾರ್ಮ್ ಅನ್ನು ಪೂರ್ಣಗೊಳಿಸಿ", - "mark_this_transfer_as_complete_question": "ಈ ವರ್ಗಾವಣೆ ಪೂರ್ಣಗೊಂಡಿದೆ ಎಂದು ಗುರುತಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ? ಮೂಲ ಸೌಲಭ್ಯವು ಇನ್ನು ಮುಂದೆ ಈ ರೋಗಿಗೆ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿರುವುದಿಲ್ಲ", - "transfer_in_progress": "ವರ್ಗಾವಣೆ ಪ್ರಗತಿಯಲ್ಲಿದೆ", - "patient_state": "ರೋಗಿಯ ಸ್ಥಿತಿ", - "yet_to_be_decided": "ಇನ್ನೂ ನಿರ್ಧರಿಸಬೇಕಿದೆ", - "awaiting_destination_approval": "ಗಮ್ಯಸ್ಥಾನದ ಅನುಮೋದನೆಗಾಗಿ ನಿರೀಕ್ಷಿಸಲಾಗುತ್ತಿದೆ" -} diff --git a/src/Locale/kn/Users.json b/src/Locale/kn/Users.json deleted file mode 100644 index e6bf7e77cb4..00000000000 --- a/src/Locale/kn/Users.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "user_management": "ಬಳಕೆದಾರ ನಿರ್ವಹಣೆ", - "facilities": "ಸೌಲಭ್ಯಗಳು", - "add_new_user": "ಹೊಸ ಬಳಕೆದಾರರನ್ನು ಸೇರಿಸಿ", - "no_users_found": "ಯಾವುದೇ ಬಳಕೆದಾರರು ಕಂಡುಬಂದಿಲ್ಲ", - "home_facility": "ಮನೆ ಸೌಲಭ್ಯ", - "no_home_facility": "ಮನೆ ಸೌಲಭ್ಯ ನೀಡಿಲ್ಲ", - "clear_home_facility": "ಮನೆ ಸೌಲಭ್ಯವನ್ನು ತೆರವುಗೊಳಿಸಿ", - "linked_facilities": "ಲಿಂಕ್ಡ್ ಸೌಲಭ್ಯಗಳು", - "no_linked_facilities": "ಯಾವುದೇ ಲಿಂಕ್ ಮಾಡಲಾದ ಸೌಲಭ್ಯಗಳಿಲ್ಲ", - "average_weekly_working_hours": "ಸರಾಸರಿ ವಾರದ ಕೆಲಸದ ಸಮಯ", - "set_average_weekly_working_hours_for": "ಸರಾಸರಿ ಸಾಪ್ತಾಹಿಕ ಕೆಲಸದ ಸಮಯವನ್ನು ಹೊಂದಿಸಿ", - "search_by_username": "ಬಳಕೆದಾರ ಹೆಸರಿನ ಮೂಲಕ ಹುಡುಕಿ", - "last_online": "ಕೊನೆಯ ಆನ್‌ಲೈನ್", - "total_users": "ಒಟ್ಟು ಬಳಕೆದಾರರು" -} diff --git a/src/Locale/kn/index.js b/src/Locale/kn/index.js deleted file mode 100644 index 5c2b9219ced..00000000000 --- a/src/Locale/kn/index.js +++ /dev/null @@ -1,37 +0,0 @@ -import Asset from "./Asset.json"; -import Auth from "./Auth.json"; -import Bed from "./Bed.json"; -import Common from "./Common.json"; -import Consultation from "./Consultation.json"; -import CoverImageEdit from "./CoverImageEdit.json"; -import Diagnosis from "./Diagnosis.json"; -import Entities from "./Entities.json"; -import ErrorPages from "./ErrorPages.json"; -import ExternalResult from "./ExternalResult.json"; -import Facility from "./Facility.json"; -import FileUpload from "./FileUpload.json"; -import Hub from "./Hub.json"; -import Medicine from "./Medicine.json"; -import Notifications from "./Notifications.json"; -import Shifting from "./Shifting.json"; -import Users from "./Users.json"; - -export default { - ...Auth, - ...Asset, - ...Common, - ...Consultation, - ...CoverImageEdit, - ...Entities, - ...ErrorPages, - ...ExternalResult, - ...Facility, - ...Hub, - ...Medicine, - ...Diagnosis, - ...Notifications, - ...Shifting, - ...Bed, - ...Users, - ...FileUpload, -}; diff --git a/src/Locale/ml.json b/src/Locale/ml.json new file mode 100644 index 00000000000..8460b6f8b7c --- /dev/null +++ b/src/Locale/ml.json @@ -0,0 +1,813 @@ +{ + "404_message": "നിലവിലില്ലാത്തതോ മറ്റൊരു URL-ലേക്ക് നീക്കിയതോ ആയ ഒരു പേജിൽ നിങ്ങൾ ഇടറിവീണതായി തോന്നുന്നു. നിങ്ങൾ ശരിയായ ലിങ്ക് നൽകിയിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക!", + "AUTOMATED": "ഓട്ടോമേറ്റഡ്", + "Assets": "ആസ്തികൾ", + "BED_WITH_OXYGEN_SUPPORT": "ഓക്സിജൻ പിന്തുണയുള്ള കിടക്ക", + "CONSCIOUSNESS_LEVEL__AGITATED_OR_CONFUSED": "അസ്വസ്ഥതയോ ആശയക്കുഴപ്പത്തിലോ", + "CONSCIOUSNESS_LEVEL__ALERT": "മുന്നറിയിപ്പ്", + "CONSCIOUSNESS_LEVEL__ONSET_OF_AGITATION_AND_CONFUSION": "പ്രക്ഷോഭത്തിൻ്റെയും ആശയക്കുഴപ്പത്തിൻ്റെയും തുടക്കം", + "CONSCIOUSNESS_LEVEL__RESPONDS_TO_PAIN": "വേദനയോട് പ്രതികരിക്കുന്നു", + "CONSCIOUSNESS_LEVEL__RESPONDS_TO_VOICE": "ശബ്ദത്തോട് പ്രതികരിക്കുന്നു", + "CONSCIOUSNESS_LEVEL__UNRESPONSIVE": "പ്രതികരിക്കുന്നില്ല", + "Cancel": "റദ്ദാക്കുക", + "DD/MM/YYYY": "DD/MM/YYYY", + "DOCTORS_LOG": "പുരോഗതി കുറിപ്പ്", + "Dashboard": "ഡാഷ്ബോർഡ്", + "Facilities": "ഫെസിലിറ്റികള്‍", + "GENDER__1": "പുരുഷൻ", + "GENDER__2": "സ്ത്രീ", + "GENDER__3": "നോൺ-ബൈനറി", + "HEARTBEAT_RHYTHM__IRREGULAR": "ക്രമരഹിതം", + "HEARTBEAT_RHYTHM__REGULAR": "പതിവ്", + "HEARTBEAT_RHYTHM__UNKNOWN": "അജ്ഞാതം", + "ICU": "ഐ.സി.യു", + "INSULIN_INTAKE_FREQUENCY__BD": "ദിവസത്തിൽ രണ്ടുതവണ (BD)", + "INSULIN_INTAKE_FREQUENCY__OD": "ദിവസത്തിൽ ഒരിക്കൽ (OD)", + "INSULIN_INTAKE_FREQUENCY__TD": "ദിവസത്തിൽ മൂന്ന് തവണ (ടിഡി)", + "INSULIN_INTAKE_FREQUENCY__UNKNOWN": "അജ്ഞാതം", + "ISOLATION": "ഐസൊലേഷൻ", + "KASP Empanelled": "കെ. എ. എസ്. പി. എംപാനല്‍ ചെയ്യപ്പെട്ടത്", + "LIMB_RESPONSE__EXTENSION": "വിപുലീകരണം", + "LIMB_RESPONSE__FLEXION": "ഫ്ലെക്സിഷൻ", + "LIMB_RESPONSE__MODERATE": "മിതത്വം", + "LIMB_RESPONSE__NONE": "ഒന്നുമില്ല", + "LIMB_RESPONSE__STRONG": "ശക്തമായ", + "LIMB_RESPONSE__UNKNOWN": "അജ്ഞാതം", + "LIMB_RESPONSE__WEAK": "ദുർബലമായ", + "NORMAL": "സംക്ഷിപ്ത അപ്ഡേറ്റ്", + "NURSING_CARE_PROCEDURE__catheter_care": "കത്തീറ്റർ കെയർ", + "NURSING_CARE_PROCEDURE__chest_tube_care": "ചെസ്റ്റ് ട്യൂബ് കെയർ", + "NURSING_CARE_PROCEDURE__dressing": "വസ്ത്രധാരണം", + "NURSING_CARE_PROCEDURE__dvt_pump_stocking": "ഡിവിടി പമ്പ് സ്റ്റോക്കിംഗ്", + "NURSING_CARE_PROCEDURE__iv_sitecare": "IV സൈറ്റ് കെയർ", + "NURSING_CARE_PROCEDURE__nubulisation": "നുബുലൈസേഷൻ", + "NURSING_CARE_PROCEDURE__personal_hygiene": "വ്യക്തിഗത ശുചിത്വം", + "NURSING_CARE_PROCEDURE__positioning": "സ്ഥാനനിർണ്ണയം", + "NURSING_CARE_PROCEDURE__restrain": "നിയന്ത്രിക്കുക", + "NURSING_CARE_PROCEDURE__ryles_tube_care": "റൈൽസ് ട്യൂബ് കെയർ", + "NURSING_CARE_PROCEDURE__stoma_care": "സ്റ്റോമ കെയർ", + "NURSING_CARE_PROCEDURE__suctioning": "സക്ഷനിംഗ്", + "NURSING_CARE_PROCEDURE__tracheostomy_care": "ട്രാക്കിയോസ്റ്റമി കെയർ", + "Notice Board": "നോട്ടീസ് ബോർഡ്", + "Notifications": "അറിയിപ്പുകൾ", + "OXYGEN_MODALITY__HIGH_FLOW_NASAL_CANNULA": "ഉയർന്ന ഒഴുക്ക് നാസൽ കാനുല", + "OXYGEN_MODALITY__NASAL_PRONGS": "നാസൽ പ്രോംഗ്സ്", + "OXYGEN_MODALITY__NON_REBREATHING_MASK": "നോൺ റീബ്രീത്തിംഗ് മാസ്ക്", + "OXYGEN_MODALITY__SIMPLE_FACE_MASK": "ലളിതമായ മുഖംമൂടി", + "PRESCRIPTION_FREQUENCY_BD": "ദിവസേന രണ്ടുതവണ", + "PRESCRIPTION_FREQUENCY_HS": "രാത്രി മാത്രം", + "PRESCRIPTION_FREQUENCY_OD": "ദിവസത്തിൽ ഒരിക്കൽ", + "PRESCRIPTION_FREQUENCY_Q4H": "നാലാമത്തെ മണിക്കൂർ", + "PRESCRIPTION_FREQUENCY_QID": "ആറാം മണിക്കൂർ", + "PRESCRIPTION_FREQUENCY_QOD": "ഇതര ദിവസം", + "PRESCRIPTION_FREQUENCY_QWK": "ആഴ്ചയിൽ ഒരിക്കൽ", + "PRESCRIPTION_FREQUENCY_STAT": "ഉടനെ", + "PRESCRIPTION_FREQUENCY_TID": "എട്ടാം മണിക്കൂർ", + "PRESCRIPTION_ROUTE_IM": "ഐ.എം", + "PRESCRIPTION_ROUTE_INHALATION": "ഇൻഹാലേഷൻ", + "PRESCRIPTION_ROUTE_INTRATHECAL": "ഇൻട്രാതെക്കൽ കുത്തിവയ്പ്പ്", + "PRESCRIPTION_ROUTE_IV": "IV", + "PRESCRIPTION_ROUTE_NASOGASTRIC": "നാസോഗാസ്ട്രിക് / ഗ്യാസ്ട്രോസ്റ്റമി ട്യൂബ്", + "PRESCRIPTION_ROUTE_ORAL": "വാമൊഴി", + "PRESCRIPTION_ROUTE_RECTAL": "മലദ്വാരം", + "PRESCRIPTION_ROUTE_SC": "എസ്/സി", + "PRESCRIPTION_ROUTE_SUBLINGUAL": "ഉപഭാഷാപരമായ", + "PRESCRIPTION_ROUTE_TRANSDERMAL": "ട്രാൻസ്ഡെർമൽ", + "PUPIL_REACTION__BRISK": "ചടുലമായ", + "PUPIL_REACTION__CANNOT_BE_ASSESSED": "വിലയിരുത്താൻ കഴിയില്ല", + "PUPIL_REACTION__FIXED": "പരിഹരിച്ചു", + "PUPIL_REACTION__SLUGGISH": "ആലസ്യം", + "PUPIL_REACTION__UNKNOWN": "അജ്ഞാതം", + "Patients": "രോഗികൾ", + "Profile": "പ്രൊഫൈൽ", + "REGULAR": "പതിവ്", + "RESPIRATORY_SUPPORT_SHORT__INVASIVE": "IV", + "RESPIRATORY_SUPPORT_SHORT__NON_INVASIVE": "എൻ.ഐ.വി", + "RESPIRATORY_SUPPORT_SHORT__OXYGEN_SUPPORT": "O2 പിന്തുണ", + "RESPIRATORY_SUPPORT_SHORT__UNKNOWN": "ഒന്നുമില്ല", + "RESPIRATORY_SUPPORT__INVASIVE": "ആക്രമണാത്മക വെൻ്റിലേറ്റർ (IV)", + "RESPIRATORY_SUPPORT__NON_INVASIVE": "നോൺ-ഇൻവേസീവ് വെൻ്റിലേറ്റർ (NIV)", + "RESPIRATORY_SUPPORT__OXYGEN_SUPPORT": "ഓക്സിജൻ പിന്തുണ", + "RESPIRATORY_SUPPORT__UNKNOWN": "ഒന്നുമില്ല", + "Resource": "സഹായം", + "SORT_OPTIONS__-bed__name": "കിടക്ക നമ്പർ N-1", + "SORT_OPTIONS__-category_severity": "ഏറ്റവും ഉയർന്ന തീവ്രത വിഭാഗം ആദ്യം", + "SORT_OPTIONS__-created_date": "ആദ്യം സൃഷ്ടിച്ച ഏറ്റവും പുതിയ തീയതി", + "SORT_OPTIONS__-modified_date": "ഏറ്റവും പുതിയ അപ്ഡേറ്റ് തീയതി ആദ്യം", + "SORT_OPTIONS__-name": "രോഗിയുടെ പേര് ZA", + "SORT_OPTIONS__-review_time": "ഏറ്റവും പുതിയ അവലോകന തീയതി ആദ്യം", + "SORT_OPTIONS__-taken_at": "ഏറ്റവും പുതിയ തീയതി ആദ്യം", + "SORT_OPTIONS__bed__name": "ബെഡ് നമ്പർ 1-N", + "SORT_OPTIONS__category_severity": "ഏറ്റവും കുറഞ്ഞ തീവ്രത വിഭാഗം ആദ്യം", + "SORT_OPTIONS__created_date": "ഏറ്റവും പഴയ സൃഷ്ടിച്ച തീയതി ആദ്യം", + "SORT_OPTIONS__facility__name,-last_consultation__current_bed__bed__name": "കിടക്ക നമ്പർ N-1", + "SORT_OPTIONS__facility__name,last_consultation__current_bed__bed__name": "ബെഡ് നമ്പർ 1-N", + "SORT_OPTIONS__modified_date": "ഏറ്റവും പഴയ പുതുക്കിയ തീയതി ആദ്യം", + "SORT_OPTIONS__name": "രോഗിയുടെ പേര് AZ", + "SORT_OPTIONS__review_time": "ഏറ്റവും പഴയ അവലോകന തീയതി ആദ്യം", + "SORT_OPTIONS__taken_at": "ആദ്യം എടുത്ത ഏറ്റവും പഴയ തീയതി", + "Sample Test": "സാമ്പിൾ ടെസ്റ്റ്", + "Shifting": "ഫെസിലിറ്റി മാറ്റല്‍ ", + "Submit": "സമർപ്പിക്കുക", + "TELEMEDICINE": "ടെലിമെഡിസിൻ", + "Users": "ഉപയോക്താക്കൾ", + "VENTILATOR": "വിശദമായ അപ്ഡേറ്റ്", + "VENTILATOR_MODE__CMV": "കൺട്രോൾ മെക്കാനിക്കൽ വെൻ്റിലേഷൻ (CMV)", + "VENTILATOR_MODE__PCV": "പ്രഷർ കൺട്രോൾ വെൻ്റിലേഷൻ (PCV)", + "VENTILATOR_MODE__PC_SIMV": "പ്രഷർ കൺട്രോൾഡ് SIMV (PC-SIMV)", + "VENTILATOR_MODE__PSV": "C-PAP / പ്രഷർ സപ്പോർട്ട് വെൻ്റിലേഷൻ (PSV)", + "VENTILATOR_MODE__SIMV": "സിൻക്രൊണൈസ്ഡ് ഇൻ്റർമിറ്റൻറ് നിർബന്ധിത വെൻ്റിലേഷൻ (SIMV)", + "VENTILATOR_MODE__VCV": "വോളിയം കൺട്രോൾ വെൻ്റിലേഷൻ (VCV)", + "VENTILATOR_MODE__VC_SIMV": "വോളിയം നിയന്ത്രിത SIMV (VC-SIMV)", + "View Facility": "ഫെസിലിറ്റി കാണുക", + "action_irreversible": "ഈ പ്രവർത്തനം മാറ്റാനാവാത്തതാണ്", + "active": "സജീവമാണ്", + "active_prescriptions": "സജീവ കുറിപ്പടികൾ", + "add": "ചേർക്കുക", + "add_as": "ആയി ചേർക്കുക", + "add_beds": "കിടക്ക(കൾ) ചേർക്കുക", + "add_details_of_patient": "രോഗിയുടെ വിശദാംശങ്ങൾ ചേർക്കുക", + "add_location": "ലൊക്കേഷൻ ചേർക്കുക", + "add_new_user": "പുതിയ ഉപയോക്താവിനെ ചേർക്കുക", + "add_notes": "കുറിപ്പുകൾ ചേർക്കുക", + "add_prescription_medication": "കുറിപ്പടി മരുന്ന് ചേർക്കുക", + "add_prescription_to_consultation_note": "ഈ കൺസൾട്ടേഷനിലേക്ക് ഒരു പുതിയ കുറിപ്പടി ചേർക്കുക.", + "add_prn_prescription": "PRN കുറിപ്പടി ചേർക്കുക", + "address": "വിലാസം", + "administer": "ഭരണം നടത്തുക", + "administer_medicine": "മെഡിസിൻ നടത്തുക", + "administer_medicines": "മരുന്നുകൾ നൽകുക", + "administer_selected_medicines": "തിരഞ്ഞെടുത്ത മരുന്നുകൾ നൽകുക", + "administered_on": "മേൽ നടത്തി", + "administration_dosage_range_error": "ഡോസ് ആരംഭത്തിനും ടാർഗെറ്റ് ഡോസേജിനും ഇടയിലായിരിക്കണം", + "administration_notes": "അഡ്മിനിസ്ട്രേഷൻ കുറിപ്പുകൾ", + "advanced_filters": "വിപുലമായ ഫിൽട്ടറുകൾ", + "age": "പ്രായം", + "all_changes_have_been_saved": "എല്ലാ മാറ്റങ്ങളും സംരക്ഷിച്ചു", + "all_details": "എല്ലാ വിശദാംശങ്ങളും", + "allergies": "അലർജികൾ", + "allowed_formats_are": "അനുവദനീയമായ ഫോർമാറ്റുകളാണ്", + "already_a_member": "ഇതിനകം തന്നെ ഒരു അംഗമാണോ?", + "ambulance_driver_name": "ആംബുലൻസ് ഡ്രൈവറുടെ പേര്", + "ambulance_number": "ആംബുലൻസ് നം", + "ambulance_phone_number": "ആംബുലൻസിൻ്റെ ഫോൺ നമ്പർ", + "antenatal": "ജനനത്തിനുമുമ്പ്", + "any_other_comments": "മറ്റേതെങ്കിലും അഭിപ്രായങ്ങൾ", + "apply": "അപേക്ഷിക്കുക", + "approved_by_district_covid_control_room": "ജില്ലാ കോവിഡ് കൺട്രോൾ റൂം അംഗീകരിച്ചു", + "approving_facility": "അംഗീകാരം നൽകുന്ന സൗകര്യത്തിൻ്റെ പേര്", + "archive": "ആർക്കൈവ്", + "archived": "ആർക്കൈവ് ചെയ്തു", + "are_you_still_watching": "നിങ്ങൾ ഇപ്പോഴും കാണുന്നുണ്ടോ?", + "are_you_sure_want_to_delete": "{{name}}ഇല്ലാതാക്കണമെന്ന് തീർച്ചയാണോ?", + "are_you_sure_want_to_delete_this_record": "ഈ റെക്കോർഡ് ഇല്ലാതാക്കണമെന്ന് തീർച്ചയാണോ?", + "asset_class": "അസറ്റ് ക്ലാസ്", + "asset_location": "അസറ്റ് ലൊക്കേഷൻ", + "asset_name": "അസറ്റ് പേര്", + "asset_not_found_msg": "ശ്ശോ! നിങ്ങൾ അന്വേഷിക്കുന്ന അസറ്റ് നിലവിലില്ല. അസറ്റ് ഐഡി പരിശോധിക്കുക.", + "asset_qr_id": "അസറ്റ് QR ഐഡി", + "asset_type": "അസറ്റ് തരം", + "assigned_facility": "സൗകര്യം ഏൽപ്പിച്ചു", + "assigned_to": "ലേക്ക് നിയോഗിച്ചു", + "audio__allow_permission": "സൈറ്റ് ക്രമീകരണങ്ങളിൽ ദയവായി മൈക്രോഫോൺ അനുമതി അനുവദിക്കുക", + "audio__allow_permission_button": "എങ്ങനെ അനുവദിക്കണമെന്ന് അറിയാൻ ഇവിടെ ക്ലിക്ക് ചെയ്യുക", + "audio__allow_permission_helper": "നിങ്ങൾ മുമ്പ് മൈക്രോഫോൺ ആക്‌സസ് നിരസിച്ചിരിക്കാം.", + "audio__record": "റെക്കോർഡ് ഓഡിയോ", + "audio__record_helper": "റെക്കോർഡിംഗ് ആരംഭിക്കാൻ ബട്ടൺ ക്ലിക്ക് ചെയ്യുക", + "audio__recorded": "ഓഡിയോ റെക്കോർഡ് ചെയ്തു", + "audio__recording": "റെക്കോർഡിംഗ്", + "audio__recording_helper": "ദയവായി നിങ്ങളുടെ മൈക്രോഫോണിൽ സംസാരിക്കുക.", + "audio__recording_helper_2": "റെക്കോർഡിംഗ് നിർത്താൻ ബട്ടണിൽ ക്ലിക്ക് ചെയ്യുക.", + "audio__start_again": "വീണ്ടും ആരംഭിക്കുക", + "audit_log": "ഓഡിറ്റ് ലോഗ്", + "auth_login_title": "അംഗീകൃത ലോഗിൻ", + "authorize_shift_delete": "ഷിഫ്റ്റ് ഇല്ലാതാക്കൽ അംഗീകരിക്കുക", + "auto_generated_for_care": "പരിചരണത്തിനായി സ്വയമേവ സൃഷ്ടിച്ചത്", + "available_features": "ലഭ്യമായ സവിശേഷതകൾ", + "available_in": "ലഭ്യമായ ഭാഷകൾ", + "average_weekly_working_hours": "പ്രതിവാര ശരാശരി പ്രവൃത്തി സമയം", + "awaiting_destination_approval": "ഡെസ്റ്റിനേഷൻ അനുമതിക്കായി കാത്തിരിക്കുന്നു", + "back": "തിരികെ", + "back_dated_encounter_date_caution": "ഇതിനായി നിങ്ങൾ ഒരു ഏറ്റുമുട്ടൽ സൃഷ്ടിക്കുകയാണ്", + "back_to_consultation": "കൺസൾട്ടേഷനിലേക്ക് മടങ്ങുക", + "back_to_login": "ലോഗിൻ പേജിലേക്ക് മടങ്ങുക", + "base_dosage": "അളവ്", + "bed_capacity": "കിടക്ക കപ്പാസിറ്റി", + "bed_search_placeholder": "കിടക്കകളുടെ പേര് ഉപയോഗിച്ച് തിരയുക", + "bed_type": "കിടക്കയുടെ തരം", + "blood_group": "രക്ത ഗ്രൂപ്പ്", + "board_view": "ബോർഡ് കാഴ്ച", + "bradycardia": "ബ്രാഡികാർഡിയ", + "breathlessness_level": "ശ്വാസതടസ്സം നില", + "camera": "ക്യാമറ", + "camera_permission_denied": "ക്യാമറ അനുമതി നിഷേധിച്ചു", + "cancel": "റദ്ദാക്കുക", + "capture": "ക്യാപ്ചർ", + "capture_cover_photo": "മുഖചിത്രം എടുക്കുക", + "care": "കെയർ", + "category": "വിഭാഗം", + "caution": "ജാഗ്രത", + "central_nursing_station": "സെൻട്രൽ നഴ്‌സിംഗ് സ്റ്റേഷൻ", + "choose_file": "ഉപകരണത്തിൽ നിന്ന് അപ്‌ലോഡ് ചെയ്യുക", + "choose_location": "ലൊക്കേഷൻ തിരഞ്ഞെടുക്കുക", + "clear": "ക്ലിയർ", + "clear_all_filters": "എല്ലാ ഫിൽട്ടറുകളും മായ്ക്കുക", + "clear_home_facility": "ഹോം സൗകര്യം മായ്‌ക്കുക", + "clear_selection": "തിരഞ്ഞെടുപ്പ് മായ്‌ക്കുക", + "close": "അടയ്ക്കുക", + "close_scanner": "സ്കാനർ അടയ്ക്കുക", + "comment_added_successfully": "അഭിപ്രായം വിജയകരമായി ചേർത്തു", + "comment_min_length": "കമൻ്റിൽ കുറഞ്ഞത് 1 പ്രതീകമെങ്കിലും ഉണ്ടായിരിക്കണം", + "comments": "അഭിപ്രായങ്ങൾ", + "completed": "പൂർത്തിയാക്കി", + "configure": "കോൺഫിഗർ ചെയ്യുക", + "configure_facility": "സൗകര്യം ക്രമീകരിക്കുക", + "confirm": "സ്ഥിരീകരിക്കുക", + "confirm_delete": "ഇല്ലാതാക്കൽ സ്ഥിരീകരിക്കുക", + "confirm_discontinue": "നിർത്തലാക്കൽ സ്ഥിരീകരിക്കുക", + "confirm_password": "പാസ്‌വേഡ് ഉറപ്പാക്കുക", + "confirm_transfer_complete": "കൈമാറ്റം പൂർത്തിയായെന്ന് സ്ഥിരീകരിക്കുക!", + "confirmed": "സ്ഥിരീകരിച്ചു", + "consultation_notes": "പൊതു നിർദ്ദേശങ്ങൾ (ഉപദേശം)", + "consultation_updates": "കൺസൾട്ടേഷൻ അപ്ഡേറ്റുകൾ", + "contact_number": "ബന്ധപ്പെടേണ്ട നമ്പർ", + "contact_person": "ഫെസിലിറ്റിയിൽ ബന്ധപ്പെടുന്ന വ്യക്തിയുടെ പേര്", + "contact_person_at_the_facility": "നിലവിലെ സൗകര്യത്തിലുള്ള വ്യക്തിയുമായി ബന്ധപ്പെടുക", + "contact_person_number": "ബന്ധപ്പെടേണ്ട വ്യക്തിയുടെ നമ്പർ", + "contact_phone": "ബന്ധപ്പെടാനുള്ള വ്യക്തി നമ്പർ", + "contact_your_admin_to_add_skills": "കഴിവുകൾ ചേർക്കാൻ നിങ്ങളുടെ അഡ്‌മിനെ ബന്ധപ്പെടുക", + "continue": "തുടരുക", + "continue_watching": "കാണുന്നത് തുടരുക", + "contribute_github": "GitHubൽ സംഭാവന ചെയ്യുക", + "copied_to_clipboard": "ക്ലിപ്പ്ബോർഡിലേക്ക് പകർത്തി", + "countries_travelled": "രാജ്യങ്ങൾ സഞ്ചരിച്ചു", + "covid_19_cat_gov": "സർക്കാർ പ്രകാരം കോവിഡ്_19 ക്ലിനിക്കൽ വിഭാഗം. കേരള മാർഗരേഖ (എ/ബി/സി)", + "create": "സൃഷ്ടിക്കുക", + "create_add_more": "സൃഷ്‌ടിക്കുക, കൂടുതൽ ചേർക്കുക", + "create_asset": "അസറ്റ് സൃഷ്ടിക്കുക", + "create_facility": "ഒരു പുതിയ ഫെസിലിറ്റി സൃഷ്ടിക്കുക", + "create_new_asset": "പുതിയ അസറ്റ് സൃഷ്ടിക്കുക", + "create_resource_request": "റിസോഴ്സ് അഭ്യർത്ഥന സൃഷ്ടിക്കുക", + "created": "സൃഷ്ടിച്ചത്", + "created_date": "സൃഷ്ടിച്ച തീയതി", + "csv_file_in_the_specified_format": "നിർദ്ദിഷ്ട ഫോർമാറ്റിൽ ഒരു CSV ഫയൽ തിരഞ്ഞെടുക്കുക", + "customer_support_email": "ഉപഭോക്തൃ പിന്തുണ ഇമെയിൽ", + "customer_support_name": "ഉപഭോക്തൃ പിന്തുണയുടെ പേര്", + "customer_support_number": "ഉപഭോക്തൃ പിന്തുണ നമ്പർ", + "cylinders": "സിലിണ്ടറുകൾ", + "cylinders_per_day": "സിലിണ്ടറുകൾ / ദിവസം", + "date_and_time": "തീയതിയും സമയവും", + "date_of_admission": "പ്രവേശന തീയതി", + "date_of_birth": "ജനനത്തീയതി", + "date_of_positive_covid_19_swab": "പോസിറ്റീവ് കോവിഡ് 19 സ്വാബ് തീയതി", + "date_of_test": "ടെസ്റ്റ് തീയതി", + "days": "ദിവസങ്ങൾ", + "delete": "ഇല്ലാതാക്കുക", + "delete_facility": "സൗകര്യം ഇല്ലാതാക്കുക", + "delete_item": "{{name}}ഇല്ലാതാക്കുക", + "delete_record": "റെക്കോർഡ് ഇല്ലാതാക്കുക", + "deleted_successfully": "{{name}} വിജയകരമായി ഇല്ലാതാക്കി", + "describe_why_the_asset_is_not_working": "അസറ്റ് പ്രവർത്തിക്കാത്തത് എന്തുകൊണ്ടെന്ന് വിവരിക്കുക", + "description": "വിവരണം", + "details_about_the_equipment": "ഉപകരണത്തെക്കുറിച്ചുള്ള വിശദാംശങ്ങൾ", + "details_of_assigned_facility": "നിയുക്ത സൗകര്യത്തിൻ്റെ വിശദാംശങ്ങൾ", + "details_of_origin_facility": "ഉറവിട സൗകര്യത്തിൻ്റെ വിശദാംശങ്ങൾ", + "details_of_patient": "രോഗിയുടെ വിശദാംശങ്ങൾ", + "details_of_shifting_approving_facility": "അംഗീകാരം നൽകുന്ന സൗകര്യം മാറ്റുന്നതിൻ്റെ വിശദാംശങ്ങൾ", + "diagnoses": "രോഗനിർണയങ്ങൾ", + "diagnosis": "രോഗനിർണയം", + "diagnosis__confirmed": "സ്ഥിരീകരിച്ചു", + "diagnosis__differential": "ഡിഫറൻഷ്യൽ", + "diagnosis__principal": "പ്രിൻസിപ്പൽ", + "diagnosis__provisional": "താൽക്കാലികം", + "diagnosis__unconfirmed": "സ്ഥിരീകരിച്ചിട്ടില്ല", + "diagnosis_already_added": "ഈ രോഗനിർണയം ഇതിനകം ചേർത്തിട്ടുണ്ട്", + "diastolic": "ഡയസ്റ്റോളിക്", + "differential": "ഡിഫറൻഷ്യൽ", + "discard": "നിരസിക്കുക", + "discharge": "ഡിസ്ചാർജ്", + "discharge_from_care": "CARE-ൽ നിന്നുള്ള ഡിസ്ചാർജ്", + "discharge_prescription": "ഡിസ്ചാർജ് കുറിപ്പടി", + "discharge_summary": "ഡിസ്ചാർജ് സംഗ്രഹം", + "discharge_summary_not_ready": "ഡിസ്ചാർജ് സംഗ്രഹം ഇതുവരെ തയ്യാറായിട്ടില്ല.", + "discharged": "ഡിസ്ചാർജ് ചെയ്തു", + "discharged_patients": "ഡിസ്ചാർജ് ചെയ്ത രോഗികൾ", + "discharged_patients_empty": "ഡിസ്ചാർജ് ചെയ്ത രോഗികളൊന്നും ഈ സൗകര്യത്തിൽ ഇല്ല", + "disclaimer": "നിരാകരണം", + "discontinue": "നിർത്തുക", + "discontinue_caution_note": "ഈ കുറിപ്പടി നിർത്തണമെന്ന് തീർച്ചയാണോ?", + "discontinued": "നിർത്തലാക്കി", + "disease_status": "രോഗാവസ്ഥ", + "district": "ജില്ല", + "district_program_management_supporting_unit": "ജില്ലാ പ്രോഗ്രാം മാനേജ്മെൻ്റ് സപ്പോർട്ടിംഗ് യൂണിറ്റ്", + "done": "ചെയ്തു", + "dosage": "അളവ്", + "down": "താഴേക്ക്", + "download": "ഡൗൺലോഡ് ചെയ്യുക", + "download_discharge_summary": "ഡിസ്ചാർജ് സംഗ്രഹം ഡൗൺലോഡ് ചെയ്യുക", + "download_type": "ഡൗൺലോഡുകളുടെ തരം", + "downloading": "ഡൗൺലോഡ് ചെയ്യുന്നു", + "downloads": "ഡൗൺലോഡുകൾ", + "drag_drop_image_to_upload": "അപ്‌ലോഡ് ചെയ്യാൻ ചിത്രം വലിച്ചിടുക", + "duplicate_patient_record_birth_unknown": "രോഗിയുടെ ജനന വർഷത്തെക്കുറിച്ച് നിങ്ങൾക്ക് ഉറപ്പില്ലെങ്കിൽ നിങ്ങളുടെ ജില്ലാ പരിചരണ കോർഡിനേറ്റർ, ഷിഫ്റ്റിംഗ് സൗകര്യം അല്ലെങ്കിൽ രോഗിയെ ബന്ധപ്പെടുക.", + "duplicate_patient_record_confirmation": "ജനന വർഷം ചേർത്ത് രോഗിയുടെ രേഖ നിങ്ങളുടെ സൗകര്യത്തിലേക്ക് പ്രവേശിപ്പിക്കുക", + "duplicate_patient_record_rejection": "ഞാൻ സൃഷ്ടിക്കാൻ ആഗ്രഹിക്കുന്ന സംശയാസ്പദമായ / രോഗി ലിസ്റ്റിൽ ഇല്ലെന്ന് ഞാൻ സ്ഥിരീകരിക്കുന്നു.", + "edit": "എഡിറ്റ് ചെയ്യുക", + "edit_caution_note": "കൺസൾട്ടേഷനിൽ എഡിറ്റ് ചെയ്ത വിശദാംശങ്ങളോടൊപ്പം ഒരു പുതിയ കുറിപ്പടി ചേർക്കുകയും നിലവിലുള്ള കുറിപ്പടി നിർത്തലാക്കുകയും ചെയ്യും.", + "edit_cover_photo": "മുഖചിത്രം എഡിറ്റ് ചെയ്യുക", + "edit_history": "ചരിത്രം തിരുത്തുക", + "edit_prescriptions": "കുറിപ്പടികൾ എഡിറ്റ് ചെയ്യുക", + "edited_by": "എഡിറ്റ് ചെയ്തത്", + "edited_on": "എഡിറ്റ് ചെയ്തത്", + "eg_abc": "ഉദാ. എബിസി", + "eg_details_on_functionality_service_etc": "ഉദാ. പ്രവർത്തനം, സേവനം മുതലായവയെക്കുറിച്ചുള്ള വിശദാംശങ്ങൾ.", + "eg_mail_example_com": "ഉദാ. mail@example.com", + "eg_xyz": "ഉദാ. XYZ", + "email": "ഇമെയിൽ വിലാസം", + "email_address": "ഇമെയിൽ വിലാസം", + "email_discharge_summary_description": "ഡിസ്ചാർജ് സംഗ്രഹം ലഭിക്കുന്നതിന് നിങ്ങളുടെ സാധുവായ ഇമെയിൽ വിലാസം നൽകുക", + "email_success": "ഞങ്ങൾ ഉടൻ ഒരു ഇമെയിൽ അയയ്ക്കും. ദയവായി നിങ്ങളുടെ ഇൻബോക്സ് പരിശോധിക്കുക.", + "emergency": "അടിയന്തരാവസ്ഥ", + "emergency_contact_number": "എമർജൻസി കോൺടാക്റ്റ് നമ്പർ", + "empty_date_time": "--:-- --; ------------", + "encounter_date_field_label__A": "സൗകര്യത്തിലേക്കുള്ള പ്രവേശന തീയതിയും സമയവും", + "encounter_date_field_label__DC": "ഡൊമിസിലിയറി കെയർ ആരംഭിച്ച തീയതിയും സമയവും", + "encounter_date_field_label__DD": "കൂടിയാലോചനയുടെ തീയതിയും സമയവും", + "encounter_date_field_label__HI": "കൂടിയാലോചനയുടെ തീയതിയും സമയവും", + "encounter_date_field_label__OP": "ഔട്ട്-പേഷ്യൻ്റ് സന്ദർശന തീയതിയും സമയവും", + "encounter_date_field_label__R": "കൂടിയാലോചനയുടെ തീയതിയും സമയവും", + "encounter_duration_confirmation": "ഈ ഏറ്റുമുട്ടലിൻ്റെ ദൈർഘ്യം ഇതായിരിക്കും", + "encounter_suggestion__A": "പ്രവേശനം", + "encounter_suggestion__DC": "ഡൊമിസിലിയറി കെയർ", + "encounter_suggestion__DD": "കൂടിയാലോചന", + "encounter_suggestion__HI": "കൂടിയാലോചന", + "encounter_suggestion__OP": "ഔട്ട് പേഷ്യൻ്റ് സന്ദർശനം", + "encounter_suggestion__R": "കൂടിയാലോചന", + "encounter_suggestion_edit_disallowed": "എഡിറ്റ് കൺസൾട്ടേഷനിൽ ഈ ഓപ്ഷനിലേക്ക് മാറാൻ അനുവാദമില്ല", + "enter_file_name": "ഫയലിൻ്റെ പേര് നൽകുക", + "enter_valid_age": "ദയവായി പ്രാമാണികമായ വയസ്സ് നൽകുക", + "entered-in-error": "തെറ്റായി നൽകി", + "error_404": "പിശക് 404", + "error_deleting_shifting": "ഷിഫ്റ്റിംഗ് റെക്കോർഡ് ഇല്ലാതാക്കുന്നതിൽ പിശക്", + "error_while_deleting_record": "റെക്കോർഡ് ഇല്ലാതാക്കുന്നതിൽ പിശക്", + "escape": "രക്ഷപ്പെടുക", + "estimated_contact_date": "കണക്കാക്കിയ കോൺടാക്റ്റ് തീയതി", + "expected_burn_rate": "പ്രതീക്ഷിക്കുന്ന പൊള്ളൽ നിരക്ക്", + "facilities": "സൗകര്യങ്ങൾ", + "facility": "സൗകര്യം", + "facility_name": "സൗകര്യത്തിൻ്റെ പേര്", + "facility_preference": "സൗകര്യ മുൻഗണന", + "facility_search_placeholder": "ഫെസിലിറ്റി / ജില്ല പ്രകാരം തിരയുക", + "facility_type": "സൗകര്യ തരം", + "features": "ഫീച്ചറുകൾ", + "feed_is_currently_not_live": "ഫീഡ് നിലവിൽ തത്സമയമല്ല", + "feed_optimal_experience_for_apple_phones": "ഒപ്റ്റിമൽ കാണൽ അനുഭവത്തിനായി, നിങ്ങളുടെ ഉപകരണം തിരിക്കുന്നത് പരിഗണിക്കുക. നിങ്ങളുടെ ഉപകരണ ക്രമീകരണങ്ങളിൽ സ്വയമേവ തിരിയുന്നത് പ്രവർത്തനക്ഷമമാണെന്ന് ഉറപ്പാക്കുക.", + "feed_optimal_experience_for_phones": "ഒപ്റ്റിമൽ കാണൽ അനുഭവത്തിനായി, നിങ്ങളുടെ ഉപകരണം തിരിക്കുന്നത് പരിഗണിക്കുക.", + "field_required": "ഈ ഫീൽഡ് പൂരിപ്പിക്കേണ്ടതുണ്ട്", + "file_error__choose_file": "അപ്‌ലോഡ് ചെയ്യാൻ ഒരു ഫയൽ തിരഞ്ഞെടുക്കുക", + "file_error__dynamic": "ഫയൽ അപ്‌ലോഡ് ചെയ്യുന്നതിൽ പിശക്: {{statusText}}", + "file_error__file_name": "ഫയലിൻ്റെ പേര് നൽകുക", + "file_error__file_size": "ഫയലുകളുടെ പരമാവധി വലുപ്പം 100 MB ആണ്", + "file_error__file_type": "അസാധുവായ ഫയൽ തരം \".{{extension}}\" അനുവദനീയമായ തരങ്ങൾ: {{allowedExtensions}}", + "file_error__network": "ഫയൽ അപ്‌ലോഡ് ചെയ്യുന്നതിൽ പിശക്: നെറ്റ്‌വർക്ക് പിശക്", + "file_list_headings__consultation": "കൺസൾട്ടേഷൻ ഫയലുകൾ", + "file_list_headings__patient": "രോഗിയുടെ ഫയലുകൾ", + "file_list_headings__sample_report": "സാമ്പിൾ റിപ്പോർട്ട്", + "file_list_headings__supporting_info": "സഹായ വിവരം", + "file_preview": "ഫയൽ പ്രിവ്യൂ", + "file_preview_not_supported": "ഈ ഫയൽ പ്രിവ്യൂ ചെയ്യാൻ കഴിയില്ല. ഇത് ഡൗൺലോഡ് ചെയ്യാൻ ശ്രമിക്കുക.", + "file_uploaded": "ഫയൽ അപ്‌ലോഡ് ചെയ്‌തു", + "filter": "ഫിൽട്ടർ ചെയ്യുക", + "filter_by": "ഇതനുസരിച്ച് ഫിൽട്ടർ ചെയ്യുക", + "filter_by_category": "വിഭാഗം അനുസരിച്ച് ഫിൽട്ടർ ചെയ്യുക", + "filters": "ഫിൽട്ടറുകൾ", + "first_name": "പേരിന്‍റെ ആദ്യഭാഗം", + "footer_body": "കേരള സർക്കാറിന്‍റെ പൂർണ്ണമായ ധാരണയോടും പിന്തുണയോടും കൂടി സർക്കാർ ശ്രമങ്ങളെ പിന്തുണയ്ക്കുന്നതിനായി നൂതന പ്രവർത്തകരുടെയും സന്നദ്ധപ്രവർത്തകരുടെയും ഒരു മൾട്ടി-ഡിസിപ്ലിനറി ടീം രൂപകൽപ്പന ചെയ്ത മാതൃകാപരമായ ഒരു ഓപ്പൺ സോഴ്‌സ് പബ്ലിക് യൂട്ടിലിറ്റിയാണ് കൊറോണ സേഫ് നെറ്റ്‌വർക്ക്.", + "forget_password": "പാസ്‌വേഡ് മറന്നോ?", + "forget_password_instruction": "നിങ്ങളുടെ യൂസർനെയിം/ഉപയോക്തൃനാമം നൽകുക. പാസ്‌വേഡ് പുന: സജ്ജമാക്കാൻ ഞങ്ങൾ ഒരു ലിങ്ക് അയയ്‌ക്കുന്നതായിരിക്കും.", + "frequency": "ആവൃത്തി", + "full_screen": "പൂർണ്ണ സ്ക്രീൻ", + "gender": "ലിംഗഭേദം", + "generate_report": "റിപ്പോർട്ട് സൃഷ്ടിക്കുക", + "generated_summary_caution": "കെയർ സിസ്റ്റത്തിൽ ക്യാപ്‌ചർ ചെയ്‌ത വിവരങ്ങൾ ഉപയോഗിച്ച് കമ്പ്യൂട്ടർ സൃഷ്‌ടിച്ച സംഗ്രഹമാണിത്.", + "generating": "സൃഷ്ടിക്കുന്നു", + "generating_discharge_summary": "ഡിസ്ചാർജ് സംഗ്രഹം സൃഷ്ടിക്കുന്നു", + "get_tests": "ടെസ്റ്റുകൾ നേടുക", + "goal": "ഡിജിറ്റൽ ടൂളുകൾ ഉപയോഗിച്ച് പൊതുജനാരോഗ്യ സേവനങ്ങളുടെ ഗുണനിലവാരവും പ്രവേശനക്ഷമതയും തുടർച്ചയായി മെച്ചപ്പെടുത്തുകയാണ് ഞങ്ങളുടെ ലക്ഷ്യം.", + "help_confirmed": "ഇത് ഒരു സ്ഥിരീകരിച്ച അവസ്ഥയായി കണക്കാക്കാൻ മതിയായ ഡയഗ്നോസ്റ്റിക് കൂടാതെ/അല്ലെങ്കിൽ ക്ലിനിക്കൽ തെളിവുകൾ ഉണ്ട്.", + "help_differential": "രോഗനിർണ്ണയ പ്രക്രിയയ്ക്കും പ്രാഥമിക ചികിത്സയ്ക്കും കൂടുതൽ മാർഗ്ഗനിർദ്ദേശം നൽകുന്നതിന് സാധ്യതയുള്ള (സാധാരണയായി പരസ്പരവിരുദ്ധമായ) രോഗനിർണയങ്ങളിൽ ഒന്ന്.", + "help_entered-in-error": "പ്രസ്‌താവന തെറ്റായി നൽകിയതിനാൽ സാധുതയില്ല.", + "help_provisional": "ഇതൊരു താൽക്കാലിക രോഗനിർണയമാണ് - ഇപ്പോഴും പരിഗണനയിലിരിക്കുന്ന ഒരു സ്ഥാനാർത്ഥി.", + "help_refuted": "തുടർന്നുള്ള ഡയഗ്നോസ്റ്റിക്, ക്ലിനിക്കൽ തെളിവുകൾ വഴി ഈ അവസ്ഥ ഒഴിവാക്കിയിട്ടുണ്ട്.", + "help_unconfirmed": "ഇത് ഒരു സ്ഥിരീകരിച്ച അവസ്ഥയായി കണക്കാക്കാൻ മതിയായ ഡയഗ്നോസ്റ്റിക് കൂടാതെ/അല്ലെങ്കിൽ ക്ലിനിക്കൽ തെളിവുകൾ ഇല്ല.", + "hide": "മറയ്ക്കുക", + "home_facility": "ഹോം സൗകര്യം", + "icd11_as_recommended": "WHO ശുപാർശ ചെയ്യുന്ന ICD-11 പ്രകാരം", + "inconsistent_dosage_units_error": "ഡോസേജ് യൂണിറ്റുകൾ ഒന്നായിരിക്കണം", + "india_1": "ഇന്ത്യ", + "indian_mobile": "ഇന്ത്യൻ മൊബൈൽ", + "indicator": "സൂചകം", + "inidcator_event": "ഇൻഡിക്കേറ്റർ ഇവൻ്റ്", + "instruction_on_titration": "ടൈറ്ററേഷനെക്കുറിച്ചുള്ള നിർദ്ദേശം", + "international_mobile": "അന്താരാഷ്ട്ര മൊബൈൽ", + "invalid_asset_id_msg": "ശ്ശോ! നിങ്ങൾ നൽകിയ അസറ്റ് ഐഡി സാധുതയുള്ളതായി കാണുന്നില്ല.", + "invalid_email": "ദയവായി പ്രാമാണികമായ ഇമെയിൽ വിലാസം നൽകുക", + "invalid_link_msg": "നിങ്ങൾ ഉപയോഗിച്ച പാസ്‌വേഡ് പുനഃസജ്ജീകരണ ലിങ്ക് അസാധുവാണ് അല്ലെങ്കിൽ കാലഹരണപ്പെട്ടതായി തോന്നുന്നു. ഒരു പുതിയ പാസ്‌വേഡ് പുനഃസജ്ജീകരണ ലിങ്ക് അഭ്യർത്ഥിക്കുക.", + "invalid_password": "പാസ്‌വേഡ് ആവശ്യകതകൾ പാലിക്കുന്നില്ല", + "invalid_password_reset_link": "അസാധുവായ പാസ്‌വേഡ് പുനഃസജ്ജീകരണ ലിങ്ക്", + "invalid_phone": "ദയവായി പ്രാമാണികമായ ഫോൺ നമ്പർ നൽകുക", + "invalid_phone_number": "അസാധുവായ ഫോൺ നമ്പർ", + "invalid_pincode": "പിൻകോഡ് അസാധുവാണ്", + "invalid_reset": "അസാധുവായ റീസെറ്റ്", + "invalid_username": "അനിവാര്യം. 150 ചിഹ്നമോ, അക്ഷരമോ, സംഖ്യയോ അതിൽ കുറവോ. അക്ഷരങ്ങൾ, അക്കങ്ങൾ, @/./+/-/_ മാത്രം ഉപയോഗിക്കുക.", + "inventory_management": "ഇൻവെൻ്ററി മാനേജ്മെൻ്റ്", + "investigation_reports": "അന്വേഷണ റിപ്പോർട്ടുകൾ", + "investigations": "അന്വേഷണങ്ങൾ", + "investigations__date": "തീയതി", + "investigations__ideal_value": "അനുയോജ്യമായ മൂല്യം", + "investigations__name": "പേര്", + "investigations__range": "മൂല്യ ശ്രേണി", + "investigations__result": "ഫലം", + "investigations__unit": "യൂണിറ്റ്", + "investigations_suggested": "അന്വേഷണങ്ങൾ നിർദ്ദേശിച്ചു", + "is": "ആണ്", + "is_antenatal": "ജനനത്തിനു മുമ്പുള്ളതാണ്", + "is_emergency": "അടിയന്തരാവസ്ഥയാണ്", + "is_emergency_case": "അടിയന്തര സാഹചര്യമാണ്", + "is_it_upshift": "അത് ഉയർച്ചയാണോ?", + "is_this_an_emergency": "ഇതൊരു അടിയന്തരാവസ്ഥയാണോ?", + "is_this_an_upshift": "ഇതൊരു ഉയർച്ചയാണോ?", + "is_up_shift": "ഷിഫ്റ്റ് ആയി", + "is_upshift_case": "കേസ് മാറ്റി", + "landline": "ഇന്ത്യൻ ലാൻഡ്‌ലൈൻ", + "last_administered": "അവസാനം ഭരിച്ചത്", + "last_edited": "അവസാനം എഡിറ്റ് ചെയ്തത്", + "last_modified": "അവസാനം പരിഷ്കരിച്ചത്", + "last_name": "പേരിന്‍റെ അവസാന ഭാഗം", + "last_online": "അവസാനമായി ഓൺലൈൻ", + "last_serviced_on": "അവസാനം സർവീസ് ചെയ്തത്", + "latitude_invalid": "അക്ഷാംശം -90 നും 90 നും ഇടയിലായിരിക്കണം", + "left": "ഇടത്", + "linked_facilities": "ബന്ധിപ്പിച്ച സൗകര്യങ്ങൾ", + "liquid_oxygen_capacity": "ദ്രാവക ഓക്സിജൻ ശേഷി", + "list_view": "ലിസ്റ്റ് കാഴ്ച", + "litres": "ലിറ്റർ", + "litres_per_day": "ലിറ്റർ / ദിവസം", + "live": "തത്സമയം", + "live_monitoring": "തത്സമയ നിരീക്ഷണം", + "load_more": "കൂടുതൽ ലോഡ് ചെയ്യുക", + "loading": "ലോഡ് ചെയ്യുന്നു...", + "local_body": "തദ്ദേശ സ്ഥാപനം", + "local_ipaddress": "പ്രാദേശിക ഐപി വിലാസം", + "location": "സ്ഥാനം", + "location_management": "ലൊക്കേഷൻ മാനേജ്മെൻ്റ്", + "log_lab_results": "ലോഗ് ലാബ് ഫലങ്ങൾ", + "log_report": "ലോഗ് റിപ്പോർട്ട്", + "login": "ലോഗിൻ ചെയ്യുക/അകത്തു പ്രവേശിക്കുക", + "longitude_invalid": "രേഖാംശം -180 നും 180 നും ഇടയിലായിരിക്കണം", + "lsg": "Lsg", + "make_multiple_beds_label": "നിങ്ങൾക്ക് ഒന്നിലധികം കിടക്കകൾ നിർമ്മിക്കണോ?", + "manage_prescriptions": "കുറിപ്പടികൾ കൈകാര്യം ചെയ്യുക", + "manufacturer": "നിർമ്മാതാവ്", + "map_acronym": "മാപ്പ്", + "mark_all_as_read": "എല്ലാം വായിച്ചതായി അടയാളപ്പെടുത്തുക", + "mark_as_read": "വായിച്ചതായി അടയാളപ്പെടുത്തുക", + "mark_as_unread": "വായിക്കാത്തതായി അടയാളപ്പെടുത്തുക", + "mark_this_transfer_as_complete_question": "ഈ കൈമാറ്റം പൂർത്തിയായതായി അടയാളപ്പെടുത്തണമെന്ന് തീർച്ചയാണോ? ഒറിജിൻ സൗകര്യത്തിന് ഈ രോഗിക്ക് ഇനി ആക്‌സസ് ഉണ്ടായിരിക്കില്ല", + "mark_transfer_complete_confirmation": "ഈ കൈമാറ്റം പൂർത്തിയായതായി അടയാളപ്പെടുത്തണമെന്ന് തീർച്ചയാണോ? ഒറിജിൻ സൗകര്യത്തിന് ഈ രോഗിക്ക് ഇനി ആക്‌സസ് ഉണ്ടായിരിക്കില്ല", + "max_dosage_24_hrs": "പരമാവധി. 24 മണിക്കൂറിനുള്ളിൽ ഡോസ്.", + "max_dosage_in_24hrs_gte_base_dosage_error": "പരമാവധി. 24 മണിക്കൂറിനുള്ളിലെ ഡോസ് അടിസ്ഥാന ഡോസേജിനേക്കാൾ കൂടുതലോ തുല്യമോ ആയിരിക്കണം", + "max_size_for_image_uploaded_should_be": "അപ്‌ലോഡ് ചെയ്‌ത ചിത്രത്തിനുള്ള പരമാവധി വലുപ്പം ആയിരിക്കണം", + "medical_worker": "മെഡിക്കൽ വർക്കർ", + "medicine": "മരുന്ന്", + "medicine_administration_history": "മെഡിസിൻ അഡ്മിനിസ്ട്രേഷൻ ചരിത്രം", + "medicines_administered": "മരുന്ന്(കൾ) നൽകി", + "medicines_administered_error": "മരുന്ന്(കൾ) നൽകുന്നതിൽ പിശക്", + "middleware_hostname": "മിഡിൽവെയർ ഹോസ്റ്റ്നാമം", + "min_password_len_8": "ഏറ്റവും കുറഞ്ഞ പാസ്‌വേഡ് ദൈർഘ്യം 8", + "min_time_bw_doses": "മിനി. സമയം b/w ഡോസുകൾ", + "mobile": "മൊബൈൽ", + "mobile_number": "മൊബൈൽ നമ്പർ", + "modification_caution_note": "ഒരിക്കൽ ചേർത്തുകഴിഞ്ഞാൽ മാറ്റങ്ങളൊന്നും സാധ്യമല്ല", + "modified": "പരിഷ്കരിച്ചു", + "modified_date": "പരിഷ്കരിച്ച തീയതി", + "monitor": "മോണിറ്റർ", + "more_info": "കൂടുതൽ വിവരങ്ങൾ", + "moving_camera": "ചലിക്കുന്ന ക്യാമറ", + "name": "പേര്", + "name_of_hospital": "ആശുപത്രിയുടെ പേര്", + "name_of_shifting_approving_facility": "ഷിഫ്റ്റിംഗ് അപ്രൂവിംഗ് സൗകര്യത്തിൻ്റെ പേര്", + "nationality": "ദേശീയത", + "never": "ഒരിക്കലും", + "new_password": "പുതിയ പാസ്‌വേഡ്", + "next_sessions": "അടുത്ത സെഷനുകൾ", + "no": "ഇല്ല", + "no_bed_types_found": "കിടക്ക തരങ്ങളൊന്നും കണ്ടെത്തിയില്ല", + "no_changes": "മാറ്റങ്ങളൊന്നുമില്ല", + "no_changes_made": "മാറ്റങ്ങളൊന്നും വരുത്തിയിട്ടില്ല", + "no_consultation_updates": "കൺസൾട്ടേഷൻ അപ്‌ഡേറ്റുകളൊന്നുമില്ല", + "no_cover_photo_uploaded_for_this_facility": "ഈ സൗകര്യത്തിനായി കവർ ഫോട്ടോ അപ്‌ലോഡ് ചെയ്‌തിട്ടില്ല", + "no_data_found": "വിവരങ്ങളൊന്നും കണ്ടെത്തിയില്ല", + "no_duplicate_facility": "അനധികൃതമായി ഫെസിലിറ്റികള്‍ സൃഷ്ടിക്കരുത്", + "no_facilities": "ഫെസിലിറ്റികളൊന്നും കണ്ടെത്തുവാനായില്ല", + "no_files_found": "{{type}} ഫയലുകളൊന്നും കണ്ടെത്തിയില്ല", + "no_home_facility": "വീടിനുള്ള സൗകര്യം നൽകിയിട്ടില്ല", + "no_investigation": "അന്വേഷണ റിപ്പോർട്ടുകളൊന്നും കണ്ടെത്തിയില്ല", + "no_investigation_suggestions": "അന്വേഷണ നിർദ്ദേശങ്ങളൊന്നുമില്ല", + "no_linked_facilities": "ലിങ്ക്ഡ് സൗകര്യങ്ങളൊന്നുമില്ല", + "no_log_update_delta": "മുമ്പത്തെ ലോഗ് അപ്ഡേറ്റ് മുതൽ മാറ്റങ്ങളൊന്നുമില്ല", + "no_notices_for_you": "നിങ്ങൾക്കായി അറിയിപ്പുകളൊന്നുമില്ല.", + "no_patients_to_show": "കാണിക്കാൻ രോഗികളില്ല.", + "no_results_found": "ഫലങ്ങളൊന്നും കണ്ടെത്തിയില്ല", + "no_staff": "ജീവനക്കാരെ കണ്ടെത്തിയില്ല", + "no_treating_physicians_available": "ഈ സൗകര്യത്തിന് ഹോം ഫെസിലിറ്റി ഡോക്ടർമാരില്ല. ദയവായി നിങ്ങളുടെ അഡ്‌മിനെ ബന്ധപ്പെടുക.", + "no_users_found": "ഉപയോക്താക്കളെ കണ്ടെത്തിയില്ല", + "none": "ഒന്നുമില്ല", + "normal": "സാധാരണ", + "not_specified": "വ്യക്തമാക്കിയിട്ടില്ല", + "notes": "കുറിപ്പുകൾ", + "notes_placeholder": "നിങ്ങളുടെ കുറിപ്പുകൾ ടൈപ്പ് ചെയ്യുക", + "notification_permission_denied": "അറിയിപ്പ് അനുമതി നിഷേധിച്ചു", + "notification_permission_granted": "അറിയിപ്പ് അനുമതി നൽകി", + "number_of_aged_dependents_above_60": "പ്രായമായ ആശ്രിതരുടെ എണ്ണം (60-ൽ കൂടുതൽ)", + "number_of_beds": "കിടക്കകളുടെ എണ്ണം", + "number_of_beds_out_of_range_error": "കിടക്കകളുടെ എണ്ണം 100-ൽ കൂടരുത്", + "number_of_chronic_diseased_dependents": "വിട്ടുമാറാത്ത രോഗങ്ങളെ ആശ്രയിക്കുന്നവരുടെ എണ്ണം", + "on": "ഓൺ", + "ongoing_medications": "നടന്നുകൊണ്ടിരിക്കുന്ന മരുന്നുകൾ", + "open": "തുറക്കുക", + "open_camera": "ക്യാമറ തുറക്കുക", + "open_live_monitoring": "ലൈവ് മോണിറ്ററിംഗ് തുറക്കുക", + "optional": "ഓപ്ഷണൽ", + "ordering": "ഓർഡർ ചെയ്യുന്നു", + "origin_facility": "നിലവിലെ സൗകര്യം", + "oxygen_information": "ഓക്സിജൻ വിവരങ്ങൾ", + "page_not_found": "പേജ് കണ്ടെത്തിയില്ല", + "pain": "വേദന", + "pain_chart_description": "വേദനയുടെ പ്രദേശവും തീവ്രതയും അടയാളപ്പെടുത്തുക", + "passport_number": "പാസ്പോർട്ട് നമ്പർ", + "password": "പാസ്‌വേഡ്", + "password_mismatch": "പാസ്‌വേഡും ഉറപ്പാക്കിയ പാസ്‌വേഡും സമാനമായിരിക്കണം", + "password_reset_failure": "പാസ്‌വേഡ് പുന: സജ്ജീകരണം പരാജയപ്പെട്ടു", + "password_reset_success": "പാസ്‌വേഡ് പുന: സജ്ജീകരണം വിജയിച്ചു", + "password_sent": "പാസ്‌വേഡ് പുന: സജ്ജീകരണ ലിങ്ക് അയച്ചിട്ടുണ്ട്", + "patient_address": "രോഗിയുടെ വിലാസം", + "patient_category": "രോഗികളുടെ വിഭാഗം", + "patient_consultation__admission": "പ്രവേശന തീയതി", + "patient_consultation__consultation_notes": "പൊതു നിർദ്ദേശങ്ങൾ", + "patient_consultation__dc_admission": "ഡൊമിസിലിയറി കെയർ ആരംഭിച്ച തീയതി", + "patient_consultation__ip": "ഐ.പി", + "patient_consultation__op": "ഒ.പി", + "patient_consultation__special_instruction": "പ്രത്യേക നിർദ്ദേശങ്ങൾ", + "patient_consultation__treatment__plan": "പ്ലാൻ ചെയ്യുക", + "patient_consultation__treatment__summary": "സംഗ്രഹം", + "patient_consultation__treatment__summary__date": "തീയതി", + "patient_consultation__treatment__summary__spo2": "SpO2", + "patient_consultation__treatment__summary__temperature": "താപനില", + "patient_created": "രോഗിയെ സൃഷ്ടിച്ചു", + "patient_name": "രോഗിയുടെ പേര്", + "patient_no": "OP/IP നമ്പർ", + "patient_phone_number": "രോഗിയുടെ ഫോൺ നമ്പർ", + "patient_registration__address": "വിലാസം", + "patient_registration__age": "പ്രായം", + "patient_registration__comorbidities": "കോമോർബിഡിറ്റികൾ", + "patient_registration__comorbidities__details": "വിശദാംശങ്ങൾ", + "patient_registration__comorbidities__disease": "രോഗം", + "patient_registration__contact": "അടിയന്തര കോൺടാക്റ്റ്", + "patient_registration__gender": "ലിംഗഭേദം", + "patient_registration__name": "പേര്", + "patient_state": "രോഗിയുടെ അവസ്ഥ", + "patient_status": "രോഗിയുടെ അവസ്ഥ", + "patient_transfer_birth_match_note": "ശ്രദ്ധിക്കുക: ട്രാൻസ്ഫർ അഭ്യർത്ഥന പ്രോസസ്സ് ചെയ്യുന്നതിന് ജനന വർഷം രോഗിയുമായി പൊരുത്തപ്പെടണം.", + "phone": "ഫോൺ", + "phone_no": "ഫോൺ നമ്പർ.", + "phone_number": "ഫോൺ നമ്പർ", + "phone_number_at_current_facility": "നിലവിലെ സൗകര്യത്തിൽ ബന്ധപ്പെടുന്ന വ്യക്തിയുടെ ഫോൺ നമ്പർ", + "pincode": "പിൻകോഡ്", + "please_enter_a_reason_for_the_shift": "ഷിഫ്റ്റിനുള്ള കാരണം നൽകുക.", + "please_select_a_facility": "ദയവായി ഒരു സൗകര്യം തിരഞ്ഞെടുക്കുക", + "please_select_breathlessness_level": "ശ്വാസതടസ്സം നില തിരഞ്ഞെടുക്കുക", + "please_select_facility_type": "ദയവായി സൗകര്യത്തിൻ്റെ തരം തിരഞ്ഞെടുക്കുക", + "please_select_patient_category": "ദയവായി രോഗി വിഭാഗം തിരഞ്ഞെടുക്കുക", + "please_select_preferred_vehicle_type": "ദയവായി തിരഞ്ഞെടുത്ത വാഹന തരം തിരഞ്ഞെടുക്കുക", + "please_select_status": "ദയവായി സ്റ്റാറ്റസ് തിരഞ്ഞെടുക്കുക", + "please_upload_a_csv_file": "ദയവായി ഒരു CSV ഫയൽ അപ്‌ലോഡ് ചെയ്യുക", + "post_your_comment": "നിങ്ങളുടെ അഭിപ്രായം പോസ്റ്റ് ചെയ്യുക", + "powered_by": "പ്രായോജകർ", + "preferred_facility_type": "ഇഷ്ടപ്പെട്ട സൗകര്യ തരം", + "preferred_vehicle": "ഇഷ്ടപ്പെട്ട വാഹനം", + "prescription": "കുറിപ്പടി", + "prescription_details": "കുറിപ്പടി വിശദാംശങ്ങൾ", + "prescription_discontinued": "കുറിപ്പടി നിർത്തലാക്കി", + "prescription_logs": "കുറിപ്പടി രേഖകൾ", + "prescription_medication": "കുറിപ്പടി മരുന്ന്", + "prescription_medications": "കുറിപ്പടി മരുന്നുകൾ", + "prescriptions__dosage_frequency": "അളവും ആവൃത്തിയും", + "prescriptions__medicine": "മരുന്ന്", + "prescriptions__route": "റൂട്ട്", + "prescriptions__start_date": "നിർദ്ദേശിച്ചിരിക്കുന്നത്", + "prev_sessions": "മുൻ സെഷനുകൾ", + "principal": "പ്രിൻസിപ്പൽ", + "principal_diagnosis": "പ്രധാന രോഗനിർണയം", + "print": "അച്ചടിക്കുക", + "print_referral_letter": "റഫറൽ കത്ത് അച്ചടിക്കുക", + "prn_prescription": "PRN കുറിപ്പടി", + "prn_prescriptions": "PRN കുറിപ്പടികൾ", + "procedure_suggestions": "നടപടിക്രമ നിർദ്ദേശങ്ങൾ", + "provisional": "താൽക്കാലികം", + "ration_card__APL": "എ.പി.എൽ", + "ration_card__BPL": "ബി.പി.എൽ", + "ration_card__NO_CARD": "നോൺ-കാർഡ് ഹോൾഡർ", + "reason": "കാരണം", + "reason_for_discontinuation": "നിർത്തലാക്കാനുള്ള കാരണം", + "reason_for_edit": "തിരുത്താനുള്ള കാരണം", + "reason_for_referral": "റഫറൽ ചെയ്യാനുള്ള കാരണം", + "reason_for_shift": "ഷിഫ്റ്റിനുള്ള കാരണം", + "recommended_aspect_ratio_for": "ഇതിനായി ശുപാർശ ചെയ്യുന്ന വീക്ഷണ അനുപാതം", + "record": "റെക്കോർഡ് ഓഡിയോ", + "record_delete_confirm": "ഈ റെക്കോർഡ് ഇല്ലാതാക്കണമെന്ന് തീർച്ചയാണോ?", + "record_has_been_deleted_successfully": "റെക്കോർഡ് വിജയകരമായി ഇല്ലാതാക്കി.", + "record_updates": "റെക്കോർഡ് അപ്ഡേറ്റുകൾ", + "recording": "റെക്കോർഡിംഗ്", + "redirected_to_create_consultation": "ശ്രദ്ധിക്കുക: കൺസൾട്ടേഷൻ ഫോം സൃഷ്‌ടിക്കാൻ നിങ്ങളെ റീഡയറക്‌ടുചെയ്യും. കൈമാറ്റ പ്രക്രിയ പൂർത്തിയാക്കാൻ ദയവായി ഫോം പൂരിപ്പിക്കുക", + "referral_letter": "റഫറൽ കത്ത്", + "referred_to": "പരാമർശിച്ചത്", + "refresh_list": "ലിസ്റ്റ് പുതുക്കുക", + "refuted": "നിഷേധിച്ചു", + "register_hospital": "ആശുപത്രി രജിസ്റ്റർ ചെയ്യുക", + "register_page_title": "ആശുപത്രി അഡ്മിനിസ്ട്രേറ്ററായി രജിസ്റ്റർ ചെയ്യുക", + "reload": "വീണ്ടും ലോഡുചെയ്യുക", + "remove": "നീക്കം ചെയ്യുക", + "rename": "പേരുമാറ്റുക", + "report": "റിപ്പോർട്ട് ചെയ്യുക", + "req_atleast_one_digit": "കുറഞ്ഞത് ഒരു അക്കമെങ്കിലും ആവശ്യമാണ്", + "req_atleast_one_lowercase": "കുറഞ്ഞത് ഒരു ചെറിയ അക്ഷരമെങ്കിലും ആവശ്യമാണ്", + "req_atleast_one_symbol": "കുറഞ്ഞത് ഒരു ചിഹ്നമെങ്കിലും ആവശ്യമാണ്", + "req_atleast_one_uppercase": "കുറഞ്ഞത് ഒരു വലിയ കേസെങ്കിലും ആവശ്യമാണ്", + "request_description": "അഭ്യർത്ഥനയുടെ വിവരണം", + "request_description_placeholder": "നിങ്ങളുടെ വിവരണം ഇവിടെ ടൈപ്പ് ചെയ്യുക", + "request_title": "പേര് അഭ്യർത്ഥിക്കുക", + "request_title_placeholder": "നിങ്ങളുടെ തലക്കെട്ട് ഇവിടെ ടൈപ്പ് ചെയ്യുക", + "required": "ആവശ്യമാണ്", + "required_quantity": "ആവശ്യമായ അളവ്", + "reset": "പുന: സജ്ജമാക്കുക ", + "reset_password": "പാസ്‌വേഡ് പുന: സജ്ജമാക്കുക", + "resource_request": "റിസോഴ്സ് അഭ്യർത്ഥന", + "result": "ഫലം", + "result_date": "ഫല തീയതി", + "result_details": "ഫലത്തിൻ്റെ വിശദാംശങ്ങൾ", + "resume": "പുനരാരംഭിക്കുക", + "retake": "വീണ്ടും എടുക്കുക", + "return_to_care": "CARE എന്ന താളിലേക്ക് മടങ്ങുക", + "return_to_login": "ലോഗിൻ എന്നതിലേക്ക് മടങ്ങുക", + "return_to_password_reset": "പാസ്‌വേഡ് പുനഃസജ്ജീകരണത്തിലേക്ക് മടങ്ങുക", + "return_to_patient_dashboard": "പേഷ്യൻ്റ് ഡാഷ്‌ബോർഡിലേക്ക് മടങ്ങുക", + "right": "ശരിയാണ്", + "route": "റൂട്ട്", + "sample_collection_date": "സാമ്പിൾ ശേഖരണ തീയതി", + "sample_format": "സാമ്പിൾ ഫോർമാറ്റ്", + "sample_type": "സാമ്പിൾ തരം", + "save": "സംരക്ഷിക്കുക", + "save_and_continue": "സംരക്ഷിച്ച് തുടരുക", + "save_investigation": "അന്വേഷണം സംരക്ഷിക്കുക", + "scan_asset_qr": "അസറ്റ് ക്യുആർ സ്കാൻ ചെയ്യുക!", + "search_by_username": "ഉപയോക്തൃനാമം ഉപയോഗിച്ച് തിരയുക", + "search_for_facility": "സൗകര്യത്തിനായി തിരയുക", + "search_icd11_placeholder": "ICD-11 രോഗനിർണയങ്ങൾക്കായി തിരയുക", + "search_investigation_placeholder": "അന്വേഷണവും ഗ്രൂപ്പുകളും", + "search_patient": "രോഗിയെ തിരയുക", + "search_resource": "തിരയൽ റിസോഴ്സ്", + "select": "തിരഞ്ഞെടുക്കുക", + "select_date": "തീയതി തിരഞ്ഞെടുക്കുക", + "select_facility_for_discharged_patients_warning": "ഡിസ്ചാർജ് ചെയ്ത രോഗികളെ കാണാനുള്ള സൗകര്യം തിരഞ്ഞെടുക്കേണ്ടതുണ്ട്.", + "select_for_administration": "അഡ്മിനിസ്ട്രേഷനായി തിരഞ്ഞെടുക്കുക", + "select_groups": "ഗ്രൂപ്പുകൾ തിരഞ്ഞെടുക്കുക", + "select_investigation": "അന്വേഷണങ്ങൾ തിരഞ്ഞെടുക്കുക (എല്ലാ അന്വേഷണങ്ങളും സ്ഥിരസ്ഥിതിയായി തിരഞ്ഞെടുക്കും)", + "select_investigation_groups": "അന്വേഷണ സംഘങ്ങൾ തിരഞ്ഞെടുക്കുക", + "select_investigations": "അന്വേഷണങ്ങൾ തിരഞ്ഞെടുക്കുക", + "select_local_body": "തദ്ദേശ സ്ഥാപനം തിരഞ്ഞെടുക്കുക", + "select_skills": "കുറച്ച് കഴിവുകൾ തിരഞ്ഞെടുത്ത് ചേർക്കുക", + "select_wards": "വാർഡുകൾ തിരഞ്ഞെടുക്കുക", + "send_email": "ഇമെയിൽ അയയ്ക്കുക", + "send_reset_link": "പുന: സജ്ജീകരണ ലിങ്ക് അയയ്‌ക്കുക", + "serial_number": "സീരിയൽ നമ്പർ", + "serviced_on": "സർവീസ് ചെയ്തു", + "session_expired": "സെഷൻ കാലഹരണപ്പെട്ടു", + "session_expired_msg": "നിങ്ങളുടെ സെഷൻ കാലഹരണപ്പെട്ടതായി തോന്നുന്നു. ഇത് നിഷ്ക്രിയത്വം മൂലമാകാം. തുടരാൻ വീണ്ടും ലോഗിൻ ചെയ്യുക.", + "set_average_weekly_working_hours_for": "ഇതിനായി ശരാശരി പ്രതിവാര പ്രവൃത്തി സമയം സജ്ജമാക്കുക", + "settings_and_filters": "ക്രമീകരണങ്ങളും ഫിൽട്ടറുകളും", + "severity_of_breathlessness": "ശ്വാസതടസ്സത്തിൻ്റെ തീവ്രത", + "shift_request_updated_successfully": "ഷിഫ്റ്റ് അഭ്യർത്ഥന വിജയകരമായി അപ്ഡേറ്റ് ചെയ്തു", + "shifting": "ഷിഫ്റ്റിംഗ്", + "shifting_approval_facility": "ഷിഫ്റ്റിംഗ് അംഗീകാര സൗകര്യം", + "shifting_approving_facility": "അംഗീകാരം നൽകുന്ന സൗകര്യം മാറ്റുന്നു", + "shifting_approving_facility_can_not_be_empty": "ഷിഫ്റ്റിംഗ് അപ്രൂവിംഗ് സൗകര്യം ശൂന്യമായിരിക്കരുത്.", + "shifting_deleted": "ഷിഫ്റ്റിംഗ് റെക്കോർഡ് വിജയകരമായി ഇല്ലാതാക്കി.", + "shifting_details": "വിശദാംശങ്ങൾ മാറ്റുന്നു", + "shifting_status": "ഷിഫ്റ്റിംഗ് സ്റ്റാറ്റസ്", + "show_all": "എല്ലാം കാണിക്കുക", + "show_all_notifications": "എല്ലാം കാണിക്കുക", + "show_default_presets": "ഡിഫോൾട്ട് പ്രീസെറ്റുകൾ കാണിക്കുക", + "show_patient_presets": "രോഗിയുടെ പ്രീസെറ്റുകൾ കാണിക്കുക", + "show_unread_notifications": "വായിക്കാത്തത് കാണിക്കുക", + "sign_out": "ലോഗ് ഔട്ട് ചെയ്യുക/പുറത്തിറങ്ങുക", + "something_went_wrong": "എന്തോ കുഴപ്പം സംഭവിച്ചു..!", + "something_wrong": "എന്തോ കുഴപ്പം സംഭവിച്ചു! കുറച്ചു കഴിഞ്ഞു വീണ്ടും ശ്രമിക്കുക!", + "sort_by": "ഇങ്ങനെ അടുക്കുക", + "source": "ഉറവിടം", + "srf_id": "SRF ഐഡി", + "staff_list": "സ്റ്റാഫ് ലിസ്റ്റ്", + "start_dosage": "ഡോസ് ആരംഭിക്കുക", + "state": "സംസ്ഥാനം", + "status": "നില", + "stop": "നിർത്തുക", + "stream_stop_due_to_inativity": "സജീവമല്ലാത്തതിനാൽ തത്സമയ ഫീഡ് സ്ട്രീമിംഗ് നിർത്തും", + "stream_stopped_due_to_inativity": "സജീവമല്ലാത്തതിനാൽ തത്സമയ ഫീഡ് സ്ട്രീമിംഗ് നിർത്തി", + "sub_category": "ഉപവിഭാഗം", + "submit": "സമർപ്പിക്കുക", + "submitting": "സമർപ്പിക്കുന്നു", + "subscribe": "സബ്സ്ക്രൈബ് ചെയ്യുക", + "subscribe_on_this_device": "ഈ ഉപകരണത്തിൽ സബ്സ്ക്രൈബ് ചെയ്യുക", + "subscription_error": "സബ്സ്ക്രിപ്ഷൻ പിശക്", + "suggested_investigations": "നിർദ്ദേശിച്ച അന്വേഷണങ്ങൾ", + "summary": "സംഗ്രഹം", + "support": "പിന്തുണ", + "switch": "മാറുക", + "systolic": "സിസ്റ്റോളിക്", + "tachycardia": "ടാക്കിക്കാർഡിയ", + "target_dosage": "ടാർഗെറ്റ് ഡോസ്", + "test_type": "ടെസ്റ്റ് തരം", + "titrate_dosage": "ടൈട്രേറ്റ് ഡോസ്", + "to_be_conducted": "നടത്തേണ്ടത്", + "total_beds": "മൊത്തം കിടക്കകൾ", + "total_users": "മൊത്തം ഉപയോക്താക്കൾ", + "transfer_in_progress": "കൈമാറ്റം പുരോഗമിക്കുന്നു", + "transfer_to_receiving_facility": "സ്വീകരിക്കാനുള്ള സൗകര്യത്തിലേക്ക് ട്രാൻസ്ഫർ ചെയ്യുക", + "travel_within_last_28_days": "ആഭ്യന്തര/അന്താരാഷ്ട്ര യാത്ര (കഴിഞ്ഞ 28 ദിവസത്തിനുള്ളിൽ)", + "treating_doctor": "ചികിത്സിക്കുന്ന ഡോക്ടർ", + "treatment_summary": "ചികിത്സയുടെ സംഗ്രഹം", + "treatment_summary__head_title": "ചികിത്സയുടെ സംഗ്രഹം", + "treatment_summary__heading": "ഇടക്കാല ചികിത്സ സംഗ്രഹം", + "treatment_summary__print": "ചികിത്സയുടെ സംഗ്രഹം അച്ചടിക്കുക", + "try_again_later": "പിന്നീട് വീണ്ടും ശ്രമിക്കുക!", + "type_any_extra_comments_here": "എന്തെങ്കിലും അധിക അഭിപ്രായങ്ങൾ ഇവിടെ ടൈപ്പ് ചെയ്യുക", + "type_b_cylinders": "ബി തരം സിലിണ്ടറുകൾ", + "type_c_cylinders": "സി തരം സിലിണ്ടറുകൾ", + "type_d_cylinders": "ഡി തരം സിലിണ്ടറുകൾ", + "type_to_search": "തിരയാൻ ടൈപ്പ് ചെയ്യുക", + "type_your_comment": "നിങ്ങളുടെ അഭിപ്രായം ടൈപ്പ് ചെയ്യുക", + "type_your_reason_here": "നിങ്ങളുടെ കാരണം ഇവിടെ ടൈപ്പ് ചെയ്യുക", + "unconfirmed": "സ്ഥിരീകരിച്ചിട്ടില്ല", + "unique_id": "അദ്വിതീയ ഐഡി", + "unknown": "അജ്ഞാതം", + "unsubscribe": "അൺസബ്സ്ക്രൈബ് ചെയ്യുക", + "unsubscribe_failed": "അൺസബ്‌സ്‌ക്രൈബ് ചെയ്യാനായില്ല.", + "unsupported_browser": "പിന്തുണയ്‌ക്കാത്ത ബ്രൗസർ", + "unsupported_browser_description": "നിങ്ങളുടെ ബ്രൗസർ ({{name}} പതിപ്പ് {{version}}) പിന്തുണയ്ക്കുന്നില്ല. ഏറ്റവും പുതിയ പതിപ്പിലേക്ക് നിങ്ങളുടെ ബ്രൗസർ അപ്‌ഡേറ്റ് ചെയ്യുക അല്ലെങ്കിൽ മികച്ച അനുഭവത്തിനായി പിന്തുണയ്‌ക്കുന്ന ബ്രൗസറിലേക്ക് മാറുക.", + "up": "മുകളിലേക്ക്", + "up_shift": "മുകളിലേക്ക് ഷിഫ്റ്റ്", + "update": "അപ്ഡേറ്റ്", + "update_asset": "അസറ്റ് അപ്ഡേറ്റ് ചെയ്യുക", + "update_asset_service_record": "അസറ്റ് സർവീസ് റെക്കോർഡ് അപ്ഡേറ്റ് ചെയ്യുക", + "update_bed": "കിടക്ക അപ്ഡേറ്റ് ചെയ്യുക", + "update_facility": "അപ്ഡേറ്റ് സൗകര്യം", + "update_facility_middleware_success": "ഫെസിലിറ്റി മിഡിൽവെയർ വിജയകരമായി അപ്ഡേറ്റ് ചെയ്തു", + "update_log": "അപ്ഡേറ്റ് ലോഗ്", + "update_record": "റെക്കോർഡ് അപ്ഡേറ്റ് ചെയ്യുക", + "update_record_for_asset": "അസറ്റിൻ്റെ റെക്കോർഡ് അപ്ഡേറ്റ് ചെയ്യുക", + "update_shift_request": "ഷിഫ്റ്റ് അഭ്യർത്ഥന അപ്ഡേറ്റ് ചെയ്യുക", + "update_status_details": "സ്റ്റാറ്റസ്/വിശദാംശങ്ങൾ അപ്ഡേറ്റ് ചെയ്യുക", + "updated": "അപ്ഡേറ്റ് ചെയ്തു", + "updating": "അപ്ഡേറ്റ് ചെയ്യുന്നു", + "upload": "അപ്‌ലോഡ് ചെയ്യുക", + "upload_an_image": "ഒരു ചിത്രം അപ്‌ലോഡ് ചെയ്യുക", + "upload_headings__consultation": "പുതിയ കൺസൾട്ടേഷൻ ഫയൽ അപ്‌ലോഡ് ചെയ്യുക", + "upload_headings__patient": "പുതിയ രോഗി ഫയൽ അപ്‌ലോഡ് ചെയ്യുക", + "upload_headings__sample_report": "സാമ്പിൾ റിപ്പോർട്ട് അപ്‌ലോഡ് ചെയ്യുക", + "upload_headings__supporting_info": "സഹായ വിവരങ്ങൾ അപ്‌ലോഡ് ചെയ്യുക", + "uploading": "അപ്‌ലോഡ് ചെയ്യുന്നു", + "user_deleted_successfuly": "ഉപയോക്താവ് ഇല്ലാതാക്കി", + "user_management": "ഉപയോക്തൃ മാനേജ്മെൻ്റ്", + "username": "യൂസർനെയിം/ഉപയോക്തൃനാമം", + "users": "ഉപയോക്താക്കൾ", + "vehicle_preference": "വാഹന മുൻഗണന", + "vendor_name": "വെണ്ടർ പേര്", + "view": "കാണുക", + "view_abdm_records": "ABDM റെക്കോർഡുകൾ കാണുക", + "view_asset": "അസറ്റുകൾ കാണുക", + "view_details": "വിശദാംശങ്ങൾ കാണുക", + "view_faciliy": "സൗകര്യം കാണുക", + "view_patients": "രോഗികളെ കാണുക", + "view_users": "ഉപയോക്താക്കളെ കാണുക", + "virtual_nursing_assistant": "വെർച്വൽ നഴ്സിംഗ് അസിസ്റ്റൻ്റ്", + "ward": "വാർഡ്", + "warranty_amc_expiry": "വാറൻ്റി / AMC കാലഹരണപ്പെടുന്നു", + "what_facility_assign_the_patient_to": "ഏത് സൗകര്യമാണ് രോഗിയെ ഏൽപ്പിക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നത്", + "why_the_asset_is_not_working": "എന്തുകൊണ്ടാണ് അസറ്റ് പ്രവർത്തിക്കാത്തത്?", + "working_status": "പ്രവർത്തന നില", + "yes": "അതെ", + "yet_to_be_decided": "ഇനിയും തീരുമാനമായിട്ടില്ല", + "you_need_at_least_a_location_to_create_an_assest": "ഒരു അസസ്‌റ്റ് സൃഷ്‌ടിക്കാൻ നിങ്ങൾക്ക് ഒരു ലൊക്കേഷനെങ്കിലും ആവശ്യമാണ്.", + "zoom_in": "സൂം ഇൻ ചെയ്യുക", + "zoom_out": "സൂം ഔട്ട്" +} diff --git a/src/Locale/ml/Asset.json b/src/Locale/ml/Asset.json deleted file mode 100644 index c0d08b2dc3e..00000000000 --- a/src/Locale/ml/Asset.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "create_asset": "അസറ്റ് സൃഷ്ടിക്കുക", - "edit_history": "ചരിത്രം തിരുത്തുക", - "update_record_for_asset": "അസറ്റിൻ്റെ റെക്കോർഡ് അപ്ഡേറ്റ് ചെയ്യുക", - "edited_on": "എഡിറ്റ് ചെയ്തത്", - "edited_by": "എഡിറ്റ് ചെയ്തത്", - "serviced_on": "സർവീസ് ചെയ്തു", - "notes": "കുറിപ്പുകൾ", - "back": "തിരികെ", - "close": "അടയ്ക്കുക", - "update_asset_service_record": "അസറ്റ് സർവീസ് റെക്കോർഡ് അപ്ഡേറ്റ് ചെയ്യുക", - "eg_details_on_functionality_service_etc": "ഉദാ. പ്രവർത്തനം, സേവനം മുതലായവയെക്കുറിച്ചുള്ള വിശദാംശങ്ങൾ.", - "updating": "അപ്ഡേറ്റ് ചെയ്യുന്നു", - "update": "അപ്ഡേറ്റ്", - "are_you_still_watching": "നിങ്ങൾ ഇപ്പോഴും കാണുന്നുണ്ടോ?", - "stream_stop_due_to_inativity": "സജീവമല്ലാത്തതിനാൽ തത്സമയ ഫീഡ് സ്ട്രീമിംഗ് നിർത്തും", - "stream_stopped_due_to_inativity": "സജീവമല്ലാത്തതിനാൽ തത്സമയ ഫീഡ് സ്ട്രീമിംഗ് നിർത്തി", - "continue_watching": "കാണുന്നത് തുടരുക", - "resume": "പുനരാരംഭിക്കുക" -} \ No newline at end of file diff --git a/src/Locale/ml/Auth.json b/src/Locale/ml/Auth.json deleted file mode 100644 index 8b282f87aed..00000000000 --- a/src/Locale/ml/Auth.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "username": "യൂസർനെയിം/ഉപയോക്തൃനാമം", - "password": "പാസ്‌വേഡ്", - "new_password": "പുതിയ പാസ്‌വേഡ്", - "confirm_password": "പാസ്‌വേഡ് ഉറപ്പാക്കുക", - "first_name": "പേരിന്‍റെ ആദ്യഭാഗം", - "last_name": "പേരിന്‍റെ അവസാന ഭാഗം", - "email": "ഇമെയിൽ വിലാസം", - "phone_number": "ഫോൺ നമ്പർ", - "district": "ജില്ല", - "gender": "ലിംഗഭേദം", - "age": "വയസ്സ്", - "login": "ലോഗിൻ ചെയ്യുക/അകത്തു പ്രവേശിക്കുക", - "password_mismatch": "പാസ്‌വേഡും ഉറപ്പാക്കിയ പാസ്‌വേഡും സമാനമായിരിക്കണം", - "enter_valid_age": "ദയവായി പ്രാമാണികമായ വയസ്സ് നൽകുക", - "invalid_username": "അനിവാര്യം. 150 ചിഹ്നമോ, അക്ഷരമോ, സംഖ്യയോ അതിൽ കുറവോ. അക്ഷരങ്ങൾ, അക്കങ്ങൾ, @/./+/-/_ മാത്രം ഉപയോഗിക്കുക.", - "invalid_password": "പാസ്‌വേഡ് ആവശ്യകതകൾ പാലിക്കുന്നില്ല", - "invalid_email": "ദയവായി പ്രാമാണികമായ ഇമെയിൽ വിലാസം നൽകുക", - "invalid_phone": "ദയവായി പ്രാമാണികമായ ഫോൺ നമ്പർ നൽകുക", - "register_hospital": "ആശുപത്രി രജിസ്റ്റർ ചെയ്യുക", - "register_page_title": "ആശുപത്രി അഡ്മിനിസ്ട്രേറ്ററായി രജിസ്റ്റർ ചെയ്യുക", - "auth_login_title": "അംഗീകൃത ലോഗിൻ", - "forget_password": "പാസ്‌വേഡ് മറന്നോ?", - "forget_password_instruction": "നിങ്ങളുടെ യൂസർനെയിം/ഉപയോക്തൃനാമം നൽകുക. പാസ്‌വേഡ് പുന: സജ്ജമാക്കാൻ ഞങ്ങൾ ഒരു ലിങ്ക് അയയ്‌ക്കുന്നതായിരിക്കും.", - "send_reset_link": "പുന: സജ്ജീകരണ ലിങ്ക് അയയ്‌ക്കുക", - "already_a_member": "ഇതിനകം തന്നെ ഒരു അംഗമാണോ?", - "password_sent": "പാസ്‌വേഡ് പുന: സജ്ജീകരണ ലിങ്ക് അയച്ചിട്ടുണ്ട്", - "password_reset_success": "പാസ്‌വേഡ് പുന: സജ്ജീകരണം വിജയിച്ചു", - "password_reset_failure": "പാസ്‌വേഡ് പുന: സജ്ജീകരണം പരാജയപ്പെട്ടു", - "reset_password": "പാസ്‌വേഡ് പുന: സജ്ജമാക്കുക", - "available_in": "ലഭ്യമായ ഭാഷകൾ", - "sign_out": "ലോഗ് ഔട്ട് ചെയ്യുക/പുറത്തിറങ്ങുക", - "back_to_login": "ലോഗിൻ പേജിലേക്ക് മടങ്ങുക", - "min_password_len_8": "ഏറ്റവും കുറഞ്ഞ പാസ്‌വേഡ് ദൈർഘ്യം 8", - "req_atleast_one_digit": "കുറഞ്ഞത് ഒരു അക്കമെങ്കിലും ആവശ്യമാണ്", - "req_atleast_one_uppercase": "കുറഞ്ഞത് ഒരു വലിയ കേസെങ്കിലും ആവശ്യമാണ്", - "req_atleast_one_lowercase": "കുറഞ്ഞത് ഒരു ചെറിയ അക്ഷരമെങ്കിലും ആവശ്യമാണ്", - "req_atleast_one_symbol": "കുറഞ്ഞത് ഒരു ചിഹ്നമെങ്കിലും ആവശ്യമാണ്" -} diff --git a/src/Locale/ml/Bed.json b/src/Locale/ml/Bed.json deleted file mode 100644 index 62f41278a60..00000000000 --- a/src/Locale/ml/Bed.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "bed_search_placeholder": "കിടക്കകളുടെ പേര് ഉപയോഗിച്ച് തിരയുക", - "BED_WITH_OXYGEN_SUPPORT": "ഓക്സിജൻ പിന്തുണയുള്ള കിടക്ക", - "REGULAR": "പതിവ്", - "ICU": "ഐ.സി.യു", - "ISOLATION": "ഐസൊലേഷൻ", - "add_beds": "കിടക്ക(കൾ) ചേർക്കുക", - "update_bed": "കിടക്ക അപ്ഡേറ്റ് ചെയ്യുക", - "bed_type": "കിടക്കയുടെ തരം", - "make_multiple_beds_label": "നിങ്ങൾക്ക് ഒന്നിലധികം കിടക്കകൾ നിർമ്മിക്കണോ?", - "number_of_beds": "കിടക്കകളുടെ എണ്ണം", - "number_of_beds_out_of_range_error": "കിടക്കകളുടെ എണ്ണം 100-ൽ കൂടരുത്" -} diff --git a/src/Locale/ml/Common.json b/src/Locale/ml/Common.json deleted file mode 100644 index ab1e0db6feb..00000000000 --- a/src/Locale/ml/Common.json +++ /dev/null @@ -1,223 +0,0 @@ -{ - "goal": "ഡിജിറ്റൽ ടൂളുകൾ ഉപയോഗിച്ച് പൊതുജനാരോഗ്യ സേവനങ്ങളുടെ ഗുണനിലവാരവും പ്രവേശനക്ഷമതയും തുടർച്ചയായി മെച്ചപ്പെടുത്തുകയാണ് ഞങ്ങളുടെ ലക്ഷ്യം.", - "something_wrong": "എന്തോ കുഴപ്പം സംഭവിച്ചു! കുറച്ചു കഴിഞ്ഞു വീണ്ടും ശ്രമിക്കുക!", - "try_again_later": "പിന്നീട് വീണ്ടും ശ്രമിക്കുക!", - "contribute_github": "GitHubൽ സംഭാവന ചെയ്യുക", - "footer_body": "കേരള സർക്കാറിന്‍റെ പൂർണ്ണമായ ധാരണയോടും പിന്തുണയോടും കൂടി സർക്കാർ ശ്രമങ്ങളെ പിന്തുണയ്ക്കുന്നതിനായി നൂതന പ്രവർത്തകരുടെയും സന്നദ്ധപ്രവർത്തകരുടെയും ഒരു മൾട്ടി-ഡിസിപ്ലിനറി ടീം രൂപകൽപ്പന ചെയ്ത മാതൃകാപരമായ ഒരു ഓപ്പൺ സോഴ്‌സ് പബ്ലിക് യൂട്ടിലിറ്റിയാണ് കൊറോണ സേഫ് നെറ്റ്‌വർക്ക്.", - "reset": "പുന: സജ്ജമാക്കുക ", - "download": "ഡൗൺലോഡ് ചെയ്യുക", - "downloads": "ഡൗൺലോഡുകൾ", - "downloading": "ഡൗൺലോഡ് ചെയ്യുന്നു", - "generating": "സൃഷ്ടിക്കുന്നു", - "send_email": "ഇമെയിൽ അയയ്ക്കുക", - "email_address": "ഇമെയിൽ വിലാസം", - "email_success": "ഞങ്ങൾ ഉടൻ ഒരു ഇമെയിൽ അയയ്ക്കും. ദയവായി നിങ്ങളുടെ ഇൻബോക്സ് പരിശോധിക്കുക.", - "disclaimer": "നിരാകരണം", - "category": "വിഭാഗം", - "sub_category": "ഉപവിഭാഗം", - "download_type": "ഡൗൺലോഡുകളുടെ തരം", - "state": "സംസ്ഥാനം", - "district": "ജില്ല", - "location": "സ്ഥാനം", - "ward": "വാർഡ്", - "Notice Board": "നോട്ടീസ് ബോർഡ്", - "Assets": "ആസ്തികൾ", - "Notifications": "അറിയിപ്പുകൾ", - "Submit": "സമർപ്പിക്കുക", - "Cancel": "റദ്ദാക്കുക", - "back": "തിരികെ", - "powered_by": "പ്രായോജകർ", - "care": "കെയർ", - "something_went_wrong": "എന്തോ കുഴപ്പം സംഭവിച്ചു..!", - "stop": "നിർത്തുക", - "record": "റെക്കോർഡ് ഓഡിയോ", - "recording": "റെക്കോർഡിംഗ്", - "yes": "അതെ", - "no": "ഇല്ല", - "status": "നില", - "created": "സൃഷ്ടിച്ചത്", - "modified": "പരിഷ്കരിച്ചു", - "updated": "അപ്ഡേറ്റ് ചെയ്തു", - "update": "അപ്ഡേറ്റ്", - "configure": "കോൺഫിഗർ ചെയ്യുക", - "assigned_to": "ലേക്ക് നിയോഗിച്ചു", - "cancel": "റദ്ദാക്കുക", - "clear": "ക്ലിയർ", - "apply": "അപേക്ഷിക്കുക", - "filter_by": "ഇതനുസരിച്ച് ഫിൽട്ടർ ചെയ്യുക", - "filter": "ഫിൽട്ടർ ചെയ്യുക", - "settings_and_filters": "ക്രമീകരണങ്ങളും ഫിൽട്ടറുകളും", - "ordering": "ഓർഡർ ചെയ്യുന്നു", - "phone_number": "ഫോൺ നമ്പർ", - "international_mobile": "അന്താരാഷ്ട്ര മൊബൈൽ", - "indian_mobile": "ഇന്ത്യൻ മൊബൈൽ", - "mobile": "മൊബൈൽ", - "landline": "ഇന്ത്യൻ ലാൻഡ്‌ലൈൻ", - "support": "പിന്തുണ", - "emergency_contact_number": "എമർജൻസി കോൺടാക്റ്റ് നമ്പർ", - "last_modified": "അവസാനം പരിഷ്കരിച്ചത്", - "patient_address": "രോഗിയുടെ വിലാസം", - "all_details": "എല്ലാ വിശദാംശങ്ങളും", - "confirm": "സ്ഥിരീകരിക്കുക", - "refresh_list": "ലിസ്റ്റ് പുതുക്കുക", - "last_edited": "അവസാനം എഡിറ്റ് ചെയ്തത്", - "audit_log": "ഓഡിറ്റ് ലോഗ്", - "comments": "അഭിപ്രായങ്ങൾ", - "contact_person_number": "ബന്ധപ്പെടേണ്ട വ്യക്തിയുടെ നമ്പർ", - "referral_letter": "റഫറൽ കത്ത്", - "close": "അടയ്ക്കുക", - "print": "അച്ചടിക്കുക", - "print_referral_letter": "റഫറൽ കത്ത് അച്ചടിക്കുക", - "date_of_positive_covid_19_swab": "പോസിറ്റീവ് കോവിഡ് 19 സ്വാബ് തീയതി", - "patient_no": "OP/IP നമ്പർ", - "date_of_admission": "പ്രവേശന തീയതി", - "india_1": "ഇന്ത്യ", - "unique_id": "അദ്വിതീയ ഐഡി", - "date_and_time": "തീയതിയും സമയവും", - "facility_type": "സൗകര്യ തരം", - "number_of_chronic_diseased_dependents": "വിട്ടുമാറാത്ത രോഗങ്ങളെ ആശ്രയിക്കുന്നവരുടെ എണ്ണം", - "number_of_aged_dependents_above_60": "പ്രായമായ ആശ്രിതരുടെ എണ്ണം (60-ൽ കൂടുതൽ)", - "ongoing_medications": "നടന്നുകൊണ്ടിരിക്കുന്ന മരുന്നുകൾ", - "countries_travelled": "രാജ്യങ്ങൾ സഞ്ചരിച്ചു", - "travel_within_last_28_days": "ആഭ്യന്തര/അന്താരാഷ്ട്ര യാത്ര (കഴിഞ്ഞ 28 ദിവസത്തിനുള്ളിൽ)", - "estimated_contact_date": "കണക്കാക്കിയ കോൺടാക്റ്റ് തീയതി", - "blood_group": "രക്ത ഗ്രൂപ്പ്", - "date_of_birth": "ജനനത്തീയതി", - "date_of_test": "ടെസ്റ്റ് തീയതി", - "srf_id": "SRF ഐഡി", - "contact_number": "ബന്ധപ്പെടേണ്ട നമ്പർ", - "diagnosis": "രോഗനിർണയം", - "copied_to_clipboard": "ക്ലിപ്പ്ബോർഡിലേക്ക് പകർത്തി", - "age": "പ്രായം", - "is": "ആണ്", - "reason": "കാരണം", - "description": "വിവരണം", - "name": "പേര്", - "address": "വിലാസം", - "phone": "ഫോൺ", - "nationality": "ദേശീയത", - "allergies": "അലർജികൾ", - "type_your_comment": "നിങ്ങളുടെ അഭിപ്രായം ടൈപ്പ് ചെയ്യുക", - "any_other_comments": "മറ്റേതെങ്കിലും അഭിപ്രായങ്ങൾ", - "loading": "ലോഡ് ചെയ്യുന്നു", - "facility": "സൗകര്യം", - "local_body": "തദ്ദേശ സ്ഥാപനം", - "filters": "ഫിൽട്ടറുകൾ", - "unknown": "അജ്ഞാതം", - "active": "സജീവമാണ്", - "completed": "പൂർത്തിയാക്കി", - "on": "ഓൺ", - "open": "തുറക്കുക", - "features": "ഫീച്ചറുകൾ", - "pincode": "പിൻകോഡ്", - "required": "ആവശ്യമാണ്", - "field_required": "ഈ ഫീൽഡ് പൂരിപ്പിക്കേണ്ടതുണ്ട്", - "litres": "ലിറ്റർ", - "litres_per_day": "ലിറ്റർ / ദിവസം", - "invalid_pincode": "പിൻകോഡ് അസാധുവാണ്", - "invalid_phone_number": "അസാധുവായ ഫോൺ നമ്പർ", - "latitude_invalid": "അക്ഷാംശം -90 നും 90 നും ഇടയിലായിരിക്കണം", - "longitude_invalid": "രേഖാംശം -180 നും 180 നും ഇടയിലായിരിക്കണം", - "save": "സംരക്ഷിക്കുക", - "continue": "തുടരുക", - "save_and_continue": "സംരക്ഷിച്ച് തുടരുക", - "select": "തിരഞ്ഞെടുക്കുക", - "lsg": "Lsg", - "delete": "ഇല്ലാതാക്കുക", - "remove": "നീക്കം ചെയ്യുക", - "max_size_for_image_uploaded_should_be": "അപ്‌ലോഡ് ചെയ്‌ത ചിത്രത്തിനുള്ള പരമാവധി വലുപ്പം ആയിരിക്കണം", - "allowed_formats_are": "അനുവദനീയമായ ഫോർമാറ്റുകളാണ്", - "recommended_aspect_ratio_for": "ഇതിനായി ശുപാർശ ചെയ്യുന്ന വീക്ഷണ അനുപാതം", - "drag_drop_image_to_upload": "അപ്‌ലോഡ് ചെയ്യാൻ ചിത്രം വലിച്ചിടുക", - "upload_an_image": "ഒരു ചിത്രം അപ്‌ലോഡ് ചെയ്യുക", - "upload": "അപ്‌ലോഡ് ചെയ്യുക", - "uploading": "അപ്‌ലോഡ് ചെയ്യുന്നു", - "switch": "മാറുക", - "capture": "ക്യാപ്ചർ", - "retake": "വീണ്ടും എടുക്കുക", - "submit": "സമർപ്പിക്കുക", - "camera": "ക്യാമറ", - "submitting": "സമർപ്പിക്കുന്നു", - "view_details": "വിശദാംശങ്ങൾ കാണുക", - "type_to_search": "തിരയാൻ ടൈപ്പ് ചെയ്യുക", - "show_all": "എല്ലാം കാണിക്കുക", - "hide": "മറയ്ക്കുക", - "select_skills": "കുറച്ച് കഴിവുകൾ തിരഞ്ഞെടുത്ത് ചേർക്കുക", - "contact_your_admin_to_add_skills": "കഴിവുകൾ ചേർക്കാൻ നിങ്ങളുടെ അഡ്‌മിനെ ബന്ധപ്പെടുക", - "add": "ചേർക്കുക", - "add_as": "ആയി ചേർക്കുക", - "sort_by": "ഇങ്ങനെ അടുക്കുക", - "none": "ഒന്നുമില്ല", - "choose_file": "ഉപകരണത്തിൽ നിന്ന് അപ്‌ലോഡ് ചെയ്യുക", - "open_camera": "ക്യാമറ തുറക്കുക", - "file_preview": "ഫയൽ പ്രിവ്യൂ", - "file_preview_not_supported": "ഈ ഫയൽ പ്രിവ്യൂ ചെയ്യാൻ കഴിയില്ല. ഇത് ഡൗൺലോഡ് ചെയ്യാൻ ശ്രമിക്കുക.", - "view_faciliy": "സൗകര്യം കാണുക", - "view_patients": "രോഗികളെ കാണുക", - "frequency": "ആവൃത്തി", - "days": "ദിവസങ്ങൾ", - "never": "ഒരിക്കലും", - "notes": "കുറിപ്പുകൾ", - "add_notes": "കുറിപ്പുകൾ ചേർക്കുക", - "notes_placeholder": "നിങ്ങളുടെ കുറിപ്പുകൾ ടൈപ്പ് ചെയ്യുക", - "optional": "ഓപ്ഷണൽ", - "discontinue": "നിർത്തുക", - "discontinued": "നിർത്തലാക്കി", - "not_specified": "വ്യക്തമാക്കിയിട്ടില്ല", - "all_changes_have_been_saved": "എല്ലാ മാറ്റങ്ങളും സംരക്ഷിച്ചു", - "no_data_found": "വിവരങ്ങളൊന്നും കണ്ടെത്തിയില്ല", - "edit": "എഡിറ്റ് ചെയ്യുക", - "clear_selection": "തിരഞ്ഞെടുപ്പ് മായ്‌ക്കുക", - "select_date": "തീയതി തിരഞ്ഞെടുക്കുക", - "DD/MM/YYYY": "DD/MM/YYYY", - "clear_all_filters": "എല്ലാ ഫിൽട്ടറുകളും മായ്ക്കുക", - "summary": "സംഗ്രഹം", - "report": "റിപ്പോർട്ട് ചെയ്യുക", - "treating_doctor": "ചികിത്സിക്കുന്ന ഡോക്ടർ", - "ration_card__NO_CARD": "നോൺ-കാർഡ് ഹോൾഡർ", - "ration_card__BPL": "ബി.പി.എൽ", - "ration_card__APL": "എ.പി.എൽ", - "empty_date_time": "--:-- --; ------------", - "caution": "ജാഗ്രത", - "feed_optimal_experience_for_phones": "ഒപ്റ്റിമൽ കാണൽ അനുഭവത്തിനായി, നിങ്ങളുടെ ഉപകരണം തിരിക്കുന്നത് പരിഗണിക്കുക.", - "feed_optimal_experience_for_apple_phones": "ഒപ്റ്റിമൽ കാണൽ അനുഭവത്തിനായി, നിങ്ങളുടെ ഉപകരണം തിരിക്കുന്നത് പരിഗണിക്കുക. നിങ്ങളുടെ ഉപകരണ ക്രമീകരണങ്ങളിൽ സ്വയമേവ തിരിയുന്നത് പ്രവർത്തനക്ഷമമാണെന്ന് ഉറപ്പാക്കുക.", - "action_irreversible": "ഈ പ്രവർത്തനം മാറ്റാനാവാത്തതാണ്", - "GENDER__1": "പുരുഷൻ", - "GENDER__2": "സ്ത്രീ", - "GENDER__3": "നോൺ-ബൈനറി", - "normal": "സാധാരണ", - "done": "ചെയ്തു", - "view": "കാണുക", - "rename": "പേരുമാറ്റുക", - "more_info": "കൂടുതൽ വിവരങ്ങൾ", - "archive": "ആർക്കൈവ്", - "discard": "നിരസിക്കുക", - "live": "തത്സമയം", - "discharged": "ഡിസ്ചാർജ് ചെയ്തു", - "archived": "ആർക്കൈവ് ചെയ്തു", - "no_changes_made": "മാറ്റങ്ങളൊന്നും വരുത്തിയിട്ടില്ല", - "user_deleted_successfuly": "ഉപയോക്താവ് ഇല്ലാതാക്കി", - "users": "ഉപയോക്താക്കൾ", - "are_you_sure_want_to_delete": "{{name}}ഇല്ലാതാക്കണമെന്ന് തീർച്ചയാണോ?", - "oxygen_information": "ഓക്സിജൻ വിവരങ്ങൾ", - "deleted_successfully": "{{name}} വിജയകരമായി ഇല്ലാതാക്കി", - "delete_item": "{{name}}ഇല്ലാതാക്കുക", - "unsupported_browser": "പിന്തുണയ്‌ക്കാത്ത ബ്രൗസർ", - "unsupported_browser_description": "നിങ്ങളുടെ ബ്രൗസർ ({{name}} പതിപ്പ് {{version}}) പിന്തുണയ്ക്കുന്നില്ല. ഏറ്റവും പുതിയ പതിപ്പിലേക്ക് നിങ്ങളുടെ ബ്രൗസർ അപ്‌ഡേറ്റ് ചെയ്യുക അല്ലെങ്കിൽ മികച്ച അനുഭവത്തിനായി പിന്തുണയ്‌ക്കുന്ന ബ്രൗസറിലേക്ക് മാറുക.", - "SORT_OPTIONS__-created_date": "ആദ്യം സൃഷ്ടിച്ച ഏറ്റവും പുതിയ തീയതി", - "SORT_OPTIONS__created_date": "ഏറ്റവും പഴയ സൃഷ്ടിച്ച തീയതി ആദ്യം", - "SORT_OPTIONS__-category_severity": "ഏറ്റവും ഉയർന്ന തീവ്രത വിഭാഗം ആദ്യം", - "SORT_OPTIONS__category_severity": "ഏറ്റവും കുറഞ്ഞ തീവ്രത വിഭാഗം ആദ്യം", - "SORT_OPTIONS__-modified_date": "ഏറ്റവും പുതിയ അപ്ഡേറ്റ് തീയതി ആദ്യം", - "SORT_OPTIONS__modified_date": "ഏറ്റവും പഴയ പുതുക്കിയ തീയതി ആദ്യം", - "SORT_OPTIONS__facility__name,last_consultation__current_bed__bed__name": "ബെഡ് നമ്പർ 1-N", - "SORT_OPTIONS__facility__name,-last_consultation__current_bed__bed__name": "കിടക്ക നമ്പർ N-1", - "SORT_OPTIONS__-review_time": "ഏറ്റവും പുതിയ അവലോകന തീയതി ആദ്യം", - "SORT_OPTIONS__review_time": "ഏറ്റവും പഴയ അവലോകന തീയതി ആദ്യം", - "SORT_OPTIONS__taken_at": "ആദ്യം എടുത്ത ഏറ്റവും പഴയ തീയതി", - "SORT_OPTIONS__-taken_at": "ഏറ്റവും പുതിയ തീയതി ആദ്യം", - "SORT_OPTIONS__name": "രോഗിയുടെ പേര് AZ", - "SORT_OPTIONS__-name": "രോഗിയുടെ പേര് ZA", - "SORT_OPTIONS__bed__name": "ബെഡ് നമ്പർ 1-N", - "SORT_OPTIONS__-bed__name": "കിടക്ക നമ്പർ N-1" -} \ No newline at end of file diff --git a/src/Locale/ml/Consultation.json b/src/Locale/ml/Consultation.json deleted file mode 100644 index 38e5de06d37..00000000000 --- a/src/Locale/ml/Consultation.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "no_consultation_updates": "കൺസൾട്ടേഷൻ അപ്‌ഡേറ്റുകളൊന്നുമില്ല", - "consultation_updates": "കൺസൾട്ടേഷൻ അപ്ഡേറ്റുകൾ", - "update_log": "അപ്ഡേറ്റ് ലോഗ്", - "record_updates": "റെക്കോർഡ് അപ്ഡേറ്റുകൾ", - "log_lab_results": "ലോഗ് ലാബ് ഫലങ്ങൾ", - "no_log_update_delta": "മുമ്പത്തെ ലോഗ് അപ്ഡേറ്റ് മുതൽ മാറ്റങ്ങളൊന്നുമില്ല", - "virtual_nursing_assistant": "വെർച്വൽ നഴ്സിംഗ് അസിസ്റ്റൻ്റ്", - "discharge": "ഡിസ്ചാർജ്", - "discharge_summary": "ഡിസ്ചാർജ് സംഗ്രഹം", - "discharge_from_care": "CARE-ൽ നിന്നുള്ള ഡിസ്ചാർജ്", - "generating_discharge_summary": "ഡിസ്ചാർജ് സംഗ്രഹം സൃഷ്ടിക്കുന്നു", - "discharge_summary_not_ready": "ഡിസ്ചാർജ് സംഗ്രഹം ഇതുവരെ തയ്യാറായിട്ടില്ല.", - "download_discharge_summary": "ഡിസ്ചാർജ് സംഗ്രഹം ഡൗൺലോഡ് ചെയ്യുക", - "email_discharge_summary_description": "ഡിസ്ചാർജ് സംഗ്രഹം ലഭിക്കുന്നതിന് നിങ്ങളുടെ സാധുവായ ഇമെയിൽ വിലാസം നൽകുക", - "generated_summary_caution": "കെയർ സിസ്റ്റത്തിൽ ക്യാപ്‌ചർ ചെയ്‌ത വിവരങ്ങൾ ഉപയോഗിച്ച് കമ്പ്യൂട്ടർ സൃഷ്‌ടിച്ച സംഗ്രഹമാണിത്.", - "NORMAL": "സംക്ഷിപ്ത അപ്ഡേറ്റ്", - "VENTILATOR": "വിശദമായ അപ്ഡേറ്റ്", - "DOCTORS_LOG": "പുരോഗതി കുറിപ്പ്", - "AUTOMATED": "ഓട്ടോമേറ്റഡ്", - "TELEMEDICINE": "ടെലിമെഡിസിൻ", - "investigations": "അന്വേഷണങ്ങൾ", - "search_investigation_placeholder": "അന്വേഷണവും ഗ്രൂപ്പുകളും", - "save_investigation": "അന്വേഷണം സംരക്ഷിക്കുക", - "investigation_reports": "അന്വേഷണ റിപ്പോർട്ടുകൾ", - "no_investigation": "അന്വേഷണ റിപ്പോർട്ടുകളൊന്നും കണ്ടെത്തിയില്ല", - "investigations_suggested": "അന്വേഷണങ്ങൾ നിർദ്ദേശിച്ചു", - "to_be_conducted": "നടത്തേണ്ടത്", - "log_report": "ലോഗ് റിപ്പോർട്ട്", - "no_investigation_suggestions": "അന്വേഷണ നിർദ്ദേശങ്ങളൊന്നുമില്ല", - "select_investigation": "അന്വേഷണങ്ങൾ തിരഞ്ഞെടുക്കുക (എല്ലാ അന്വേഷണങ്ങളും സ്ഥിരസ്ഥിതിയായി തിരഞ്ഞെടുക്കും)", - "select_investigations": "അന്വേഷണങ്ങൾ തിരഞ്ഞെടുക്കുക", - "get_tests": "ടെസ്റ്റുകൾ നേടുക", - "select_investigation_groups": "അന്വേഷണ സംഘങ്ങൾ തിരഞ്ഞെടുക്കുക", - "select_groups": "ഗ്രൂപ്പുകൾ തിരഞ്ഞെടുക്കുക", - "generate_report": "റിപ്പോർട്ട് സൃഷ്ടിക്കുക", - "prev_sessions": "മുൻ സെഷനുകൾ", - "next_sessions": "അടുത്ത സെഷനുകൾ", - "no_changes": "മാറ്റങ്ങളൊന്നുമില്ല", - "back_to_consultation": "കൺസൾട്ടേഷനിലേക്ക് മടങ്ങുക", - "no_treating_physicians_available": "ഈ സൗകര്യത്തിന് ഹോം ഫെസിലിറ്റി ഡോക്ടർമാരില്ല. ദയവായി നിങ്ങളുടെ അഡ്‌മിനെ ബന്ധപ്പെടുക.", - "encounter_suggestion_edit_disallowed": "എഡിറ്റ് കൺസൾട്ടേഷനിൽ ഈ ഓപ്ഷനിലേക്ക് മാറാൻ അനുവാദമില്ല", - "encounter_suggestion__A": "പ്രവേശനം", - "encounter_suggestion__DC": "ഡൊമിസിലിയറി കെയർ", - "encounter_suggestion__OP": "ഔട്ട് പേഷ്യൻ്റ് സന്ദർശനം", - "encounter_suggestion__DD": "കൂടിയാലോചന", - "encounter_suggestion__HI": "കൂടിയാലോചന", - "encounter_suggestion__R": "കൂടിയാലോചന", - "encounter_date_field_label__A": "സൗകര്യത്തിലേക്കുള്ള പ്രവേശന തീയതിയും സമയവും", - "encounter_date_field_label__DC": "ഡൊമിസിലിയറി കെയർ ആരംഭിച്ച തീയതിയും സമയവും", - "encounter_date_field_label__OP": "ഔട്ട്-പേഷ്യൻ്റ് സന്ദർശന തീയതിയും സമയവും", - "encounter_date_field_label__DD": "കൂടിയാലോചനയുടെ തീയതിയും സമയവും", - "encounter_date_field_label__HI": "കൂടിയാലോചനയുടെ തീയതിയും സമയവും", - "encounter_date_field_label__R": "കൂടിയാലോചനയുടെ തീയതിയും സമയവും", - "back_dated_encounter_date_caution": "ഇതിനായി നിങ്ങൾ ഒരു ഏറ്റുമുട്ടൽ സൃഷ്ടിക്കുകയാണ്", - "encounter_duration_confirmation": "ഈ ഏറ്റുമുട്ടലിൻ്റെ ദൈർഘ്യം ഇതായിരിക്കും", - "consultation_notes": "പൊതു നിർദ്ദേശങ്ങൾ (ഉപദേശം)", - "procedure_suggestions": "നടപടിക്രമ നിർദ്ദേശങ്ങൾ" -} diff --git a/src/Locale/ml/CoverImageEdit.json b/src/Locale/ml/CoverImageEdit.json deleted file mode 100644 index d945f055061..00000000000 --- a/src/Locale/ml/CoverImageEdit.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "edit_cover_photo": "മുഖചിത്രം എഡിറ്റ് ചെയ്യുക", - "no_cover_photo_uploaded_for_this_facility": "ഈ സൗകര്യത്തിനായി കവർ ഫോട്ടോ അപ്‌ലോഡ് ചെയ്‌തിട്ടില്ല", - "capture_cover_photo": "മുഖചിത്രം എടുക്കുക" -} diff --git a/src/Locale/ml/Diagnosis.json b/src/Locale/ml/Diagnosis.json deleted file mode 100644 index dedaaf7709b..00000000000 --- a/src/Locale/ml/Diagnosis.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "diagnosis": "രോഗനിർണയം", - "diagnoses": "രോഗനിർണയങ്ങൾ", - "diagnosis_already_added": "ഈ രോഗനിർണയം ഇതിനകം ചേർത്തിട്ടുണ്ട്", - "principal": "പ്രിൻസിപ്പൽ", - "principal_diagnosis": "പ്രധാന രോഗനിർണയം", - "unconfirmed": "സ്ഥിരീകരിച്ചിട്ടില്ല", - "provisional": "താൽക്കാലികം", - "differential": "ഡിഫറൻഷ്യൽ", - "confirmed": "സ്ഥിരീകരിച്ചു", - "refuted": "നിഷേധിച്ചു", - "entered-in-error": "തെറ്റായി നൽകി", - "help_unconfirmed": "ഇത് ഒരു സ്ഥിരീകരിച്ച അവസ്ഥയായി കണക്കാക്കാൻ മതിയായ ഡയഗ്നോസ്റ്റിക് കൂടാതെ/അല്ലെങ്കിൽ ക്ലിനിക്കൽ തെളിവുകൾ ഇല്ല.", - "help_provisional": "ഇതൊരു താൽക്കാലിക രോഗനിർണയമാണ് - ഇപ്പോഴും പരിഗണനയിലിരിക്കുന്ന ഒരു സ്ഥാനാർത്ഥി.", - "help_differential": "രോഗനിർണ്ണയ പ്രക്രിയയ്ക്കും പ്രാഥമിക ചികിത്സയ്ക്കും കൂടുതൽ മാർഗ്ഗനിർദ്ദേശം നൽകുന്നതിന് സാധ്യതയുള്ള (സാധാരണയായി പരസ്പരവിരുദ്ധമായ) രോഗനിർണയങ്ങളിൽ ഒന്ന്.", - "help_confirmed": "ഇത് ഒരു സ്ഥിരീകരിച്ച അവസ്ഥയായി കണക്കാക്കാൻ മതിയായ ഡയഗ്നോസ്റ്റിക് കൂടാതെ/അല്ലെങ്കിൽ ക്ലിനിക്കൽ തെളിവുകൾ ഉണ്ട്.", - "help_refuted": "തുടർന്നുള്ള ഡയഗ്നോസ്റ്റിക്, ക്ലിനിക്കൽ തെളിവുകൾ വഴി ഈ അവസ്ഥ ഒഴിവാക്കിയിട്ടുണ്ട്.", - "help_entered-in-error": "പ്രസ്‌താവന തെറ്റായി നൽകിയതിനാൽ സാധുതയില്ല.", - "search_icd11_placeholder": "ICD-11 രോഗനിർണയങ്ങൾക്കായി തിരയുക", - "icd11_as_recommended": "WHO ശുപാർശ ചെയ്യുന്ന ICD-11 പ്രകാരം" -} diff --git a/src/Locale/ml/Entities.json b/src/Locale/ml/Entities.json deleted file mode 100644 index 9a5d2a16b33..00000000000 --- a/src/Locale/ml/Entities.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "Facilities": "ഫെസിലിറ്റികള്‍", - "Patients": "രോഗികൾ", - "Sample Test": "സാമ്പിൾ ടെസ്റ്റ്", - "Shifting": "ഫെസിലിറ്റി മാറ്റല്‍ ", - "Resource": "സഹായം", - "External Results": "ബാഹ്യ ഫലങ്ങൾ", - "Users": "ഉപയോക്താക്കൾ", - "Profile": "പ്രൊഫൈൽ", - "Dashboard": "ഡാഷ്ബോർഡ്" -} diff --git a/src/Locale/ml/ErrorPages.json b/src/Locale/ml/ErrorPages.json deleted file mode 100644 index 2a860e3da0d..00000000000 --- a/src/Locale/ml/ErrorPages.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "return_to_care": "CARE എന്ന താളിലേക്ക് മടങ്ങുക", - "404_message": "നിലവിലില്ലാത്തതോ മറ്റൊരു URL-ലേക്ക് നീക്കിയതോ ആയ ഒരു പേജിൽ നിങ്ങൾ ഇടറിവീണതായി തോന്നുന്നു. നിങ്ങൾ ശരിയായ ലിങ്ക് നൽകിയിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക!", - "error_404": "പിശക് 404", - "page_not_found": "പേജ് കണ്ടെത്തിയില്ല", - "session_expired": "സെഷൻ കാലഹരണപ്പെട്ടു", - "invalid_password_reset_link": "അസാധുവായ പാസ്‌വേഡ് പുനഃസജ്ജീകരണ ലിങ്ക്", - "invalid_link_msg": "നിങ്ങൾ ഉപയോഗിച്ച പാസ്‌വേഡ് പുനഃസജ്ജീകരണ ലിങ്ക് അസാധുവാണ് അല്ലെങ്കിൽ കാലഹരണപ്പെട്ടതായി തോന്നുന്നു. ഒരു പുതിയ പാസ്‌വേഡ് പുനഃസജ്ജീകരണ ലിങ്ക് അഭ്യർത്ഥിക്കുക.", - "return_to_password_reset": "പാസ്‌വേഡ് പുനഃസജ്ജീകരണത്തിലേക്ക് മടങ്ങുക", - "return_to_login": "ലോഗിൻ എന്നതിലേക്ക് മടങ്ങുക", - "session_expired_msg": "നിങ്ങളുടെ സെഷൻ കാലഹരണപ്പെട്ടതായി തോന്നുന്നു. ഇത് നിഷ്ക്രിയത്വം മൂലമാകാം. തുടരാൻ വീണ്ടും ലോഗിൻ ചെയ്യുക.", - "invalid_reset": "അസാധുവായ റീസെറ്റ്" -} diff --git a/src/Locale/ml/ExternalResult.json b/src/Locale/ml/ExternalResult.json deleted file mode 100644 index e18f414d4e3..00000000000 --- a/src/Locale/ml/ExternalResult.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "please_upload_a_csv_file": "ദയവായി ഒരു CSV ഫയൽ അപ്‌ലോഡ് ചെയ്യുക", - "upload_external_results": "ബാഹ്യ ഫലങ്ങൾ അപ്‌ലോഡ് ചെയ്യുക", - "csv_file_in_the_specified_format": "നിർദ്ദിഷ്ട ഫോർമാറ്റിൽ ഒരു CSV ഫയൽ തിരഞ്ഞെടുക്കുക", - "sample_format": "സാമ്പിൾ ഫോർമാറ്റ്", - "search_for_facility": "സൗകര്യത്തിനായി തിരയുക", - "select_local_body": "തദ്ദേശ സ്ഥാപനം തിരഞ്ഞെടുക്കുക", - "select_wards": "വാർഡുകൾ തിരഞ്ഞെടുക്കുക", - "result_date": "ഫല തീയതി", - "sample_collection_date": "സാമ്പിൾ ശേഖരണ തീയതി", - "record_has_been_deleted_successfully": "റെക്കോർഡ് വിജയകരമായി ഇല്ലാതാക്കി.", - "error_while_deleting_record": "റെക്കോർഡ് ഇല്ലാതാക്കുന്നതിൽ പിശക്", - "result_details": "ഫലത്തിൻ്റെ വിശദാംശങ്ങൾ", - "confirm_delete": "ഇല്ലാതാക്കൽ സ്ഥിരീകരിക്കുക", - "are_you_sure_want_to_delete_this_record": "ഈ റെക്കോർഡ് ഇല്ലാതാക്കണമെന്ന് തീർച്ചയാണോ?", - "patient_category": "രോഗികളുടെ വിഭാഗം", - "source": "ഉറവിടം", - "result": "ഫലം", - "sample_type": "സാമ്പിൾ തരം", - "patient_status": "രോഗിയുടെ അവസ്ഥ", - "mobile_number": "മൊബൈൽ നമ്പർ", - "patient_created": "രോഗിയെ സൃഷ്ടിച്ചു", - "care_external_results_id": "ബാഹ്യ ഫലങ്ങളുടെ ഐഡി പരിപാലിക്കുക", - "update_record": "റെക്കോർഡ് അപ്ഡേറ്റ് ചെയ്യുക" -} diff --git a/src/Locale/ml/Facility.json b/src/Locale/ml/Facility.json deleted file mode 100644 index 5a73d4473e5..00000000000 --- a/src/Locale/ml/Facility.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "facility_search_placeholder": "ഫെസിലിറ്റി / ജില്ല പ്രകാരം തിരയുക", - "advanced_filters": "വിപുലമായ ഫിൽട്ടറുകൾ", - "facility_type": "സൗകര്യ തരം", - "facility_name": "സൗകര്യത്തിൻ്റെ പേര്", - "KASP Empanelled": "കെ. എ. എസ്. പി. എംപാനല്‍ ചെയ്യപ്പെട്ടത്", - "View Facility": "ഫെസിലിറ്റി കാണുക", - "no_duplicate_facility": "അനധികൃതമായി ഫെസിലിറ്റികള്‍ സൃഷ്ടിക്കരുത്", - "no_facilities": "ഫെസിലിറ്റികളൊന്നും കണ്ടെത്തുവാനായില്ല", - "no_staff": "ജീവനക്കാരെ കണ്ടെത്തിയില്ല", - "no_bed_types_found": "കിടക്ക തരങ്ങളൊന്നും കണ്ടെത്തിയില്ല", - "total_beds": "മൊത്തം കിടക്കകൾ", - "create_facility": "ഒരു പുതിയ ഫെസിലിറ്റി സൃഷ്ടിക്കുക", - "staff_list": "സ്റ്റാഫ് ലിസ്റ്റ്", - "bed_capacity": "കിടക്ക കപ്പാസിറ്റി", - "cylinders": "സിലിണ്ടറുകൾ", - "cylinders_per_day": "സിലിണ്ടറുകൾ / ദിവസം", - "liquid_oxygen_capacity": "ദ്രാവക ഓക്സിജൻ ശേഷി", - "expected_burn_rate": "പ്രതീക്ഷിക്കുന്ന പൊള്ളൽ നിരക്ക്", - "type_b_cylinders": "ബി തരം സിലിണ്ടറുകൾ", - "type_c_cylinders": "സി തരം സിലിണ്ടറുകൾ", - "type_d_cylinders": "ഡി തരം സിലിണ്ടറുകൾ", - "select_local_body": "തദ്ദേശ സ്ഥാപനം തിരഞ്ഞെടുക്കുക", - "update_asset": "അസറ്റ് അപ്ഡേറ്റ് ചെയ്യുക", - "create_new_asset": "പുതിയ അസറ്റ് സൃഷ്ടിക്കുക", - "you_need_at_least_a_location_to_create_an_assest": "ഒരു അസസ്‌റ്റ് സൃഷ്‌ടിക്കാൻ നിങ്ങൾക്ക് ഒരു ലൊക്കേഷനെങ്കിലും ആവശ്യമാണ്.", - "add_location": "ലൊക്കേഷൻ ചേർക്കുക", - "close_scanner": "സ്കാനർ അടയ്ക്കുക", - "scan_asset_qr": "അസറ്റ് ക്യുആർ സ്കാൻ ചെയ്യുക!", - "update": "അപ്ഡേറ്റ്", - "create": "സൃഷ്ടിക്കുക", - "asset_name": "അസറ്റ് പേര്", - "asset_location": "അസറ്റ് ലൊക്കേഷൻ", - "asset_type": "അസറ്റ് തരം", - "asset_class": "അസറ്റ് ക്ലാസ്", - "details_about_the_equipment": "ഉപകരണത്തെക്കുറിച്ചുള്ള വിശദാംശങ്ങൾ", - "working_status": "പ്രവർത്തന നില", - "why_the_asset_is_not_working": "എന്തുകൊണ്ടാണ് അസറ്റ് പ്രവർത്തിക്കാത്തത്?", - "describe_why_the_asset_is_not_working": "അസറ്റ് പ്രവർത്തിക്കാത്തത് എന്തുകൊണ്ടെന്ന് വിവരിക്കുക", - "asset_qr_id": "അസറ്റ് QR ഐഡി", - "manufacturer": "നിർമ്മാതാവ്", - "eg_xyz": "ഉദാ. XYZ", - "eg_abc": "ഉദാ. എബിസി", - "warranty_amc_expiry": "വാറൻ്റി / AMC കാലഹരണപ്പെടുന്നു", - "customer_support_name": "ഉപഭോക്തൃ പിന്തുണയുടെ പേര്", - "customer_support_number": "ഉപഭോക്തൃ പിന്തുണ നമ്പർ", - "customer_support_email": "ഉപഭോക്തൃ പിന്തുണ ഇമെയിൽ", - "eg_mail_example_com": "ഉദാ. mail@example.com", - "vendor_name": "വെണ്ടർ പേര്", - "serial_number": "സീരിയൽ നമ്പർ", - "last_serviced_on": "അവസാനം സർവീസ് ചെയ്തത്", - "notes": "കുറിപ്പുകൾ", - "create_asset": "അസറ്റ് സൃഷ്ടിക്കുക", - "create_add_more": "സൃഷ്‌ടിക്കുക, കൂടുതൽ ചേർക്കുക", - "discharged_patients": "ഡിസ്ചാർജ് ചെയ്ത രോഗികൾ", - "discharged_patients_empty": "ഡിസ്ചാർജ് ചെയ്ത രോഗികളൊന്നും ഈ സൗകര്യത്തിൽ ഇല്ല", - "update_facility_middleware_success": "ഫെസിലിറ്റി മിഡിൽവെയർ വിജയകരമായി അപ്ഡേറ്റ് ചെയ്തു", - "treatment_summary__head_title": "ചികിത്സയുടെ സംഗ്രഹം", - "treatment_summary__print": "ചികിത്സയുടെ സംഗ്രഹം അച്ചടിക്കുക", - "treatment_summary__heading": "ഇടക്കാല ചികിത്സ സംഗ്രഹം", - "patient_registration__name": "പേര്", - "patient_registration__address": "വിലാസം", - "patient_registration__age": "പ്രായം", - "patient_consultation__op": "ഒ.പി", - "patient_consultation__ip": "ഐ.പി", - "patient_consultation__dc_admission": "ഡൊമിസിലിയറി കെയർ ആരംഭിച്ച തീയതി", - "patient_consultation__admission": "പ്രവേശന തീയതി", - "patient_registration__gender": "ലിംഗഭേദം", - "patient_registration__contact": "അടിയന്തര കോൺടാക്റ്റ്", - "patient_registration__comorbidities": "കോമോർബിഡിറ്റികൾ", - "patient_registration__comorbidities__disease": "രോഗം", - "patient_registration__comorbidities__details": "വിശദാംശങ്ങൾ", - "patient_consultation__consultation_notes": "പൊതു നിർദ്ദേശങ്ങൾ", - "patient_consultation__special_instruction": "പ്രത്യേക നിർദ്ദേശങ്ങൾ", - "suggested_investigations": "നിർദ്ദേശിച്ച അന്വേഷണങ്ങൾ", - "investigations__date": "തീയതി", - "investigations__name": "പേര്", - "investigations__result": "ഫലം", - "investigations__ideal_value": "അനുയോജ്യമായ മൂല്യം", - "investigations__range": "മൂല്യ ശ്രേണി", - "investigations__unit": "യൂണിറ്റ്", - "patient_consultation__treatment__plan": "പ്ലാൻ ചെയ്യുക", - "patient_consultation__treatment__summary": "സംഗ്രഹം", - "patient_consultation__treatment__summary__date": "തീയതി", - "patient_consultation__treatment__summary__spo2": "SpO2", - "patient_consultation__treatment__summary__temperature": "താപനില", - "diagnosis": "രോഗനിർണയം", - "diagnosis__principal": "പ്രിൻസിപ്പൽ", - "diagnosis__confirmed": "സ്ഥിരീകരിച്ചു", - "diagnosis__provisional": "താൽക്കാലികം", - "diagnosis__unconfirmed": "സ്ഥിരീകരിച്ചിട്ടില്ല", - "diagnosis__differential": "ഡിഫറൻഷ്യൽ", - "active_prescriptions": "സജീവ കുറിപ്പടികൾ", - "prescriptions__medicine": "മരുന്ന്", - "prescriptions__route": "റൂട്ട്", - "prescriptions__dosage_frequency": "അളവും ആവൃത്തിയും", - "prescriptions__start_date": "നിർദ്ദേശിച്ചിരിക്കുന്നത്", - "select_facility_for_discharged_patients_warning": "ഡിസ്ചാർജ് ചെയ്ത രോഗികളെ കാണാനുള്ള സൗകര്യം തിരഞ്ഞെടുക്കേണ്ടതുണ്ട്.", - "duplicate_patient_record_confirmation": "ജനന വർഷം ചേർത്ത് രോഗിയുടെ രേഖ നിങ്ങളുടെ സൗകര്യത്തിലേക്ക് പ്രവേശിപ്പിക്കുക", - "duplicate_patient_record_rejection": "ഞാൻ സൃഷ്ടിക്കാൻ ആഗ്രഹിക്കുന്ന സംശയാസ്പദമായ / രോഗി ലിസ്റ്റിൽ ഇല്ലെന്ന് ഞാൻ സ്ഥിരീകരിക്കുന്നു.", - "duplicate_patient_record_birth_unknown": "രോഗിയുടെ ജനന വർഷത്തെക്കുറിച്ച് നിങ്ങൾക്ക് ഉറപ്പില്ലെങ്കിൽ നിങ്ങളുടെ ജില്ലാ പരിചരണ കോർഡിനേറ്റർ, ഷിഫ്റ്റിംഗ് സൗകര്യം അല്ലെങ്കിൽ രോഗിയെ ബന്ധപ്പെടുക.", - "patient_transfer_birth_match_note": "ശ്രദ്ധിക്കുക: ട്രാൻസ്ഫർ അഭ്യർത്ഥന പ്രോസസ്സ് ചെയ്യുന്നതിന് ജനന വർഷം രോഗിയുമായി പൊരുത്തപ്പെടണം.", - "cover_image_updated_note": "പുതുക്കിയ മുഖചിത്രം കാണാൻ കുറച്ച് സമയമെടുത്തേക്കാം", - "available_features": "ലഭ്യമായ സവിശേഷതകൾ", - "update_facility": "അപ്ഡേറ്റ് സൗകര്യം", - "configure_facility": "സൗകര്യം ക്രമീകരിക്കുക", - "inventory_management": "ഇൻവെൻ്ററി മാനേജ്മെൻ്റ്", - "location_management": "ലൊക്കേഷൻ മാനേജ്മെൻ്റ്", - "resource_request": "റിസോഴ്സ് അഭ്യർത്ഥന", - "view_asset": "അസറ്റുകൾ കാണുക", - "view_users": "ഉപയോക്താക്കളെ കാണുക", - "view_abdm_records": "ABDM റെക്കോർഡുകൾ കാണുക", - "delete_facility": "സൗകര്യം ഇല്ലാതാക്കുക", - "central_nursing_station": "സെൻട്രൽ നഴ്‌സിംഗ് സ്റ്റേഷൻ", - "add_details_of_patient": "രോഗിയുടെ വിശദാംശങ്ങൾ ചേർക്കുക", - "choose_location": "ലൊക്കേഷൻ തിരഞ്ഞെടുക്കുക", - "live_monitoring": "തത്സമയ നിരീക്ഷണം", - "open_live_monitoring": "ലൈവ് മോണിറ്ററിംഗ് തുറക്കുക" -} diff --git a/src/Locale/ml/FileUpload.json b/src/Locale/ml/FileUpload.json deleted file mode 100644 index 58c5c083d3b..00000000000 --- a/src/Locale/ml/FileUpload.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "audio__allow_permission": "സൈറ്റ് ക്രമീകരണങ്ങളിൽ ദയവായി മൈക്രോഫോൺ അനുമതി അനുവദിക്കുക", - "audio__allow_permission_helper": "നിങ്ങൾ മുമ്പ് മൈക്രോഫോൺ ആക്‌സസ് നിരസിച്ചിരിക്കാം.", - "audio__allow_permission_button": "എങ്ങനെ അനുവദിക്കണമെന്ന് അറിയാൻ ഇവിടെ ക്ലിക്ക് ചെയ്യുക", - "audio__record": "റെക്കോർഡ് ഓഡിയോ", - "audio__record_helper": "റെക്കോർഡിംഗ് ആരംഭിക്കാൻ ബട്ടൺ ക്ലിക്ക് ചെയ്യുക", - "audio__recording": "റെക്കോർഡിംഗ്", - "audio__recording_helper": "ദയവായി നിങ്ങളുടെ മൈക്രോഫോണിൽ സംസാരിക്കുക.", - "audio__recording_helper_2": "റെക്കോർഡിംഗ് നിർത്താൻ ബട്ടണിൽ ക്ലിക്ക് ചെയ്യുക.", - "audio__recorded": "ഓഡിയോ റെക്കോർഡ് ചെയ്തു", - "audio__start_again": "വീണ്ടും ആരംഭിക്കുക", - "enter_file_name": "ഫയലിൻ്റെ പേര് നൽകുക", - "no_files_found": "{{type}} ഫയലുകളൊന്നും കണ്ടെത്തിയില്ല", - "upload_headings__patient": "പുതിയ രോഗി ഫയൽ അപ്‌ലോഡ് ചെയ്യുക", - "upload_headings__consultation": "പുതിയ കൺസൾട്ടേഷൻ ഫയൽ അപ്‌ലോഡ് ചെയ്യുക", - "upload_headings__sample_report": "സാമ്പിൾ റിപ്പോർട്ട് അപ്‌ലോഡ് ചെയ്യുക", - "upload_headings__supporting_info": "സഹായ വിവരങ്ങൾ അപ്‌ലോഡ് ചെയ്യുക", - "file_list_headings__patient": "രോഗിയുടെ ഫയലുകൾ", - "file_list_headings__consultation": "കൺസൾട്ടേഷൻ ഫയലുകൾ", - "file_list_headings__sample_report": "സാമ്പിൾ റിപ്പോർട്ട്", - "file_list_headings__supporting_info": "സഹായ വിവരം", - "file_error__choose_file": "അപ്‌ലോഡ് ചെയ്യാൻ ഒരു ഫയൽ തിരഞ്ഞെടുക്കുക", - "file_error__file_name": "ഫയലിൻ്റെ പേര് നൽകുക", - "file_error__file_size": "ഫയലുകളുടെ പരമാവധി വലുപ്പം 100 MB ആണ്", - "file_error__file_type": "അസാധുവായ ഫയൽ തരം \".{{extension}}\" അനുവദനീയമായ തരങ്ങൾ: {{allowedExtensions}}", - "file_uploaded": "ഫയൽ അപ്‌ലോഡ് ചെയ്‌തു", - "file_error__dynamic": "ഫയൽ അപ്‌ലോഡ് ചെയ്യുന്നതിൽ പിശക്: {{statusText}}", - "file_error__network": "ഫയൽ അപ്‌ലോഡ് ചെയ്യുന്നതിൽ പിശക്: നെറ്റ്‌വർക്ക് പിശക്" -} diff --git a/src/Locale/ml/Hub.json b/src/Locale/ml/Hub.json deleted file mode 100644 index 58b6882a177..00000000000 --- a/src/Locale/ml/Hub.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "monitor": "മോണിറ്റർ", - "show_default_presets": "ഡിഫോൾട്ട് പ്രീസെറ്റുകൾ കാണിക്കുക", - "show_patient_presets": "രോഗിയുടെ പ്രീസെറ്റുകൾ കാണിക്കുക", - "moving_camera": "ചലിക്കുന്ന ക്യാമറ", - "full_screen": "പൂർണ്ണ സ്ക്രീൻ", - "feed_is_currently_not_live": "ഫീഡ് നിലവിൽ തത്സമയമല്ല", - "zoom_out": "സൂം ഔട്ട്", - "zoom_in": "സൂം ഇൻ ചെയ്യുക", - "right": "ശരിയാണ്", - "left": "ഇടത്", - "down": "താഴേക്ക്", - "up": "മുകളിലേക്ക്" -} diff --git a/src/Locale/ml/LogUpdate.json b/src/Locale/ml/LogUpdate.json deleted file mode 100644 index f327199d509..00000000000 --- a/src/Locale/ml/LogUpdate.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "RESPIRATORY_SUPPORT_SHORT__UNKNOWN": "ഒന്നുമില്ല", - "RESPIRATORY_SUPPORT_SHORT__OXYGEN_SUPPORT": "O2 പിന്തുണ", - "RESPIRATORY_SUPPORT_SHORT__NON_INVASIVE": "എൻ.ഐ.വി", - "RESPIRATORY_SUPPORT_SHORT__INVASIVE": "IV", - "RESPIRATORY_SUPPORT__UNKNOWN": "ഒന്നുമില്ല", - "RESPIRATORY_SUPPORT__OXYGEN_SUPPORT": "ഓക്സിജൻ പിന്തുണ", - "RESPIRATORY_SUPPORT__NON_INVASIVE": "നോൺ-ഇൻവേസീവ് വെൻ്റിലേറ്റർ (NIV)", - "RESPIRATORY_SUPPORT__INVASIVE": "ആക്രമണാത്മക വെൻ്റിലേറ്റർ (IV)", - "VENTILATOR_MODE__CMV": "കൺട്രോൾ മെക്കാനിക്കൽ വെൻ്റിലേഷൻ (CMV)", - "VENTILATOR_MODE__VCV": "വോളിയം കൺട്രോൾ വെൻ്റിലേഷൻ (VCV)", - "VENTILATOR_MODE__PCV": "പ്രഷർ കൺട്രോൾ വെൻ്റിലേഷൻ (PCV)", - "VENTILATOR_MODE__SIMV": "സിൻക്രൊണൈസ്ഡ് ഇൻ്റർമിറ്റൻറ് നിർബന്ധിത വെൻ്റിലേഷൻ (SIMV)", - "VENTILATOR_MODE__VC_SIMV": "വോളിയം നിയന്ത്രിത SIMV (VC-SIMV)", - "VENTILATOR_MODE__PC_SIMV": "പ്രഷർ കൺട്രോൾഡ് SIMV (PC-SIMV)", - "VENTILATOR_MODE__PSV": "C-PAP / പ്രഷർ സപ്പോർട്ട് വെൻ്റിലേഷൻ (PSV)", - "CONSCIOUSNESS_LEVEL__UNRESPONSIVE": "പ്രതികരിക്കുന്നില്ല", - "CONSCIOUSNESS_LEVEL__RESPONDS_TO_PAIN": "വേദനയോട് പ്രതികരിക്കുന്നു", - "CONSCIOUSNESS_LEVEL__RESPONDS_TO_VOICE": "ശബ്ദത്തോട് പ്രതികരിക്കുന്നു", - "CONSCIOUSNESS_LEVEL__ALERT": "മുന്നറിയിപ്പ്", - "CONSCIOUSNESS_LEVEL__AGITATED_OR_CONFUSED": "അസ്വസ്ഥതയോ ആശയക്കുഴപ്പത്തിലോ", - "CONSCIOUSNESS_LEVEL__ONSET_OF_AGITATION_AND_CONFUSION": "പ്രക്ഷോഭത്തിൻ്റെയും ആശയക്കുഴപ്പത്തിൻ്റെയും തുടക്കം", - "PUPIL_REACTION__UNKNOWN": "അജ്ഞാതം", - "PUPIL_REACTION__BRISK": "ചടുലമായ", - "PUPIL_REACTION__SLUGGISH": "ആലസ്യം", - "PUPIL_REACTION__FIXED": "പരിഹരിച്ചു", - "PUPIL_REACTION__CANNOT_BE_ASSESSED": "വിലയിരുത്താൻ കഴിയില്ല", - "LIMB_RESPONSE__UNKNOWN": "അജ്ഞാതം", - "LIMB_RESPONSE__STRONG": "ശക്തമായ", - "LIMB_RESPONSE__MODERATE": "മിതത്വം", - "LIMB_RESPONSE__WEAK": "ദുർബലമായ", - "LIMB_RESPONSE__FLEXION": "ഫ്ലെക്സിഷൻ", - "LIMB_RESPONSE__EXTENSION": "വിപുലീകരണം", - "LIMB_RESPONSE__NONE": "ഒന്നുമില്ല", - "OXYGEN_MODALITY__NASAL_PRONGS": "നാസൽ പ്രോംഗ്സ്", - "OXYGEN_MODALITY__SIMPLE_FACE_MASK": "ലളിതമായ മുഖംമൂടി", - "OXYGEN_MODALITY__NON_REBREATHING_MASK": "നോൺ റീബ്രീത്തിംഗ് മാസ്ക്", - "OXYGEN_MODALITY__HIGH_FLOW_NASAL_CANNULA": "ഉയർന്ന ഒഴുക്ക് നാസൽ കാനുല", - "INSULIN_INTAKE_FREQUENCY__UNKNOWN": "അജ്ഞാതം", - "INSULIN_INTAKE_FREQUENCY__OD": "ദിവസത്തിൽ ഒരിക്കൽ (OD)", - "INSULIN_INTAKE_FREQUENCY__BD": "ദിവസത്തിൽ രണ്ടുതവണ (BD)", - "INSULIN_INTAKE_FREQUENCY__TD": "ദിവസത്തിൽ മൂന്ന് തവണ (ടിഡി)", - "NURSING_CARE_PROCEDURE__personal_hygiene": "വ്യക്തിഗത ശുചിത്വം", - "NURSING_CARE_PROCEDURE__positioning": "സ്ഥാനനിർണ്ണയം", - "NURSING_CARE_PROCEDURE__suctioning": "സക്ഷനിംഗ്", - "NURSING_CARE_PROCEDURE__ryles_tube_care": "റൈൽസ് ട്യൂബ് കെയർ", - "NURSING_CARE_PROCEDURE__iv_sitecare": "IV സൈറ്റ് കെയർ", - "NURSING_CARE_PROCEDURE__nubulisation": "നുബുലൈസേഷൻ", - "NURSING_CARE_PROCEDURE__dressing": "വസ്ത്രധാരണം", - "NURSING_CARE_PROCEDURE__dvt_pump_stocking": "ഡിവിടി പമ്പ് സ്റ്റോക്കിംഗ്", - "NURSING_CARE_PROCEDURE__restrain": "നിയന്ത്രിക്കുക", - "NURSING_CARE_PROCEDURE__chest_tube_care": "ചെസ്റ്റ് ട്യൂബ് കെയർ", - "NURSING_CARE_PROCEDURE__tracheostomy_care": "ട്രാക്കിയോസ്റ്റമി കെയർ", - "NURSING_CARE_PROCEDURE__stoma_care": "സ്റ്റോമ കെയർ", - "NURSING_CARE_PROCEDURE__catheter_care": "കത്തീറ്റർ കെയർ", - "HEARTBEAT_RHYTHM__REGULAR": "പതിവ്", - "HEARTBEAT_RHYTHM__IRREGULAR": "ക്രമരഹിതം", - "HEARTBEAT_RHYTHM__UNKNOWN": "അജ്ഞാതം", - "map_acronym": "മാപ്പ്", - "systolic": "സിസ്റ്റോളിക്", - "diastolic": "ഡയസ്റ്റോളിക്", - "pain": "വേദന", - "pain_chart_description": "വേദനയുടെ പ്രദേശവും തീവ്രതയും അടയാളപ്പെടുത്തുക", - "bradycardia": "ബ്രാഡികാർഡിയ", - "tachycardia": "ടാക്കിക്കാർഡിയ" -} \ No newline at end of file diff --git a/src/Locale/ml/Medicine.json b/src/Locale/ml/Medicine.json deleted file mode 100644 index 896289d15a5..00000000000 --- a/src/Locale/ml/Medicine.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "medicine": "മരുന്ന്", - "route": "റൂട്ട്", - "dosage": "അളവ്", - "base_dosage": "അളവ്", - "start_dosage": "ഡോസ് ആരംഭിക്കുക", - "target_dosage": "ടാർഗെറ്റ് ഡോസ്", - "instruction_on_titration": "ടൈറ്ററേഷനെക്കുറിച്ചുള്ള നിർദ്ദേശം", - "titrate_dosage": "ടൈട്രേറ്റ് ഡോസ്", - "indicator": "സൂചകം", - "inidcator_event": "ഇൻഡിക്കേറ്റർ ഇവൻ്റ്", - "max_dosage_24_hrs": "പരമാവധി. 24 മണിക്കൂറിനുള്ളിൽ ഡോസ്.", - "min_time_bw_doses": "മിനി. സമയം b/w ഡോസുകൾ", - "manage_prescriptions": "കുറിപ്പടികൾ കൈകാര്യം ചെയ്യുക", - "prescription_details": "കുറിപ്പടി വിശദാംശങ്ങൾ", - "prescription_medications": "കുറിപ്പടി മരുന്നുകൾ", - "prn_prescriptions": "PRN കുറിപ്പടികൾ", - "prescription": "കുറിപ്പടി", - "discharge_prescription": "ഡിസ്ചാർജ് കുറിപ്പടി", - "edit_prescriptions": "കുറിപ്പടികൾ എഡിറ്റ് ചെയ്യുക", - "prescription_medication": "കുറിപ്പടി മരുന്ന്", - "add_prescription_medication": "കുറിപ്പടി മരുന്ന് ചേർക്കുക", - "prn_prescription": "PRN കുറിപ്പടി", - "add_prn_prescription": "PRN കുറിപ്പടി ചേർക്കുക", - "add_prescription_to_consultation_note": "ഈ കൺസൾട്ടേഷനിലേക്ക് ഒരു പുതിയ കുറിപ്പടി ചേർക്കുക.", - "medicine_administration_history": "മെഡിസിൻ അഡ്മിനിസ്ട്രേഷൻ ചരിത്രം", - "return_to_patient_dashboard": "പേഷ്യൻ്റ് ഡാഷ്‌ബോർഡിലേക്ക് മടങ്ങുക", - "administered_on": "മേൽ നടത്തി", - "administer": "ഭരണം നടത്തുക", - "administer_medicine": "മെഡിസിൻ നടത്തുക", - "administer_medicines": "മരുന്നുകൾ നൽകുക", - "administer_selected_medicines": "തിരഞ്ഞെടുത്ത മരുന്നുകൾ നൽകുക", - "select_for_administration": "അഡ്മിനിസ്ട്രേഷനായി തിരഞ്ഞെടുക്കുക", - "medicines_administered": "മരുന്ന്(കൾ) നൽകി", - "medicines_administered_error": "മരുന്ന്(കൾ) നൽകുന്നതിൽ പിശക്", - "prescription_discontinued": "കുറിപ്പടി നിർത്തലാക്കി", - "administration_notes": "അഡ്മിനിസ്ട്രേഷൻ കുറിപ്പുകൾ", - "last_administered": "അവസാനം ഭരിച്ചത്", - "prescription_logs": "കുറിപ്പടി രേഖകൾ", - "modification_caution_note": "ഒരിക്കൽ ചേർത്തുകഴിഞ്ഞാൽ മാറ്റങ്ങളൊന്നും സാധ്യമല്ല", - "discontinue_caution_note": "ഈ കുറിപ്പടി നിർത്തണമെന്ന് തീർച്ചയാണോ?", - "confirm_discontinue": "നിർത്തലാക്കൽ സ്ഥിരീകരിക്കുക", - "edit_caution_note": "കൺസൾട്ടേഷനിൽ എഡിറ്റ് ചെയ്ത വിശദാംശങ്ങളോടൊപ്പം ഒരു പുതിയ കുറിപ്പടി ചേർക്കുകയും നിലവിലുള്ള കുറിപ്പടി നിർത്തലാക്കുകയും ചെയ്യും.", - "reason_for_discontinuation": "നിർത്തലാക്കാനുള്ള കാരണം", - "reason_for_edit": "തിരുത്താനുള്ള കാരണം", - "PRESCRIPTION_ROUTE_ORAL": "വാമൊഴി", - "PRESCRIPTION_ROUTE_IV": "IV", - "PRESCRIPTION_ROUTE_IM": "ഐ.എം", - "PRESCRIPTION_ROUTE_SC": "എസ്/സി", - "PRESCRIPTION_ROUTE_INHALATION": "ഇൻഹാലേഷൻ", - "PRESCRIPTION_ROUTE_NASOGASTRIC": "നാസോഗാസ്ട്രിക് / ഗ്യാസ്ട്രോസ്റ്റമി ട്യൂബ്", - "PRESCRIPTION_ROUTE_INTRATHECAL": "ഇൻട്രാതെക്കൽ കുത്തിവയ്പ്പ്", - "PRESCRIPTION_ROUTE_TRANSDERMAL": "ട്രാൻസ്ഡെർമൽ", - "PRESCRIPTION_ROUTE_RECTAL": "മലദ്വാരം", - "PRESCRIPTION_ROUTE_SUBLINGUAL": "ഉപഭാഷാപരമായ", - "PRESCRIPTION_FREQUENCY_STAT": "ഉടനെ", - "PRESCRIPTION_FREQUENCY_OD": "ദിവസത്തിൽ ഒരിക്കൽ", - "PRESCRIPTION_FREQUENCY_HS": "രാത്രി മാത്രം", - "PRESCRIPTION_FREQUENCY_BD": "ദിവസേന രണ്ടുതവണ", - "PRESCRIPTION_FREQUENCY_TID": "എട്ടാം മണിക്കൂർ", - "PRESCRIPTION_FREQUENCY_QID": "ആറാം മണിക്കൂർ", - "PRESCRIPTION_FREQUENCY_Q4H": "നാലാമത്തെ മണിക്കൂർ", - "PRESCRIPTION_FREQUENCY_QOD": "ഇതര ദിവസം", - "PRESCRIPTION_FREQUENCY_QWK": "ആഴ്ചയിൽ ഒരിക്കൽ", - "inconsistent_dosage_units_error": "ഡോസേജ് യൂണിറ്റുകൾ ഒന്നായിരിക്കണം", - "max_dosage_in_24hrs_gte_base_dosage_error": "പരമാവധി. 24 മണിക്കൂറിനുള്ളിലെ ഡോസ് അടിസ്ഥാന ഡോസേജിനേക്കാൾ കൂടുതലോ തുല്യമോ ആയിരിക്കണം", - "administration_dosage_range_error": "ഡോസ് ആരംഭത്തിനും ടാർഗെറ്റ് ഡോസേജിനും ഇടയിലായിരിക്കണം" -} \ No newline at end of file diff --git a/src/Locale/ml/Notifications.json b/src/Locale/ml/Notifications.json deleted file mode 100644 index bc96457ecf3..00000000000 --- a/src/Locale/ml/Notifications.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "no_notices_for_you": "നിങ്ങൾക്കായി അറിയിപ്പുകളൊന്നുമില്ല.", - "mark_as_read": "വായിച്ചതായി അടയാളപ്പെടുത്തുക", - "mark_as_unread": "വായിക്കാത്തതായി അടയാളപ്പെടുത്തുക", - "subscribe": "സബ്സ്ക്രൈബ് ചെയ്യുക", - "subscribe_on_this_device": "ഈ ഉപകരണത്തിൽ സബ്സ്ക്രൈബ് ചെയ്യുക", - "show_unread_notifications": "വായിക്കാത്തത് കാണിക്കുക", - "show_all_notifications": "എല്ലാം കാണിക്കുക", - "filter_by_category": "വിഭാഗം അനുസരിച്ച് ഫിൽട്ടർ ചെയ്യുക", - "mark_all_as_read": "എല്ലാം വായിച്ചതായി അടയാളപ്പെടുത്തുക", - "reload": "വീണ്ടും ലോഡുചെയ്യുക", - "Notifications": "അറിയിപ്പുകൾ", - "no_results_found": "ഫലങ്ങളൊന്നും കണ്ടെത്തിയില്ല", - "load_more": "കൂടുതൽ ലോഡ് ചെയ്യുക", - "subscription_error": "സബ്സ്ക്രിപ്ഷൻ പിശക്", - "unsubscribe_failed": "അൺസബ്‌സ്‌ക്രൈബ് ചെയ്യാനായില്ല.", - "unsubscribe": "അൺസബ്സ്ക്രൈബ് ചെയ്യുക", - "escape": "രക്ഷപ്പെടുക", - "loading": "ലോഡ് ചെയ്യുന്നു...", - "invalid_asset_id_msg": "ശ്ശോ! നിങ്ങൾ നൽകിയ അസറ്റ് ഐഡി സാധുതയുള്ളതായി കാണുന്നില്ല.", - "asset_not_found_msg": "ശ്ശോ! നിങ്ങൾ അന്വേഷിക്കുന്ന അസറ്റ് നിലവിലില്ല. അസറ്റ് ഐഡി പരിശോധിക്കുക." -} diff --git a/src/Locale/ml/Resource.json b/src/Locale/ml/Resource.json deleted file mode 100644 index b1a82f52458..00000000000 --- a/src/Locale/ml/Resource.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "create_resource_request": "റിസോഴ്സ് അഭ്യർത്ഥന സൃഷ്ടിക്കുക", - "contact_person": "ഫെസിലിറ്റിയിൽ ബന്ധപ്പെടുന്ന വ്യക്തിയുടെ പേര്", - "approving_facility": "അംഗീകാരം നൽകുന്ന സൗകര്യത്തിൻ്റെ പേര്", - "contact_phone": "ബന്ധപ്പെടാനുള്ള വ്യക്തി നമ്പർ", - "request_title": "പേര് അഭ്യർത്ഥിക്കുക", - "request_title_placeholder": "നിങ്ങളുടെ തലക്കെട്ട് ഇവിടെ ടൈപ്പ് ചെയ്യുക", - "required_quantity": "ആവശ്യമായ അളവ്", - "request_description": "അഭ്യർത്ഥനയുടെ വിവരണം", - "request_description_placeholder": "നിങ്ങളുടെ വിവരണം ഇവിടെ ടൈപ്പ് ചെയ്യുക", - "search_resource": "തിരയൽ റിസോഴ്സ്" -} diff --git a/src/Locale/ml/Shifting.json b/src/Locale/ml/Shifting.json deleted file mode 100644 index 47e8aedc937..00000000000 --- a/src/Locale/ml/Shifting.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "emergency": "അടിയന്തരാവസ്ഥ", - "up_shift": "മുകളിലേക്ക് ഷിഫ്റ്റ്", - "antenatal": "ജനനത്തിനുമുമ്പ്", - "phone_no": "ഫോൺ നമ്പർ.", - "patient_name": "രോഗിയുടെ പേര്", - "disease_status": "രോഗാവസ്ഥ", - "breathlessness_level": "ശ്വാസതടസ്സം നില", - "assigned_facility": "സൗകര്യം ഏൽപ്പിച്ചു", - "origin_facility": "നിലവിലെ സൗകര്യം", - "shifting_approval_facility": "ഷിഫ്റ്റിംഗ് അംഗീകാര സൗകര്യം", - "shifting": "ഷിഫ്റ്റിംഗ്", - "search_patient": "രോഗിയെ തിരയുക", - "list_view": "ലിസ്റ്റ് കാഴ്ച", - "comment_min_length": "കമൻ്റിൽ കുറഞ്ഞത് 1 പ്രതീകമെങ്കിലും ഉണ്ടായിരിക്കണം", - "comment_added_successfully": "അഭിപ്രായം വിജയകരമായി ചേർത്തു", - "post_your_comment": "നിങ്ങളുടെ അഭിപ്രായം പോസ്റ്റ് ചെയ്യുക", - "shifting_approving_facility": "അംഗീകാരം നൽകുന്ന സൗകര്യം മാറ്റുന്നു", - "is_emergency_case": "അടിയന്തര സാഹചര്യമാണ്", - "is_upshift_case": "കേസ് മാറ്റി", - "is_antenatal": "ജനനത്തിനു മുമ്പുള്ളതാണ്", - "patient_phone_number": "രോഗിയുടെ ഫോൺ നമ്പർ", - "created_date": "സൃഷ്ടിച്ച തീയതി", - "modified_date": "പരിഷ്കരിച്ച തീയതി", - "no_patients_to_show": "കാണിക്കാൻ രോഗികളില്ല.", - "shifting_status": "ഷിഫ്റ്റിംഗ് സ്റ്റാറ്റസ്", - "transfer_to_receiving_facility": "സ്വീകരിക്കാനുള്ള സൗകര്യത്തിലേക്ക് ട്രാൻസ്ഫർ ചെയ്യുക", - "confirm_transfer_complete": "കൈമാറ്റം പൂർത്തിയായെന്ന് സ്ഥിരീകരിക്കുക!", - "mark_transfer_complete_confirmation": "ഈ കൈമാറ്റം പൂർത്തിയായതായി അടയാളപ്പെടുത്തണമെന്ന് തീർച്ചയാണോ? ഒറിജിൻ സൗകര്യത്തിന് ഈ രോഗിക്ക് ഇനി ആക്‌സസ് ഉണ്ടായിരിക്കില്ല", - "board_view": "ബോർഡ് കാഴ്ച", - "shifting_deleted": "ഷിഫ്റ്റിംഗ് റെക്കോർഡ് വിജയകരമായി ഇല്ലാതാക്കി.", - "details_of_shifting_approving_facility": "അംഗീകാരം നൽകുന്ന സൗകര്യം മാറ്റുന്നതിൻ്റെ വിശദാംശങ്ങൾ", - "details_of_assigned_facility": "നിയുക്ത സൗകര്യത്തിൻ്റെ വിശദാംശങ്ങൾ", - "details_of_origin_facility": "ഉറവിട സൗകര്യത്തിൻ്റെ വിശദാംശങ്ങൾ", - "details_of_patient": "രോഗിയുടെ വിശദാംശങ്ങൾ", - "record_delete_confirm": "ഈ റെക്കോർഡ് ഇല്ലാതാക്കണമെന്ന് തീർച്ചയാണോ?", - "phone_number_at_current_facility": "നിലവിലെ സൗകര്യത്തിൽ ബന്ധപ്പെടുന്ന വ്യക്തിയുടെ ഫോൺ നമ്പർ", - "authorize_shift_delete": "ഷിഫ്റ്റ് ഇല്ലാതാക്കൽ അംഗീകരിക്കുക", - "delete_record": "റെക്കോർഡ് ഇല്ലാതാക്കുക", - "severity_of_breathlessness": "ശ്വാസതടസ്സത്തിൻ്റെ തീവ്രത", - "facility_preference": "സൗകര്യ മുൻഗണന", - "vehicle_preference": "വാഹന മുൻഗണന", - "is_up_shift": "ഷിഫ്റ്റ് ആയി", - "patient_category": "രോഗികളുടെ വിഭാഗം", - "ambulance_driver_name": "ആംബുലൻസ് ഡ്രൈവറുടെ പേര്", - "ambulance_phone_number": "ആംബുലൻസിൻ്റെ ഫോൺ നമ്പർ", - "ambulance_number": "ആംബുലൻസ് നം", - "is_emergency": "അടിയന്തരാവസ്ഥയാണ്", - "contact_person_at_the_facility": "നിലവിലെ സൗകര്യത്തിലുള്ള വ്യക്തിയുമായി ബന്ധപ്പെടുക", - "update_status_details": "സ്റ്റാറ്റസ്/വിശദാംശങ്ങൾ അപ്ഡേറ്റ് ചെയ്യുക", - "shifting_details": "വിശദാംശങ്ങൾ മാറ്റുന്നു", - "auto_generated_for_care": "പരിചരണത്തിനായി സ്വയമേവ സൃഷ്ടിച്ചത്", - "approved_by_district_covid_control_room": "ജില്ലാ കോവിഡ് കൺട്രോൾ റൂം അംഗീകരിച്ചു", - "treatment_summary": "ചികിത്സയുടെ സംഗ്രഹം", - "reason_for_referral": "റഫറൽ ചെയ്യാനുള്ള കാരണം", - "referred_to": "പരാമർശിച്ചത്", - "covid_19_cat_gov": "സർക്കാർ പ്രകാരം കോവിഡ്_19 ക്ലിനിക്കൽ വിഭാഗം. കേരള മാർഗരേഖ (എ/ബി/സി)", - "district_program_management_supporting_unit": "ജില്ലാ പ്രോഗ്രാം മാനേജ്മെൻ്റ് സപ്പോർട്ടിംഗ് യൂണിറ്റ്", - "name_of_hospital": "ആശുപത്രിയുടെ പേര്", - "passport_number": "പാസ്പോർട്ട് നമ്പർ", - "test_type": "ടെസ്റ്റ് തരം", - "medical_worker": "മെഡിക്കൽ വർക്കർ", - "error_deleting_shifting": "ഷിഫ്റ്റിംഗ് റെക്കോർഡ് ഇല്ലാതാക്കുന്നതിൽ പിശക്", - "type_any_extra_comments_here": "എന്തെങ്കിലും അധിക അഭിപ്രായങ്ങൾ ഇവിടെ ടൈപ്പ് ചെയ്യുക", - "type_your_reason_here": "നിങ്ങളുടെ കാരണം ഇവിടെ ടൈപ്പ് ചെയ്യുക", - "reason_for_shift": "ഷിഫ്റ്റിനുള്ള കാരണം", - "preferred_facility_type": "ഇഷ്ടപ്പെട്ട സൗകര്യ തരം", - "preferred_vehicle": "ഇഷ്ടപ്പെട്ട വാഹനം", - "is_it_upshift": "അത് ഉയർച്ചയാണോ?", - "is_this_an_upshift": "ഇതൊരു ഉയർച്ചയാണോ?", - "is_this_an_emergency": "ഇതൊരു അടിയന്തരാവസ്ഥയാണോ?", - "what_facility_assign_the_patient_to": "ഏത് സൗകര്യമാണ് രോഗിയെ ഏൽപ്പിക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നത്", - "name_of_shifting_approving_facility": "ഷിഫ്റ്റിംഗ് അപ്രൂവിംഗ് സൗകര്യത്തിൻ്റെ പേര്", - "update_shift_request": "ഷിഫ്റ്റ് അഭ്യർത്ഥന അപ്ഡേറ്റ് ചെയ്യുക", - "shift_request_updated_successfully": "ഷിഫ്റ്റ് അഭ്യർത്ഥന വിജയകരമായി അപ്ഡേറ്റ് ചെയ്തു", - "please_enter_a_reason_for_the_shift": "ഷിഫ്റ്റിനുള്ള കാരണം നൽകുക.", - "please_select_preferred_vehicle_type": "ദയവായി തിരഞ്ഞെടുത്ത വാഹന തരം തിരഞ്ഞെടുക്കുക", - "please_select_facility_type": "ദയവായി സൗകര്യത്തിൻ്റെ തരം തിരഞ്ഞെടുക്കുക", - "please_select_breathlessness_level": "ശ്വാസതടസ്സം നില തിരഞ്ഞെടുക്കുക", - "please_select_a_facility": "ദയവായി ഒരു സൗകര്യം തിരഞ്ഞെടുക്കുക", - "please_select_status": "ദയവായി സ്റ്റാറ്റസ് തിരഞ്ഞെടുക്കുക", - "please_select_patient_category": "ദയവായി രോഗി വിഭാഗം തിരഞ്ഞെടുക്കുക", - "shifting_approving_facility_can_not_be_empty": "ഷിഫ്റ്റിംഗ് അപ്രൂവിംഗ് സൗകര്യം ശൂന്യമായിരിക്കരുത്.", - "redirected_to_create_consultation": "ശ്രദ്ധിക്കുക: കൺസൾട്ടേഷൻ ഫോം സൃഷ്‌ടിക്കാൻ നിങ്ങളെ റീഡയറക്‌ടുചെയ്യും. കൈമാറ്റ പ്രക്രിയ പൂർത്തിയാക്കാൻ ദയവായി ഫോം പൂരിപ്പിക്കുക", - "mark_this_transfer_as_complete_question": "ഈ കൈമാറ്റം പൂർത്തിയായതായി അടയാളപ്പെടുത്തണമെന്ന് തീർച്ചയാണോ? ഒറിജിൻ സൗകര്യത്തിന് ഈ രോഗിക്ക് ഇനി ആക്‌സസ് ഉണ്ടായിരിക്കില്ല", - "transfer_in_progress": "കൈമാറ്റം പുരോഗമിക്കുന്നു", - "patient_state": "രോഗിയുടെ അവസ്ഥ", - "yet_to_be_decided": "ഇനിയും തീരുമാനമായിട്ടില്ല", - "awaiting_destination_approval": "ഡെസ്റ്റിനേഷൻ അനുമതിക്കായി കാത്തിരിക്കുന്നു" -} diff --git a/src/Locale/ml/Users.json b/src/Locale/ml/Users.json deleted file mode 100644 index 1372a90da8e..00000000000 --- a/src/Locale/ml/Users.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "user_management": "ഉപയോക്തൃ മാനേജ്മെൻ്റ്", - "facilities": "സൗകര്യങ്ങൾ", - "add_new_user": "പുതിയ ഉപയോക്താവിനെ ചേർക്കുക", - "no_users_found": "ഉപയോക്താക്കളെ കണ്ടെത്തിയില്ല", - "home_facility": "ഹോം സൗകര്യം", - "no_home_facility": "വീടിനുള്ള സൗകര്യം നൽകിയിട്ടില്ല", - "clear_home_facility": "ഹോം സൗകര്യം മായ്‌ക്കുക", - "linked_facilities": "ബന്ധിപ്പിച്ച സൗകര്യങ്ങൾ", - "no_linked_facilities": "ലിങ്ക്ഡ് സൗകര്യങ്ങളൊന്നുമില്ല", - "average_weekly_working_hours": "പ്രതിവാര ശരാശരി പ്രവൃത്തി സമയം", - "set_average_weekly_working_hours_for": "ഇതിനായി ശരാശരി പ്രതിവാര പ്രവൃത്തി സമയം സജ്ജമാക്കുക", - "search_by_username": "ഉപയോക്തൃനാമം ഉപയോഗിച്ച് തിരയുക", - "last_online": "അവസാനമായി ഓൺലൈൻ", - "total_users": "മൊത്തം ഉപയോക്താക്കൾ" -} diff --git a/src/Locale/ml/index.js b/src/Locale/ml/index.js deleted file mode 100644 index cbf1d10c3b9..00000000000 --- a/src/Locale/ml/index.js +++ /dev/null @@ -1,11 +0,0 @@ -import Auth from "./Auth.json"; -import Common from "./Common.json"; -import Entities from "./Entities.json"; -import Facility from "./Facility.json"; - -export default { - ...Auth, - ...Common, - ...Entities, - ...Facility, -}; diff --git a/src/Locale/mr.json b/src/Locale/mr.json new file mode 100644 index 00000000000..06e9c5bbbde --- /dev/null +++ b/src/Locale/mr.json @@ -0,0 +1,66 @@ +{ + "Assets": "मालमत्ता", + "Dashboard": "डॅशबोर्ड", + "District": "जिल्हा", + "Facilities": "हॉस्पिटल", + "Facility Type": "हॉस्पिटल प्रकार", + "KASP Empanelled": "KASP समिती ", + "Local Body": "स्थानिक संस्था", + "Location": "स्थान", + "Notice Board": "सूचना फलक", + "Notifications": "अधिसूचना", + "Patients": "रुग्ण", + "Profile": "प्रोफाइल", + "Resource": "संसाधन", + "Sample Test": "नमुना तपासणी ", + "Shifting": "शिफ्टिंग", + "State": "राज्य", + "Users": "युजर्स", + "View Facility": "हॉस्पिटल पाहा", + "Ward": "वॉर्ड", + "advanced_filters": "अद्ययावत फिल्टर ", + "age": "वय", + "already_a_member": "आधीपासून सदस्य आहात?", + "auth_login_title": "अधिकृत लॉगिन", + "available_in": "उपलब्ध भाषा", + "back_to_login": "लॉगिन पृष्ठावर परत या", + "confirm_password": "पासवर्डची खात्री करा", + "contribute_github": "Github वर योगदान द्या", + "create_facility": "नवीन हॉस्पिटल सुविधा निर्माण करा", + "district": "जिल्हा", + "download_type": "डाउनलोड प्रकार", + "downloads": "डाउनलोड", + "email": "ई-मेल पत्ता", + "enter_valid_age": "वैध वय प्रविष्ट करा", + "facility_search_placeholder": "हॉस्पिटल / जिल्हा यानुसार शोध घ्या", + "field_required": "हे भरणे आवश्यक आहे", + "first_name": "नाव", + "footer_body": "कोरोनासेफ नेटवर्क ही एक मुक्त-स्त्रोत सार्वजनिक सुविधा आहे जी केरळ सरकारच्या पूर्ण मदतीने आणि समर्थनासह सरकारच्या प्रयत्नांना पाठिंबा देण्यासाठी मॉडेलवर काम करणारे नवीन-स्वयंसेवक आणि स्वयंसेवकांच्या एकाधिक-शिस्तबद्ध टीमद्वारे डिझाइन केलेले आहे.", + "forget_password": "पासवर्ड विसरलात?", + "forget_password_instruction": "युजरनेम प्रविष्ट करा आणि आम्ही तुम्हाला पासवर्ड रीसेट करण्यासाठी एक लिंक पाठवू.", + "gender": "लिंग", + "goal": "डिजिटल साधनांचा वापर करून सार्वजनिक आरोग्य सेवांची गुणवत्ता आणि सुलभता सतत सुधारणे हे आमचे ध्येय आहे.", + "invalid_email": "वैध ईमेल पत्ता प्रविष्ट करा.", + "invalid_password": "पासवर्डसाठी आवश्यक बाबी नाहीत", + "invalid_phone": "वैध दूरध्वनी क्रमांक प्रविष्ट करा.", + "invalid_username": "आवश्यक. १५० अक्षरे किंवा त्याहून कमी. फक्त अक्षरे, अंक आणि @/./+/-/_", + "last_name": "आडनाव", + "login": "लॉगिन", + "new_password": "नवीन पासवर्ड", + "no_duplicate_facility": "बनावट हॉस्पिटल सुविधा मुळीच तयार करू नका", + "no_facilities": "कोणतेही हॉस्पिटल नाही", + "password": "पासवर्ड", + "password_mismatch": "\"पासवर्ड\" आणि \"पासवर्डची खात्री करा\" दोन्ही सारखे हवेत.", + "password_reset_failure": "पासवर्ड रिसेट झाला नाही", + "password_reset_success": "पासवर्ड यशस्वीपणे रिसेट झाला", + "password_sent": "पासवर्ड रिसेट झाला इमेल पाठवला", + "phone_number": "दूरध्वनी क्रमांक", + "register_hospital": "हॉस्पिटलचे नाव नोंदवा", + "register_page_title": "हॉस्पिटल व्यवस्थापक म्हणून नोंदणी करा", + "reset": "रीसेट करा", + "reset_password": "रिसेट पासवर्ड", + "send_reset_link": "रीसेट लिंक पाठवा", + "sign_out": "साइन आउट", + "something_wrong": "काहीतरी चूक झाली! पुन्हा प्रयत्न करा", + "username": "युजरनेम" +} diff --git a/src/Locale/mr/Auth.json b/src/Locale/mr/Auth.json deleted file mode 100644 index 74d41e469c4..00000000000 --- a/src/Locale/mr/Auth.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "username": "युजरनेम", - "password": "पासवर्ड", - "new_password": "नवीन पासवर्ड", - "confirm_password": "पासवर्डची खात्री करा", - "first_name": "नाव", - "last_name": "आडनाव", - "email": "ई-मेल पत्ता", - "phone_number": "दूरध्वनी क्रमांक", - "district": "जिल्हा", - "gender": "लिंग", - "age": "वय", - "login": "लॉगिन", - "field_required": "हे भरणे आवश्यक आहे", - "password_mismatch": "\"पासवर्ड\" आणि \"पासवर्डची खात्री करा\" दोन्ही सारखे हवेत.", - "enter_valid_age": "वैध वय प्रविष्ट करा", - "invalid_username": "आवश्यक. १५० अक्षरे किंवा त्याहून कमी. फक्त अक्षरे, अंक आणि @/./+/-/_", - "invalid_password": "पासवर्डसाठी आवश्यक बाबी नाहीत", - "invalid_email": "वैध ईमेल पत्ता प्रविष्ट करा.", - "invalid_phone": "वैध दूरध्वनी क्रमांक प्रविष्ट करा.", - "register_hospital": "हॉस्पिटलचे नाव नोंदवा", - "register_page_title": "हॉस्पिटल व्यवस्थापक म्हणून नोंदणी करा", - "auth_login_title": "अधिकृत लॉगिन", - "back_to_login": "लॉगिन पृष्ठावर परत या", - "available_in": "उपलब्ध भाषा", - "forget_password": "पासवर्ड विसरलात?", - "forget_password_instruction": "युजरनेम प्रविष्ट करा आणि आम्ही तुम्हाला पासवर्ड रीसेट करण्यासाठी एक लिंक पाठवू.", - "send_reset_link": "रीसेट लिंक पाठवा", - "already_a_member": "आधीपासून सदस्य आहात?", - "password_sent": "पासवर्ड रिसेट झाला इमेल पाठवला", - "password_reset_success": "पासवर्ड यशस्वीपणे रिसेट झाला", - "password_reset_failure": "पासवर्ड रिसेट झाला नाही", - "reset_password": "रिसेट पासवर्ड", - "sign_out": "साइन आउट" -} diff --git a/src/Locale/mr/Common.json b/src/Locale/mr/Common.json deleted file mode 100644 index 8e0fd7ae47e..00000000000 --- a/src/Locale/mr/Common.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "goal": "डिजिटल साधनांचा वापर करून सार्वजनिक आरोग्य सेवांची गुणवत्ता आणि सुलभता सतत सुधारणे हे आमचे ध्येय आहे.", - "something_wrong": "काहीतरी चूक झाली! पुन्हा प्रयत्न करा", - "contribute_github": "Github वर योगदान द्या", - "footer_body": "कोरोनासेफ नेटवर्क ही एक मुक्त-स्त्रोत सार्वजनिक सुविधा आहे जी केरळ सरकारच्या पूर्ण मदतीने आणि समर्थनासह सरकारच्या प्रयत्नांना पाठिंबा देण्यासाठी मॉडेलवर काम करणारे नवीन-स्वयंसेवक आणि स्वयंसेवकांच्या एकाधिक-शिस्तबद्ध टीमद्वारे डिझाइन केलेले आहे.", - "reset": "रीसेट करा", - "downloads": "डाउनलोड", - "download_type": "डाउनलोड प्रकार", - "State": "राज्य", - "District": "जिल्हा", - "Local Body": "स्थानिक संस्था", - "Location": "स्थान", - "Ward": "वॉर्ड", - "Notice Board": "सूचना फलक", - "Assets": "मालमत्ता", - "Notifications": "अधिसूचना" -} \ No newline at end of file diff --git a/src/Locale/mr/Entities.json b/src/Locale/mr/Entities.json deleted file mode 100644 index 849c2142081..00000000000 --- a/src/Locale/mr/Entities.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "Facilities": "हॉस्पिटल", - "Patients": "रुग्ण", - "Sample Test": "नमुना तपासणी ", - "Shifting": "शिफ्टिंग", - "Resource": "संसाधन", - "External Results": "बाह्य परिणाम", - "Users": "युजर्स", - "Profile": "प्रोफाइल", - "Dashboard": "डॅशबोर्ड" -} diff --git a/src/Locale/mr/Facility.json b/src/Locale/mr/Facility.json deleted file mode 100644 index 07df4343e50..00000000000 --- a/src/Locale/mr/Facility.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "facility_search_placeholder": "हॉस्पिटल / जिल्हा यानुसार शोध घ्या", - "advanced_filters": "अद्ययावत फिल्टर ", - "Facility Type": "हॉस्पिटल प्रकार", - "KASP Empanelled": "KASP समिती ", - "View Facility": "हॉस्पिटल पाहा", - "no_duplicate_facility": "बनावट हॉस्पिटल सुविधा मुळीच तयार करू नका", - "no_facilities": "कोणतेही हॉस्पिटल नाही", - "create_facility": "नवीन हॉस्पिटल सुविधा निर्माण करा" -} diff --git a/src/Locale/mr/index.js b/src/Locale/mr/index.js deleted file mode 100644 index cbf1d10c3b9..00000000000 --- a/src/Locale/mr/index.js +++ /dev/null @@ -1,11 +0,0 @@ -import Auth from "./Auth.json"; -import Common from "./Common.json"; -import Entities from "./Entities.json"; -import Facility from "./Facility.json"; - -export default { - ...Auth, - ...Common, - ...Entities, - ...Facility, -}; diff --git a/src/Locale/ta.json b/src/Locale/ta.json new file mode 100644 index 00000000000..1fbf82c29aa --- /dev/null +++ b/src/Locale/ta.json @@ -0,0 +1,813 @@ +{ + "404_message": "இல்லாத அல்லது வேறொரு URLக்கு நகர்த்தப்பட்ட ஒரு பக்கத்தில் நீங்கள் தடுமாறிவிட்டதாகத் தெரிகிறது. நீங்கள் சரியான இணைப்பை உள்ளிட்டுள்ளீர்கள் என்பதை உறுதிப்படுத்தவும்!", + "AUTOMATED": "தானியங்கி", + "Assets": "சொத்துக்கள்", + "BED_WITH_OXYGEN_SUPPORT": "ஆக்ஸிஜன் ஆதரவுடன் படுக்கை", + "CONSCIOUSNESS_LEVEL__AGITATED_OR_CONFUSED": "கலக்கம் அல்லது குழப்பம்", + "CONSCIOUSNESS_LEVEL__ALERT": "எச்சரிக்கை", + "CONSCIOUSNESS_LEVEL__ONSET_OF_AGITATION_AND_CONFUSION": "கிளர்ச்சி மற்றும் குழப்பத்தின் ஆரம்பம்", + "CONSCIOUSNESS_LEVEL__RESPONDS_TO_PAIN": "வலிக்கு பதிலளிக்கிறது", + "CONSCIOUSNESS_LEVEL__RESPONDS_TO_VOICE": "குரலுக்கு பதிலளிக்கிறது", + "CONSCIOUSNESS_LEVEL__UNRESPONSIVE": "பதிலளிக்காதது", + "Cancel": "ரத்து செய்", + "DD/MM/YYYY": "DD/MM/YYYY", + "DOCTORS_LOG": "முன்னேற்றக் குறிப்பு", + "Dashboard": "டாஷ்போர்டு", + "Facilities": "வசதிகள்", + "GENDER__1": "ஆண்", + "GENDER__2": "பெண்", + "GENDER__3": "பைனரி அல்லாத", + "HEARTBEAT_RHYTHM__IRREGULAR": "ஒழுங்கற்ற", + "HEARTBEAT_RHYTHM__REGULAR": "வழக்கமான", + "HEARTBEAT_RHYTHM__UNKNOWN": "தெரியவில்லை", + "ICU": "ஐசியூ", + "INSULIN_INTAKE_FREQUENCY__BD": "ஒரு நாளைக்கு இரண்டு முறை (BD)", + "INSULIN_INTAKE_FREQUENCY__OD": "ஒரு நாளைக்கு ஒரு முறை (OD)", + "INSULIN_INTAKE_FREQUENCY__TD": "ஒரு நாளைக்கு மூன்று முறை (டிடி)", + "INSULIN_INTAKE_FREQUENCY__UNKNOWN": "தெரியவில்லை", + "ISOLATION": "தனிமைப்படுத்துதல்", + "KASP Empanelled": "KASP சேர்ந்தார்", + "LIMB_RESPONSE__EXTENSION": "நீட்டிப்பு", + "LIMB_RESPONSE__FLEXION": "நெகிழ்வு", + "LIMB_RESPONSE__MODERATE": "மிதமான", + "LIMB_RESPONSE__NONE": "இல்லை", + "LIMB_RESPONSE__STRONG": "வலுவான", + "LIMB_RESPONSE__UNKNOWN": "தெரியவில்லை", + "LIMB_RESPONSE__WEAK": "பலவீனமான", + "NORMAL": "சுருக்கமான புதுப்பிப்பு", + "NURSING_CARE_PROCEDURE__catheter_care": "வடிகுழாய் பராமரிப்பு", + "NURSING_CARE_PROCEDURE__chest_tube_care": "மார்பு குழாய் பராமரிப்பு", + "NURSING_CARE_PROCEDURE__dressing": "ஆடை அணிதல்", + "NURSING_CARE_PROCEDURE__dvt_pump_stocking": "DVT பம்ப் ஸ்டாக்கிங்", + "NURSING_CARE_PROCEDURE__iv_sitecare": "IV தள பராமரிப்பு", + "NURSING_CARE_PROCEDURE__nubulisation": "நுபுலைசேஷன்", + "NURSING_CARE_PROCEDURE__personal_hygiene": "தனிப்பட்ட சுகாதாரம்", + "NURSING_CARE_PROCEDURE__positioning": "நிலைப்படுத்துதல்", + "NURSING_CARE_PROCEDURE__restrain": "கட்டுப்படுத்து", + "NURSING_CARE_PROCEDURE__ryles_tube_care": "ரைல்ஸ் குழாய் பராமரிப்பு", + "NURSING_CARE_PROCEDURE__stoma_care": "ஸ்டோமா கேர்", + "NURSING_CARE_PROCEDURE__suctioning": "உறிஞ்சும்", + "NURSING_CARE_PROCEDURE__tracheostomy_care": "டிரக்கியோஸ்டமி பராமரிப்பு", + "Notice Board": "அறிவிப்பு பலகை", + "Notifications": "அறிவிப்புகள்", + "OXYGEN_MODALITY__HIGH_FLOW_NASAL_CANNULA": "அதிக ஓட்டம் நாசி கேனுலா", + "OXYGEN_MODALITY__NASAL_PRONGS": "நாசி முனைகள்", + "OXYGEN_MODALITY__NON_REBREATHING_MASK": "சுவாசிக்காத முகமூடி", + "OXYGEN_MODALITY__SIMPLE_FACE_MASK": "எளிய முகமூடி", + "PRESCRIPTION_FREQUENCY_BD": "தினமும் இருமுறை", + "PRESCRIPTION_FREQUENCY_HS": "இரவு மட்டும்", + "PRESCRIPTION_FREQUENCY_OD": "தினமும் ஒருமுறை", + "PRESCRIPTION_FREQUENCY_Q4H": "4 வது மணிநேரம்", + "PRESCRIPTION_FREQUENCY_QID": "6 வது மணிநேரம்", + "PRESCRIPTION_FREQUENCY_QOD": "மாற்று நாள்", + "PRESCRIPTION_FREQUENCY_QWK": "வாரம் ஒருமுறை", + "PRESCRIPTION_FREQUENCY_STAT": "உடனடியாக", + "PRESCRIPTION_FREQUENCY_TID": "8வது மணிநேரம்", + "PRESCRIPTION_ROUTE_IM": "ஐ.எம்", + "PRESCRIPTION_ROUTE_INHALATION": "உள்ளிழுத்தல்", + "PRESCRIPTION_ROUTE_INTRATHECAL": "உள்நோக்கி ஊசி", + "PRESCRIPTION_ROUTE_IV": "IV", + "PRESCRIPTION_ROUTE_NASOGASTRIC": "நாசோகாஸ்ட்ரிக் / காஸ்ட்ரோஸ்டமி குழாய்", + "PRESCRIPTION_ROUTE_ORAL": "வாய்வழி", + "PRESCRIPTION_ROUTE_RECTAL": "மலக்குடல்", + "PRESCRIPTION_ROUTE_SC": "எஸ்/சி", + "PRESCRIPTION_ROUTE_SUBLINGUAL": "சப்ளிங்குவல்", + "PRESCRIPTION_ROUTE_TRANSDERMAL": "டிரான்ஸ்டெர்மல்", + "PUPIL_REACTION__BRISK": "சுறுசுறுப்பான", + "PUPIL_REACTION__CANNOT_BE_ASSESSED": "மதிப்பிட முடியாது", + "PUPIL_REACTION__FIXED": "சரி செய்யப்பட்டது", + "PUPIL_REACTION__SLUGGISH": "மந்தமான", + "PUPIL_REACTION__UNKNOWN": "தெரியவில்லை", + "Patients": "நோயாளிகள்", + "Profile": "சுயவிவரம்", + "REGULAR": "வழக்கமான", + "RESPIRATORY_SUPPORT_SHORT__INVASIVE": "IV", + "RESPIRATORY_SUPPORT_SHORT__NON_INVASIVE": "என்.ஐ.வி", + "RESPIRATORY_SUPPORT_SHORT__OXYGEN_SUPPORT": "O2 ஆதரவு", + "RESPIRATORY_SUPPORT_SHORT__UNKNOWN": "இல்லை", + "RESPIRATORY_SUPPORT__INVASIVE": "ஊடுருவும் காற்றோட்டம் (IV)", + "RESPIRATORY_SUPPORT__NON_INVASIVE": "ஆக்கிரமிப்பு அல்லாத வென்டிலேட்டர் (NIV)", + "RESPIRATORY_SUPPORT__OXYGEN_SUPPORT": "ஆக்ஸிஜன் ஆதரவு", + "RESPIRATORY_SUPPORT__UNKNOWN": "இல்லை", + "Resource": "வளம்", + "SORT_OPTIONS__-bed__name": "படுக்கை எண். N-1", + "SORT_OPTIONS__-category_severity": "அதிக தீவிரத்தன்மை பிரிவு முதலில்", + "SORT_OPTIONS__-created_date": "புதிதாக உருவாக்கப்பட்ட தேதி முதலில்", + "SORT_OPTIONS__-modified_date": "முதலில் புதுப்பிக்கப்பட்ட தேதி", + "SORT_OPTIONS__-name": "நோயாளியின் பெயர் ZA", + "SORT_OPTIONS__-review_time": "சமீபத்திய மதிப்பாய்வு தேதி முதலில்", + "SORT_OPTIONS__-taken_at": "சமீபத்தில் எடுக்கப்பட்ட தேதி முதலில்", + "SORT_OPTIONS__bed__name": "படுக்கை எண் 1-N", + "SORT_OPTIONS__category_severity": "குறைந்த தீவிரத்தன்மை வகை முதலில்", + "SORT_OPTIONS__created_date": "பழைய உருவாக்கப்பட்ட தேதி முதலில்", + "SORT_OPTIONS__facility__name,-last_consultation__current_bed__bed__name": "படுக்கை எண். N-1", + "SORT_OPTIONS__facility__name,last_consultation__current_bed__bed__name": "படுக்கை எண் 1-N", + "SORT_OPTIONS__modified_date": "பழைய புதுப்பிக்கப்பட்ட தேதி முதலில்", + "SORT_OPTIONS__name": "நோயாளியின் பெயர் AZ", + "SORT_OPTIONS__review_time": "பழைய மதிப்பாய்வு தேதி முதலில்", + "SORT_OPTIONS__taken_at": "முதலில் எடுக்கப்பட்ட பழைய தேதி", + "Sample Test": "மாதிரி சோதனை", + "Shifting": "மாற்றுதல்", + "Submit": "சமர்ப்பிக்கவும்", + "TELEMEDICINE": "டெலிமெடிசின்", + "Users": "பயனர்கள்", + "VENTILATOR": "விரிவான புதுப்பிப்பு", + "VENTILATOR_MODE__CMV": "கட்டுப்பாட்டு இயந்திர காற்றோட்டம் (CMV)", + "VENTILATOR_MODE__PCV": "அழுத்தம் கட்டுப்பாட்டு காற்றோட்டம் (PCV)", + "VENTILATOR_MODE__PC_SIMV": "அழுத்தம் கட்டுப்படுத்தப்பட்ட SIMV (PC-SIMV)", + "VENTILATOR_MODE__PSV": "சி-பிஏபி / பிரஷர் சப்போர்ட் வென்டிலேஷன் (பிஎஸ்வி)", + "VENTILATOR_MODE__SIMV": "ஒத்திசைக்கப்பட்ட இடைப்பட்ட கட்டாய காற்றோட்டம் (SIMV)", + "VENTILATOR_MODE__VCV": "வால்யூம் கண்ட்ரோல் வென்டிலேஷன் (VCV)", + "VENTILATOR_MODE__VC_SIMV": "தொகுதி கட்டுப்படுத்தப்பட்ட SIMV (VC-SIMV)", + "View Facility": "வசதி காண்க", + "action_irreversible": "இந்த நடவடிக்கை மீள முடியாதது", + "active": "செயலில்", + "active_prescriptions": "செயலில் உள்ள மருந்துகள்", + "add": "சேர்", + "add_as": "என சேர்", + "add_beds": "படுக்கைகளைச் சேர்", + "add_details_of_patient": "நோயாளியின் விவரங்களைச் சேர்க்கவும்", + "add_location": "இருப்பிடத்தைச் சேர்க்கவும்", + "add_new_user": "புதிய பயனரைச் சேர்க்கவும்", + "add_notes": "குறிப்புகளைச் சேர்க்கவும்", + "add_prescription_medication": "பரிந்துரைக்கப்பட்ட மருந்துகளைச் சேர்க்கவும்", + "add_prescription_to_consultation_note": "இந்த ஆலோசனையில் புதிய மருந்துச் சீட்டைச் சேர்க்கவும்.", + "add_prn_prescription": "PRN மருந்துச் சீட்டைச் சேர்க்கவும்", + "address": "முகவரி", + "administer": "நிர்வாகம்", + "administer_medicine": "மருந்தை நிர்வகி", + "administer_medicines": "மருந்துகளை நிர்வகிக்கவும்", + "administer_selected_medicines": "தேர்ந்தெடுக்கப்பட்ட மருந்துகளை நிர்வகிக்கவும்", + "administered_on": "அன்று நிர்வகிக்கப்படுகிறது", + "administration_dosage_range_error": "ஆரம்ப மற்றும் இலக்கு டோஸ் இடையே மருந்தளவு இருக்க வேண்டும்", + "administration_notes": "நிர்வாக குறிப்புகள்", + "advanced_filters": "மேம்பட்ட வடிப்பான்கள்", + "age": "வயது", + "all_changes_have_been_saved": "அனைத்து மாற்றங்களும் சேமிக்கப்பட்டன", + "all_details": "அனைத்து விவரங்களும்", + "allergies": "ஒவ்வாமை", + "allowed_formats_are": "அனுமதிக்கப்பட்ட வடிவங்கள்", + "already_a_member": "ஏற்கனவே உறுப்பினரா?", + "ambulance_driver_name": "ஆம்புலன்ஸ் ஓட்டுநரின் பெயர்", + "ambulance_number": "ஆம்புலன்ஸ் எண்", + "ambulance_phone_number": "ஆம்புலன்ஸின் தொலைபேசி எண்", + "antenatal": "முற்பிறவி", + "any_other_comments": "வேறு ஏதேனும் கருத்துகள்", + "apply": "விண்ணப்பிக்கவும்", + "approved_by_district_covid_control_room": "மாவட்ட கோவிட் கட்டுப்பாட்டு அறையால் அங்கீகரிக்கப்பட்டது", + "approving_facility": "அங்கீகரிக்கும் வசதியின் பெயர்", + "archive": "காப்பகம்", + "archived": "காப்பகப்படுத்தப்பட்டது", + "are_you_still_watching": "நீங்கள் இன்னும் பார்க்கிறீர்களா?", + "are_you_sure_want_to_delete": "{{name}}ஐ நிச்சயமாக நீக்க விரும்புகிறீர்களா?", + "are_you_sure_want_to_delete_this_record": "இந்தப் பதிவை நிச்சயமாக நீக்க விரும்புகிறீர்களா?", + "asset_class": "சொத்து வகுப்பு", + "asset_location": "சொத்து இருப்பிடம்", + "asset_name": "சொத்து பெயர்", + "asset_not_found_msg": "அச்சச்சோ! நீங்கள் தேடும் சொத்து இல்லை. சொத்து ஐடியைச் சரிபார்க்கவும்.", + "asset_qr_id": "சொத்து QR ஐடி", + "asset_type": "சொத்து வகை", + "assigned_facility": "வசதி ஒதுக்கப்பட்டுள்ளது", + "assigned_to": "க்கு ஒதுக்கப்பட்டது", + "audio__allow_permission": "தள அமைப்புகளில் மைக்ரோஃபோன் அனுமதியை அனுமதிக்கவும்", + "audio__allow_permission_button": "எப்படி அனுமதிப்பது என்பதை அறிய இங்கே கிளிக் செய்யவும்", + "audio__allow_permission_helper": "கடந்த காலத்தில் மைக்ரோஃபோன் அணுகலை நீங்கள் மறுத்திருக்கலாம்.", + "audio__record": "ஆடியோ பதிவு", + "audio__record_helper": "பதிவைத் தொடங்க பொத்தானைக் கிளிக் செய்யவும்", + "audio__recorded": "ஆடியோ பதிவு செய்யப்பட்டது", + "audio__recording": "பதிவு செய்தல்", + "audio__recording_helper": "உங்கள் மைக்ரோஃபோனில் பேசவும்.", + "audio__recording_helper_2": "பதிவை நிறுத்த பொத்தானைக் கிளிக் செய்யவும்.", + "audio__start_again": "மீண்டும் தொடங்கவும்", + "audit_log": "தணிக்கை பதிவு", + "auth_login_title": "அங்கீகரிக்கப்பட்ட உள்நுழைவு", + "authorize_shift_delete": "ஷிப்ட் நீக்கத்தை அங்கீகரிக்கவும்", + "auto_generated_for_care": "பராமரிப்புக்காக தானாக உருவாக்கப்பட்டுள்ளது", + "available_features": "கிடைக்கும் அம்சங்கள்", + "available_in": "கிடைக்கும் மொழிகள்", + "average_weekly_working_hours": "சராசரி வாராந்திர வேலை நேரம்", + "awaiting_destination_approval": "இலக்கு அனுமதிக்காக காத்திருக்கிறது", + "back": "மீண்டும்", + "back_dated_encounter_date_caution": "நீங்கள் ஒரு சந்திப்பை உருவாக்குகிறீர்கள்", + "back_to_consultation": "ஆலோசனைக்குத் திரும்பு", + "back_to_login": "உள்நுழைவு பக்கத்திற்குத் திரும்பு", + "base_dosage": "மருந்தளவு", + "bed_capacity": "படுக்கை திறன்", + "bed_search_placeholder": "படுக்கைகளின் பெயரைக் கொண்டு தேடுங்கள்", + "bed_type": "படுக்கை வகை", + "blood_group": "இரத்தக் குழு", + "board_view": "பலகை காட்சி", + "bradycardia": "பிராடி கார்டியா", + "breathlessness_level": "மூச்சுத்திணறல் நிலை", + "camera": "கேமரா", + "camera_permission_denied": "கேமரா அனுமதி நிராகரித்தது", + "cancel": "ரத்து செய்", + "capture": "பிடிப்பு", + "capture_cover_photo": "அட்டைப் படத்தைப் பிடிக்கவும்", + "care": "கவனிப்பு", + "category": "வகை", + "caution": "எச்சரிக்கை", + "central_nursing_station": "மத்திய நர்சிங் நிலையம்", + "choose_file": "சாதனத்திலிருந்து பதிவேற்றவும்", + "choose_location": "இருப்பிடத்தைத் தேர்ந்தெடுக்கவும்", + "clear": "தெளிவு", + "clear_all_filters": "அனைத்து வடிப்பான்களையும் அழிக்கவும்", + "clear_home_facility": "தெளிவான வீட்டு வசதி", + "clear_selection": "தெளிவான தேர்வு", + "close": "மூடு", + "close_scanner": "ஸ்கேனரை மூடு", + "comment_added_successfully": "கருத்து வெற்றிகரமாக சேர்க்கப்பட்டது", + "comment_min_length": "கருத்து குறைந்தது 1 எழுத்தையாவது கொண்டிருக்க வேண்டும்", + "comments": "கருத்துகள்", + "completed": "முடிக்கப்பட்டது", + "configure": "கட்டமைக்கவும்", + "configure_facility": "வசதியை உள்ளமைக்கவும்", + "confirm": "உறுதிப்படுத்தவும்", + "confirm_delete": "நீக்குவதை உறுதிப்படுத்தவும்", + "confirm_discontinue": "நிறுத்துவதை உறுதிப்படுத்தவும்", + "confirm_password": "கடவுச்சொல்லை உறுதிப்படுத்தவும்", + "confirm_transfer_complete": "பரிமாற்றம் முடிந்தது என்பதை உறுதிப்படுத்தவும்!", + "confirmed": "உறுதி செய்யப்பட்டது", + "consultation_notes": "பொதுவான வழிமுறைகள் (ஆலோசனை)", + "consultation_updates": "ஆலோசனை புதுப்பிப்புகள்", + "contact_number": "தொடர்பு எண்", + "contact_person": "வசதி உள்ள தொடர்பு நபரின் பெயர்", + "contact_person_at_the_facility": "தற்போதைய வசதியில் உள்ள நபரைத் தொடர்பு கொள்ளவும்", + "contact_person_number": "தொடர்பு நபர் எண்", + "contact_phone": "தொடர்பு நபர் எண்", + "contact_your_admin_to_add_skills": "திறன்களைச் சேர்க்க உங்கள் நிர்வாகியைத் தொடர்புகொள்ளவும்", + "continue": "தொடரவும்", + "continue_watching": "தொடர்ந்து பார்க்கவும்", + "contribute_github": "Github-ல் பங்களிப்பு செய்யுங்கள்", + "copied_to_clipboard": "கிளிப்போர்டுக்கு நகலெடுக்கப்பட்டது", + "countries_travelled": "நாடுகள் பயணம் செய்தன", + "covid_19_cat_gov": "அரசாங்கத்தின்படி கோவிட்_19 மருத்துவ வகை. கேரளா வழிகாட்டுதல் (A/B/C)", + "create": "உருவாக்கு", + "create_add_more": "உருவாக்கி மேலும் சேர்க்கவும்", + "create_asset": "சொத்தை உருவாக்கவும்", + "create_facility": "புதிய வசதியை உருவாக்கவும்", + "create_new_asset": "புதிய சொத்தை உருவாக்கவும்", + "create_resource_request": "ஆதார கோரிக்கையை உருவாக்கவும்", + "created": "உருவாக்கப்பட்டது", + "created_date": "உருவாக்கப்பட்ட தேதி", + "csv_file_in_the_specified_format": "குறிப்பிட்ட வடிவத்தில் CSV கோப்பைத் தேர்ந்தெடுக்கவும்", + "customer_support_email": "வாடிக்கையாளர் ஆதரவு மின்னஞ்சல்", + "customer_support_name": "வாடிக்கையாளர் ஆதரவு பெயர்", + "customer_support_number": "வாடிக்கையாளர் ஆதரவு எண்", + "cylinders": "சிலிண்டர்கள்", + "cylinders_per_day": "சிலிண்டர்கள்/நாள்", + "date_and_time": "தேதி மற்றும் நேரம்", + "date_of_admission": "சேர்க்கை தேதி", + "date_of_birth": "பிறந்த தேதி", + "date_of_positive_covid_19_swab": "பாசிட்டிவ் கோவிட் 19 ஸ்வாப் தேதி", + "date_of_test": "தேர்வு தேதி", + "days": "நாட்கள்", + "delete": "நீக்கு", + "delete_facility": "நீக்கு வசதி", + "delete_item": "{{name}}ஐ நீக்கவும்", + "delete_record": "பதிவை நீக்கு", + "deleted_successfully": "{{name}} வெற்றிகரமாக நீக்கப்பட்டது", + "describe_why_the_asset_is_not_working": "சொத்து ஏன் வேலை செய்யவில்லை என்பதை விவரிக்கவும்", + "description": "விளக்கம்", + "details_about_the_equipment": "உபகரணங்கள் பற்றிய விவரங்கள்", + "details_of_assigned_facility": "ஒதுக்கப்பட்ட வசதியின் விவரங்கள்", + "details_of_origin_facility": "மூல வசதியின் விவரங்கள்", + "details_of_patient": "நோயாளியின் விவரங்கள்", + "details_of_shifting_approving_facility": "ஒப்புதல் வசதியை மாற்றுவதற்கான விவரங்கள்", + "diagnoses": "நோய் கண்டறிகிறது", + "diagnosis": "நோய் கண்டறிதல்", + "diagnosis__confirmed": "உறுதி செய்யப்பட்டது", + "diagnosis__differential": "வித்தியாசமான", + "diagnosis__principal": "அதிபர்", + "diagnosis__provisional": "தற்காலிகமானது", + "diagnosis__unconfirmed": "உறுதி செய்யப்படவில்லை", + "diagnosis_already_added": "இந்த நோயறிதல் ஏற்கனவே சேர்க்கப்பட்டது", + "diastolic": "டயஸ்டாலிக்", + "differential": "வித்தியாசமான", + "discard": "நிராகரி", + "discharge": "வெளியேற்றம்", + "discharge_from_care": "CARE இலிருந்து வெளியேற்றம்", + "discharge_prescription": "வெளியேற்ற மருந்து", + "discharge_summary": "வெளியேற்ற சுருக்கம்", + "discharge_summary_not_ready": "டிஸ்சார்ஜ் சுருக்கம் இன்னும் தயாராகவில்லை.", + "discharged": "வெளியேற்றப்பட்டது", + "discharged_patients": "வெளியேற்றப்பட்ட நோயாளிகள்", + "discharged_patients_empty": "இந்த வசதியில் டிஸ்சார்ஜ் செய்யப்பட்ட நோயாளிகள் யாரும் இல்லை", + "disclaimer": "மறுப்பு", + "discontinue": "நிறுத்து", + "discontinue_caution_note": "இந்த மருந்தை நிச்சயமாக நிறுத்த விரும்புகிறீர்களா?", + "discontinued": "நிறுத்தப்பட்டது", + "disease_status": "நோய் நிலை", + "district": "மாவட்டம்", + "district_program_management_supporting_unit": "மாவட்ட திட்ட மேலாண்மை துணை அலகு", + "done": "முடிந்தது", + "dosage": "மருந்தளவு", + "down": "கீழே", + "download": "பதிவிறக்கவும்", + "download_discharge_summary": "வெளியேற்ற சுருக்கத்தைப் பதிவிறக்கவும்", + "download_type": "பதிவிறக்க வகை", + "downloading": "பதிவிறக்குகிறது", + "downloads": "பதிவிறக்கங்கள்", + "drag_drop_image_to_upload": "பதிவேற்ற படத்தை இழுத்து விடவும்", + "duplicate_patient_record_birth_unknown": "நோயாளியின் பிறந்த ஆண்டு குறித்து உங்களுக்குத் தெரியாவிட்டால், உங்கள் மாவட்ட பராமரிப்பு ஒருங்கிணைப்பாளர், இடமாற்றம் செய்யும் வசதி அல்லது நோயாளியைத் தொடர்பு கொள்ளவும்.", + "duplicate_patient_record_confirmation": "பிறந்த ஆண்டைச் சேர்ப்பதன் மூலம் நோயாளியின் பதிவை உங்கள் வசதியில் அனுமதிக்கவும்", + "duplicate_patient_record_rejection": "நான் உருவாக்க விரும்பும் சந்தேக நபர் / நோயாளி பட்டியலில் இல்லை என்பதை உறுதிப்படுத்துகிறேன்.", + "edit": "திருத்தவும்", + "edit_caution_note": "திருத்தப்பட்ட விவரங்களுடன் கலந்தாய்வில் புதிய மருந்துச் சீட்டு சேர்க்கப்படும் மற்றும் தற்போதைய மருந்துச் சீட்டு நிறுத்தப்படும்.", + "edit_cover_photo": "அட்டைப் படத்தைத் திருத்து", + "edit_history": "வரலாற்றைத் திருத்தவும்", + "edit_prescriptions": "மருந்துச்சீட்டுகளைத் திருத்தவும்", + "edited_by": "திருத்தியது", + "edited_on": "அன்று திருத்தப்பட்டது", + "eg_abc": "எ.கா. ஏபிசி", + "eg_details_on_functionality_service_etc": "எ.கா. செயல்பாடு, சேவை போன்றவை பற்றிய விவரங்கள்.", + "eg_mail_example_com": "எ.கா. mail@example.com", + "eg_xyz": "எ.கா. XYZ", + "email": "மின்னஞ்சல் முகவரி", + "email_address": "மின்னஞ்சல் முகவரி", + "email_discharge_summary_description": "டிஸ்சார்ஜ் சுருக்கத்தைப் பெற உங்கள் சரியான மின்னஞ்சல் முகவரியை உள்ளிடவும்", + "email_success": "விரைவில் மின்னஞ்சல் அனுப்புவோம். உங்கள் இன்பாக்ஸை சரிபார்க்கவும்.", + "emergency": "அவசரநிலை", + "emergency_contact_number": "அவசர தொடர்பு எண்", + "empty_date_time": "--:-- --; ------------", + "encounter_date_field_label__A": "வசதிக்கான சேர்க்கை தேதி மற்றும் நேரம்", + "encounter_date_field_label__DC": "வீட்டு பராமரிப்பு தொடங்கும் தேதி மற்றும் நேரம்", + "encounter_date_field_label__DD": "கலந்தாய்வு தேதி & நேரம்", + "encounter_date_field_label__HI": "கலந்தாய்வு தேதி & நேரம்", + "encounter_date_field_label__OP": "வெளி நோயாளி வருகையின் தேதி மற்றும் நேரம்", + "encounter_date_field_label__R": "கலந்தாய்வு தேதி & நேரம்", + "encounter_duration_confirmation": "இந்த சந்திப்பின் காலம் இருக்கும்", + "encounter_suggestion__A": "சேர்க்கை", + "encounter_suggestion__DC": "வீட்டு பராமரிப்பு", + "encounter_suggestion__DD": "ஆலோசனை", + "encounter_suggestion__HI": "ஆலோசனை", + "encounter_suggestion__OP": "வெளி நோயாளி வருகை", + "encounter_suggestion__R": "ஆலோசனை", + "encounter_suggestion_edit_disallowed": "திருத்த ஆலோசனையில் இந்த விருப்பத்திற்கு மாற அனுமதிக்கப்படவில்லை", + "enter_file_name": "கோப்பு பெயரை உள்ளிடவும்", + "enter_valid_age": "செல்லுபடியாகும் வயதை உள்ளிடவும்", + "entered-in-error": "தவறுதலாக உள்ளிடப்பட்டது", + "error_404": "பிழை 404", + "error_deleting_shifting": "பதிவை மாற்றுவதில் பிழை", + "error_while_deleting_record": "பதிவை நீக்குவதில் பிழை", + "escape": "எஸ்கேப்", + "estimated_contact_date": "மதிப்பிடப்பட்ட தொடர்பு தேதி", + "expected_burn_rate": "எதிர்பார்க்கப்படும் எரிப்பு விகிதம்", + "facilities": "வசதிகள்", + "facility": "வசதி", + "facility_name": "வசதி பெயர்", + "facility_preference": "வசதி விருப்பம்", + "facility_search_placeholder": "வசதி / மாவட்ட பெயர் மூலம் தேடுங்கள்", + "facility_type": "வசதி வகை", + "features": "அம்சங்கள்", + "feed_is_currently_not_live": "ஊட்டம் தற்போது நேரலையில் இல்லை", + "feed_optimal_experience_for_apple_phones": "சிறந்த பார்வை அனுபவத்திற்கு, உங்கள் சாதனத்தைச் சுழற்றுவதைக் கவனியுங்கள். உங்கள் சாதன அமைப்புகளில் தானாகச் சுழற்றுவது இயக்கப்பட்டிருப்பதை உறுதிசெய்யவும்.", + "feed_optimal_experience_for_phones": "சிறந்த பார்வை அனுபவத்திற்கு, உங்கள் சாதனத்தைச் சுழற்றுவதைக் கவனியுங்கள்.", + "field_required": "இந்த புலம் தேவை", + "file_error__choose_file": "பதிவேற்ற ஒரு கோப்பைத் தேர்ந்தெடுக்கவும்", + "file_error__dynamic": "கோப்பைப் பதிவேற்றுவதில் பிழை: {{statusText}}", + "file_error__file_name": "கோப்பின் பெயரை உள்ளிடவும்", + "file_error__file_size": "கோப்புகளின் அதிகபட்ச அளவு 100 எம்பி", + "file_error__file_type": "தவறான கோப்பு வகை \".{{extension}}\" அனுமதிக்கப்பட்ட வகைகள்: {{allowedExtensions}}", + "file_error__network": "கோப்பைப் பதிவேற்றுவதில் பிழை: பிணையப் பிழை", + "file_list_headings__consultation": "ஆலோசனை கோப்புகள்", + "file_list_headings__patient": "நோயாளி கோப்புகள்", + "file_list_headings__sample_report": "மாதிரி அறிக்கை", + "file_list_headings__supporting_info": "துணைத் தகவல்", + "file_preview": "கோப்பு முன்னோட்டம்", + "file_preview_not_supported": "இந்தக் கோப்பை முன்னோட்டமிட முடியவில்லை. பதிவிறக்கம் செய்து பாருங்கள்.", + "file_uploaded": "கோப்பு வெற்றிகரமாக பதிவேற்றப்பட்டது", + "filter": "வடிகட்டி", + "filter_by": "வடிகட்டவும்", + "filter_by_category": "வகையின்படி வடிகட்டவும்", + "filters": "வடிப்பான்கள்", + "first_name": "முதல் பெயர்", + "footer_body": "கொரோனா சேஃப் நெட்வொர்க் என்பது ஒரு திறந்த மூல பொது பயன்பாடாகும், இது கேரள அரசாங்கத்தின் முழு புரிதலுடனும் ஆதரவிற்கும் அரசாங்க முயற்சிகளை ஆதரிக்க ஒரு மாதிரியில் பணிபுரியும் புதுமைப்பித்தர்கள் மற்றும் தன்னார்வலர்களின் பல ஒழுக்கக் குழுவால் வடிவமைக்கப்பட்டுள்ளது.", + "forget_password": "கடவுச்சொல்லை மறந்துவிட்டீர்களா?", + "forget_password_instruction": "உங்கள் பயனர்பெயரை உள்ளிடவும், உங்கள் கடவுச்சொல்லை மீட்டமைக்க ஒரு இணைப்பை நாங்கள் உங்களுக்கு அனுப்புவோம்.", + "frequency": "அதிர்வெண்", + "full_screen": "முழுத்திரை", + "gender": "பாலினம்", + "generate_report": "அறிக்கையை உருவாக்கவும்", + "generated_summary_caution": "இது CARE அமைப்பில் கைப்பற்றப்பட்ட தகவலைப் பயன்படுத்தி கணினியில் உருவாக்கப்பட்ட சுருக்கமாகும்.", + "generating": "உருவாக்குகிறது", + "generating_discharge_summary": "வெளியேற்ற சுருக்கத்தை உருவாக்குகிறது", + "get_tests": "சோதனைகளைப் பெறுங்கள்", + "goal": "டிஜிட்டல் கருவிகளைப் பயன்படுத்தி பொது சுகாதார சேவைகளின் தரம் மற்றும் அணுகல்தன்மையை தொடர்ந்து மேம்படுத்துவதே எங்கள் குறிக்கோள்.", + "help_confirmed": "இதை உறுதிப்படுத்தப்பட்ட நிலையாகக் கருதுவதற்கு போதுமான நோயறிதல் மற்றும்/அல்லது மருத்துவ சான்றுகள் உள்ளன.", + "help_differential": "சாத்தியமான (மற்றும் பொதுவாக பரஸ்பரம் பிரத்தியேகமான) நோயறிதல்களின் தொகுப்பில் ஒன்று கண்டறியும் செயல்முறை மற்றும் பூர்வாங்க சிகிச்சையை மேலும் வழிகாட்டும்.", + "help_entered-in-error": "அறிக்கை பிழையாக உள்ளிடப்பட்டது, அது செல்லாது.", + "help_provisional": "இது ஒரு தற்காலிக நோயறிதல் - இன்னும் ஒரு வேட்பாளர் பரிசீலனையில் உள்ளது.", + "help_refuted": "இந்த நிலை அடுத்தடுத்த நோயறிதல் மற்றும் மருத்துவ சான்றுகளால் நிராகரிக்கப்பட்டது.", + "help_unconfirmed": "இதை உறுதிப்படுத்தப்பட்ட நிலையாகக் கருதுவதற்கு போதுமான நோயறிதல் மற்றும்/அல்லது மருத்துவ சான்றுகள் இல்லை.", + "hide": "மறை", + "home_facility": "வீட்டு வசதி", + "icd11_as_recommended": "WHO பரிந்துரைத்த ICD-11 இன் படி", + "inconsistent_dosage_units_error": "மருந்தளவு அலகுகள் ஒரே மாதிரியாக இருக்க வேண்டும்", + "india_1": "இந்தியா", + "indian_mobile": "இந்திய மொபைல்", + "indicator": "காட்டி", + "inidcator_event": "காட்டி நிகழ்வு", + "instruction_on_titration": "டைட்ரேஷன் பற்றிய வழிமுறைகள்", + "international_mobile": "சர்வதேச மொபைல்", + "invalid_asset_id_msg": "அச்சச்சோ! நீங்கள் உள்ளிட்ட சொத்து ஐடி சரியானதாகத் தெரியவில்லை.", + "invalid_email": "செல்லுபடியாகும் மின்னஞ்சல் முகவரியை உள்ளிடவும்", + "invalid_link_msg": "நீங்கள் பயன்படுத்திய கடவுச்சொல் மீட்டமைப்பு இணைப்பு தவறானது அல்லது காலாவதியானது போல் தெரிகிறது. புதிய கடவுச்சொல் மீட்டமைப்பு இணைப்பைக் கோரவும்.", + "invalid_password": "கடவுச்சொல் தேவைகளை பூர்த்தி செய்யவில்லை", + "invalid_password_reset_link": "தவறான கடவுச்சொல் மீட்டமைப்பு இணைப்பு", + "invalid_phone": "செல்லுபடியாகும் தொலைபேசி எண்ணை உள்ளிடவும்", + "invalid_phone_number": "தவறான தொலைபேசி எண்", + "invalid_pincode": "தவறான பின்கோடு", + "invalid_reset": "தவறான மீட்டமைப்பு", + "invalid_username": "தேவை. 150 எழுத்துக்கள் அல்லது குறைவானவை. எழுத்துக்கள், எண்கள் மற்றும் @ /. / + / - / _ மட்டும்.", + "inventory_management": "சரக்கு மேலாண்மை", + "investigation_reports": "விசாரணை அறிக்கைகள்", + "investigations": "விசாரணைகள்", + "investigations__date": "தேதி", + "investigations__ideal_value": "சிறந்த மதிப்பு", + "investigations__name": "பெயர்", + "investigations__range": "மதிப்பு வரம்பு", + "investigations__result": "முடிவு", + "investigations__unit": "அலகு", + "investigations_suggested": "விசாரணைகள் பரிந்துரைக்கப்பட்டுள்ளன", + "is": "உள்ளது", + "is_antenatal": "பிறப்புக்கு முந்தையது", + "is_emergency": "அவசரநிலை", + "is_emergency_case": "அவசர வழக்கு", + "is_it_upshift": "அது உயர்வானதா", + "is_this_an_emergency": "இது அவசரநிலையா?", + "is_this_an_upshift": "இது ஒரு உயர்வுதானா?", + "is_up_shift": "மாறிவிட்டது", + "is_upshift_case": "அப்ஷிஃப்ட் கேஸ்", + "landline": "இந்திய லேண்ட்லைன்", + "last_administered": "கடைசியாக நிர்வகிக்கப்பட்டது", + "last_edited": "கடைசியாக திருத்தப்பட்டது", + "last_modified": "கடைசியாக மாற்றப்பட்டது", + "last_name": "கடைசி பெயர்", + "last_online": "கடைசியாக ஆன்லைன்", + "last_serviced_on": "கடைசியாக சேவை செய்யப்பட்டது", + "latitude_invalid": "அட்சரேகை -90 மற்றும் 90 க்கு இடையில் இருக்க வேண்டும்", + "left": "விட்டு", + "linked_facilities": "இணைக்கப்பட்ட வசதிகள்", + "liquid_oxygen_capacity": "திரவ ஆக்ஸிஜன் திறன்", + "list_view": "பட்டியல் காட்சி", + "litres": "லிட்டர்கள்", + "litres_per_day": "லிட்டர்/நாள்", + "live": "வாழ்க", + "live_monitoring": "நேரடி கண்காணிப்பு", + "load_more": "மேலும் ஏற்றவும்", + "loading": "ஏற்றுகிறது...", + "local_body": "உள்ளூர் அமைப்பு", + "local_ipaddress": "உள்ளூர் ஐபி முகவரி", + "location": "இடம்", + "location_management": "இருப்பிட மேலாண்மை", + "log_lab_results": "பதிவு ஆய்வக முடிவுகள்", + "log_report": "பதிவு அறிக்கை", + "login": "உள்நுழைய", + "longitude_invalid": "தீர்க்கரேகை -180 மற்றும் 180 க்கு இடையில் இருக்க வேண்டும்", + "lsg": "Lsg", + "make_multiple_beds_label": "நீங்கள் பல படுக்கைகளை உருவாக்க விரும்புகிறீர்களா?", + "manage_prescriptions": "மருந்துகளை நிர்வகிக்கவும்", + "manufacturer": "உற்பத்தியாளர்", + "map_acronym": "வரைபடம்", + "mark_all_as_read": "அனைத்தையும் படித்ததாகக் குறிக்கவும்", + "mark_as_read": "படித்ததாகக் குறி", + "mark_as_unread": "படிக்காதது எனக் குறி", + "mark_this_transfer_as_complete_question": "இந்தப் பரிமாற்றம் முடிந்ததாக நிச்சயமாகக் குறிக்க விரும்புகிறீர்களா? இந்த நோயாளியை ஆரிஜின் வசதி இனி அணுகாது", + "mark_transfer_complete_confirmation": "இந்தப் பரிமாற்றம் முடிந்ததாக நிச்சயமாகக் குறிக்க விரும்புகிறீர்களா? இந்த நோயாளியை ஆரிஜின் வசதி இனி அணுகாது", + "max_dosage_24_hrs": "அதிகபட்சம். 24 மணி நேரத்தில் மருந்தளவு", + "max_dosage_in_24hrs_gte_base_dosage_error": "அதிகபட்சம். 24 மணிநேரத்தில் மருந்தளவு அடிப்படை அளவை விட அதிகமாகவோ அல்லது சமமாகவோ இருக்க வேண்டும்", + "max_size_for_image_uploaded_should_be": "பதிவேற்றப்பட்ட படத்திற்கான அதிகபட்ச அளவு இருக்க வேண்டும்", + "medical_worker": "மருத்துவ பணியாளர்", + "medicine": "மருந்து", + "medicine_administration_history": "மருத்துவ நிர்வாக வரலாறு", + "medicines_administered": "மருந்து (கள்) நிர்வகிக்கப்படுகிறது", + "medicines_administered_error": "மருந்துகளை வழங்குவதில் பிழை", + "middleware_hostname": "மிடில்வேர் ஹோஸ்ட்பெயர்", + "min_password_len_8": "குறைந்தபட்ச கடவுச்சொல் நீளம் 8", + "min_time_bw_doses": "குறைந்தபட்சம் நேரம் b/w அளவுகள்", + "mobile": "மொபைல்", + "mobile_number": "மொபைல் எண்", + "modification_caution_note": "ஒருமுறை சேர்த்தால் எந்த மாற்றமும் சாத்தியமில்லை", + "modified": "மாற்றியமைக்கப்பட்டது", + "modified_date": "மாற்றியமைக்கப்பட்ட தேதி", + "monitor": "கண்காணிக்கவும்", + "more_info": "மேலும் தகவல்", + "moving_camera": "நகரும் கேமரா", + "name": "பெயர்", + "name_of_hospital": "மருத்துவமனையின் பெயர்", + "name_of_shifting_approving_facility": "ஷிஃப்டிங் அங்கீகரிக்கும் வசதியின் பெயர்", + "nationality": "தேசியம்", + "never": "ஒருபோதும்", + "new_password": "புதிய கடவுச்சொல்", + "next_sessions": "அடுத்த அமர்வுகள்", + "no": "இல்லை", + "no_bed_types_found": "படுக்கை வகைகள் இல்லை", + "no_changes": "மாற்றங்கள் இல்லை", + "no_changes_made": "எந்த மாற்றமும் செய்யப்படவில்லை", + "no_consultation_updates": "ஆலோசனை அறிவிப்புகள் இல்லை", + "no_cover_photo_uploaded_for_this_facility": "இந்த வசதிக்காக அட்டைப் புகைப்படம் பதிவேற்றப்படவில்லை", + "no_data_found": "தரவு எதுவும் கிடைக்கவில்லை", + "no_duplicate_facility": "நீங்கள் நகல் வசதிகளை உருவாக்கக்கூடாது", + "no_facilities": "வசதிகள் எதுவும் கிடைக்கவில்லை", + "no_files_found": "{{type}} கோப்புகள் இல்லை", + "no_home_facility": "வீட்டு வசதி ஒதுக்கப்படவில்லை", + "no_investigation": "விசாரணை அறிக்கைகள் எதுவும் கிடைக்கவில்லை", + "no_investigation_suggestions": "விசாரணை பரிந்துரைகள் இல்லை", + "no_linked_facilities": "இணைக்கப்பட்ட வசதிகள் இல்லை", + "no_log_update_delta": "முந்தைய பதிவு புதுப்பித்தலுக்குப் பிறகு எந்த மாற்றமும் இல்லை", + "no_notices_for_you": "உங்களுக்கான அறிவிப்புகள் இல்லை.", + "no_patients_to_show": "காட்ட நோயாளிகள் இல்லை.", + "no_results_found": "முடிவுகள் எதுவும் கிடைக்கவில்லை", + "no_staff": "ஊழியர்கள் இல்லை", + "no_treating_physicians_available": "இந்த வசதியில் வீட்டு வசதி டாக்டர்கள் இல்லை. உங்கள் நிர்வாகியைத் தொடர்பு கொள்ளவும்.", + "no_users_found": "பயனர்கள் இல்லை", + "none": "இல்லை", + "normal": "இயல்பானது", + "not_specified": "குறிப்பிடப்படவில்லை", + "notes": "குறிப்புகள்", + "notes_placeholder": "உங்கள் குறிப்புகளைத் தட்டச்சு செய்யவும்", + "notification_permission_denied": "அறிவிப்பு அனுமதி நிராகரிக்கப்பட்டது", + "notification_permission_granted": "அறிவிப்பு அனுமதி அளிக்கப்பட்டது", + "number_of_aged_dependents_above_60": "வயதான சார்புடையவர்களின் எண்ணிக்கை (60 க்கு மேல்)", + "number_of_beds": "படுக்கைகளின் எண்ணிக்கை", + "number_of_beds_out_of_range_error": "படுக்கைகளின் எண்ணிக்கை 100க்கு மேல் இருக்கக்கூடாது", + "number_of_chronic_diseased_dependents": "நாள்பட்ட நோய்களைச் சார்ந்திருப்பவர்களின் எண்ணிக்கை", + "on": "அன்று", + "ongoing_medications": "தொடரும் மருந்துகள்", + "open": "திற", + "open_camera": "கேமராவைத் திற", + "open_live_monitoring": "நேரடி கண்காணிப்பைத் திறக்கவும்", + "optional": "விருப்பமானது", + "ordering": "ஆர்டர் செய்தல்", + "origin_facility": "தற்போதைய வசதி", + "oxygen_information": "ஆக்ஸிஜன் தகவல்", + "page_not_found": "பக்கம் கிடைக்கவில்லை", + "pain": "வலி", + "pain_chart_description": "வலியின் பகுதி மற்றும் தீவிரத்தை குறிக்கவும்", + "passport_number": "பாஸ்போர்ட் எண்", + "password": "கடவுச்சொல்", + "password_mismatch": "கடவுச்சொல் பொருந்தவில்லை", + "password_reset_failure": "கடவுச்சொல் மீட்டமைப்பு தோல்வியுற்றது!", + "password_reset_success": "கடவுச்சொல் வெற்றிகரமாக மீட்டமைக்கப்பட்டது!", + "password_sent": "கடவுச்சொல் மீட்டமை மின்னஞ்சல் அனுப்பப்பட்டது!", + "patient_address": "நோயாளியின் முகவரி", + "patient_category": "நோயாளி வகை", + "patient_consultation__admission": "சேர்க்கை தேதி", + "patient_consultation__consultation_notes": "பொதுவான வழிமுறைகள்", + "patient_consultation__dc_admission": "வீட்டு பராமரிப்பு தேதி தொடங்கியது", + "patient_consultation__ip": "ஐபி", + "patient_consultation__op": "OP", + "patient_consultation__special_instruction": "சிறப்பு வழிமுறைகள்", + "patient_consultation__treatment__plan": "திட்டம்", + "patient_consultation__treatment__summary": "சுருக்கம்", + "patient_consultation__treatment__summary__date": "தேதி", + "patient_consultation__treatment__summary__spo2": "SpO2", + "patient_consultation__treatment__summary__temperature": "வெப்பநிலை", + "patient_created": "நோயாளி உருவாக்கப்பட்டது", + "patient_name": "நோயாளி பெயர்", + "patient_no": "OP/IP எண்", + "patient_phone_number": "நோயாளியின் தொலைபேசி எண்", + "patient_registration__address": "முகவரி", + "patient_registration__age": "வயது", + "patient_registration__comorbidities": "கூட்டு நோய்கள்", + "patient_registration__comorbidities__details": "விவரங்கள்", + "patient_registration__comorbidities__disease": "நோய்", + "patient_registration__contact": "அவசரத் தொடர்பு", + "patient_registration__gender": "பாலினம்", + "patient_registration__name": "பெயர்", + "patient_state": "நோயாளி நிலை", + "patient_status": "நோயாளியின் நிலை", + "patient_transfer_birth_match_note": "குறிப்பு: பரிமாற்றக் கோரிக்கையைச் செயல்படுத்த, பிறந்த ஆண்டு நோயாளியுடன் பொருந்த வேண்டும்.", + "phone": "தொலைபேசி", + "phone_no": "தொலைபேசி எண்.", + "phone_number": "தொலைபேசி எண்", + "phone_number_at_current_facility": "தற்போதைய வசதியில் உள்ள தொடர்பு நபரின் தொலைபேசி எண்", + "pincode": "பின்கோடு", + "please_enter_a_reason_for_the_shift": "மாற்றத்திற்கான காரணத்தை உள்ளிடவும்.", + "please_select_a_facility": "வசதியைத் தேர்ந்தெடுக்கவும்", + "please_select_breathlessness_level": "மூச்சுத் திணறல் நிலையைத் தேர்ந்தெடுக்கவும்", + "please_select_facility_type": "வசதி வகையைத் தேர்ந்தெடுக்கவும்", + "please_select_patient_category": "நோயாளி வகையைத் தேர்ந்தெடுக்கவும்", + "please_select_preferred_vehicle_type": "விருப்பமான வாகன வகையைத் தேர்ந்தெடுக்கவும்", + "please_select_status": "தயவுசெய்து நிலையைத் தேர்ந்தெடுக்கவும்", + "please_upload_a_csv_file": "CSV கோப்பைப் பதிவேற்றவும்", + "post_your_comment": "உங்கள் கருத்தை பதிவிடவும்", + "powered_by": "மூலம் இயக்கப்படுகிறது", + "preferred_facility_type": "விருப்பமான வசதி வகை", + "preferred_vehicle": "விருப்பமான வாகனம்", + "prescription": "மருந்துச்சீட்டு", + "prescription_details": "மருந்துச் சீட்டு விவரங்கள்", + "prescription_discontinued": "மருந்துச் சீட்டு நிறுத்தப்பட்டது", + "prescription_logs": "மருந்துப் பதிவுகள்", + "prescription_medication": "பரிந்துரைக்கப்பட்ட மருந்து", + "prescription_medications": "பரிந்துரைக்கப்பட்ட மருந்துகள்", + "prescriptions__dosage_frequency": "மருந்தளவு & அதிர்வெண்", + "prescriptions__medicine": "மருந்து", + "prescriptions__route": "பாதை", + "prescriptions__start_date": "அன்று பரிந்துரைக்கப்பட்டது", + "prev_sessions": "முந்தைய அமர்வுகள்", + "principal": "அதிபர்", + "principal_diagnosis": "முதன்மை நோயறிதல்", + "print": "அச்சிடுக", + "print_referral_letter": "பரிந்துரை கடிதத்தை அச்சிடுங்கள்", + "prn_prescription": "PRN மருந்து", + "prn_prescriptions": "PRN பரிந்துரைகள்", + "procedure_suggestions": "செயல்முறை பரிந்துரைகள்", + "provisional": "தற்காலிகமானது", + "ration_card__APL": "ஏபிஎல்", + "ration_card__BPL": "பிபிஎல்", + "ration_card__NO_CARD": "அட்டை இல்லாதவர்", + "reason": "காரணம்", + "reason_for_discontinuation": "நிறுத்தத்திற்கான காரணம்", + "reason_for_edit": "திருத்தத்திற்கான காரணம்", + "reason_for_referral": "பரிந்துரைக்கான காரணம்", + "reason_for_shift": "மாற்றத்திற்கான காரணம்", + "recommended_aspect_ratio_for": "பரிந்துரைக்கப்பட்ட தோற்ற விகிதம்", + "record": "ஆடியோ பதிவு", + "record_delete_confirm": "இந்தப் பதிவை நிச்சயமாக நீக்க விரும்புகிறீர்களா?", + "record_has_been_deleted_successfully": "பதிவு வெற்றிகரமாக நீக்கப்பட்டது.", + "record_updates": "பதிவு புதுப்பிப்புகள்", + "recording": "பதிவு செய்தல்", + "redirected_to_create_consultation": "குறிப்பு: ஆலோசனை படிவத்தை உருவாக்க நீங்கள் திருப்பி விடப்படுவீர்கள். பரிமாற்ற செயல்முறையை முடிக்க படிவத்தை பூர்த்தி செய்யவும்", + "referral_letter": "பரிந்துரை கடிதம்", + "referred_to": "குறிப்பிடப்படுகிறது", + "refresh_list": "பட்டியலைப் புதுப்பிக்கவும்", + "refuted": "மறுத்தார்", + "register_hospital": "மருத்துவமனை பதிவு", + "register_page_title": "மருத்துவமனை நிர்வாகியாக பதிவு செய்யுங்கள்", + "reload": "மீண்டும் ஏற்றவும்", + "remove": "அகற்று", + "rename": "மறுபெயரிடவும்", + "report": "அறிக்கை", + "req_atleast_one_digit": "குறைந்தது ஒரு இலக்கமாவது தேவை", + "req_atleast_one_lowercase": "குறைந்தபட்சம் ஒரு சிறிய எழுத்து தேவை", + "req_atleast_one_symbol": "குறைந்தது ஒரு சின்னம் தேவை", + "req_atleast_one_uppercase": "குறைந்தபட்சம் ஒரு பெரிய வழக்கு தேவை", + "request_description": "கோரிக்கையின் விளக்கம்", + "request_description_placeholder": "உங்கள் விளக்கத்தை இங்கே தட்டச்சு செய்யவும்", + "request_title": "தலைப்பு கோரிக்கை", + "request_title_placeholder": "உங்கள் தலைப்பை இங்கே தட்டச்சு செய்யவும்", + "required": "தேவை", + "required_quantity": "தேவையான அளவு", + "reset": "மீட்டமை", + "reset_password": "கடவுச்சொல்லை மீட்டமை", + "resource_request": "ஆதார கோரிக்கை", + "result": "முடிவு", + "result_date": "முடிவு தேதி", + "result_details": "முடிவு விவரங்கள்", + "resume": "ரெஸ்யூம்", + "retake": "மீண்டும் எடுக்கவும்", + "return_to_care": "CARE பக்கத்துக்குத் திரும்பு", + "return_to_login": "உள்நுழைவுக்குத் திரும்பு", + "return_to_password_reset": "கடவுச்சொல் மீட்டமைப்புக்குத் திரும்பு", + "return_to_patient_dashboard": "நோயாளி டாஷ்போர்டுக்குத் திரும்பு", + "right": "சரி", + "route": "பாதை", + "sample_collection_date": "மாதிரி சேகரிப்பு தேதி", + "sample_format": "மாதிரி வடிவம்", + "sample_type": "மாதிரி வகை", + "save": "சேமிக்கவும்", + "save_and_continue": "சேமித்து தொடரவும்", + "save_investigation": "விசாரணையைச் சேமிக்கவும்", + "scan_asset_qr": "அசெட் க்யூஆர் ஸ்கேன்!", + "search_by_username": "பயனர்பெயர் மூலம் தேடவும்", + "search_for_facility": "வசதியைத் தேடுங்கள்", + "search_icd11_placeholder": "ICD-11 நோய் கண்டறிதல்களைத் தேடவும்", + "search_investigation_placeholder": "தேடல் விசாரணை & குழுக்கள்", + "search_patient": "நோயாளியைத் தேடுங்கள்", + "search_resource": "தேடல் ஆதாரம்", + "select": "தேர்ந்தெடு", + "select_date": "தேதியைத் தேர்ந்தெடுக்கவும்", + "select_facility_for_discharged_patients_warning": "டிஸ்சார்ஜ் செய்யப்பட்ட நோயாளிகளைப் பார்க்க வசதியைத் தேர்ந்தெடுக்க வேண்டும்.", + "select_for_administration": "நிர்வாகத்திற்கு தேர்ந்தெடுக்கவும்", + "select_groups": "குழுக்களைத் தேர்ந்தெடுக்கவும்", + "select_investigation": "விசாரணைகளைத் தேர்ந்தெடு (எல்லா விசாரணைகளும் இயல்பாகவே தேர்ந்தெடுக்கப்படும்)", + "select_investigation_groups": "விசாரணைக் குழுக்களைத் தேர்ந்தெடுக்கவும்", + "select_investigations": "விசாரணைகளைத் தேர்ந்தெடுக்கவும்", + "select_local_body": "உள்ளாட்சி அமைப்பைத் தேர்ந்தெடுக்கவும்", + "select_skills": "சில திறன்களைத் தேர்ந்தெடுத்து சேர்க்கவும்", + "select_wards": "வார்டுகளைத் தேர்ந்தெடுக்கவும்", + "send_email": "மின்னஞ்சல் அனுப்பவும்", + "send_reset_link": "மீட்டமை இணைப்பை அனுப்பவும்", + "serial_number": "வரிசை எண்", + "serviced_on": "சேவை செய்யப்பட்டது", + "session_expired": "அமர்வு காலாவதியானது", + "session_expired_msg": "உங்கள் அமர்வு காலாவதியானது போல் தெரிகிறது. இது செயலற்ற தன்மை காரணமாக இருக்கலாம். தொடர மீண்டும் உள்நுழையவும்.", + "set_average_weekly_working_hours_for": "சராசரி வாராந்திர வேலை நேரத்தை அமைக்கவும்", + "settings_and_filters": "அமைப்புகள் மற்றும் வடிப்பான்கள்", + "severity_of_breathlessness": "மூச்சுத் திணறலின் தீவிரம்", + "shift_request_updated_successfully": "ஷிப்ட் கோரிக்கை வெற்றிகரமாக புதுப்பிக்கப்பட்டது", + "shifting": "மாறுதல்", + "shifting_approval_facility": "ஒப்புதல் வசதியை மாற்றுதல்", + "shifting_approving_facility": "அங்கீகரிக்கும் வசதியை மாற்றுகிறது", + "shifting_approving_facility_can_not_be_empty": "ஷிஃப்டிங் அங்கீகரிக்கும் வசதி காலியாக இருக்க முடியாது.", + "shifting_deleted": "ஷிஃப்டிங் பதிவு வெற்றிகரமாக நீக்கப்பட்டது.", + "shifting_details": "விவரங்களை மாற்றுகிறது", + "shifting_status": "நிலை மாறுகிறது", + "show_all": "அனைத்தையும் காட்டு", + "show_all_notifications": "அனைத்தையும் காட்டு", + "show_default_presets": "இயல்புநிலை முன்னமைவுகளைக் காட்டு", + "show_patient_presets": "நோயாளியின் முன்னமைவுகளைக் காட்டு", + "show_unread_notifications": "படிக்காததைக் காட்டு", + "sign_out": "வெளியேறு", + "something_went_wrong": "ஏதோ தவறாகிவிட்டது..!", + "something_wrong": "ஏதோ தவறு நடந்துவிட்டது! பின்னர் மீண்டும் முயற்சிக்கவும்!", + "sort_by": "வரிசைப்படுத்து", + "source": "ஆதாரம்", + "srf_id": "SRF ஐடி", + "staff_list": "பணியாளர்கள் பட்டியல்", + "start_dosage": "தொடக்க மருந்தளவு", + "state": "மாநிலம்", + "status": "நிலை", + "stop": "நிறுத்து", + "stream_stop_due_to_inativity": "லைவ் ஃபீட் செயல்படாததால் ஸ்ட்ரீமிங் நிறுத்தப்படும்", + "stream_stopped_due_to_inativity": "லைவ் ஃபீட் செயல்படாததால் ஸ்ட்ரீமிங் நிறுத்தப்பட்டது", + "sub_category": "துணை வகை", + "submit": "சமர்ப்பிக்கவும்", + "submitting": "சமர்ப்பிக்கிறது", + "subscribe": "குழுசேர்", + "subscribe_on_this_device": "இந்தச் சாதனத்தில் குழுசேரவும்", + "subscription_error": "சந்தா பிழை", + "suggested_investigations": "பரிந்துரைக்கப்பட்ட விசாரணைகள்", + "summary": "சுருக்கம்", + "support": "ஆதரவு", + "switch": "மாறவும்", + "systolic": "சிஸ்டாலிக்", + "tachycardia": "டாக்ரிக்கார்டியா", + "target_dosage": "இலக்கு அளவு", + "test_type": "சோதனை வகை", + "titrate_dosage": "டைட்ரேட் அளவு", + "to_be_conducted": "நடத்தப்பட வேண்டும்", + "total_beds": "மொத்த படுக்கைகள்", + "total_users": "மொத்த பயனர்கள்", + "transfer_in_progress": "இடமாற்றம் நடைபெறுகிறது", + "transfer_to_receiving_facility": "பெறும் வசதிக்கு இடமாற்றம்", + "travel_within_last_28_days": "உள்நாட்டு/சர்வதேச பயணம் (கடந்த 28 நாட்களுக்குள்)", + "treating_doctor": "சிகிச்சை அளிக்கும் மருத்துவர்", + "treatment_summary": "சிகிச்சை சுருக்கம்", + "treatment_summary__head_title": "சிகிச்சை சுருக்கம்", + "treatment_summary__heading": "இடைக்கால சிகிச்சை சுருக்கம்", + "treatment_summary__print": "அச்சு சிகிச்சை சுருக்கம்", + "try_again_later": "பிறகு முயற்சிக்கவும்!", + "type_any_extra_comments_here": "கூடுதல் கருத்துகளை இங்கே தட்டச்சு செய்யவும்", + "type_b_cylinders": "பி வகை சிலிண்டர்கள்", + "type_c_cylinders": "சி வகை சிலிண்டர்கள்", + "type_d_cylinders": "டி வகை சிலிண்டர்கள்", + "type_to_search": "தேட தட்டச்சு செய்யவும்", + "type_your_comment": "உங்கள் கருத்தை உள்ளிடவும்", + "type_your_reason_here": "உங்கள் காரணத்தை இங்கே தட்டச்சு செய்யவும்", + "unconfirmed": "உறுதி செய்யப்படவில்லை", + "unique_id": "தனித்துவமான ஐடி", + "unknown": "தெரியவில்லை", + "unsubscribe": "குழுவிலகவும்", + "unsubscribe_failed": "குழுவிலக முடியவில்லை.", + "unsupported_browser": "ஆதரிக்கப்படாத உலாவி", + "unsupported_browser_description": "உங்கள் உலாவி ({{name}} பதிப்பு {{version}}) ஆதரிக்கப்படவில்லை. உங்கள் உலாவியை சமீபத்திய பதிப்பிற்கு புதுப்பிக்கவும் அல்லது சிறந்த அனுபவத்திற்காக ஆதரிக்கப்படும் உலாவிக்கு மாறவும்.", + "up": "மேலே", + "up_shift": "அப் ஷிப்ட்", + "update": "புதுப்பிக்கவும்", + "update_asset": "சொத்தைப் புதுப்பிக்கவும்", + "update_asset_service_record": "சொத்து சேவை பதிவை புதுப்பிக்கவும்", + "update_bed": "படுக்கையைப் புதுப்பிக்கவும்", + "update_facility": "மேம்படுத்தல் வசதி", + "update_facility_middleware_success": "வசதி மிடில்வேர் வெற்றிகரமாக புதுப்பிக்கப்பட்டது", + "update_log": "புதுப்பிப்பு பதிவேடு", + "update_record": "பதிவைப் புதுப்பிக்கவும்", + "update_record_for_asset": "சொத்துக்கான பதிவைப் புதுப்பிக்கவும்", + "update_shift_request": "ஷிப்ட் கோரிக்கையைப் புதுப்பிக்கவும்", + "update_status_details": "நிலை/விவரங்களைப் புதுப்பிக்கவும்", + "updated": "புதுப்பிக்கப்பட்டது", + "updating": "புதுப்பிக்கிறது", + "upload": "பதிவேற்றவும்", + "upload_an_image": "ஒரு படத்தை பதிவேற்றவும்", + "upload_headings__consultation": "புதிய ஆலோசனைக் கோப்பைப் பதிவேற்றவும்", + "upload_headings__patient": "புதிய நோயாளி கோப்பை பதிவேற்றவும்", + "upload_headings__sample_report": "மாதிரி அறிக்கையைப் பதிவேற்றவும்", + "upload_headings__supporting_info": "துணைத் தகவலைப் பதிவேற்றவும்", + "uploading": "பதிவேற்றுகிறது", + "user_deleted_successfuly": "பயனர் வெற்றிகரமாக நீக்கப்பட்டார்", + "user_management": "பயனர் மேலாண்மை", + "username": "பயனர்பெயர்", + "users": "பயனர்கள்", + "vehicle_preference": "வாகன விருப்பம்", + "vendor_name": "விற்பனையாளர் பெயர்", + "view": "காண்க", + "view_abdm_records": "ABDM பதிவுகளைப் பார்க்கவும்", + "view_asset": "சொத்துக்களைப் பார்க்கவும்", + "view_details": "விவரங்களைக் காண்க", + "view_faciliy": "பார்வை வசதி", + "view_patients": "நோயாளிகளைப் பார்க்கவும்", + "view_users": "பயனர்களைக் காண்க", + "virtual_nursing_assistant": "மெய்நிகர் நர்சிங் உதவியாளர்", + "ward": "வார்டு", + "warranty_amc_expiry": "உத்தரவாதம் / AMC காலாவதி", + "what_facility_assign_the_patient_to": "நோயாளியை எந்த வசதிக்கு ஒதுக்க விரும்புகிறீர்கள்", + "why_the_asset_is_not_working": "சொத்து ஏன் வேலை செய்யவில்லை?", + "working_status": "வேலை நிலை", + "yes": "ஆம்", + "yet_to_be_decided": "இன்னும் முடிவு செய்யப்படவில்லை", + "you_need_at_least_a_location_to_create_an_assest": "ஒரு அசெஸ்ட்டை உருவாக்க குறைந்தபட்சம் ஒரு இருப்பிடமாவது தேவை.", + "zoom_in": "பெரிதாக்கவும்", + "zoom_out": "பெரிதாக்கவும்" +} diff --git a/src/Locale/ta/Asset.json b/src/Locale/ta/Asset.json deleted file mode 100644 index 01b803bbfb7..00000000000 --- a/src/Locale/ta/Asset.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "create_asset": "சொத்தை உருவாக்கவும்", - "edit_history": "வரலாற்றைத் திருத்தவும்", - "update_record_for_asset": "சொத்துக்கான பதிவைப் புதுப்பிக்கவும்", - "edited_on": "அன்று திருத்தப்பட்டது", - "edited_by": "திருத்தியது", - "serviced_on": "சேவை செய்யப்பட்டது", - "notes": "குறிப்புகள்", - "back": "மீண்டும்", - "close": "மூடு", - "update_asset_service_record": "சொத்து சேவை பதிவை புதுப்பிக்கவும்", - "eg_details_on_functionality_service_etc": "எ.கா. செயல்பாடு, சேவை போன்றவை பற்றிய விவரங்கள்.", - "updating": "புதுப்பிக்கிறது", - "update": "புதுப்பிக்கவும்", - "are_you_still_watching": "நீங்கள் இன்னும் பார்க்கிறீர்களா?", - "stream_stop_due_to_inativity": "லைவ் ஃபீட் செயல்படாததால் ஸ்ட்ரீமிங் நிறுத்தப்படும்", - "stream_stopped_due_to_inativity": "லைவ் ஃபீட் செயல்படாததால் ஸ்ட்ரீமிங் நிறுத்தப்பட்டது", - "continue_watching": "தொடர்ந்து பார்க்கவும்", - "resume": "ரெஸ்யூம்" -} \ No newline at end of file diff --git a/src/Locale/ta/Auth.json b/src/Locale/ta/Auth.json deleted file mode 100644 index 8562d59b9db..00000000000 --- a/src/Locale/ta/Auth.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "username": "பயனர்பெயர்", - "password": "கடவுச்சொல்", - "new_password": "புதிய கடவுச்சொல்", - "confirm_password": "கடவுச்சொல்லை உறுதிப்படுத்தவும்", - "first_name": "முதல் பெயர்", - "last_name": "கடைசி பெயர்", - "email": "மின்னஞ்சல் முகவரி", - "phone_number": "தொலைபேசி எண்", - "district": "மாவட்டம்", - "gender": "பாலினம்", - "age": "வயது", - "login": "உள்நுழைய", - "password_mismatch": "கடவுச்சொல் பொருந்தவில்லை", - "enter_valid_age": "செல்லுபடியாகும் வயதை உள்ளிடவும்", - "invalid_username": "தேவை. 150 எழுத்துக்கள் அல்லது குறைவானவை. எழுத்துக்கள், எண்கள் மற்றும் @ /. / + / - / _ மட்டும்.", - "invalid_password": "கடவுச்சொல் தேவைகளை பூர்த்தி செய்யவில்லை", - "invalid_email": "செல்லுபடியாகும் மின்னஞ்சல் முகவரியை உள்ளிடவும்", - "invalid_phone": "செல்லுபடியாகும் தொலைபேசி எண்ணை உள்ளிடவும்", - "register_hospital": "மருத்துவமனை பதிவு", - "register_page_title": "மருத்துவமனை நிர்வாகியாக பதிவு செய்யுங்கள்", - "auth_login_title": "அங்கீகரிக்கப்பட்ட உள்நுழைவு", - "forget_password": "கடவுச்சொல்லை மறந்துவிட்டீர்களா?", - "forget_password_instruction": "உங்கள் பயனர்பெயரை உள்ளிடவும், உங்கள் கடவுச்சொல்லை மீட்டமைக்க ஒரு இணைப்பை நாங்கள் உங்களுக்கு அனுப்புவோம்.", - "send_reset_link": "மீட்டமை இணைப்பை அனுப்பவும்", - "already_a_member": "ஏற்கனவே உறுப்பினரா?", - "password_sent": "கடவுச்சொல் மீட்டமை மின்னஞ்சல் அனுப்பப்பட்டது!", - "password_reset_success": "கடவுச்சொல் வெற்றிகரமாக மீட்டமைக்கப்பட்டது!", - "password_reset_failure": "கடவுச்சொல் மீட்டமைப்பு தோல்வியுற்றது!", - "reset_password": "கடவுச்சொல்லை மீட்டமை", - "available_in": "கிடைக்கும் மொழிகள்", - "sign_out": "வெளியேறு", - "back_to_login": "உள்நுழைவு பக்கத்திற்குத் திரும்பு", - "min_password_len_8": "குறைந்தபட்ச கடவுச்சொல் நீளம் 8", - "req_atleast_one_digit": "குறைந்தது ஒரு இலக்கமாவது தேவை", - "req_atleast_one_uppercase": "குறைந்தபட்சம் ஒரு பெரிய வழக்கு தேவை", - "req_atleast_one_lowercase": "குறைந்தபட்சம் ஒரு சிறிய எழுத்து தேவை", - "req_atleast_one_symbol": "குறைந்தது ஒரு சின்னம் தேவை" -} diff --git a/src/Locale/ta/Bed.json b/src/Locale/ta/Bed.json deleted file mode 100644 index e89a0db322b..00000000000 --- a/src/Locale/ta/Bed.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "bed_search_placeholder": "படுக்கைகளின் பெயரைக் கொண்டு தேடுங்கள்", - "BED_WITH_OXYGEN_SUPPORT": "ஆக்ஸிஜன் ஆதரவுடன் படுக்கை", - "REGULAR": "வழக்கமான", - "ICU": "ஐசியூ", - "ISOLATION": "தனிமைப்படுத்துதல்", - "add_beds": "படுக்கைகளைச் சேர்", - "update_bed": "படுக்கையைப் புதுப்பிக்கவும்", - "bed_type": "படுக்கை வகை", - "make_multiple_beds_label": "நீங்கள் பல படுக்கைகளை உருவாக்க விரும்புகிறீர்களா?", - "number_of_beds": "படுக்கைகளின் எண்ணிக்கை", - "number_of_beds_out_of_range_error": "படுக்கைகளின் எண்ணிக்கை 100க்கு மேல் இருக்கக்கூடாது" -} diff --git a/src/Locale/ta/Common.json b/src/Locale/ta/Common.json deleted file mode 100644 index 2a9bc4458b5..00000000000 --- a/src/Locale/ta/Common.json +++ /dev/null @@ -1,223 +0,0 @@ -{ - "goal": "டிஜிட்டல் கருவிகளைப் பயன்படுத்தி பொது சுகாதார சேவைகளின் தரம் மற்றும் அணுகல்தன்மையை தொடர்ந்து மேம்படுத்துவதே எங்கள் குறிக்கோள்.", - "something_wrong": "ஏதோ தவறு நடந்துவிட்டது! பின்னர் மீண்டும் முயற்சிக்கவும்!", - "try_again_later": "பிறகு முயற்சிக்கவும்!", - "contribute_github": "Github-ல் பங்களிப்பு செய்யுங்கள்", - "footer_body": "கொரோனா சேஃப் நெட்வொர்க் என்பது ஒரு திறந்த மூல பொது பயன்பாடாகும், இது கேரள அரசாங்கத்தின் முழு புரிதலுடனும் ஆதரவிற்கும் அரசாங்க முயற்சிகளை ஆதரிக்க ஒரு மாதிரியில் பணிபுரியும் புதுமைப்பித்தர்கள் மற்றும் தன்னார்வலர்களின் பல ஒழுக்கக் குழுவால் வடிவமைக்கப்பட்டுள்ளது.", - "reset": "மீட்டமை", - "download": "பதிவிறக்கவும்", - "downloads": "பதிவிறக்கங்கள்", - "downloading": "பதிவிறக்குகிறது", - "generating": "உருவாக்குகிறது", - "send_email": "மின்னஞ்சல் அனுப்பவும்", - "email_address": "மின்னஞ்சல் முகவரி", - "email_success": "விரைவில் மின்னஞ்சல் அனுப்புவோம். உங்கள் இன்பாக்ஸை சரிபார்க்கவும்.", - "disclaimer": "மறுப்பு", - "category": "வகை", - "sub_category": "துணை வகை", - "download_type": "பதிவிறக்க வகை", - "state": "மாநிலம்", - "district": "மாவட்டம்", - "location": "இடம்", - "ward": "வார்டு", - "Notice Board": "அறிவிப்பு பலகை", - "Assets": "சொத்துக்கள்", - "Notifications": "அறிவிப்புகள்", - "Submit": "சமர்ப்பிக்கவும்", - "Cancel": "ரத்து செய்", - "back": "மீண்டும்", - "powered_by": "மூலம் இயக்கப்படுகிறது", - "care": "கவனிப்பு", - "something_went_wrong": "ஏதோ தவறாகிவிட்டது..!", - "stop": "நிறுத்து", - "record": "ஆடியோ பதிவு", - "recording": "பதிவு செய்தல்", - "yes": "ஆம்", - "no": "இல்லை", - "status": "நிலை", - "created": "உருவாக்கப்பட்டது", - "modified": "மாற்றியமைக்கப்பட்டது", - "updated": "புதுப்பிக்கப்பட்டது", - "update": "புதுப்பிக்கவும்", - "configure": "கட்டமைக்கவும்", - "assigned_to": "க்கு ஒதுக்கப்பட்டது", - "cancel": "ரத்து செய்", - "clear": "தெளிவு", - "apply": "விண்ணப்பிக்கவும்", - "filter_by": "வடிகட்டவும்", - "filter": "வடிகட்டி", - "settings_and_filters": "அமைப்புகள் மற்றும் வடிப்பான்கள்", - "ordering": "ஆர்டர் செய்தல்", - "phone_number": "தொலைபேசி எண்", - "international_mobile": "சர்வதேச மொபைல்", - "indian_mobile": "இந்திய மொபைல்", - "mobile": "மொபைல்", - "landline": "இந்திய லேண்ட்லைன்", - "support": "ஆதரவு", - "emergency_contact_number": "அவசர தொடர்பு எண்", - "last_modified": "கடைசியாக மாற்றப்பட்டது", - "patient_address": "நோயாளியின் முகவரி", - "all_details": "அனைத்து விவரங்களும்", - "confirm": "உறுதிப்படுத்தவும்", - "refresh_list": "பட்டியலைப் புதுப்பிக்கவும்", - "last_edited": "கடைசியாக திருத்தப்பட்டது", - "audit_log": "தணிக்கை பதிவு", - "comments": "கருத்துகள்", - "contact_person_number": "தொடர்பு நபர் எண்", - "referral_letter": "பரிந்துரை கடிதம்", - "close": "மூடு", - "print": "அச்சிடுக", - "print_referral_letter": "பரிந்துரை கடிதத்தை அச்சிடுங்கள்", - "date_of_positive_covid_19_swab": "பாசிட்டிவ் கோவிட் 19 ஸ்வாப் தேதி", - "patient_no": "OP/IP எண்", - "date_of_admission": "சேர்க்கை தேதி", - "india_1": "இந்தியா", - "unique_id": "தனித்துவமான ஐடி", - "date_and_time": "தேதி மற்றும் நேரம்", - "facility_type": "வசதி வகை", - "number_of_chronic_diseased_dependents": "நாள்பட்ட நோய்களைச் சார்ந்திருப்பவர்களின் எண்ணிக்கை", - "number_of_aged_dependents_above_60": "வயதான சார்புடையவர்களின் எண்ணிக்கை (60 க்கு மேல்)", - "ongoing_medications": "தொடரும் மருந்துகள்", - "countries_travelled": "நாடுகள் பயணம் செய்தன", - "travel_within_last_28_days": "உள்நாட்டு/சர்வதேச பயணம் (கடந்த 28 நாட்களுக்குள்)", - "estimated_contact_date": "மதிப்பிடப்பட்ட தொடர்பு தேதி", - "blood_group": "இரத்தக் குழு", - "date_of_birth": "பிறந்த தேதி", - "date_of_test": "தேர்வு தேதி", - "srf_id": "SRF ஐடி", - "contact_number": "தொடர்பு எண்", - "diagnosis": "நோய் கண்டறிதல்", - "copied_to_clipboard": "கிளிப்போர்டுக்கு நகலெடுக்கப்பட்டது", - "age": "வயது", - "is": "உள்ளது", - "reason": "காரணம்", - "description": "விளக்கம்", - "name": "பெயர்", - "address": "முகவரி", - "phone": "தொலைபேசி", - "nationality": "தேசியம்", - "allergies": "ஒவ்வாமை", - "type_your_comment": "உங்கள் கருத்தை உள்ளிடவும்", - "any_other_comments": "வேறு ஏதேனும் கருத்துகள்", - "loading": "ஏற்றுகிறது", - "facility": "வசதி", - "local_body": "உள்ளூர் அமைப்பு", - "filters": "வடிப்பான்கள்", - "unknown": "தெரியவில்லை", - "active": "செயலில்", - "completed": "முடிக்கப்பட்டது", - "on": "அன்று", - "open": "திற", - "features": "அம்சங்கள்", - "pincode": "பின்கோடு", - "required": "தேவை", - "field_required": "இந்த புலம் தேவை", - "litres": "லிட்டர்கள்", - "litres_per_day": "லிட்டர்/நாள்", - "invalid_pincode": "தவறான பின்கோடு", - "invalid_phone_number": "தவறான தொலைபேசி எண்", - "latitude_invalid": "அட்சரேகை -90 மற்றும் 90 க்கு இடையில் இருக்க வேண்டும்", - "longitude_invalid": "தீர்க்கரேகை -180 மற்றும் 180 க்கு இடையில் இருக்க வேண்டும்", - "save": "சேமிக்கவும்", - "continue": "தொடரவும்", - "save_and_continue": "சேமித்து தொடரவும்", - "select": "தேர்ந்தெடு", - "lsg": "Lsg", - "delete": "நீக்கு", - "remove": "அகற்று", - "max_size_for_image_uploaded_should_be": "பதிவேற்றப்பட்ட படத்திற்கான அதிகபட்ச அளவு இருக்க வேண்டும்", - "allowed_formats_are": "அனுமதிக்கப்பட்ட வடிவங்கள்", - "recommended_aspect_ratio_for": "பரிந்துரைக்கப்பட்ட தோற்ற விகிதம்", - "drag_drop_image_to_upload": "பதிவேற்ற படத்தை இழுத்து விடவும்", - "upload_an_image": "ஒரு படத்தை பதிவேற்றவும்", - "upload": "பதிவேற்றவும்", - "uploading": "பதிவேற்றுகிறது", - "switch": "மாறவும்", - "capture": "பிடிப்பு", - "retake": "மீண்டும் எடுக்கவும்", - "submit": "சமர்ப்பிக்கவும்", - "camera": "கேமரா", - "submitting": "சமர்ப்பிக்கிறது", - "view_details": "விவரங்களைக் காண்க", - "type_to_search": "தேட தட்டச்சு செய்யவும்", - "show_all": "அனைத்தையும் காட்டு", - "hide": "மறை", - "select_skills": "சில திறன்களைத் தேர்ந்தெடுத்து சேர்க்கவும்", - "contact_your_admin_to_add_skills": "திறன்களைச் சேர்க்க உங்கள் நிர்வாகியைத் தொடர்புகொள்ளவும்", - "add": "சேர்", - "add_as": "என சேர்", - "sort_by": "வரிசைப்படுத்து", - "none": "இல்லை", - "choose_file": "சாதனத்திலிருந்து பதிவேற்றவும்", - "open_camera": "கேமராவைத் திற", - "file_preview": "கோப்பு முன்னோட்டம்", - "file_preview_not_supported": "இந்தக் கோப்பை முன்னோட்டமிட முடியவில்லை. பதிவிறக்கம் செய்து பாருங்கள்.", - "view_faciliy": "பார்வை வசதி", - "view_patients": "நோயாளிகளைப் பார்க்கவும்", - "frequency": "அதிர்வெண்", - "days": "நாட்கள்", - "never": "ஒருபோதும்", - "notes": "குறிப்புகள்", - "add_notes": "குறிப்புகளைச் சேர்க்கவும்", - "notes_placeholder": "உங்கள் குறிப்புகளைத் தட்டச்சு செய்யவும்", - "optional": "விருப்பமானது", - "discontinue": "நிறுத்து", - "discontinued": "நிறுத்தப்பட்டது", - "not_specified": "குறிப்பிடப்படவில்லை", - "all_changes_have_been_saved": "அனைத்து மாற்றங்களும் சேமிக்கப்பட்டன", - "no_data_found": "தரவு எதுவும் கிடைக்கவில்லை", - "edit": "திருத்தவும்", - "clear_selection": "தெளிவான தேர்வு", - "select_date": "தேதியைத் தேர்ந்தெடுக்கவும்", - "DD/MM/YYYY": "DD/MM/YYYY", - "clear_all_filters": "அனைத்து வடிப்பான்களையும் அழிக்கவும்", - "summary": "சுருக்கம்", - "report": "அறிக்கை", - "treating_doctor": "சிகிச்சை அளிக்கும் மருத்துவர்", - "ration_card__NO_CARD": "அட்டை இல்லாதவர்", - "ration_card__BPL": "பிபிஎல்", - "ration_card__APL": "ஏபிஎல்", - "empty_date_time": "--:-- --; ------------", - "caution": "எச்சரிக்கை", - "feed_optimal_experience_for_phones": "சிறந்த பார்வை அனுபவத்திற்கு, உங்கள் சாதனத்தைச் சுழற்றுவதைக் கவனியுங்கள்.", - "feed_optimal_experience_for_apple_phones": "சிறந்த பார்வை அனுபவத்திற்கு, உங்கள் சாதனத்தைச் சுழற்றுவதைக் கவனியுங்கள். உங்கள் சாதன அமைப்புகளில் தானாகச் சுழற்றுவது இயக்கப்பட்டிருப்பதை உறுதிசெய்யவும்.", - "action_irreversible": "இந்த நடவடிக்கை மீள முடியாதது", - "GENDER__1": "ஆண்", - "GENDER__2": "பெண்", - "GENDER__3": "பைனரி அல்லாத", - "normal": "இயல்பானது", - "done": "முடிந்தது", - "view": "காண்க", - "rename": "மறுபெயரிடவும்", - "more_info": "மேலும் தகவல்", - "archive": "காப்பகம்", - "discard": "நிராகரி", - "live": "வாழ்க", - "discharged": "வெளியேற்றப்பட்டது", - "archived": "காப்பகப்படுத்தப்பட்டது", - "no_changes_made": "எந்த மாற்றமும் செய்யப்படவில்லை", - "user_deleted_successfuly": "பயனர் வெற்றிகரமாக நீக்கப்பட்டார்", - "users": "பயனர்கள்", - "are_you_sure_want_to_delete": "{{name}}ஐ நிச்சயமாக நீக்க விரும்புகிறீர்களா?", - "oxygen_information": "ஆக்ஸிஜன் தகவல்", - "deleted_successfully": "{{name}} வெற்றிகரமாக நீக்கப்பட்டது", - "delete_item": "{{name}}ஐ நீக்கவும்", - "unsupported_browser": "ஆதரிக்கப்படாத உலாவி", - "unsupported_browser_description": "உங்கள் உலாவி ({{name}} பதிப்பு {{version}}) ஆதரிக்கப்படவில்லை. உங்கள் உலாவியை சமீபத்திய பதிப்பிற்கு புதுப்பிக்கவும் அல்லது சிறந்த அனுபவத்திற்காக ஆதரிக்கப்படும் உலாவிக்கு மாறவும்.", - "SORT_OPTIONS__-created_date": "புதிதாக உருவாக்கப்பட்ட தேதி முதலில்", - "SORT_OPTIONS__created_date": "பழைய உருவாக்கப்பட்ட தேதி முதலில்", - "SORT_OPTIONS__-category_severity": "அதிக தீவிரத்தன்மை பிரிவு முதலில்", - "SORT_OPTIONS__category_severity": "குறைந்த தீவிரத்தன்மை வகை முதலில்", - "SORT_OPTIONS__-modified_date": "முதலில் புதுப்பிக்கப்பட்ட தேதி", - "SORT_OPTIONS__modified_date": "பழைய புதுப்பிக்கப்பட்ட தேதி முதலில்", - "SORT_OPTIONS__facility__name,last_consultation__current_bed__bed__name": "படுக்கை எண் 1-N", - "SORT_OPTIONS__facility__name,-last_consultation__current_bed__bed__name": "படுக்கை எண். N-1", - "SORT_OPTIONS__-review_time": "சமீபத்திய மதிப்பாய்வு தேதி முதலில்", - "SORT_OPTIONS__review_time": "பழைய மதிப்பாய்வு தேதி முதலில்", - "SORT_OPTIONS__taken_at": "முதலில் எடுக்கப்பட்ட பழைய தேதி", - "SORT_OPTIONS__-taken_at": "சமீபத்தில் எடுக்கப்பட்ட தேதி முதலில்", - "SORT_OPTIONS__name": "நோயாளியின் பெயர் AZ", - "SORT_OPTIONS__-name": "நோயாளியின் பெயர் ZA", - "SORT_OPTIONS__bed__name": "படுக்கை எண் 1-N", - "SORT_OPTIONS__-bed__name": "படுக்கை எண். N-1" -} \ No newline at end of file diff --git a/src/Locale/ta/Consultation.json b/src/Locale/ta/Consultation.json deleted file mode 100644 index 60de0264307..00000000000 --- a/src/Locale/ta/Consultation.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "no_consultation_updates": "ஆலோசனை அறிவிப்புகள் இல்லை", - "consultation_updates": "ஆலோசனை புதுப்பிப்புகள்", - "update_log": "புதுப்பிப்பு பதிவேடு", - "record_updates": "பதிவு புதுப்பிப்புகள்", - "log_lab_results": "பதிவு ஆய்வக முடிவுகள்", - "no_log_update_delta": "முந்தைய பதிவு புதுப்பித்தலுக்குப் பிறகு எந்த மாற்றமும் இல்லை", - "virtual_nursing_assistant": "மெய்நிகர் நர்சிங் உதவியாளர்", - "discharge": "வெளியேற்றம்", - "discharge_summary": "வெளியேற்ற சுருக்கம்", - "discharge_from_care": "CARE இலிருந்து வெளியேற்றம்", - "generating_discharge_summary": "வெளியேற்ற சுருக்கத்தை உருவாக்குகிறது", - "discharge_summary_not_ready": "டிஸ்சார்ஜ் சுருக்கம் இன்னும் தயாராகவில்லை.", - "download_discharge_summary": "வெளியேற்ற சுருக்கத்தைப் பதிவிறக்கவும்", - "email_discharge_summary_description": "டிஸ்சார்ஜ் சுருக்கத்தைப் பெற உங்கள் சரியான மின்னஞ்சல் முகவரியை உள்ளிடவும்", - "generated_summary_caution": "இது CARE அமைப்பில் கைப்பற்றப்பட்ட தகவலைப் பயன்படுத்தி கணினியில் உருவாக்கப்பட்ட சுருக்கமாகும்.", - "NORMAL": "சுருக்கமான புதுப்பிப்பு", - "VENTILATOR": "விரிவான புதுப்பிப்பு", - "DOCTORS_LOG": "முன்னேற்றக் குறிப்பு", - "AUTOMATED": "தானியங்கி", - "TELEMEDICINE": "டெலிமெடிசின்", - "investigations": "விசாரணைகள்", - "search_investigation_placeholder": "தேடல் விசாரணை & குழுக்கள்", - "save_investigation": "விசாரணையைச் சேமிக்கவும்", - "investigation_reports": "விசாரணை அறிக்கைகள்", - "no_investigation": "விசாரணை அறிக்கைகள் எதுவும் கிடைக்கவில்லை", - "investigations_suggested": "விசாரணைகள் பரிந்துரைக்கப்பட்டுள்ளன", - "to_be_conducted": "நடத்தப்பட வேண்டும்", - "log_report": "பதிவு அறிக்கை", - "no_investigation_suggestions": "விசாரணை பரிந்துரைகள் இல்லை", - "select_investigation": "விசாரணைகளைத் தேர்ந்தெடு (எல்லா விசாரணைகளும் இயல்பாகவே தேர்ந்தெடுக்கப்படும்)", - "select_investigations": "விசாரணைகளைத் தேர்ந்தெடுக்கவும்", - "get_tests": "சோதனைகளைப் பெறுங்கள்", - "select_investigation_groups": "விசாரணைக் குழுக்களைத் தேர்ந்தெடுக்கவும்", - "select_groups": "குழுக்களைத் தேர்ந்தெடுக்கவும்", - "generate_report": "அறிக்கையை உருவாக்கவும்", - "prev_sessions": "முந்தைய அமர்வுகள்", - "next_sessions": "அடுத்த அமர்வுகள்", - "no_changes": "மாற்றங்கள் இல்லை", - "back_to_consultation": "ஆலோசனைக்குத் திரும்பு", - "no_treating_physicians_available": "இந்த வசதியில் வீட்டு வசதி டாக்டர்கள் இல்லை. உங்கள் நிர்வாகியைத் தொடர்பு கொள்ளவும்.", - "encounter_suggestion_edit_disallowed": "திருத்த ஆலோசனையில் இந்த விருப்பத்திற்கு மாற அனுமதிக்கப்படவில்லை", - "encounter_suggestion__A": "சேர்க்கை", - "encounter_suggestion__DC": "வீட்டு பராமரிப்பு", - "encounter_suggestion__OP": "வெளி நோயாளி வருகை", - "encounter_suggestion__DD": "ஆலோசனை", - "encounter_suggestion__HI": "ஆலோசனை", - "encounter_suggestion__R": "ஆலோசனை", - "encounter_date_field_label__A": "வசதிக்கான சேர்க்கை தேதி மற்றும் நேரம்", - "encounter_date_field_label__DC": "வீட்டு பராமரிப்பு தொடங்கும் தேதி மற்றும் நேரம்", - "encounter_date_field_label__OP": "வெளி நோயாளி வருகையின் தேதி மற்றும் நேரம்", - "encounter_date_field_label__DD": "கலந்தாய்வு தேதி & நேரம்", - "encounter_date_field_label__HI": "கலந்தாய்வு தேதி & நேரம்", - "encounter_date_field_label__R": "கலந்தாய்வு தேதி & நேரம்", - "back_dated_encounter_date_caution": "நீங்கள் ஒரு சந்திப்பை உருவாக்குகிறீர்கள்", - "encounter_duration_confirmation": "இந்த சந்திப்பின் காலம் இருக்கும்", - "consultation_notes": "பொதுவான வழிமுறைகள் (ஆலோசனை)", - "procedure_suggestions": "செயல்முறை பரிந்துரைகள்" -} diff --git a/src/Locale/ta/CoverImageEdit.json b/src/Locale/ta/CoverImageEdit.json deleted file mode 100644 index bf58acd2720..00000000000 --- a/src/Locale/ta/CoverImageEdit.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "edit_cover_photo": "அட்டைப் படத்தைத் திருத்து", - "no_cover_photo_uploaded_for_this_facility": "இந்த வசதிக்காக அட்டைப் புகைப்படம் பதிவேற்றப்படவில்லை", - "capture_cover_photo": "அட்டைப் படத்தைப் பிடிக்கவும்" -} diff --git a/src/Locale/ta/Diagnosis.json b/src/Locale/ta/Diagnosis.json deleted file mode 100644 index c06a6901533..00000000000 --- a/src/Locale/ta/Diagnosis.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "diagnosis": "நோய் கண்டறிதல்", - "diagnoses": "நோய் கண்டறிகிறது", - "diagnosis_already_added": "இந்த நோயறிதல் ஏற்கனவே சேர்க்கப்பட்டது", - "principal": "அதிபர்", - "principal_diagnosis": "முதன்மை நோயறிதல்", - "unconfirmed": "உறுதி செய்யப்படவில்லை", - "provisional": "தற்காலிகமானது", - "differential": "வித்தியாசமான", - "confirmed": "உறுதி செய்யப்பட்டது", - "refuted": "மறுத்தார்", - "entered-in-error": "தவறுதலாக உள்ளிடப்பட்டது", - "help_unconfirmed": "இதை உறுதிப்படுத்தப்பட்ட நிலையாகக் கருதுவதற்கு போதுமான நோயறிதல் மற்றும்/அல்லது மருத்துவ சான்றுகள் இல்லை.", - "help_provisional": "இது ஒரு தற்காலிக நோயறிதல் - இன்னும் ஒரு வேட்பாளர் பரிசீலனையில் உள்ளது.", - "help_differential": "சாத்தியமான (மற்றும் பொதுவாக பரஸ்பரம் பிரத்தியேகமான) நோயறிதல்களின் தொகுப்பில் ஒன்று கண்டறியும் செயல்முறை மற்றும் பூர்வாங்க சிகிச்சையை மேலும் வழிகாட்டும்.", - "help_confirmed": "இதை உறுதிப்படுத்தப்பட்ட நிலையாகக் கருதுவதற்கு போதுமான நோயறிதல் மற்றும்/அல்லது மருத்துவ சான்றுகள் உள்ளன.", - "help_refuted": "இந்த நிலை அடுத்தடுத்த நோயறிதல் மற்றும் மருத்துவ சான்றுகளால் நிராகரிக்கப்பட்டது.", - "help_entered-in-error": "அறிக்கை பிழையாக உள்ளிடப்பட்டது, அது செல்லாது.", - "search_icd11_placeholder": "ICD-11 நோய் கண்டறிதல்களைத் தேடவும்", - "icd11_as_recommended": "WHO பரிந்துரைத்த ICD-11 இன் படி" -} diff --git a/src/Locale/ta/Entities.json b/src/Locale/ta/Entities.json deleted file mode 100644 index 3e58463571b..00000000000 --- a/src/Locale/ta/Entities.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "Facilities": "வசதிகள்", - "Patients": "நோயாளிகள்", - "Sample Test": "மாதிரி சோதனை", - "Shifting": "மாற்றுதல்", - "Resource": "வளம்", - "External Results": "வெளி முடிவு", - "Users": "பயனர்கள்", - "Profile": "சுயவிவரம்", - "Dashboard": "டாஷ்போர்டு" -} diff --git a/src/Locale/ta/ErrorPages.json b/src/Locale/ta/ErrorPages.json deleted file mode 100644 index e2d3c7be4f5..00000000000 --- a/src/Locale/ta/ErrorPages.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "return_to_care": "CARE பக்கத்துக்குத் திரும்பு", - "404_message": "இல்லாத அல்லது வேறொரு URLக்கு நகர்த்தப்பட்ட ஒரு பக்கத்தில் நீங்கள் தடுமாறிவிட்டதாகத் தெரிகிறது. நீங்கள் சரியான இணைப்பை உள்ளிட்டுள்ளீர்கள் என்பதை உறுதிப்படுத்தவும்!", - "error_404": "பிழை 404", - "page_not_found": "பக்கம் கிடைக்கவில்லை", - "session_expired": "அமர்வு காலாவதியானது", - "invalid_password_reset_link": "தவறான கடவுச்சொல் மீட்டமைப்பு இணைப்பு", - "invalid_link_msg": "நீங்கள் பயன்படுத்திய கடவுச்சொல் மீட்டமைப்பு இணைப்பு தவறானது அல்லது காலாவதியானது போல் தெரிகிறது. புதிய கடவுச்சொல் மீட்டமைப்பு இணைப்பைக் கோரவும்.", - "return_to_password_reset": "கடவுச்சொல் மீட்டமைப்புக்குத் திரும்பு", - "return_to_login": "உள்நுழைவுக்குத் திரும்பு", - "session_expired_msg": "உங்கள் அமர்வு காலாவதியானது போல் தெரிகிறது. இது செயலற்ற தன்மை காரணமாக இருக்கலாம். தொடர மீண்டும் உள்நுழையவும்.", - "invalid_reset": "தவறான மீட்டமைப்பு" -} diff --git a/src/Locale/ta/ExternalResult.json b/src/Locale/ta/ExternalResult.json deleted file mode 100644 index 8f001547a72..00000000000 --- a/src/Locale/ta/ExternalResult.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "please_upload_a_csv_file": "CSV கோப்பைப் பதிவேற்றவும்", - "upload_external_results": "வெளிப்புற முடிவுகளைப் பதிவேற்றவும்", - "csv_file_in_the_specified_format": "குறிப்பிட்ட வடிவத்தில் CSV கோப்பைத் தேர்ந்தெடுக்கவும்", - "sample_format": "மாதிரி வடிவம்", - "search_for_facility": "வசதியைத் தேடுங்கள்", - "select_local_body": "உள்ளாட்சி அமைப்பைத் தேர்ந்தெடுக்கவும்", - "select_wards": "வார்டுகளைத் தேர்ந்தெடுக்கவும்", - "result_date": "முடிவு தேதி", - "sample_collection_date": "மாதிரி சேகரிப்பு தேதி", - "record_has_been_deleted_successfully": "பதிவு வெற்றிகரமாக நீக்கப்பட்டது.", - "error_while_deleting_record": "பதிவை நீக்குவதில் பிழை", - "result_details": "முடிவு விவரங்கள்", - "confirm_delete": "நீக்குவதை உறுதிப்படுத்தவும்", - "are_you_sure_want_to_delete_this_record": "இந்தப் பதிவை நிச்சயமாக நீக்க விரும்புகிறீர்களா?", - "patient_category": "நோயாளி வகை", - "source": "ஆதாரம்", - "result": "முடிவு", - "sample_type": "மாதிரி வகை", - "patient_status": "நோயாளியின் நிலை", - "mobile_number": "மொபைல் எண்", - "patient_created": "நோயாளி உருவாக்கப்பட்டது", - "care_external_results_id": "கேர் வெளிப்புற முடிவுகள் ஐடி", - "update_record": "பதிவைப் புதுப்பிக்கவும்" -} diff --git a/src/Locale/ta/Facility.json b/src/Locale/ta/Facility.json deleted file mode 100644 index e1c5462f587..00000000000 --- a/src/Locale/ta/Facility.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "facility_search_placeholder": "வசதி / மாவட்ட பெயர் மூலம் தேடுங்கள்", - "advanced_filters": "மேம்பட்ட வடிப்பான்கள்", - "facility_type": "வசதி வகை", - "facility_name": "வசதி பெயர்", - "KASP Empanelled": "KASP சேர்ந்தார்", - "View Facility": "வசதி காண்க", - "no_duplicate_facility": "நீங்கள் நகல் வசதிகளை உருவாக்கக்கூடாது", - "no_facilities": "வசதிகள் எதுவும் கிடைக்கவில்லை", - "no_staff": "ஊழியர்கள் இல்லை", - "no_bed_types_found": "படுக்கை வகைகள் இல்லை", - "total_beds": "மொத்த படுக்கைகள்", - "create_facility": "புதிய வசதியை உருவாக்கவும்", - "staff_list": "பணியாளர்கள் பட்டியல்", - "bed_capacity": "படுக்கை திறன்", - "cylinders": "சிலிண்டர்கள்", - "cylinders_per_day": "சிலிண்டர்கள்/நாள்", - "liquid_oxygen_capacity": "திரவ ஆக்ஸிஜன் திறன்", - "expected_burn_rate": "எதிர்பார்க்கப்படும் எரிப்பு விகிதம்", - "type_b_cylinders": "பி வகை சிலிண்டர்கள்", - "type_c_cylinders": "சி வகை சிலிண்டர்கள்", - "type_d_cylinders": "டி வகை சிலிண்டர்கள்", - "select_local_body": "உள்ளாட்சி அமைப்பைத் தேர்ந்தெடுக்கவும்", - "update_asset": "சொத்தைப் புதுப்பிக்கவும்", - "create_new_asset": "புதிய சொத்தை உருவாக்கவும்", - "you_need_at_least_a_location_to_create_an_assest": "ஒரு அசெஸ்ட்டை உருவாக்க குறைந்தபட்சம் ஒரு இருப்பிடமாவது தேவை.", - "add_location": "இருப்பிடத்தைச் சேர்க்கவும்", - "close_scanner": "ஸ்கேனரை மூடு", - "scan_asset_qr": "அசெட் க்யூஆர் ஸ்கேன்!", - "update": "புதுப்பிக்கவும்", - "create": "உருவாக்கு", - "asset_name": "சொத்து பெயர்", - "asset_location": "சொத்து இருப்பிடம்", - "asset_type": "சொத்து வகை", - "asset_class": "சொத்து வகுப்பு", - "details_about_the_equipment": "உபகரணங்கள் பற்றிய விவரங்கள்", - "working_status": "வேலை நிலை", - "why_the_asset_is_not_working": "சொத்து ஏன் வேலை செய்யவில்லை?", - "describe_why_the_asset_is_not_working": "சொத்து ஏன் வேலை செய்யவில்லை என்பதை விவரிக்கவும்", - "asset_qr_id": "சொத்து QR ஐடி", - "manufacturer": "உற்பத்தியாளர்", - "eg_xyz": "எ.கா. XYZ", - "eg_abc": "எ.கா. ஏபிசி", - "warranty_amc_expiry": "உத்தரவாதம் / AMC காலாவதி", - "customer_support_name": "வாடிக்கையாளர் ஆதரவு பெயர்", - "customer_support_number": "வாடிக்கையாளர் ஆதரவு எண்", - "customer_support_email": "வாடிக்கையாளர் ஆதரவு மின்னஞ்சல்", - "eg_mail_example_com": "எ.கா. mail@example.com", - "vendor_name": "விற்பனையாளர் பெயர்", - "serial_number": "வரிசை எண்", - "last_serviced_on": "கடைசியாக சேவை செய்யப்பட்டது", - "notes": "குறிப்புகள்", - "create_asset": "சொத்தை உருவாக்கவும்", - "create_add_more": "உருவாக்கி மேலும் சேர்க்கவும்", - "discharged_patients": "வெளியேற்றப்பட்ட நோயாளிகள்", - "discharged_patients_empty": "இந்த வசதியில் டிஸ்சார்ஜ் செய்யப்பட்ட நோயாளிகள் யாரும் இல்லை", - "update_facility_middleware_success": "வசதி மிடில்வேர் வெற்றிகரமாக புதுப்பிக்கப்பட்டது", - "treatment_summary__head_title": "சிகிச்சை சுருக்கம்", - "treatment_summary__print": "அச்சு சிகிச்சை சுருக்கம்", - "treatment_summary__heading": "இடைக்கால சிகிச்சை சுருக்கம்", - "patient_registration__name": "பெயர்", - "patient_registration__address": "முகவரி", - "patient_registration__age": "வயது", - "patient_consultation__op": "OP", - "patient_consultation__ip": "ஐபி", - "patient_consultation__dc_admission": "வீட்டு பராமரிப்பு தேதி தொடங்கியது", - "patient_consultation__admission": "சேர்க்கை தேதி", - "patient_registration__gender": "பாலினம்", - "patient_registration__contact": "அவசரத் தொடர்பு", - "patient_registration__comorbidities": "கூட்டு நோய்கள்", - "patient_registration__comorbidities__disease": "நோய்", - "patient_registration__comorbidities__details": "விவரங்கள்", - "patient_consultation__consultation_notes": "பொதுவான வழிமுறைகள்", - "patient_consultation__special_instruction": "சிறப்பு வழிமுறைகள்", - "suggested_investigations": "பரிந்துரைக்கப்பட்ட விசாரணைகள்", - "investigations__date": "தேதி", - "investigations__name": "பெயர்", - "investigations__result": "முடிவு", - "investigations__ideal_value": "சிறந்த மதிப்பு", - "investigations__range": "மதிப்பு வரம்பு", - "investigations__unit": "அலகு", - "patient_consultation__treatment__plan": "திட்டம்", - "patient_consultation__treatment__summary": "சுருக்கம்", - "patient_consultation__treatment__summary__date": "தேதி", - "patient_consultation__treatment__summary__spo2": "SpO2", - "patient_consultation__treatment__summary__temperature": "வெப்பநிலை", - "diagnosis": "நோய் கண்டறிதல்", - "diagnosis__principal": "அதிபர்", - "diagnosis__confirmed": "உறுதி செய்யப்பட்டது", - "diagnosis__provisional": "தற்காலிகமானது", - "diagnosis__unconfirmed": "உறுதி செய்யப்படவில்லை", - "diagnosis__differential": "வித்தியாசமான", - "active_prescriptions": "செயலில் உள்ள மருந்துகள்", - "prescriptions__medicine": "மருந்து", - "prescriptions__route": "பாதை", - "prescriptions__dosage_frequency": "மருந்தளவு & அதிர்வெண்", - "prescriptions__start_date": "அன்று பரிந்துரைக்கப்பட்டது", - "select_facility_for_discharged_patients_warning": "டிஸ்சார்ஜ் செய்யப்பட்ட நோயாளிகளைப் பார்க்க வசதியைத் தேர்ந்தெடுக்க வேண்டும்.", - "duplicate_patient_record_confirmation": "பிறந்த ஆண்டைச் சேர்ப்பதன் மூலம் நோயாளியின் பதிவை உங்கள் வசதியில் அனுமதிக்கவும்", - "duplicate_patient_record_rejection": "நான் உருவாக்க விரும்பும் சந்தேக நபர் / நோயாளி பட்டியலில் இல்லை என்பதை உறுதிப்படுத்துகிறேன்.", - "duplicate_patient_record_birth_unknown": "நோயாளியின் பிறந்த ஆண்டு குறித்து உங்களுக்குத் தெரியாவிட்டால், உங்கள் மாவட்ட பராமரிப்பு ஒருங்கிணைப்பாளர், இடமாற்றம் செய்யும் வசதி அல்லது நோயாளியைத் தொடர்பு கொள்ளவும்.", - "patient_transfer_birth_match_note": "குறிப்பு: பரிமாற்றக் கோரிக்கையைச் செயல்படுத்த, பிறந்த ஆண்டு நோயாளியுடன் பொருந்த வேண்டும்.", - "cover_image_updated_note": "புதுப்பிக்கப்பட்ட அட்டைப் படத்தைப் பார்க்க சிறிது நேரம் ஆகலாம்", - "available_features": "கிடைக்கும் அம்சங்கள்", - "update_facility": "மேம்படுத்தல் வசதி", - "configure_facility": "வசதியை உள்ளமைக்கவும்", - "inventory_management": "சரக்கு மேலாண்மை", - "location_management": "இருப்பிட மேலாண்மை", - "resource_request": "ஆதார கோரிக்கை", - "view_asset": "சொத்துக்களைப் பார்க்கவும்", - "view_users": "பயனர்களைக் காண்க", - "view_abdm_records": "ABDM பதிவுகளைப் பார்க்கவும்", - "delete_facility": "நீக்கு வசதி", - "central_nursing_station": "மத்திய நர்சிங் நிலையம்", - "add_details_of_patient": "நோயாளியின் விவரங்களைச் சேர்க்கவும்", - "choose_location": "இருப்பிடத்தைத் தேர்ந்தெடுக்கவும்", - "live_monitoring": "நேரடி கண்காணிப்பு", - "open_live_monitoring": "நேரடி கண்காணிப்பைத் திறக்கவும்" -} diff --git a/src/Locale/ta/FileUpload.json b/src/Locale/ta/FileUpload.json deleted file mode 100644 index 53c75dc45d1..00000000000 --- a/src/Locale/ta/FileUpload.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "audio__allow_permission": "தள அமைப்புகளில் மைக்ரோஃபோன் அனுமதியை அனுமதிக்கவும்", - "audio__allow_permission_helper": "கடந்த காலத்தில் மைக்ரோஃபோன் அணுகலை நீங்கள் மறுத்திருக்கலாம்.", - "audio__allow_permission_button": "எப்படி அனுமதிப்பது என்பதை அறிய இங்கே கிளிக் செய்யவும்", - "audio__record": "ஆடியோ பதிவு", - "audio__record_helper": "பதிவைத் தொடங்க பொத்தானைக் கிளிக் செய்யவும்", - "audio__recording": "பதிவு செய்தல்", - "audio__recording_helper": "உங்கள் மைக்ரோஃபோனில் பேசவும்.", - "audio__recording_helper_2": "பதிவை நிறுத்த பொத்தானைக் கிளிக் செய்யவும்.", - "audio__recorded": "ஆடியோ பதிவு செய்யப்பட்டது", - "audio__start_again": "மீண்டும் தொடங்கவும்", - "enter_file_name": "கோப்பு பெயரை உள்ளிடவும்", - "no_files_found": "{{type}} கோப்புகள் இல்லை", - "upload_headings__patient": "புதிய நோயாளி கோப்பை பதிவேற்றவும்", - "upload_headings__consultation": "புதிய ஆலோசனைக் கோப்பைப் பதிவேற்றவும்", - "upload_headings__sample_report": "மாதிரி அறிக்கையைப் பதிவேற்றவும்", - "upload_headings__supporting_info": "துணைத் தகவலைப் பதிவேற்றவும்", - "file_list_headings__patient": "நோயாளி கோப்புகள்", - "file_list_headings__consultation": "ஆலோசனை கோப்புகள்", - "file_list_headings__sample_report": "மாதிரி அறிக்கை", - "file_list_headings__supporting_info": "துணைத் தகவல்", - "file_error__choose_file": "பதிவேற்ற ஒரு கோப்பைத் தேர்ந்தெடுக்கவும்", - "file_error__file_name": "கோப்பின் பெயரை உள்ளிடவும்", - "file_error__file_size": "கோப்புகளின் அதிகபட்ச அளவு 100 எம்பி", - "file_error__file_type": "தவறான கோப்பு வகை \".{{extension}}\" அனுமதிக்கப்பட்ட வகைகள்: {{allowedExtensions}}", - "file_uploaded": "கோப்பு வெற்றிகரமாக பதிவேற்றப்பட்டது", - "file_error__dynamic": "கோப்பைப் பதிவேற்றுவதில் பிழை: {{statusText}}", - "file_error__network": "கோப்பைப் பதிவேற்றுவதில் பிழை: பிணையப் பிழை" -} diff --git a/src/Locale/ta/Hub.json b/src/Locale/ta/Hub.json deleted file mode 100644 index 8410e8ca22b..00000000000 --- a/src/Locale/ta/Hub.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "monitor": "கண்காணிக்கவும்", - "show_default_presets": "இயல்புநிலை முன்னமைவுகளைக் காட்டு", - "show_patient_presets": "நோயாளியின் முன்னமைவுகளைக் காட்டு", - "moving_camera": "நகரும் கேமரா", - "full_screen": "முழுத்திரை", - "feed_is_currently_not_live": "ஊட்டம் தற்போது நேரலையில் இல்லை", - "zoom_out": "பெரிதாக்கவும்", - "zoom_in": "பெரிதாக்கவும்", - "right": "சரி", - "left": "விட்டு", - "down": "கீழே", - "up": "மேலே" -} diff --git a/src/Locale/ta/LogUpdate.json b/src/Locale/ta/LogUpdate.json deleted file mode 100644 index 668dbd54a46..00000000000 --- a/src/Locale/ta/LogUpdate.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "RESPIRATORY_SUPPORT_SHORT__UNKNOWN": "இல்லை", - "RESPIRATORY_SUPPORT_SHORT__OXYGEN_SUPPORT": "O2 ஆதரவு", - "RESPIRATORY_SUPPORT_SHORT__NON_INVASIVE": "என்.ஐ.வி", - "RESPIRATORY_SUPPORT_SHORT__INVASIVE": "IV", - "RESPIRATORY_SUPPORT__UNKNOWN": "இல்லை", - "RESPIRATORY_SUPPORT__OXYGEN_SUPPORT": "ஆக்ஸிஜன் ஆதரவு", - "RESPIRATORY_SUPPORT__NON_INVASIVE": "ஆக்கிரமிப்பு அல்லாத வென்டிலேட்டர் (NIV)", - "RESPIRATORY_SUPPORT__INVASIVE": "ஊடுருவும் காற்றோட்டம் (IV)", - "VENTILATOR_MODE__CMV": "கட்டுப்பாட்டு இயந்திர காற்றோட்டம் (CMV)", - "VENTILATOR_MODE__VCV": "வால்யூம் கண்ட்ரோல் வென்டிலேஷன் (VCV)", - "VENTILATOR_MODE__PCV": "அழுத்தம் கட்டுப்பாட்டு காற்றோட்டம் (PCV)", - "VENTILATOR_MODE__SIMV": "ஒத்திசைக்கப்பட்ட இடைப்பட்ட கட்டாய காற்றோட்டம் (SIMV)", - "VENTILATOR_MODE__VC_SIMV": "தொகுதி கட்டுப்படுத்தப்பட்ட SIMV (VC-SIMV)", - "VENTILATOR_MODE__PC_SIMV": "அழுத்தம் கட்டுப்படுத்தப்பட்ட SIMV (PC-SIMV)", - "VENTILATOR_MODE__PSV": "சி-பிஏபி / பிரஷர் சப்போர்ட் வென்டிலேஷன் (பிஎஸ்வி)", - "CONSCIOUSNESS_LEVEL__UNRESPONSIVE": "பதிலளிக்காதது", - "CONSCIOUSNESS_LEVEL__RESPONDS_TO_PAIN": "வலிக்கு பதிலளிக்கிறது", - "CONSCIOUSNESS_LEVEL__RESPONDS_TO_VOICE": "குரலுக்கு பதிலளிக்கிறது", - "CONSCIOUSNESS_LEVEL__ALERT": "எச்சரிக்கை", - "CONSCIOUSNESS_LEVEL__AGITATED_OR_CONFUSED": "கலக்கம் அல்லது குழப்பம்", - "CONSCIOUSNESS_LEVEL__ONSET_OF_AGITATION_AND_CONFUSION": "கிளர்ச்சி மற்றும் குழப்பத்தின் ஆரம்பம்", - "PUPIL_REACTION__UNKNOWN": "தெரியவில்லை", - "PUPIL_REACTION__BRISK": "சுறுசுறுப்பான", - "PUPIL_REACTION__SLUGGISH": "மந்தமான", - "PUPIL_REACTION__FIXED": "சரி செய்யப்பட்டது", - "PUPIL_REACTION__CANNOT_BE_ASSESSED": "மதிப்பிட முடியாது", - "LIMB_RESPONSE__UNKNOWN": "தெரியவில்லை", - "LIMB_RESPONSE__STRONG": "வலுவான", - "LIMB_RESPONSE__MODERATE": "மிதமான", - "LIMB_RESPONSE__WEAK": "பலவீனமான", - "LIMB_RESPONSE__FLEXION": "நெகிழ்வு", - "LIMB_RESPONSE__EXTENSION": "நீட்டிப்பு", - "LIMB_RESPONSE__NONE": "இல்லை", - "OXYGEN_MODALITY__NASAL_PRONGS": "நாசி முனைகள்", - "OXYGEN_MODALITY__SIMPLE_FACE_MASK": "எளிய முகமூடி", - "OXYGEN_MODALITY__NON_REBREATHING_MASK": "சுவாசிக்காத முகமூடி", - "OXYGEN_MODALITY__HIGH_FLOW_NASAL_CANNULA": "அதிக ஓட்டம் நாசி கேனுலா", - "INSULIN_INTAKE_FREQUENCY__UNKNOWN": "தெரியவில்லை", - "INSULIN_INTAKE_FREQUENCY__OD": "ஒரு நாளைக்கு ஒரு முறை (OD)", - "INSULIN_INTAKE_FREQUENCY__BD": "ஒரு நாளைக்கு இரண்டு முறை (BD)", - "INSULIN_INTAKE_FREQUENCY__TD": "ஒரு நாளைக்கு மூன்று முறை (டிடி)", - "NURSING_CARE_PROCEDURE__personal_hygiene": "தனிப்பட்ட சுகாதாரம்", - "NURSING_CARE_PROCEDURE__positioning": "நிலைப்படுத்துதல்", - "NURSING_CARE_PROCEDURE__suctioning": "உறிஞ்சும்", - "NURSING_CARE_PROCEDURE__ryles_tube_care": "ரைல்ஸ் குழாய் பராமரிப்பு", - "NURSING_CARE_PROCEDURE__iv_sitecare": "IV தள பராமரிப்பு", - "NURSING_CARE_PROCEDURE__nubulisation": "நுபுலைசேஷன்", - "NURSING_CARE_PROCEDURE__dressing": "ஆடை அணிதல்", - "NURSING_CARE_PROCEDURE__dvt_pump_stocking": "DVT பம்ப் ஸ்டாக்கிங்", - "NURSING_CARE_PROCEDURE__restrain": "கட்டுப்படுத்து", - "NURSING_CARE_PROCEDURE__chest_tube_care": "மார்பு குழாய் பராமரிப்பு", - "NURSING_CARE_PROCEDURE__tracheostomy_care": "டிரக்கியோஸ்டமி பராமரிப்பு", - "NURSING_CARE_PROCEDURE__stoma_care": "ஸ்டோமா கேர்", - "NURSING_CARE_PROCEDURE__catheter_care": "வடிகுழாய் பராமரிப்பு", - "HEARTBEAT_RHYTHM__REGULAR": "வழக்கமான", - "HEARTBEAT_RHYTHM__IRREGULAR": "ஒழுங்கற்ற", - "HEARTBEAT_RHYTHM__UNKNOWN": "தெரியவில்லை", - "map_acronym": "வரைபடம்", - "systolic": "சிஸ்டாலிக்", - "diastolic": "டயஸ்டாலிக்", - "pain": "வலி", - "pain_chart_description": "வலியின் பகுதி மற்றும் தீவிரத்தை குறிக்கவும்", - "bradycardia": "பிராடி கார்டியா", - "tachycardia": "டாக்ரிக்கார்டியா" -} \ No newline at end of file diff --git a/src/Locale/ta/Medicine.json b/src/Locale/ta/Medicine.json deleted file mode 100644 index 1a60737e786..00000000000 --- a/src/Locale/ta/Medicine.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "medicine": "மருந்து", - "route": "பாதை", - "dosage": "மருந்தளவு", - "base_dosage": "மருந்தளவு", - "start_dosage": "தொடக்க மருந்தளவு", - "target_dosage": "இலக்கு அளவு", - "instruction_on_titration": "டைட்ரேஷன் பற்றிய வழிமுறைகள்", - "titrate_dosage": "டைட்ரேட் அளவு", - "indicator": "காட்டி", - "inidcator_event": "காட்டி நிகழ்வு", - "max_dosage_24_hrs": "அதிகபட்சம். 24 மணி நேரத்தில் மருந்தளவு", - "min_time_bw_doses": "குறைந்தபட்சம் நேரம் b/w அளவுகள்", - "manage_prescriptions": "மருந்துகளை நிர்வகிக்கவும்", - "prescription_details": "மருந்துச் சீட்டு விவரங்கள்", - "prescription_medications": "பரிந்துரைக்கப்பட்ட மருந்துகள்", - "prn_prescriptions": "PRN பரிந்துரைகள்", - "prescription": "மருந்துச்சீட்டு", - "discharge_prescription": "வெளியேற்ற மருந்து", - "edit_prescriptions": "மருந்துச்சீட்டுகளைத் திருத்தவும்", - "prescription_medication": "பரிந்துரைக்கப்பட்ட மருந்து", - "add_prescription_medication": "பரிந்துரைக்கப்பட்ட மருந்துகளைச் சேர்க்கவும்", - "prn_prescription": "PRN மருந்து", - "add_prn_prescription": "PRN மருந்துச் சீட்டைச் சேர்க்கவும்", - "add_prescription_to_consultation_note": "இந்த ஆலோசனையில் புதிய மருந்துச் சீட்டைச் சேர்க்கவும்.", - "medicine_administration_history": "மருத்துவ நிர்வாக வரலாறு", - "return_to_patient_dashboard": "நோயாளி டாஷ்போர்டுக்குத் திரும்பு", - "administered_on": "அன்று நிர்வகிக்கப்படுகிறது", - "administer": "நிர்வாகம்", - "administer_medicine": "மருந்தை நிர்வகி", - "administer_medicines": "மருந்துகளை நிர்வகிக்கவும்", - "administer_selected_medicines": "தேர்ந்தெடுக்கப்பட்ட மருந்துகளை நிர்வகிக்கவும்", - "select_for_administration": "நிர்வாகத்திற்கு தேர்ந்தெடுக்கவும்", - "medicines_administered": "மருந்து (கள்) நிர்வகிக்கப்படுகிறது", - "medicines_administered_error": "மருந்துகளை வழங்குவதில் பிழை", - "prescription_discontinued": "மருந்துச் சீட்டு நிறுத்தப்பட்டது", - "administration_notes": "நிர்வாக குறிப்புகள்", - "last_administered": "கடைசியாக நிர்வகிக்கப்பட்டது", - "prescription_logs": "மருந்துப் பதிவுகள்", - "modification_caution_note": "ஒருமுறை சேர்த்தால் எந்த மாற்றமும் சாத்தியமில்லை", - "discontinue_caution_note": "இந்த மருந்தை நிச்சயமாக நிறுத்த விரும்புகிறீர்களா?", - "confirm_discontinue": "நிறுத்துவதை உறுதிப்படுத்தவும்", - "edit_caution_note": "திருத்தப்பட்ட விவரங்களுடன் கலந்தாய்வில் புதிய மருந்துச் சீட்டு சேர்க்கப்படும் மற்றும் தற்போதைய மருந்துச் சீட்டு நிறுத்தப்படும்.", - "reason_for_discontinuation": "நிறுத்தத்திற்கான காரணம்", - "reason_for_edit": "திருத்தத்திற்கான காரணம்", - "PRESCRIPTION_ROUTE_ORAL": "வாய்வழி", - "PRESCRIPTION_ROUTE_IV": "IV", - "PRESCRIPTION_ROUTE_IM": "ஐ.எம்", - "PRESCRIPTION_ROUTE_SC": "எஸ்/சி", - "PRESCRIPTION_ROUTE_INHALATION": "உள்ளிழுத்தல்", - "PRESCRIPTION_ROUTE_NASOGASTRIC": "நாசோகாஸ்ட்ரிக் / காஸ்ட்ரோஸ்டமி குழாய்", - "PRESCRIPTION_ROUTE_INTRATHECAL": "உள்நோக்கி ஊசி", - "PRESCRIPTION_ROUTE_TRANSDERMAL": "டிரான்ஸ்டெர்மல்", - "PRESCRIPTION_ROUTE_RECTAL": "மலக்குடல்", - "PRESCRIPTION_ROUTE_SUBLINGUAL": "சப்ளிங்குவல்", - "PRESCRIPTION_FREQUENCY_STAT": "உடனடியாக", - "PRESCRIPTION_FREQUENCY_OD": "தினமும் ஒருமுறை", - "PRESCRIPTION_FREQUENCY_HS": "இரவு மட்டும்", - "PRESCRIPTION_FREQUENCY_BD": "தினமும் இருமுறை", - "PRESCRIPTION_FREQUENCY_TID": "8வது மணிநேரம்", - "PRESCRIPTION_FREQUENCY_QID": "6 வது மணிநேரம்", - "PRESCRIPTION_FREQUENCY_Q4H": "4 வது மணிநேரம்", - "PRESCRIPTION_FREQUENCY_QOD": "மாற்று நாள்", - "PRESCRIPTION_FREQUENCY_QWK": "வாரம் ஒருமுறை", - "inconsistent_dosage_units_error": "மருந்தளவு அலகுகள் ஒரே மாதிரியாக இருக்க வேண்டும்", - "max_dosage_in_24hrs_gte_base_dosage_error": "அதிகபட்சம். 24 மணிநேரத்தில் மருந்தளவு அடிப்படை அளவை விட அதிகமாகவோ அல்லது சமமாகவோ இருக்க வேண்டும்", - "administration_dosage_range_error": "ஆரம்ப மற்றும் இலக்கு டோஸ் இடையே மருந்தளவு இருக்க வேண்டும்" -} \ No newline at end of file diff --git a/src/Locale/ta/Notifications.json b/src/Locale/ta/Notifications.json deleted file mode 100644 index a372a092286..00000000000 --- a/src/Locale/ta/Notifications.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "no_notices_for_you": "உங்களுக்கான அறிவிப்புகள் இல்லை.", - "mark_as_read": "படித்ததாகக் குறி", - "mark_as_unread": "படிக்காதது எனக் குறி", - "subscribe": "குழுசேர்", - "subscribe_on_this_device": "இந்தச் சாதனத்தில் குழுசேரவும்", - "show_unread_notifications": "படிக்காததைக் காட்டு", - "show_all_notifications": "அனைத்தையும் காட்டு", - "filter_by_category": "வகையின்படி வடிகட்டவும்", - "mark_all_as_read": "அனைத்தையும் படித்ததாகக் குறிக்கவும்", - "reload": "மீண்டும் ஏற்றவும்", - "Notifications": "அறிவிப்புகள்", - "no_results_found": "முடிவுகள் எதுவும் கிடைக்கவில்லை", - "load_more": "மேலும் ஏற்றவும்", - "subscription_error": "சந்தா பிழை", - "unsubscribe_failed": "குழுவிலக முடியவில்லை.", - "unsubscribe": "குழுவிலகவும்", - "escape": "எஸ்கேப்", - "loading": "ஏற்றுகிறது...", - "invalid_asset_id_msg": "அச்சச்சோ! நீங்கள் உள்ளிட்ட சொத்து ஐடி சரியானதாகத் தெரியவில்லை.", - "asset_not_found_msg": "அச்சச்சோ! நீங்கள் தேடும் சொத்து இல்லை. சொத்து ஐடியைச் சரிபார்க்கவும்." -} diff --git a/src/Locale/ta/Resource.json b/src/Locale/ta/Resource.json deleted file mode 100644 index 8d0d87870d0..00000000000 --- a/src/Locale/ta/Resource.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "create_resource_request": "ஆதார கோரிக்கையை உருவாக்கவும்", - "contact_person": "வசதி உள்ள தொடர்பு நபரின் பெயர்", - "approving_facility": "அங்கீகரிக்கும் வசதியின் பெயர்", - "contact_phone": "தொடர்பு நபர் எண்", - "request_title": "தலைப்பு கோரிக்கை", - "request_title_placeholder": "உங்கள் தலைப்பை இங்கே தட்டச்சு செய்யவும்", - "required_quantity": "தேவையான அளவு", - "request_description": "கோரிக்கையின் விளக்கம்", - "request_description_placeholder": "உங்கள் விளக்கத்தை இங்கே தட்டச்சு செய்யவும்", - "search_resource": "தேடல் ஆதாரம்" -} diff --git a/src/Locale/ta/Shifting.json b/src/Locale/ta/Shifting.json deleted file mode 100644 index ef4667d68d3..00000000000 --- a/src/Locale/ta/Shifting.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "emergency": "அவசரநிலை", - "up_shift": "அப் ஷிப்ட்", - "antenatal": "முற்பிறவி", - "phone_no": "தொலைபேசி எண்.", - "patient_name": "நோயாளி பெயர்", - "disease_status": "நோய் நிலை", - "breathlessness_level": "மூச்சுத்திணறல் நிலை", - "assigned_facility": "வசதி ஒதுக்கப்பட்டுள்ளது", - "origin_facility": "தற்போதைய வசதி", - "shifting_approval_facility": "ஒப்புதல் வசதியை மாற்றுதல்", - "shifting": "மாறுதல்", - "search_patient": "நோயாளியைத் தேடுங்கள்", - "list_view": "பட்டியல் காட்சி", - "comment_min_length": "கருத்து குறைந்தது 1 எழுத்தையாவது கொண்டிருக்க வேண்டும்", - "comment_added_successfully": "கருத்து வெற்றிகரமாக சேர்க்கப்பட்டது", - "post_your_comment": "உங்கள் கருத்தை பதிவிடவும்", - "shifting_approving_facility": "அங்கீகரிக்கும் வசதியை மாற்றுகிறது", - "is_emergency_case": "அவசர வழக்கு", - "is_upshift_case": "அப்ஷிஃப்ட் கேஸ்", - "is_antenatal": "பிறப்புக்கு முந்தையது", - "patient_phone_number": "நோயாளியின் தொலைபேசி எண்", - "created_date": "உருவாக்கப்பட்ட தேதி", - "modified_date": "மாற்றியமைக்கப்பட்ட தேதி", - "no_patients_to_show": "காட்ட நோயாளிகள் இல்லை.", - "shifting_status": "நிலை மாறுகிறது", - "transfer_to_receiving_facility": "பெறும் வசதிக்கு இடமாற்றம்", - "confirm_transfer_complete": "பரிமாற்றம் முடிந்தது என்பதை உறுதிப்படுத்தவும்!", - "mark_transfer_complete_confirmation": "இந்தப் பரிமாற்றம் முடிந்ததாக நிச்சயமாகக் குறிக்க விரும்புகிறீர்களா? இந்த நோயாளியை ஆரிஜின் வசதி இனி அணுகாது", - "board_view": "பலகை காட்சி", - "shifting_deleted": "ஷிஃப்டிங் பதிவு வெற்றிகரமாக நீக்கப்பட்டது.", - "details_of_shifting_approving_facility": "ஒப்புதல் வசதியை மாற்றுவதற்கான விவரங்கள்", - "details_of_assigned_facility": "ஒதுக்கப்பட்ட வசதியின் விவரங்கள்", - "details_of_origin_facility": "மூல வசதியின் விவரங்கள்", - "details_of_patient": "நோயாளியின் விவரங்கள்", - "record_delete_confirm": "இந்தப் பதிவை நிச்சயமாக நீக்க விரும்புகிறீர்களா?", - "phone_number_at_current_facility": "தற்போதைய வசதியில் உள்ள தொடர்பு நபரின் தொலைபேசி எண்", - "authorize_shift_delete": "ஷிப்ட் நீக்கத்தை அங்கீகரிக்கவும்", - "delete_record": "பதிவை நீக்கு", - "severity_of_breathlessness": "மூச்சுத் திணறலின் தீவிரம்", - "facility_preference": "வசதி விருப்பம்", - "vehicle_preference": "வாகன விருப்பம்", - "is_up_shift": "மாறிவிட்டது", - "patient_category": "நோயாளி வகை", - "ambulance_driver_name": "ஆம்புலன்ஸ் ஓட்டுநரின் பெயர்", - "ambulance_phone_number": "ஆம்புலன்ஸின் தொலைபேசி எண்", - "ambulance_number": "ஆம்புலன்ஸ் எண்", - "is_emergency": "அவசரநிலை", - "contact_person_at_the_facility": "தற்போதைய வசதியில் உள்ள நபரைத் தொடர்பு கொள்ளவும்", - "update_status_details": "நிலை/விவரங்களைப் புதுப்பிக்கவும்", - "shifting_details": "விவரங்களை மாற்றுகிறது", - "auto_generated_for_care": "பராமரிப்புக்காக தானாக உருவாக்கப்பட்டுள்ளது", - "approved_by_district_covid_control_room": "மாவட்ட கோவிட் கட்டுப்பாட்டு அறையால் அங்கீகரிக்கப்பட்டது", - "treatment_summary": "சிகிச்சை சுருக்கம்", - "reason_for_referral": "பரிந்துரைக்கான காரணம்", - "referred_to": "குறிப்பிடப்படுகிறது", - "covid_19_cat_gov": "அரசாங்கத்தின்படி கோவிட்_19 மருத்துவ வகை. கேரளா வழிகாட்டுதல் (A/B/C)", - "district_program_management_supporting_unit": "மாவட்ட திட்ட மேலாண்மை துணை அலகு", - "name_of_hospital": "மருத்துவமனையின் பெயர்", - "passport_number": "பாஸ்போர்ட் எண்", - "test_type": "சோதனை வகை", - "medical_worker": "மருத்துவ பணியாளர்", - "error_deleting_shifting": "பதிவை மாற்றுவதில் பிழை", - "type_any_extra_comments_here": "கூடுதல் கருத்துகளை இங்கே தட்டச்சு செய்யவும்", - "type_your_reason_here": "உங்கள் காரணத்தை இங்கே தட்டச்சு செய்யவும்", - "reason_for_shift": "மாற்றத்திற்கான காரணம்", - "preferred_facility_type": "விருப்பமான வசதி வகை", - "preferred_vehicle": "விருப்பமான வாகனம்", - "is_it_upshift": "அது உயர்வானதா", - "is_this_an_upshift": "இது ஒரு உயர்வுதானா?", - "is_this_an_emergency": "இது அவசரநிலையா?", - "what_facility_assign_the_patient_to": "நோயாளியை எந்த வசதிக்கு ஒதுக்க விரும்புகிறீர்கள்", - "name_of_shifting_approving_facility": "ஷிஃப்டிங் அங்கீகரிக்கும் வசதியின் பெயர்", - "update_shift_request": "ஷிப்ட் கோரிக்கையைப் புதுப்பிக்கவும்", - "shift_request_updated_successfully": "ஷிப்ட் கோரிக்கை வெற்றிகரமாக புதுப்பிக்கப்பட்டது", - "please_enter_a_reason_for_the_shift": "மாற்றத்திற்கான காரணத்தை உள்ளிடவும்.", - "please_select_preferred_vehicle_type": "விருப்பமான வாகன வகையைத் தேர்ந்தெடுக்கவும்", - "please_select_facility_type": "வசதி வகையைத் தேர்ந்தெடுக்கவும்", - "please_select_breathlessness_level": "மூச்சுத் திணறல் நிலையைத் தேர்ந்தெடுக்கவும்", - "please_select_a_facility": "வசதியைத் தேர்ந்தெடுக்கவும்", - "please_select_status": "தயவுசெய்து நிலையைத் தேர்ந்தெடுக்கவும்", - "please_select_patient_category": "நோயாளி வகையைத் தேர்ந்தெடுக்கவும்", - "shifting_approving_facility_can_not_be_empty": "ஷிஃப்டிங் அங்கீகரிக்கும் வசதி காலியாக இருக்க முடியாது.", - "redirected_to_create_consultation": "குறிப்பு: ஆலோசனை படிவத்தை உருவாக்க நீங்கள் திருப்பி விடப்படுவீர்கள். பரிமாற்ற செயல்முறையை முடிக்க படிவத்தை பூர்த்தி செய்யவும்", - "mark_this_transfer_as_complete_question": "இந்தப் பரிமாற்றம் முடிந்ததாக நிச்சயமாகக் குறிக்க விரும்புகிறீர்களா? இந்த நோயாளியை ஆரிஜின் வசதி இனி அணுகாது", - "transfer_in_progress": "இடமாற்றம் நடைபெறுகிறது", - "patient_state": "நோயாளி நிலை", - "yet_to_be_decided": "இன்னும் முடிவு செய்யப்படவில்லை", - "awaiting_destination_approval": "இலக்கு அனுமதிக்காக காத்திருக்கிறது" -} diff --git a/src/Locale/ta/Users.json b/src/Locale/ta/Users.json deleted file mode 100644 index 1c81af5c9fd..00000000000 --- a/src/Locale/ta/Users.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "user_management": "பயனர் மேலாண்மை", - "facilities": "வசதிகள்", - "add_new_user": "புதிய பயனரைச் சேர்க்கவும்", - "no_users_found": "பயனர்கள் இல்லை", - "home_facility": "வீட்டு வசதி", - "no_home_facility": "வீட்டு வசதி ஒதுக்கப்படவில்லை", - "clear_home_facility": "தெளிவான வீட்டு வசதி", - "linked_facilities": "இணைக்கப்பட்ட வசதிகள்", - "no_linked_facilities": "இணைக்கப்பட்ட வசதிகள் இல்லை", - "average_weekly_working_hours": "சராசரி வாராந்திர வேலை நேரம்", - "set_average_weekly_working_hours_for": "சராசரி வாராந்திர வேலை நேரத்தை அமைக்கவும்", - "search_by_username": "பயனர்பெயர் மூலம் தேடவும்", - "last_online": "கடைசியாக ஆன்லைன்", - "total_users": "மொத்த பயனர்கள்" -} diff --git a/src/Locale/ta/index.js b/src/Locale/ta/index.js deleted file mode 100644 index cbf1d10c3b9..00000000000 --- a/src/Locale/ta/index.js +++ /dev/null @@ -1,11 +0,0 @@ -import Auth from "./Auth.json"; -import Common from "./Common.json"; -import Entities from "./Entities.json"; -import Facility from "./Facility.json"; - -export default { - ...Auth, - ...Common, - ...Entities, - ...Facility, -}; diff --git a/src/Locale/update_locale.js b/src/Locale/update_locale.js index b6c0b17c5e3..61f5e32cf84 100644 --- a/src/Locale/update_locale.js +++ b/src/Locale/update_locale.js @@ -21,7 +21,7 @@ if (lng === DEFAULT_LOCALE) { process.exit(1); } -const defaultEntryFile = readFile(`./${DEFAULT_LOCALE}/index.js`); +const defaultEntryFile = readFile(`./${DEFAULT_LOCALE}/index.ts`); const defaultAllJsonFiles = getAllJSONFiles(DEFAULT_LOCALE); if (existsSync(lng)) { @@ -36,8 +36,8 @@ if (existsSync(lng)) { console.log(`Create: ${file}`); } - writeFile(`./${lng}/index.js`, defaultEntryFile); - console.log("Create: index.js"); + writeFile(`./${lng}/index.ts`, defaultEntryFile); + console.log("Create: index.ts"); } function compareBothFiles(defaultFile, newFile) { diff --git a/src/PluginEngine.tsx b/src/PluginEngine.tsx new file mode 100644 index 00000000000..3d47dba4d81 --- /dev/null +++ b/src/PluginEngine.tsx @@ -0,0 +1,51 @@ +/* eslint-disable i18next/no-literal-string */ +import React, { Suspense } from "react"; +import { CareAppsContext, useCareApps } from "./Common/hooks/useCareApps"; +import { pluginMap } from "./pluginTypes"; +import { UserAssignedModel } from "./Components/Users/models"; +import ErrorBoundary from "./Components/Common/ErrorBoundary"; + +export default function PluginEngine({ + children, +}: { + children: React.ReactNode; +}) { + return ( + Loading plugins...
    }> + + Error loading plugins +
    + } + > + + {children} + + + + ); +} + +export function PLUGIN_DoctorConnectButtons({ + user, +}: { + user: UserAssignedModel; +}) { + const plugins = useCareApps(); + return ( +
    + {plugins.map((plugin, index) => { + const DoctorConnectButtons = plugin.components.DoctorConnectButtons; + if (!DoctorConnectButtons) { + return null; + } + return ( +
    + +
    + ); + })} +
    + ); +} diff --git a/src/Redux/actions.tsx b/src/Redux/actions.tsx index 00e96e48eef..47d3530d065 100644 --- a/src/Redux/actions.tsx +++ b/src/Redux/actions.tsx @@ -24,27 +24,6 @@ export const deleteAssetBed = (asset_id: string) => }, ); -// Download Actions -export const downloadFacility = () => { - return fireRequest("downloadFacility"); -}; - -export const downloadFacilityCapacity = () => { - return fireRequest("downloadFacilityCapacity"); -}; - -export const downloadFacilityDoctors = () => { - return fireRequest("downloadFacilityDoctors"); -}; - -export const downloadFacilityTriage = () => { - return fireRequest("downloadFacilityTriage"); -}; - -//Patient -export const getAllPatient = (params: object, altKey: string) => { - return fireRequest("patientList", [], params, null, altKey); -}; export const getPatient = (pathParam: object) => { return fireRequest("getPatient", [], {}, pathParam); }; @@ -54,11 +33,6 @@ export const getDistrictByName = (params: object) => { return fireRequest("getDistrictByName", [], params, null); }; -// Sample Test -export const downloadSampleTests = (params: object) => { - return fireRequest("getTestSampleList", [], { ...params, csv: 1 }); -}; - // Consultation export const getConsultation = (id: string) => { return fireRequest("getConsultation", [], {}, { id: id }); @@ -68,26 +42,5 @@ export const dischargePatient = (params: object, pathParams: object) => { return fireRequest("dischargePatient", [], params, pathParams); }; -//Shift -export const listShiftRequests = (params: object, key: string) => { - return fireRequest("listShiftRequests", [], params, null, key); -}; - -export const downloadShiftRequests = (params: object) => { - return fireRequest("downloadShiftRequests", [], params); -}; - -// External Results -export const externalResultList = (params: object, altKey: string) => { - return fireRequest("externalResultList", [], params, null, altKey); -}; - -// Resource -export const downloadResourceRequests = (params: object) => { - return fireRequest("downloadResourceRequests", [], params); -}; - -export const listAssets = (params: object) => - fireRequest("listAssets", [], params); export const operateAsset = (id: string, params: object) => fireRequest("operateAsset", [], params, { external_id: id }); diff --git a/src/Redux/api.tsx b/src/Redux/api.tsx index 0bedb12dca5..ea728d7f53c 100644 --- a/src/Redux/api.tsx +++ b/src/Redux/api.tsx @@ -72,12 +72,8 @@ import { import { IComment, IResource } from "../Components/Resource/models"; import { IDeleteBedCapacity, - IDeleteExternalResult, - IExternalResult, - IExternalResultCsv, ILocalBodies, ILocalBodyByDistrict, - IPartialUpdateExternalResult, } from "../Components/ExternalResult/models"; import { InvestigationGroup, @@ -391,6 +387,12 @@ const routes = { TBody: Type>(), }, + getFacilityHubs: { + path: "/api/v1/facility/{id}/hubs", + method: "GET", + TRes: Type>(), + }, + getFacilitySpokes: { path: "/api/v1/facility/{id}/spokes/", method: "GET", @@ -577,24 +579,29 @@ const routes = { downloadFacility: { path: "/api/v1/facility/?csv", method: "GET", + TRes: Type(), }, downloadFacilityCapacity: { path: "/api/v1/facility/?csv&capacity", method: "GET", + TRes: Type(), }, downloadFacilityDoctors: { path: "/api/v1/facility/?csv&doctors", method: "GET", + TRes: Type(), }, downloadFacilityTriage: { path: "/api/v1/facility/?csv&triage", method: "GET", + TRes: Type(), }, downloadPatients: { path: "/api/v1/patient/?csv", method: "GET", + TRes: Type(), }, getConsultationList: { path: "/api/v1/consultation/", @@ -841,42 +848,6 @@ const routes = { TRes: Type(), }, - // External Results - externalResultList: { - path: "/api/v1/external_result/", - method: "GET", - TRes: Type>(), - }, - externalResult: { - path: "/api/v1/external_result/{id}/", - method: "GET", - TRes: Type(), - }, - externalResultUploadCsv: { - path: "/api/v1/external_result/bulk_upsert/", - method: "POST", - TBody: Type(), - TRes: Type(), - }, - - deleteExternalResult: { - path: "/api/v1/external_result/{id}/", - method: "DELETE", - TRes: Type(), - }, - - updateExternalResult: { - path: "/api/v1/external_result/{id}/", - method: "PUT", - }, - - partialUpdateExternalResult: { - path: "/api/v1/external_result/{id}/", - method: "PATCH", - TRes: Type(), - TBody: Type(), - }, - // States statesList: { path: "/api/v1/state/", @@ -1120,6 +1091,7 @@ const routes = { downloadShiftRequests: { path: "/api/v1/shift/", method: "GET", + TRes: Type(), }, getShiftComments: { path: "/api/v1/shift/{id}/comment/", @@ -1163,7 +1135,7 @@ const routes = { path: "/api/v1/notification/notify/", method: "POST", TRes: Type(), - Tbody: Type(), + TBody: Type(), }, // FileUpload Create @@ -1291,6 +1263,7 @@ const routes = { downloadResourceRequests: { path: "/api/v1/resource/", method: "GET", + TRes: Type(), }, getResourceComments: { path: "/api/v1/resource/{id}/comment/", diff --git a/src/Routers/AppRouter.tsx b/src/Routers/AppRouter.tsx index f5ca25f45b2..df154ee7a5e 100644 --- a/src/Routers/AppRouter.tsx +++ b/src/Routers/AppRouter.tsx @@ -24,12 +24,26 @@ import HCXRoutes from "./routes/HCXRoutes"; import ShiftingRoutes from "./routes/ShiftingRoutes"; import AssetRoutes from "./routes/AssetRoutes"; import ResourceRoutes from "./routes/ResourceRoutes"; -import ExternalResultRoutes from "./routes/ExternalResultRoutes"; -import { DetailRoute } from "./types"; -import useAuthUser from "../Common/hooks/useAuthUser"; +import { usePluginRoutes } from "@/Common/hooks/useCareApps"; import careConfig from "@careConfig"; +import IconIndex from "../CAREUI/icons/Index"; -const Routes = { +export type RouteParams = + T extends `${string}:${infer Param}/${infer Rest}` + ? { [K in Param | keyof RouteParams]: string } + : T extends `${string}:${infer Param}` + ? { [K in Param]: string } + : Record; + +export type RouteFunction = ( + params: RouteParams, +) => JSX.Element; + +export type AppRoutes = { + [K in string]: RouteFunction; +}; + +const Routes: AppRoutes = { "/": () => , ...AssetRoutes, @@ -41,24 +55,26 @@ const Routes = { ...ShiftingRoutes, ...UserRoutes, - "/notifications/:id": ({ id }: DetailRoute) => ( - - ), + "/notifications/:id": ({ id }) => , "/notice_board": () => , - "/abdm/health-information/:id": ({ id }: { id: string }) => ( + "/abdm/health-information/:id": ({ id }) => ( ), - "/facility/:facilityId/abdm": ({ facilityId }: any) => ( + "/facility/:facilityId/abdm": ({ facilityId }) => ( ), "/session-expired": () => , "/not-found": () => , + "/icons": () => , + + // Only include the icon route in development environment + ...(import.meta.env.PROD ? { "/icons": () => } : {}), }; export default function AppRouter() { - const authUser = useAuthUser(); + const pluginRoutes = usePluginRoutes(); let routes = Routes; @@ -66,16 +82,16 @@ export default function AppRouter() { routes = { ...HCXRoutes, ...routes }; } - if ( - !["Nurse", "NurseReadOnly", "Staff", "StaffReadOnly"].includes( - authUser.user_type, - ) - ) { - routes = { ...routes, ...ExternalResultRoutes }; - } - useRedirect("/user", "/users"); + + // Merge in Plugin Routes + routes = { + ...routes, + ...pluginRoutes, + }; + const pages = useRoutes(routes) || ; + const path = usePath(); const [sidebarOpen, setSidebarOpen] = useState(false); @@ -142,7 +158,7 @@ export default function AppRouter() { className="flex h-full w-full items-center px-4 md:hidden" > care logo @@ -151,9 +167,11 @@ export default function AppRouter() {
    -
    {pages}
    +
    + {pages} +
    diff --git a/src/Routers/routes/AssetRoutes.tsx b/src/Routers/routes/AssetRoutes.tsx index d3bd96ca437..ee0537d6c58 100644 --- a/src/Routers/routes/AssetRoutes.tsx +++ b/src/Routers/routes/AssetRoutes.tsx @@ -2,20 +2,23 @@ import AssetConfigure from "../../Components/Assets/AssetConfigure"; import AssetManage from "../../Components/Assets/AssetManage"; import AssetsList from "../../Components/Assets/AssetsList"; import AssetCreate from "../../Components/Facility/AssetCreate"; +import { AppRoutes } from "../AppRouter"; -export default { +const AssetRoutes: AppRoutes = { "/assets": () => , - - "/facility/:facilityId/assets/new": (params: any) => ( - - ), - "/facility/:facilityId/assets/:assetId/update": (params: any) => ( - + "/facility/:facilityId/assets/new": ({ facilityId }) => ( + ), - "/facility/:facilityId/assets/:assetId": (params: any) => ( - + "/facility/:facilityId/assets/:assetId/update": ({ facilityId, assetId }) => ( + ), - "/facility/:facilityId/assets/:assetId/configure": (params: any) => ( - + "/facility/:facilityId/assets/:assetId": ({ facilityId, assetId }) => ( + ), + "/facility/:facilityId/assets/:assetId/configure": ({ + facilityId, + assetId, + }) => , }; + +export default AssetRoutes; diff --git a/src/Routers/routes/ConsultationRoutes.tsx b/src/Routers/routes/ConsultationRoutes.tsx index 598fd06adc3..7f1a7fecfb8 100644 --- a/src/Routers/routes/ConsultationRoutes.tsx +++ b/src/Routers/routes/ConsultationRoutes.tsx @@ -5,30 +5,30 @@ import ManagePrescriptions from "../../Components/Medicine/ManagePrescriptions"; import { DailyRoundListDetails } from "../../Components/Patient/DailyRoundListDetails"; import { DailyRounds } from "../../Components/Patient/DailyRounds"; import { ConsultationDetails } from "../../Components/Facility/ConsultationDetails"; -import TreatmentSummary, { - ITreatmentSummaryProps, -} from "../../Components/Facility/TreatmentSummary"; +import TreatmentSummary from "../../Components/Facility/TreatmentSummary"; import ConsultationDoctorNotes from "../../Components/Facility/ConsultationDoctorNotes"; import PatientConsentRecords from "../../Components/Patient/PatientConsentRecords"; import CriticalCareEditor from "../../Components/LogUpdate/CriticalCareEditor"; import PrescriptionsPrintPreview from "../../Components/Medicine/PrintPreview"; import CriticalCarePreview from "../../Components/LogUpdate/CriticalCarePreview"; import FileUploadPage from "../../Components/Patient/FileUploadPage"; +import InvestigationPrintPreview from "../../Components/Facility/Investigations/InvestigationsPrintPreview"; +import { AppRoutes } from "../AppRouter"; -export default { +const consultationRoutes: AppRoutes = { "/facility/:facilityId/patient/:patientId/consultation": ({ facilityId, patientId, - }: any) => , + }) => , "/facility/:facilityId/patient/:patientId/consultation/:id/update": ({ facilityId, patientId, id, - }: any) => ( + }) => ( ), "/facility/:facilityId/patient/:patientId/consultation/:id/consent-records": - ({ facilityId, patientId, id }: any) => ( + ({ facilityId, patientId, id }) => ( ( + }) => ( ), "/facility/:facilityId/patient/:patientId/consultation/:consultationId/prescriptions": - (path: any) => , + (path) => , "/facility/:facilityId/patient/:patientId/consultation/:consultationId/prescriptions/print": () => , "/facility/:facilityId/patient/:patientId/consultation/:id/investigation": ({ facilityId, patientId, id, - }: any) => ( + }) => ( ), "/facility/:facilityId/patient/:patientId/consultation/:id/investigation/:sessionId": - ({ facilityId, patientId, id, sessionId }: any) => ( + ({ facilityId, patientId, id, sessionId }) => ( ), + "/facility/:facilityId/patient/:patientId/consultation/:id/investigation/:sessionId/print": + ({ facilityId, patientId, id, sessionId }: any) => ( + + ), "/facility/:facilityId/patient/:patientId/consultation/:id/daily-rounds": ({ facilityId, patientId, id, - }: any) => ( + }) => ( ), "/facility/:facilityId/patient/:patientId/consultation/:consultationId/daily-rounds/:id/update": - ({ facilityId, patientId, consultationId, id }: any) => ( + ({ facilityId, patientId, consultationId, id }) => ( ), "/facility/:facilityId/patient/:patientId/consultation/:consultationId/daily-rounds/:id": - ({ facilityId, patientId, consultationId, id }: any) => ( + ({ facilityId, patientId, consultationId, id }) => ( ), - "/facility/:facilityId/patient/:patientId/consultation/:consultationId/daily_rounds/:id": - (params: { - facilityId: string; - patientId: string; - consultationId: string; - id: string; - }) => , + ({ facilityId, patientId, consultationId, id }) => ( + + ), "/facility/:facilityId/patient/:patientId/consultation/:consultationId/daily_rounds/:id/update": - (params: { - facilityId: string; - patientId: string; - consultationId: string; - id: string; - }) => , + ({ facilityId, patientId, consultationId, id }) => ( + + ), "/facility/:facilityId/patient/:patientId/consultation/:consultationId": ({ facilityId, patientId, consultationId, - }: any) => ( + }) => ( ), - "/consultation/:consultationId": ({ consultationId }: any) => ( + "/consultation/:consultationId": ({ consultationId }) => ( ), "/facility/:facilityId/patient/:patientId/consultation/:consultationId/treatment-summary": - ({ facilityId, patientId, consultationId }: ITreatmentSummaryProps) => ( + ({ facilityId, patientId, consultationId }) => ( ), "/facility/:facilityId/patient/:patientId/consultation/:consultationId/notes": - ({ facilityId, patientId, consultationId }: any) => ( + ({ facilityId, patientId, consultationId }) => ( ), "/facility/:facilityId/patient/:patientId/consultation/:consultationId/:tab": - ({ facilityId, patientId, consultationId, tab }: any) => ( + ({ facilityId, patientId, consultationId, tab }) => ( ), }; + +export default consultationRoutes; diff --git a/src/Routers/routes/ExternalResultRoutes.tsx b/src/Routers/routes/ExternalResultRoutes.tsx deleted file mode 100644 index b6bc71a2808..00000000000 --- a/src/Routers/routes/ExternalResultRoutes.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import ResultItem from "../../Components/ExternalResult/ResultItem"; -import ResultList from "../../Components/ExternalResult/ResultList"; -import ResultUpdate from "../../Components/ExternalResult/ResultUpdate"; -import { DetailRoute } from "../types"; - -export default { - "/external_results": () => , - "/external_results/:id": ({ id }: DetailRoute) => , - "/external_results/:id/update": ({ id }: DetailRoute) => ( - - ), -}; diff --git a/src/Routers/routes/FacilityInventoryRoutes.tsx b/src/Routers/routes/FacilityInventoryRoutes.tsx index 17e93b2bc60..99123d8f737 100644 --- a/src/Routers/routes/FacilityInventoryRoutes.tsx +++ b/src/Routers/routes/FacilityInventoryRoutes.tsx @@ -3,22 +3,25 @@ import InventoryList from "../../Components/Facility/InventoryList"; import InventoryLog from "../../Components/Facility/InventoryLog"; import MinQuantityList from "../../Components/Facility/MinQuantityList"; import { SetInventoryForm } from "../../Components/Facility/SetInventoryForm"; +import { AppRoutes } from "../AppRouter"; -export default { - "/facility/:facilityId/inventory": ({ facilityId }: any) => ( +const FacilityInventoryRoutes: AppRoutes = { + "/facility/:facilityId/inventory": ({ facilityId }) => ( ), - "/facility/:facilityId/inventory/min_quantity/set": ({ facilityId }: any) => ( + "/facility/:facilityId/inventory/min_quantity/set": ({ facilityId }) => ( ), - "/facility/:facilityId/inventory/min_quantity/list": ({ - facilityId, - }: any) => , - "/facility/:facilityId/inventory/min_quantity": ({ facilityId }: any) => ( + "/facility/:facilityId/inventory/min_quantity/list": ({ facilityId }) => ( + + ), + "/facility/:facilityId/inventory/min_quantity": ({ facilityId }) => ( ), "/facility/:facilityId/inventory/:inventoryId": ({ facilityId, inventoryId, - }: any) => , + }) => , }; + +export default FacilityInventoryRoutes; diff --git a/src/Routers/routes/FacilityLocationRoutes.tsx b/src/Routers/routes/FacilityLocationRoutes.tsx index 5d547ebd466..c2e1add4b10 100644 --- a/src/Routers/routes/FacilityLocationRoutes.tsx +++ b/src/Routers/routes/FacilityLocationRoutes.tsx @@ -6,41 +6,42 @@ import LocationManagement from "../../Components/Facility/LocationManagement"; import CentralLiveMonitoring from "../../Components/CameraFeed/CentralLiveMonitoring"; import { AuthorizeUserRoute } from "../../Utils/AuthorizeFor"; import { CameraFeedPermittedUserTypes } from "../../Utils/permissions"; +import { AppRoutes } from "../AppRouter"; -export default { - "/facility/:facilityId/location": ({ facilityId }: any) => ( +const FacilityLocationRoutes: AppRoutes = { + "/facility/:facilityId/location": ({ facilityId }) => ( ), "/facility/:facilityId/location/:locationId/beds": ({ facilityId, locationId, - }: any) => , - "/facility/:facilityId/inventory/add": ({ facilityId }: any) => ( + }) => , + "/facility/:facilityId/inventory/add": ({ facilityId }) => ( ), - "/facility/:facilityId/location/add": ({ facilityId }: any) => ( + "/facility/:facilityId/location/add": ({ facilityId }) => ( ), "/facility/:facilityId/location/:locationId/update": ({ facilityId, locationId, - }: any) => ( - - ), + }) => , "/facility/:facilityId/location/:locationId/beds/add": ({ facilityId, locationId, - }: any) => , + }) => , "/facility/:facilityId/location/:locationId/beds/:bedId/update": ({ facilityId, locationId, bedId, - }: any) => ( + }) => ( ), - "/facility/:facilityId/live-monitoring": (props: any) => ( + "/facility/:facilityId/live-monitoring": ({ facilityId }) => ( - + ), }; + +export default FacilityLocationRoutes; diff --git a/src/Routers/routes/FacilityRoutes.tsx b/src/Routers/routes/FacilityRoutes.tsx index 2c711cf48cb..16b202ae0ce 100644 --- a/src/Routers/routes/FacilityRoutes.tsx +++ b/src/Routers/routes/FacilityRoutes.tsx @@ -2,48 +2,47 @@ import { FacilityConfigure } from "../../Components/Facility/FacilityConfigure"; import { FacilityCreate } from "../../Components/Facility/FacilityCreate"; import { FacilityHome } from "../../Components/Facility/FacilityHome"; import FacilityUsers from "../../Components/Facility/FacilityUsers"; -import { HospitalList } from "../../Components/Facility/HospitalList"; +import { FacilityList } from "../../Components/Facility/FacilityList"; import { TriageForm } from "../../Components/Facility/TriageForm"; import ResourceCreate from "../../Components/Resource/ResourceCreate"; import CentralNursingStation from "../../Components/Facility/CentralNursingStation"; import FacilityLocationRoutes from "./FacilityLocationRoutes"; import FacilityInventoryRoutes from "./FacilityInventoryRoutes"; import DischargedPatientsList from "../../Components/Facility/DischargedPatientsList"; +import { AppRoutes } from "../AppRouter"; -export default { - "/facility": () => , +const FacilityRoutes: AppRoutes = { + "/facility": () => , "/facility/create": () => , - "/facility/:facilityId/update": ({ facilityId }: any) => ( + "/facility/:facilityId/update": ({ facilityId }) => ( ), - "/facility/:facilityId/configure": ({ facilityId }: any) => ( + "/facility/:facilityId/configure": ({ facilityId }) => ( ), - "/facility/:facilityId/cns": ({ facilityId }: any) => ( + "/facility/:facilityId/cns": ({ facilityId }) => ( ), - "/facility/:facilityId": ({ facilityId }: any) => ( + "/facility/:facilityId": ({ facilityId }) => ( ), - "/facility/:id/discharged-patients": ({ id }: any) => ( + "/facility/:id/discharged-patients": ({ id }) => ( ), - - "/facility/:facilityId/users": ({ facilityId }: any) => ( + "/facility/:facilityId/users": ({ facilityId }) => ( ), - "/facility/:facilityId/resource/new": ({ facilityId }: any) => ( + "/facility/:facilityId/resource/new": ({ facilityId }) => ( ), - - // Triage related routes - "/facility/:facilityId/triage": ({ facilityId }: any) => ( + "/facility/:facilityId/triage": ({ facilityId }) => ( ), - "/facility/:facilityId/triage/:id": ({ facilityId, id }: any) => ( + "/facility/:facilityId/triage/:id": ({ facilityId, id }) => ( ), - ...FacilityLocationRoutes, ...FacilityInventoryRoutes, }; + +export default FacilityRoutes; diff --git a/src/Routers/routes/HCXRoutes.tsx b/src/Routers/routes/HCXRoutes.tsx index 80378b24621..929cc3f12bb 100644 --- a/src/Routers/routes/HCXRoutes.tsx +++ b/src/Routers/routes/HCXRoutes.tsx @@ -1,10 +1,15 @@ -import ConsultationClaims, { - IConsultationClaimsProps, -} from "../../Components/Facility/ConsultationClaims"; +import ConsultationClaims from "../../Components/Facility/ConsultationClaims"; +import { AppRoutes } from "../AppRouter"; -export default { +const HCXRoutes: AppRoutes = { "/facility/:facilityId/patient/:patientId/consultation/:consultationId/claims": - (pathParams: IConsultationClaimsProps) => ( - + ({ facilityId, patientId, consultationId }) => ( + ), }; + +export default HCXRoutes; diff --git a/src/Routers/routes/PatientRoutes.tsx b/src/Routers/routes/PatientRoutes.tsx index fcfc9b04e37..45ff044e4d2 100644 --- a/src/Routers/routes/PatientRoutes.tsx +++ b/src/Routers/routes/PatientRoutes.tsx @@ -3,44 +3,44 @@ import { PatientManager } from "../../Components/Patient/ManagePatients"; import { PatientHome } from "../../Components/Patient/PatientHome"; import PatientNotes from "../../Components/Patient/PatientNotes"; import { PatientRegister } from "../../Components/Patient/PatientRegister"; -import { DetailRoute } from "../types"; import DeathReport from "../../Components/DeathReport/DeathReport"; import { InsuranceDetails } from "../../Components/Patient/InsuranceDetails"; import FileUploadPage from "../../Components/Patient/FileUploadPage"; +import { AppRoutes } from "../AppRouter"; -export default { +const PatientRoutes: AppRoutes = { "/patients": () => , - "/patient/:id": ({ id }: DetailRoute) => , - "/patient/:id/investigation_reports": ({ id }: DetailRoute) => ( + "/patient/:id": ({ id }) => , + "/patient/:id/investigation_reports": ({ id }) => ( ), - - // Facility Scoped Routes - "/facility/:facilityId/patient": ({ facilityId }: any) => ( + "/facility/:facilityId/patient": ({ facilityId }) => ( ), - "/facility/:facilityId/patient/:id": ({ facilityId, id }: any) => ( + "/facility/:facilityId/patient/:id": ({ facilityId, id }) => ( ), - "/facility/:facilityId/patient/:id/insurance": ({ facilityId, id }: any) => ( + "/facility/:facilityId/patient/:id/insurance": ({ facilityId, id }) => ( ), - "/facility/:facilityId/patient/:id/update": ({ facilityId, id }: any) => ( + "/facility/:facilityId/patient/:id/update": ({ facilityId, id }) => ( ), "/facility/:facilityId/patient/:patientId/notes": ({ facilityId, patientId, - }: any) => , + }) => , "/facility/:facilityId/patient/:patientId/files": ({ facilityId, patientId, - }: any) => ( + }) => ( ), - "/death_report/:id": ({ id }: any) => , + "/death_report/:id": ({ id }) => , }; + +export default PatientRoutes; diff --git a/src/Routers/routes/ResourceRoutes.tsx b/src/Routers/routes/ResourceRoutes.tsx index 8408ab4d79d..d75c933f760 100644 --- a/src/Routers/routes/ResourceRoutes.tsx +++ b/src/Routers/routes/ResourceRoutes.tsx @@ -1,25 +1,19 @@ -import { DndProvider } from "react-dnd"; -import { HTML5Backend } from "react-dnd-html5-backend"; import ResourceDetails from "../../Components/Resource/ResourceDetails"; import { ResourceDetailsUpdate } from "../../Components/Resource/ResourceDetailsUpdate"; import ListView from "../../Components/Resource/ListView"; import BoardView from "../../Components/Resource/ResourceBoardView"; import { Redirect } from "raviger"; -import { DetailRoute } from "../types"; +import { AppRoutes } from "../AppRouter"; const getDefaultView = () => localStorage.getItem("defaultResourceView") === "list" ? "list" : "board"; -export default { +const ResourceRoutes: AppRoutes = { "/resource": () => , - "/resource/board": () => ( - - - - ), + "/resource/board": () => , "/resource/list": () => , - "/resource/:id": ({ id }: DetailRoute) => , - "/resource/:id/update": ({ id }: DetailRoute) => ( - - ), + "/resource/:id": ({ id }) => , + "/resource/:id/update": ({ id }) => , }; + +export default ResourceRoutes; diff --git a/src/Routers/routes/SampleRoutes.tsx b/src/Routers/routes/SampleRoutes.tsx index 290a34fd4eb..cf296790a81 100644 --- a/src/Routers/routes/SampleRoutes.tsx +++ b/src/Routers/routes/SampleRoutes.tsx @@ -2,24 +2,22 @@ import { SampleDetails } from "../../Components/Patient/SampleDetails"; import SampleReport from "../../Components/Patient/SamplePreview"; import { SampleTest } from "../../Components/Patient/SampleTest"; import SampleViewAdmin from "../../Components/Patient/SampleViewAdmin"; -import { DetailRoute, RouteParams } from "../types"; +import { AppRoutes } from "../AppRouter"; -export default { +const SampleRoutes: AppRoutes = { "/sample": () => , - "/sample/:id": ({ id }: DetailRoute) => , + "/sample/:id": ({ id }) => , "/patient/:patientId/test_sample/:sampleId/icmr_sample": ({ patientId, sampleId, - }: RouteParams<"patientId" | "sampleId">) => ( - - ), + }) => , "/facility/:facilityId/patient/:patientId/sample-test": ({ facilityId, patientId, - }: RouteParams<"facilityId" | "patientId">) => ( - + }) => , + "/facility/:facilityId/patient/:patientId/sample/:id": ({ id }) => ( + ), - "/facility/:facilityId/patient/:patientId/sample/:id": ({ - id, - }: DetailRoute) => , }; + +export default SampleRoutes; diff --git a/src/Routers/routes/ShiftingRoutes.tsx b/src/Routers/routes/ShiftingRoutes.tsx index 9b20b4a1a0b..dc11ff2b8ee 100644 --- a/src/Routers/routes/ShiftingRoutes.tsx +++ b/src/Routers/routes/ShiftingRoutes.tsx @@ -1,27 +1,24 @@ -import { DndProvider } from "react-dnd"; -import { HTML5Backend } from "react-dnd-html5-backend"; import { ShiftCreate } from "../../Components/Patient/ShiftCreate"; import ShiftDetails from "../../Components/Shifting/ShiftDetails"; import { ShiftDetailsUpdate } from "../../Components/Shifting/ShiftDetailsUpdate"; import ListView from "../../Components/Shifting/ListView"; import BoardView from "../../Components/Shifting/BoardView"; import { Redirect } from "raviger"; +import { AppRoutes } from "../AppRouter"; const getDefaultView = () => localStorage.getItem("defaultShiftView") === "list" ? "list" : "board"; -export default { +const ShiftingRoutes: AppRoutes = { "/shifting": () => , - "/shifting/board": () => ( - - - - ), + "/shifting/board": () => , "/shifting/list": () => , - "/shifting/:id": ({ id }: any) => , - "/shifting/:id/update": ({ id }: any) => , + "/shifting/:id": ({ id }) => , + "/shifting/:id/update": ({ id }) => , "/facility/:facilityId/patient/:patientId/shift/new": ({ facilityId, patientId, - }: any) => , + }) => , }; + +export default ShiftingRoutes; diff --git a/src/Routers/routes/UserRoutes.tsx b/src/Routers/routes/UserRoutes.tsx index 56877ca4c78..24f355b201b 100644 --- a/src/Routers/routes/UserRoutes.tsx +++ b/src/Routers/routes/UserRoutes.tsx @@ -1,9 +1,12 @@ import ManageUsers from "../../Components/Users/ManageUsers"; import { UserAdd } from "../../Components/Users/UserAdd"; import UserProfile from "../../Components/Users/UserProfile"; +import { AppRoutes } from "../AppRouter"; -export default { +const UserRoutes: AppRoutes = { "/users": () => , "/users/add": () => , "/user/profile": () => , }; + +export default UserRoutes; diff --git a/src/Utils/AutoSave.tsx b/src/Utils/AutoSave.tsx index fa29b2690d3..dd251f5bbb7 100644 --- a/src/Utils/AutoSave.tsx +++ b/src/Utils/AutoSave.tsx @@ -1,7 +1,16 @@ -import { useReducer, useEffect, useRef, useState, Dispatch } from "react"; -import ButtonV2 from "../Components/Common/components/ButtonV2"; +import React, { + useReducer, + useEffect, + useRef, + useState, + Dispatch, + useContext, + ReactNode, +} from "react"; +import { Button } from "../Components/ui/button"; import { FormAction, FormReducer, FormState } from "../Components/Form/Utils"; import { relativeTime } from "./utils"; +import CareIcon from "@/CAREUI/icons/CareIcon"; type Draft = { timestamp: number; @@ -80,9 +89,20 @@ export function useAutoSaveState(initialState: any) { return [state, setState]; } +type RestoreDraftContextValue = { + handleDraftSelect: (formState: any) => void; + draftStarted: boolean; + drafts: Draft[]; +}; + +const RestoreDraftContext = + React.createContext(null); + export function DraftSection(props: { handleDraftSelect: (formState: any) => void; formData: any; + hidden?: boolean; + children?: ReactNode; }) { const { handleDraftSelect } = props; const [drafts, setDrafts] = useState([]); @@ -122,36 +142,56 @@ export function DraftSection(props: { }, []); return ( - <> - {drafts && ( + + {!props.hidden && drafts && drafts.length > 0 && (
    - {drafts?.length > 0 && ( -
    -

    - Last saved draft:{" "} - {relativeTime( - draftStarted - ? drafts[0].timestamp - : drafts[drafts.length - 1].timestamp, - )} -

    - - handleDraftSelect( - (draftStarted ? drafts[0] : drafts[drafts.length - 1]) - .draft, - ) - } - className="ml-2" - > - Restore - -
    - )} +
    )} - + {props.children} +
    ); } + +export const RestoreDraftButton = () => { + const ctx = useContext(RestoreDraftContext); + + if (!ctx) { + throw new Error( + "RestoreDraftButton must be used within a RestoreDraftProvider", + ); + } + + const { handleDraftSelect, draftStarted, drafts } = ctx; + + if (!(drafts && drafts.length > 0)) { + return null; + } + + return ( + + ); +}; diff --git a/src/Utils/Notifications.js b/src/Utils/Notifications.js index 188a2f7a61b..87de7991a6e 100644 --- a/src/Utils/Notifications.js +++ b/src/Utils/Notifications.js @@ -28,6 +28,7 @@ const notify = (text, type) => { sticker: false, }, stack: notifyStack, + delay: 3000, }); notification.refs.elem.addEventListener("click", () => { notification.close(); diff --git a/src/Utils/featureFlags.tsx b/src/Utils/featureFlags.tsx new file mode 100644 index 00000000000..739d49e821a --- /dev/null +++ b/src/Utils/featureFlags.tsx @@ -0,0 +1,78 @@ +import { createContext, useContext, useState, useEffect } from "react"; +import useQuery from "./request/useQuery"; +import routes from "../Redux/api"; +import useAuthUser from "../Common/hooks/useAuthUser"; +import { FacilityModel } from "../Components/Facility/models"; + +export type FeatureFlag = "SCRIBE_ENABLED"; // "HCX_ENABLED" | "ABDM_ENABLED" | + +export interface FeatureFlagsResponse { + user_flags: FeatureFlag[]; + facility_flags: { + facility: string; + features: FeatureFlag[]; + }[]; +} + +const defaultFlags: FeatureFlag[] = []; + +const FeatureFlagsContext = createContext({ + user_flags: defaultFlags, + facility_flags: [], +}); + +export const FeatureFlagsProvider = (props: { children: React.ReactNode }) => { + const [featureFlags, setFeatureFlags] = useState({ + user_flags: defaultFlags, + facility_flags: [], + }); + + const user = useAuthUser(); + + useEffect(() => { + if (user.user_flags) { + setFeatureFlags((ff) => ({ + ...ff, + user_flags: [...defaultFlags, ...(user.user_flags || [])], + })); + } + }, [user]); + + return ( + + {props.children} + + ); +}; + +export const useFeatureFlags = (facility?: FacilityModel | string) => { + const [facilityObject, setFacilityObject] = useState< + FacilityModel | undefined + >(typeof facility === "string" ? undefined : facility); + + const context = useContext(FeatureFlagsContext); + if (context === undefined) { + throw new Error( + "useFeatureFlags must be used within a FeatureFlagsProvider", + ); + } + + const facilityQuery = useQuery(routes.getPermittedFacility, { + pathParams: { + id: typeof facility === "string" ? facility : "", + }, + prefetch: false, + silent: true, + onResponse: (res) => { + setFacilityObject(res.data); + }, + }); + + const facilityFlags = facilityObject?.facility_flags || []; + + useEffect(() => { + facilityQuery.refetch(); + }, [facility]); + + return [...context.user_flags, ...facilityFlags]; +}; diff --git a/src/Utils/useTimer.tsx b/src/Utils/useTimer.tsx index 6a8d8320c5e..f7a03ffefa0 100644 --- a/src/Utils/useTimer.tsx +++ b/src/Utils/useTimer.tsx @@ -27,7 +27,7 @@ export const useTimer = (autoStart = false) => { const [time, setTime] = useState(0); useEffect(() => { - let interval: number; + let interval: ReturnType; if (running) { interval = setInterval(() => { setTime((prevTime) => prevTime + 1); diff --git a/src/Utils/utils.ts b/src/Utils/utils.ts index 46832e76228..e4e0b983368 100644 --- a/src/Utils/utils.ts +++ b/src/Utils/utils.ts @@ -106,6 +106,16 @@ export const formatName = (user: { first_name: string; last_name: string }) => { return `${user.first_name} ${user.last_name}`; }; +export const formatDisplayName = (user: { + first_name: string; + last_name: string; + username: string; +}) => { + return user.first_name && user.last_name + ? `${user.first_name} ${user.last_name}` + : user.first_name || user.username || "User"; +}; + export const relativeTime = (time?: DateLike) => { return `${dayjs(time).fromNow()}`; }; diff --git a/src/hooks/use-toast.ts b/src/hooks/use-toast.ts new file mode 100644 index 00000000000..2d8ff897040 --- /dev/null +++ b/src/hooks/use-toast.ts @@ -0,0 +1,188 @@ +import * as React from "react"; + +import type { ToastActionElement, ToastProps } from "@/Components/ui/toast"; + +const TOAST_LIMIT = 1; +const TOAST_REMOVE_DELAY = 1000000; + +type ToasterToast = ToastProps & { + id: string; + title?: React.ReactNode; + description?: React.ReactNode; + action?: ToastActionElement; +}; + +const actionTypes = { + ADD_TOAST: "ADD_TOAST", + UPDATE_TOAST: "UPDATE_TOAST", + DISMISS_TOAST: "DISMISS_TOAST", + REMOVE_TOAST: "REMOVE_TOAST", +} as const; + +let count = 0; + +function genId() { + count = (count + 1) % Number.MAX_SAFE_INTEGER; + return count.toString(); +} + +type ActionType = typeof actionTypes; + +type Action = + | { + type: ActionType["ADD_TOAST"]; + toast: ToasterToast; + } + | { + type: ActionType["UPDATE_TOAST"]; + toast: Partial; + } + | { + type: ActionType["DISMISS_TOAST"]; + toastId?: ToasterToast["id"]; + } + | { + type: ActionType["REMOVE_TOAST"]; + toastId?: ToasterToast["id"]; + }; + +interface State { + toasts: ToasterToast[]; +} + +const toastTimeouts = new Map>(); + +const addToRemoveQueue = (toastId: string) => { + if (toastTimeouts.has(toastId)) { + return; + } + + const timeout = setTimeout(() => { + toastTimeouts.delete(toastId); + dispatch({ + type: "REMOVE_TOAST", + toastId: toastId, + }); + }, TOAST_REMOVE_DELAY); + + toastTimeouts.set(toastId, timeout); +}; + +export const reducer = (state: State, action: Action): State => { + switch (action.type) { + case "ADD_TOAST": + return { + ...state, + toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT), + }; + + case "UPDATE_TOAST": + return { + ...state, + toasts: state.toasts.map((t) => + t.id === action.toast.id ? { ...t, ...action.toast } : t, + ), + }; + + case "DISMISS_TOAST": { + const { toastId } = action; + + // ! Side effects ! - This could be extracted into a dismissToast() action, + // but I'll keep it here for simplicity + if (toastId) { + addToRemoveQueue(toastId); + } else { + state.toasts.forEach((toast) => { + addToRemoveQueue(toast.id); + }); + } + + return { + ...state, + toasts: state.toasts.map((t) => + t.id === toastId || toastId === undefined + ? { + ...t, + open: false, + } + : t, + ), + }; + } + case "REMOVE_TOAST": + if (action.toastId === undefined) { + return { + ...state, + toasts: [], + }; + } + return { + ...state, + toasts: state.toasts.filter((t) => t.id !== action.toastId), + }; + } +}; + +const listeners: Array<(state: State) => void> = []; + +let memoryState: State = { toasts: [] }; + +function dispatch(action: Action) { + memoryState = reducer(memoryState, action); + listeners.forEach((listener) => { + listener(memoryState); + }); +} + +type Toast = Omit; + +function toast({ ...props }: Toast) { + const id = genId(); + + const update = (props: ToasterToast) => + dispatch({ + type: "UPDATE_TOAST", + toast: { ...props, id }, + }); + const dismiss = () => dispatch({ type: "DISMISS_TOAST", toastId: id }); + + dispatch({ + type: "ADD_TOAST", + toast: { + ...props, + id, + open: true, + onOpenChange: (open) => { + if (!open) dismiss(); + }, + }, + }); + + return { + id: id, + dismiss, + update, + }; +} + +function useToast() { + const [state, setState] = React.useState(memoryState); + + React.useEffect(() => { + listeners.push(setState); + return () => { + const index = listeners.indexOf(setState); + if (index > -1) { + listeners.splice(index, 1); + } + }; + }, [state]); + + return { + ...state, + toast, + dismiss: (toastId?: string) => dispatch({ type: "DISMISS_TOAST", toastId }), + }; +} + +export { useToast, toast }; diff --git a/src/i18n.ts b/src/i18n.ts index 289e0fc325f..cce26d71b2c 100644 --- a/src/i18n.ts +++ b/src/i18n.ts @@ -1,11 +1,22 @@ import i18n from "i18next"; import { initReactI18next } from "react-i18next"; import LanguageDetector from "i18next-browser-languagedetector"; -import en from "./Locale/en"; -import ta from "./Locale/ta"; -import ml from "./Locale/ml"; -import mr from "./Locale/mr"; -import kn from "./Locale/kn"; + +import en from "./Locale/en.json"; +import ta from "./Locale/ta.json"; +import ml from "./Locale/ml.json"; +import mr from "./Locale/mr.json"; +import kn from "./Locale/kn.json"; +import hi from "./Locale/hi.json"; + +export const LANGUAGES: { [key: string]: any } = { + en: "English", + ta: "தமிழ்", + ml: "മലയാളം", + mr: "मराठी", + kn: "ಕನ್ನಡ", + hi: "हिन्दी", +}; const resources = { en: { translation: en }, @@ -13,6 +24,7 @@ const resources = { ml: { translation: ml }, mr: { translation: mr }, kn: { translation: kn }, + hi: { translation: hi }, }; i18n diff --git a/src/lib/utils.ts b/src/lib/utils.ts new file mode 100644 index 00000000000..bd0c391ddd1 --- /dev/null +++ b/src/lib/utils.ts @@ -0,0 +1,6 @@ +import { clsx, type ClassValue } from "clsx" +import { twMerge } from "tailwind-merge" + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)) +} diff --git a/src/pluginTypes.ts b/src/pluginTypes.ts new file mode 100644 index 00000000000..26a07e4f141 --- /dev/null +++ b/src/pluginTypes.ts @@ -0,0 +1,54 @@ +import { LazyExoticComponent } from "react"; +import { UserAssignedModel } from "./Components/Users/models"; +import { AppRoutes } from "./Routers/AppRouter"; +import { INavItem } from "./Components/Common/Sidebar/Sidebar"; +import { pluginMap } from "./pluginMap"; + +// Define the available plugins +export type AvailablePlugin = "@apps/care_livekit_fe"; + +export type AvailablePluginManifest = "@app-manifest/care_livekit_fe"; + +export type DoctorConnectButtonComponentType = React.FC<{ + user: UserAssignedModel; +}>; + +// Define supported plugin components +export type SupportedPluginComponents = { + DoctorConnectButtons: DoctorConnectButtonComponentType; +}; + +// Create a type for lazy-loaded components +// eslint-disable-next-line @typescript-eslint/no-explicit-any +type LazyComponent> = LazyExoticComponent; + +// Define PluginComponentMap with lazy-loaded components +export type PluginComponentMap = { + [K in keyof SupportedPluginComponents]?: LazyComponent< + SupportedPluginComponents[K] + >; +}; + +type SupportedPluginExtensions = + | "DoctorConnectButtons" + | "PatientExternalRegistration"; + +export type PluginManifest = { + plugin: string; + routes: AppRoutes; + extends: SupportedPluginExtensions[]; + components: PluginComponentMap; + navItems: INavItem[]; +}; + +// Create a type that ensures only available plugins can be used +export type EnabledPluginConfig = { + plugin: string; + manifestPath: AvailablePluginManifest; + path: AvailablePlugin; + manifest: Promise; + // Components are a dictionary, with the key being the component name, and the value being the component type + components: PluginComponentMap; +}; + +export { pluginMap }; diff --git a/src/style/index.css b/src/style/index.css index 254bf4e9b6e..28b3ef31718 100644 --- a/src/style/index.css +++ b/src/style/index.css @@ -1,12 +1,10 @@ -@import "@fontsource/inter/100.css"; -@import "@fontsource/inter/200.css"; -@import "@fontsource/inter/300.css"; -@import "@fontsource/inter/400.css"; -@import "@fontsource/inter/500.css"; -@import "@fontsource/inter/600.css"; -@import "@fontsource/inter/700.css"; -@import "@fontsource/inter/800.css"; -@import "@fontsource/inter/900.css"; +@import "@fontsource/figtree/300.css"; +@import "@fontsource/figtree/400.css"; +@import "@fontsource/figtree/500.css"; +@import "@fontsource/figtree/600.css"; +@import "@fontsource/figtree/700.css"; +@import "@fontsource/figtree/800.css"; +@import "@fontsource/figtree/900.css"; @import "@pnotify/core/dist/PNotify.css"; @import "@pnotify/mobile/dist/PNotifyMobile.css"; @@ -39,7 +37,7 @@ html { } body { - font-family: "Inter", sans-serif; + font-family: "Figtree", sans-serif; color: #453c52; @apply font-sans text-secondary-900 w-full h-full antialiased; } @@ -449,7 +447,7 @@ button:disabled, left: 0; top: 0; } -} +} .header-section .appBar { z-index: 1201; @@ -664,13 +662,13 @@ button:disabled, } - + .csv-input::file-selector-button:hover { background-color: #84e1bc; } - - + + /* for gmaps search dropdown */ .pac-container { z-index: 100000 !important; @@ -695,16 +693,16 @@ button:disabled, /* Patient Category Styles */ -.patient-comfort { +.patient-comfort { @apply bg-patient-comfort text-patient-comfort-fore } -.patient-stable { +.patient-stable { @apply bg-patient-stable text-patient-stable-fore } -.patient-abnormal { +.patient-abnormal { @apply bg-patient-abnormal text-patient-abnormal-fore } -.patient-critical { +.patient-critical { @apply bg-patient-critical text-patient-critical-fore } .patient-unknown { @@ -715,16 +713,16 @@ button:disabled, @apply bg-patient-activelydying text-patient-activelydying-fore } -.patient-comfort-ring { +.patient-comfort-ring { @apply ring-patient-comfort } -.patient-stable-ring { +.patient-stable-ring { @apply ring-patient-stable } -.patient-abnormal-ring { +.patient-abnormal-ring { @apply ring-patient-abnormal } -.patient-critical-ring { +.patient-critical-ring { @apply ring-patient-critical } .patient-unknown-ring { @@ -734,16 +732,16 @@ button:disabled, @apply ring-patient-activelydying } -.patient-comfort-profile { +.patient-comfort-profile { @apply border-2 border-patient-comfort rounded-t } -.patient-stable-profile { +.patient-stable-profile { @apply border-2 border-patient-stable rounded-t } -.patient-abnormal-profile { +.patient-abnormal-profile { @apply border-2 border-patient-abnormal rounded-t } -.patient-critical-profile { +.patient-critical-profile { @apply border-2 border-patient-critical rounded-t } .patient-unknown-profile { @@ -1305,4 +1303,10 @@ input[type="number"] { font-weight: 700; color: #2856ff; font-size: 1rem; -} \ No newline at end of file +} + +@layer base { + :root { + --radius: 0.5rem; + } +} diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts index 7a50ebe49db..f339922bfae 100644 --- a/src/vite-env.d.ts +++ b/src/vite-env.d.ts @@ -25,12 +25,13 @@ interface ImportMetaEnv { readonly REACT_KASP_STRING?: string; readonly REACT_KASP_FULL_STRING?: string; readonly REACT_SAMPLE_FORMAT_ASSET_IMPORT?: string; - readonly REACT_SAMPLE_FORMAT_EXTERNAL_RESULT_IMPORT?: string; readonly REACT_WARTIME_SHIFTING?: string; readonly REACT_STILL_WATCHING_IDLE_TIMEOUT?: string; readonly REACT_STILL_WATCHING_PROMPT_DURATION?: string; readonly REACT_JWT_TOKEN_REFRESH_INTERVAL?: string; readonly REACT_MIN_ENCOUNTER_DATE?: string; + readonly REACT_ALLOWED_LOCALES?: string; + readonly REACT_ENABLED_APPS?: string; // Plugins related envs... readonly REACT_PLAUSIBLE_SERVER_URL?: string; diff --git a/tailwind.config.js b/tailwind.config.js index 31aa43878dc..3df126955a1 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -1,8 +1,7 @@ /* eslint-disable @typescript-eslint/no-var-requires */ const colors = require("tailwindcss/colors"); -const defaultTheme = require("tailwindcss/defaultTheme"); -const gray = { +const secondary = { 50: "#F9FAFB", 100: "#FBFAFC", 200: "#F7F5FA", @@ -18,15 +17,11 @@ const gray = { /** @type {import('tailwindcss').Config} */ module.exports = { important: true, + darkMode: ["class"], theme: { - screens: { - vs: "348px", - ...defaultTheme.screens, - "3xl": "1920px", - }, extend: { fontFamily: { - sans: ["Inter", "sans-serif"], + sans: ["Figtree", "sans-serif"], }, colors: { green: colors.emerald, @@ -37,18 +32,18 @@ module.exports = { 200: "#bcf0da", 300: "#84e1bc", 400: "#31c48d", - DEFAULT: "#0d9f6e", 500: "#0d9f6e", 600: "#057a55", 700: "#046c4e", 800: "#03543F", 900: "#014737", + DEFAULT: "#0d9f6e", }, - secondary: gray, + secondary: secondary, danger: colors.red, warning: colors.amber, alert: colors.violet, - gray, + gray: colors.gray, patient: { comfort: { DEFAULT: colors.slate[200], @@ -67,8 +62,8 @@ module.exports = { fore: colors.red[100], }, unknown: { - DEFAULT: gray[400], - fore: gray[800], + DEFAULT: secondary[400], + fore: secondary[800], }, activelydying: { DEFAULT: colors.red[800], @@ -76,14 +71,16 @@ module.exports = { }, }, }, - padding: { - "1/5": "20%", - }, scale: { 25: "0.25", 175: "1.75", 200: "2", }, + borderRadius: { + lg: "var(--radius)", + md: "calc(var(--radius) - 2px)", + sm: "calc(var(--radius) - 4px)", + }, }, }, content: ["./src/**/*.{html,md,js,jsx,ts,tsx,res}", "./index.html"], @@ -91,5 +88,6 @@ module.exports = { require("@tailwindcss/forms"), require("@tailwindcss/typography"), require("@tailwindcss/container-queries"), + require("tailwindcss-animate"), ], }; diff --git a/tsconfig.json b/tsconfig.json index 61e8476b152..51ffeb4a0ae 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -16,10 +16,15 @@ "noEmit": true, "jsx": "react-jsx", "types": ["vite/client", "vite-plugin-pwa/client"], + "baseUrl": ".", "paths": { + "@/*": ["./src/*"], + "@core/*": ["src/*"], + "@apps/*": ["apps/*/src"], + "@app-manifest/*": ["apps/*/src/manifest.ts"], "@careConfig": ["./care.config.ts"] } }, - "include": ["src", "care.config.ts"], + "include": ["src/**/*", "apps/**/*", "care.config.ts"], "exclude": ["src/**/*.gen.tsx"] } diff --git a/vite.config.mts b/vite.config.mts index 39ff4b4e99e..905374eb923 100644 --- a/vite.config.mts +++ b/vite.config.mts @@ -1,10 +1,12 @@ -import path from "node:path"; +import path from "path"; import { createRequire } from "node:module"; import { VitePWA } from "vite-plugin-pwa"; import react from "@vitejs/plugin-react-swc"; import checker from "vite-plugin-checker"; import { viteStaticCopy } from "vite-plugin-static-copy"; import { treeShakeCareIcons } from "./plugins/treeShakeCareIcons"; +import fs from "fs"; +import { defineConfig } from "vite"; const pdfWorkerPath = path.join( path.dirname( @@ -22,8 +24,56 @@ const cdnUrls = "http://localhost:4566", ].join(" "); +function getPluginAliases() { + const pluginsDir = path.resolve(__dirname, "apps"); + // Make sure the `apps` folder exists + if (!fs.existsSync(pluginsDir)) { + return {}; + } + const pluginFolders = fs.readdirSync(pluginsDir); + + const aliases = {}; + + pluginFolders.forEach((pluginFolder) => { + const pluginSrcPath = path.join(pluginsDir, pluginFolder, "src"); + if (fs.existsSync(pluginSrcPath)) { + aliases[`@apps/${pluginFolder}`] = pluginSrcPath; + aliases[`@app-manifest/${pluginFolder}`] = path.join( + pluginSrcPath, + "manifest.ts", + ); + } + }); + + return aliases; +} + +function getPluginDependencies() { + const pluginsDir = path.resolve(__dirname, "apps"); + // Make sure the `apps` folder exists + if (!fs.existsSync(pluginsDir)) { + return []; + } + const pluginFolders = fs.readdirSync(pluginsDir); + + const dependencies = new Set(); + + pluginFolders.forEach((pluginFolder) => { + const packageJsonPath = path.join(pluginsDir, pluginFolder, "package.json"); + if (fs.existsSync(packageJsonPath)) { + const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf8")); + const pluginDependencies = packageJson.dependencies + ? Object.keys(packageJson.dependencies) + : []; + pluginDependencies.forEach((dep) => dependencies.add(dep)); + } + }); + + return Array.from(dependencies); +} + /** @type {import('vite').UserConfig} */ -export default { +export default defineConfig({ envPrefix: "REACT_", plugins: [ viteStaticCopy({ @@ -86,9 +136,15 @@ export default { ], resolve: { alias: { + ...getPluginAliases(), + "@": path.resolve(__dirname, "./src"), "@careConfig": path.resolve(__dirname, "./care.config.ts"), + "@core": path.resolve(__dirname, "src/"), }, }, + optimizeDeps: { + include: getPluginDependencies(), + }, build: { outDir: "build", assetsDir: "bundle", @@ -117,4 +173,4 @@ export default { }, port: 4000, }, -}; +});