From 5f51aeeef8a519dfae08ab9bbbee38ee21fd505d Mon Sep 17 00:00:00 2001 From: samshara Date: Fri, 29 Dec 2023 17:32:23 +0545 Subject: [PATCH] feat: create monorepo for go web app using yarn workspace --- .github/workflows/ci.yml | 103 +- .dockerignore => app/.dockerignore | 0 .eslintignore => app/.eslintignore | 0 .unimportedrc.json => app/.unimportedrc.json | 0 Dockerfile => app/Dockerfile | 0 docker-compose.yml => app/docker-compose.yml | 0 env.ts => app/env.ts | 0 app/eslint.config.js | 132 + index.html => app/index.html | 0 app/package.json | 109 + postcss.config.cjs => app/postcss.config.cjs | 0 {public => app/public}/go-icon.svg | 0 {scripts => app/scripts}/translator.js | 0 {src => app/src}/App/Auth.tsx | 8 +- {src => app/src}/App/PageError/i18n.json | 0 {src => app/src}/App/PageError/index.tsx | 13 +- .../src}/App/PageError/styles.module.css | 0 {src => app/src}/App/index.tsx | 54 +- {src => app/src}/App/routes/CountryRoutes.tsx | 7 +- {src => app/src}/App/routes/RegionRoutes.tsx | 0 {src => app/src}/App/routes/SmartNavigate.tsx | 7 +- {src => app/src}/App/routes/SurgeRoutes.tsx | 8 +- {src => app/src}/App/routes/common.tsx | 3 +- {src => app/src}/App/routes/index.tsx | 5 +- {src => app/src}/App/styles.module.css | 0 .../content/operational_timeline_body.svg | 0 .../content/operational_timeline_title.svg | 0 .../assets/content/per_approach_notext.svg | 0 {src => app/src}/assets/icons/arc_logo.png | Bin {src => app/src}/assets/icons/aurc_logo.svg | 0 {src => app/src}/assets/icons/brc_logo.png | Bin {src => app/src}/assets/icons/crc_logo.png | Bin {src => app/src}/assets/icons/dnk_logo.png | Bin .../src}/assets/icons/ericsson_logo.png | Bin {src => app/src}/assets/icons/eru.jpg | Bin {src => app/src}/assets/icons/esp_logo.svg | 0 {src => app/src}/assets/icons/frc_logo.png | Bin .../src}/assets/icons/go-logo-2020.svg | 0 {src => app/src}/assets/icons/ifrc-square.png | Bin {src => app/src}/assets/icons/jrc_logo.png | Bin {src => app/src}/assets/icons/nlrc_logo.jpg | Bin {src => app/src}/assets/icons/pdc_logo.svg | 0 .../src}/assets/icons/risk/cyclone.png | Bin .../src}/assets/icons/risk/drought.png | Bin .../src}/assets/icons/risk/earthquake.png | Bin {src => app/src}/assets/icons/risk/flood.png | Bin .../src}/assets/icons/risk/wildfire.png | Bin {src => app/src}/assets/icons/swiss.svg | 0 {src => app/src}/assets/icons/us_aid.svg | 0 .../assets/images/surge-im-composition.jpg | Bin .../src}/assets/images/surge-im-pyramid.png | Bin ...surge-im-support-responsible-operation.jpg | Bin .../components/CatalogueInfoCard/index.tsx | 6 +- .../CatalogueInfoCard/styles.module.css | 0 .../components/DropdownMenuItem/index.tsx | 15 +- .../components/FourHundredThree/i18n.json | 0 .../components/FourHundredThree/index.tsx | 6 +- .../FourHundredThree/styles.module.css | 0 .../src}/components/GlobalFooter/i18n.json | 0 .../src}/components/GlobalFooter/index.tsx | 20 +- .../components/GlobalFooter/styles.module.css | 0 {src => app/src}/components/Link/index.tsx | 26 +- .../src}/components/Link/styles.module.css | 0 .../MapContainerWithDisclaimer/i18n.json | 0 .../MapContainerWithDisclaimer/index.tsx | 39 +- .../styles.module.css | 0 .../src}/components/MapPopup/i18n.json | 0 .../src}/components/MapPopup/index.tsx | 12 +- .../components/MapPopup/styles.module.css | 0 .../AuthenticatedUserDropdown/i18n.json | 0 .../AuthenticatedUserDropdown/index.tsx | 15 +- .../Navbar/CountryDropdown/i18n.json | 0 .../Navbar/CountryDropdown/index.tsx | 35 +- .../Navbar/CountryDropdown/styles.module.css | 0 .../Navbar/LanguageDropdown/index.tsx | 20 +- .../Navbar/LanguageDropdown/styles.module.css | 0 {src => app/src}/components/Navbar/i18n.json | 0 {src => app/src}/components/Navbar/index.tsx | 29 +- .../src}/components/Navbar/styles.module.css | 0 .../src}/components/NavigationTab/index.tsx | 24 +- .../NavigationTab/styles.module.css | 0 .../src}/components/NonFieldError/i18n.json | 0 .../src}/components/NonFieldError/index.tsx | 12 +- .../NonFieldError/styles.module.css | 0 {src => app/src}/components/Page/i18n.json | 0 {src => app/src}/components/Page/index.tsx | 24 +- .../src}/components/Page/styles.module.css | 0 .../src}/components/RichTextArea/index.tsx | 12 +- .../components/RichTextArea/styles.module.css | 0 .../src}/components/WikiLink/i18n.json | 0 .../src}/components/WikiLink/index.tsx | 4 +- .../components/WikiLink/styles.module.css | 0 .../domain/ActiveOperationMap/i18n.json | 0 .../domain/ActiveOperationMap/index.tsx | 76 +- .../ActiveOperationMap/styles.module.css | 0 .../domain/ActiveOperationMap/utils.ts | 6 +- .../domain/ActivityEventSearchSelectInput.tsx | 13 +- .../MonthlyChart/i18n.json | 0 .../MonthlyChart/index.tsx | 34 +- .../MonthlyChart/styles.module.css | 0 .../PointDetails/i18n.json | 0 .../PointDetails/index.tsx | 8 +- .../PointDetails/styles.module.css | 0 .../YearlyChart/i18n.json | 0 .../YearlyChart/index.tsx | 30 +- .../YearlyChart/styles.module.css | 0 .../domain/AppealsOverYearsChart/index.tsx | 2 +- .../components/domain/AppealsTable/i18n.json | 0 .../components/domain/AppealsTable/index.tsx | 53 +- .../domain/AppealsTable/styles.module.css | 0 .../src}/components/domain/BaseMap/index.tsx | 21 +- .../domain/CountryMultiSelectInput.tsx | 12 +- .../domain/CountryPageEmptyMessage/i18n.json | 6 + .../domain/CountryPageEmptyMessage/index.tsx | 29 + .../CountryPageEmptyMessage/styles.module.css | 3 + .../components/domain/CountrySelectInput.tsx | 12 +- .../DetailsFailedToLoadMessage/i18n.json | 0 .../DetailsFailedToLoadMessage/index.tsx | 4 +- .../domain/DisasterTypeSelectInput.tsx | 9 +- ...rictMultiCountrySearchMultiSelectInput.tsx | 12 +- .../DistrictSearchMultiSelectInput/i18n.json | 0 .../DistrictSearchMultiSelectInput/index.tsx | 28 +- .../styles.module.css | 0 .../domain/DrefExportModal/i18n.json | 0 .../domain/DrefExportModal/index.tsx | 19 +- .../domain/DrefShareModal/UserItem/i18n.json | 0 .../domain/DrefShareModal/UserItem/index.tsx | 11 +- .../DrefShareModal/UserItem/styles.module.css | 0 .../domain/DrefShareModal/i18n.json | 0 .../domain/DrefShareModal/index.tsx | 26 +- .../domain/DrefShareModal/styles.module.css | 0 .../domain/EventSearchSelectInput.tsx | 14 +- .../components/domain/ExportButton/i18n.json | 0 .../components/domain/ExportButton/index.tsx | 13 +- .../domain/FieldReportSearchSelectInput.tsx | 16 +- .../domain/FormFailedToLoadMessage/i18n.json | 0 .../domain/FormFailedToLoadMessage/index.tsx | 4 +- .../domain/GoMultiFileInput/i18n.json | 0 .../domain/GoMultiFileInput/index.tsx | 24 +- .../domain/GoMultiFileInput/styles.module.css | 0 .../domain/GoSingleFileInput/i18n.json | 0 .../domain/GoSingleFileInput/index.tsx | 24 +- .../GoSingleFileInput/styles.module.css | 0 .../OperationCard/i18n.json | 0 .../OperationCard/index.tsx | 29 +- .../OperationCard/styles.module.css | 0 .../domain/HighlightedOperations/i18n.json | 0 .../domain/HighlightedOperations/index.tsx | 19 +- .../domain/HistoricalDataChart/i18n.json | 0 .../domain/HistoricalDataChart/index.tsx | 43 +- .../HistoricalDataChart/styles.module.css | 0 .../domain/ImageWithCaptionInput/i18n.json | 0 .../domain/ImageWithCaptionInput/index.tsx | 20 +- .../ImageWithCaptionInput/styles.module.css | 0 .../domain/KeywordSearchSelectInput/i18n.json | 0 .../domain/KeywordSearchSelectInput/index.tsx | 23 +- .../domain/LanguageMismatchMessage/i18n.json | 0 .../domain/LanguageMismatchMessage/index.tsx | 12 +- .../MultiImageWithCaptionInput/i18n.json | 0 .../MultiImageWithCaptionInput/index.tsx | 27 +- .../styles.module.css | 0 .../NationalSocietyMultiSelectInput.tsx | 9 +- .../domain/NationalSocietySelectInput.tsx | 8 +- .../NonEnglishFormCreationMessage/i18n.json | 0 .../NonEnglishFormCreationMessage/index.tsx | 4 +- .../domain/OperationListItem/i18n.json | 0 .../domain/OperationListItem/index.tsx | 16 +- .../OperationListItem/styles.module.css | 0 .../domain/PerAssessmentSummary/i18n.json | 0 .../domain/PerAssessmentSummary/index.tsx | 29 +- .../PerAssessmentSummary/styles.module.css | 0 .../domain/ProjectActions/i18n.json | 0 .../domain/ProjectActions/index.tsx | 26 +- .../domain/ProjectActions/styles.module.css | 0 .../domain/RegionKeyFigures/i18n.json | 0 .../domain/RegionKeyFigures/index.tsx | 18 +- .../domain/RegionKeyFigures/styles.module.css | 0 .../components/domain/RegionSelectInput.tsx | 11 +- .../domain/RiskImminentEventMap/i18n.json | 0 .../domain/RiskImminentEventMap/index.tsx | 44 +- .../domain/RiskImminentEventMap/mapStyles.ts | 23 +- .../RiskImminentEventMap/styles.module.css | 0 .../Gdacs/EventDetails/i18n.json | 0 .../Gdacs/EventDetails/index.tsx | 10 +- .../Gdacs/EventDetails/styles.module.css | 0 .../Gdacs/EventListItem/i18n.json | 0 .../Gdacs/EventListItem/index.tsx | 10 +- .../Gdacs/EventListItem/styles.module.css | 0 .../domain/RiskImminentEvents/Gdacs/index.tsx | 15 +- .../MeteoSwiss/EventDetails/i18n.json | 0 .../MeteoSwiss/EventDetails/index.tsx | 30 +- .../MeteoSwiss/EventDetails/styles.module.css | 0 .../MeteoSwiss/EventListItem/i18n.json | 0 .../MeteoSwiss/EventListItem/index.tsx | 10 +- .../EventListItem/styles.module.css | 0 .../RiskImminentEvents/MeteoSwiss/index.tsx | 15 +- .../Pdc/EventDetails/i18n.json | 0 .../Pdc/EventDetails/index.tsx | 11 +- .../Pdc/EventDetails/styles.module.css | 0 .../Pdc/EventListItem/i18n.json | 0 .../Pdc/EventListItem/index.tsx | 10 +- .../Pdc/EventListItem/styles.module.css | 0 .../domain/RiskImminentEvents/Pdc/index.tsx | 14 +- .../WfpAdam/EventDetails/i18n.json | 0 .../WfpAdam/EventDetails/index.tsx | 25 +- .../WfpAdam/EventDetails/styles.module.css | 0 .../WfpAdam/EventListItem/i18n.json | 0 .../WfpAdam/EventListItem/index.tsx | 10 +- .../WfpAdam/EventListItem/styles.module.css | 0 .../RiskImminentEvents/WfpAdam/index.tsx | 11 +- .../domain/RiskImminentEvents/i18n.json | 0 .../domain/RiskImminentEvents/index.tsx | 29 +- .../RiskImminentEvents/styles.module.css | 0 .../domain/RiskSeasonalMap/Filters/i18n.json | 0 .../domain/RiskSeasonalMap/Filters/index.tsx | 29 +- .../RiskSeasonalMap/Filters/styles.module.css | 0 .../domain/RiskSeasonalMap/i18n.json | 0 .../domain/RiskSeasonalMap/index.tsx | 80 +- .../domain/RiskSeasonalMap/styles.module.css | 0 .../domain/SeverityIndicator/index.tsx | 5 +- .../SeverityIndicator/styles.module.css | 0 .../domain/SurgeCardContainer/index.tsx | 2 +- .../SurgeCardContainer/styles.module.css | 0 .../domain/SurgeCatalogueContainer/i18n.json | 0 .../domain/SurgeCatalogueContainer/index.tsx | 11 +- .../SurgeCatalogueContainer/styles.module.css | 0 .../domain/SurgeContentContainer/index.tsx | 2 +- .../SurgeContentContainer/styles.module.css | 0 .../domain/UserSearchMultiSelectInput.tsx | 10 +- {src => app/src}/config.ts | 0 {src => app/src}/contexts/domain.tsx | 1 + {src => app/src}/contexts/route.tsx | 1 + {src => app/src}/contexts/user.tsx | 0 {src => app/src}/declarations/env.d.ts | 0 {src => app/src}/hooks/domain/useAuth.ts | 5 +- {src => app/src}/hooks/domain/useCountry.ts | 10 +- .../src}/hooks/domain/useCountryRaw.ts | 4 +- .../src}/hooks/domain/useCurrentLanguage.ts | 3 +- .../src}/hooks/domain/useDisasterType.ts | 2 +- .../src}/hooks/domain/useGlobalEnums.ts | 0 .../src}/hooks/domain/useNationalSociety.ts | 12 +- .../src}/hooks/domain/usePermissions.ts | 0 {src => app/src}/hooks/domain/useRegion.ts | 4 +- {src => app/src}/hooks/domain/useUserMe.ts | 0 {src => app/src}/hooks/useAlert.ts | 14 +- {src => app/src}/hooks/useChartData.ts | 14 +- {src => app/src}/hooks/useDebouncedValue.ts | 5 +- {src => app/src}/hooks/useFilterState.ts | 4 +- {src => app/src}/hooks/useInputState.ts | 5 +- .../src}/hooks/useRecursiveCsvRequest.ts | 21 +- {src => app/src}/hooks/useRouting.ts | 14 +- {src => app/src}/hooks/useUrlSearchState.ts | 10 +- app/src/index.css | 40 + {src => app/src}/index.tsx | 23 +- app/src/utils/common.ts | 18 + {src => app/src}/utils/constants.ts | 12 - .../src/utils/domain}/CountryLink/index.tsx | 0 .../src/utils/domain}/RegionLink/index.tsx | 0 {src => app/src}/utils/domain/dref.ts | 0 {src => app/src}/utils/domain/emergency.ts | 3 +- {src => app/src}/utils/domain/per.ts | 8 +- {src => app/src}/utils/domain/risk.test.ts | 10 +- {src => app/src}/utils/domain/risk.ts | 12 +- app/src/utils/domain/tableHelpers.ts | 176 + {src => app/src}/utils/domain/user.ts | 5 +- {src => app/src}/utils/form.ts | 4 +- {src => app/src}/utils/localStorage.ts | 0 {src => app/src}/utils/map.ts | 14 +- {src => app/src}/utils/outletContext.ts | 0 {src => app/src}/utils/resolveUrl.ts | 0 {src => app/src}/utils/restRequest/error.ts | 0 {src => app/src}/utils/restRequest/go.ts | 13 +- {src => app/src}/utils/restRequest/index.ts | 19 +- .../src}/utils/restRequest/overrideTypes.ts | 8 +- {src => app/src}/utils/routes.test.tsx | 11 +- {src => app/src}/utils/routes.tsx | 14 +- {src => app/src}/views/Account/i18n.json | 0 {src => app/src}/views/Account/index.tsx | 6 +- .../AccountDetails/ChangePassword/i18n.json | 0 .../AccountDetails/ChangePassword/index.tsx | 35 +- .../ChangePassword/styles.module.css | 0 .../AccountDetails/EditAccountInfo/i18n.json | 0 .../AccountDetails/EditAccountInfo/index.tsx | 36 +- .../EditAccountInfo/styles.module.css | 0 .../src}/views/AccountDetails/i18n.json | 0 .../src}/views/AccountDetails/index.tsx | 18 +- .../views/AccountDetails/styles.module.css | 0 .../ActiveDrefTable/i18n.json | 0 .../ActiveDrefTable/index.tsx | 41 +- .../ActiveDrefTable/styles.module.css | 0 .../CompletedDrefTable/i18n.json | 0 .../CompletedDrefTable/index.tsx | 40 +- .../CompletedDrefTable/styles.module.css | 0 .../DrefTableActions/drefAllocationExport.ts | 0 .../DrefTableActions/i18n.json | 0 .../DrefTableActions/index.tsx | 36 +- .../DrefTableActions/styles.module.css | 0 .../AccountMyFormsDref/Filters/i18n.json | 0 .../AccountMyFormsDref/Filters/index.tsx | 12 +- .../src}/views/AccountMyFormsDref/i18n.json | 0 .../src}/views/AccountMyFormsDref/index.tsx | 11 +- .../AccountMyFormsDref/styles.module.css | 0 .../views/AccountMyFormsFieldReport/i18n.json | 0 .../views/AccountMyFormsFieldReport/index.tsx | 37 +- .../styles.module.css | 0 .../src}/views/AccountMyFormsLayout/i18n.json | 0 .../src}/views/AccountMyFormsLayout/index.tsx | 4 +- .../AccountMyFormsLayout/styles.module.css | 0 .../PerTableActions/i18n.json | 0 .../PerTableActions/index.tsx | 21 +- .../src}/views/AccountMyFormsPer/i18n.json | 0 .../src}/views/AccountMyFormsPer/index.tsx | 46 +- .../views/AccountMyFormsPer/styles.module.css | 0 .../ThreeWTableActions/i18n.json | 0 .../ThreeWTableActions/index.tsx | 4 +- .../src}/views/AccountMyFormsThreeW/i18n.json | 0 .../src}/views/AccountMyFormsThreeW/index.tsx | 45 +- .../AccountMyFormsThreeW/styles.module.css | 0 .../SubscriptionPreferences/i18n.json | 0 .../SubscriptionPreferences/index.tsx | 40 +- .../SubscriptionPreferences/styles.module.css | 0 .../src}/views/AccountNotifications/i18n.json | 0 .../src}/views/AccountNotifications/index.tsx | 19 +- .../AccountNotifications/styles.module.css | 0 {src => app/src}/views/AllAppeals/i18n.json | 0 {src => app/src}/views/AllAppeals/index.tsx | 61 +- .../src}/views/AllAppeals/styles.module.css | 0 .../i18n.json | 0 .../index.tsx | 46 +- .../src}/views/AllDeployedPersonnel/i18n.json | 0 .../src}/views/AllDeployedPersonnel/index.tsx | 44 +- .../src}/views/AllEmergencies/i18n.json | 0 .../src}/views/AllEmergencies/index.tsx | 57 +- .../views/AllEmergencies/styles.module.css | 0 .../src}/views/AllFieldReports/i18n.json | 0 .../src}/views/AllFieldReports/index.tsx | 59 +- .../views/AllFieldReports/styles.module.css | 0 .../FlashUpdatesTableActions/i18n.json | 0 .../FlashUpdatesTableActions/index.tsx | 4 +- .../src}/views/AllFlashUpdates/i18n.json | 0 .../src}/views/AllFlashUpdates/index.tsx | 38 +- .../views/AllFlashUpdates/styles.module.css | 0 .../src}/views/AllSurgeAlerts/i18n.json | 0 .../src}/views/AllSurgeAlerts/index.tsx | 47 +- .../views/AllSurgeAlerts/styles.module.css | 0 .../AllThreeWProjectTableActions/i18n.json | 0 .../AllThreeWProjectTableActions/index.tsx | 4 +- .../src}/views/AllThreeWActivity/i18n.json | 0 .../src}/views/AllThreeWActivity/index.tsx | 56 +- .../views/AllThreeWActivity/styles.module.css | 0 .../AllThreeWProjectTableActions/i18n.json | 0 .../AllThreeWProjectTableActions/index.tsx | 4 +- .../src}/views/AllThreeWProject/i18n.json | 0 .../src}/views/AllThreeWProject/index.tsx | 47 +- .../views/AllThreeWProject/styles.module.css | 0 {src => app/src}/views/Country/i18n.json | 0 {src => app/src}/views/Country/index.tsx | 27 +- .../src}/views/Country/styles.module.css | 0 .../views/CountryAdditionalInfo/i18n.json | 0 .../views/CountryAdditionalInfo/index.tsx | 40 +- .../CountryAdditionalInfo/styles.module.css | 0 .../src}/views/CountryNsOverview/i18n.json | 0 .../src}/views/CountryNsOverview/index.tsx | 9 +- .../views/CountryNsOverview/styles.module.css | 0 .../Filters/i18n.json | 0 .../Filters/index.tsx | 16 +- .../Filters/styles.module.css | 0 .../CountryNsOverviewActivities/Map/i18n.json | 0 .../CountryNsOverviewActivities/Map/index.tsx | 53 +- .../Map/styles.module.css | 0 .../CountryNsOverviewActivities/i18n.json | 0 .../CountryNsOverviewActivities/index.tsx | 64 +- .../styles.module.css | 0 .../CapacityListItem/i18n.json | 0 .../CapacityListItem/index.tsx | 8 +- .../CapacityListItem/styles.module.css | 0 .../CountryNSCapacityStrengthening}/i18n.json | 0 .../CountryNSCapacityStrengthening}/index.tsx | 9 +- .../styles.module.css | 0 .../CapacityListItem/i18n.json | 9 + .../CapacityListItem/index.tsx | 74 + .../CapacityListItem/styles.module.css | 4 + .../CountryNsCapacityStrengthening/i18n.json | 7 + .../CountryNsCapacityStrengthening/index.tsx | 56 + .../styles.module.css | 12 + .../CountryNsOrganisationalCapacity/i18n.json | 0 .../CountryNsOrganisationalCapacity/index.tsx | 6 +- .../styles.module.css | 0 .../views/CountryNsOverviewCapacity/i18n.json | 0 .../views/CountryNsOverviewCapacity/index.tsx | 21 +- .../styles.module.css | 0 .../NationalSocietyContacts/i18n.json | 0 .../NationalSocietyContacts/index.tsx | 15 +- .../NationalSocietyContacts/styles.module.css | 0 .../NationalSocietyDirectory/i18n.json | 0 .../NationalSocietyDirectory/index.tsx | 10 +- .../styles.module.css | 0 .../NationalSocietyIndicators/i18n.json | 0 .../NationalSocietyIndicators/index.tsx | 17 +- .../styles.module.css | 0 .../DocumentListCard/index.tsx | 16 +- .../DocumentListCard/styles.module.css | 0 .../NationalSocietyKeyDocuments/i18n.json | 0 .../NationalSocietyKeyDocuments/index.tsx | 20 +- .../NationalSocietyLocalUnitsMap/i18n.json | 0 .../NationalSocietyLocalUnitsMap/index.tsx | 48 +- .../styles.module.css | 0 .../InitiativeCard/i18n.json | 0 .../InitiativeCard/index.tsx | 10 +- .../InitiativeCard/styles.module.css | 0 .../NsDirectoryInitiatives/i18n.json | 0 .../NsDirectoryInitiatives/index.tsx | 9 +- .../i18n.json | 0 .../index.tsx | 15 +- .../styles.module.css | 0 .../StrategicPrioritiesTable/i18n.json | 0 .../StrategicPrioritiesTable/index.tsx | 11 +- .../i18n.json | 0 .../index.tsx | 21 +- .../styles.module.css | 0 .../views/CountryOngoingActivities/i18n.json | 0 .../views/CountryOngoingActivities/index.tsx | 9 +- .../styles.module.css | 0 .../EmergencyAlerts/i18n.json | 0 .../EmergencyAlerts/index.tsx | 30 +- .../EmergencyAlerts/styles.module.css | 0 .../i18n.json | 0 .../index.tsx | 22 +- .../styles.module.css | 0 .../Filters/i18n.json | 0 .../Filters/index.tsx | 22 +- .../ResponseActivitiesMap/i18n.json | 0 .../ResponseActivitiesMap/index.tsx | 20 +- .../ResponseActivitiesMap/styles.module.css | 0 .../i18n.json | 0 .../index.tsx | 72 +- .../styles.module.css | 0 .../Filters/i18n.json | 0 .../Filters/index.tsx | 20 +- .../Filters/styles.module.css | 0 .../Map/i18n.json | 0 .../Map/index.tsx | 55 +- .../Map/styles.module.css | 0 .../i18n.json | 0 .../index.tsx | 65 +- .../styles.module.css | 0 .../AppealOperationTable/i18n.json | 0 .../AppealOperationTable/index.tsx | 33 +- .../EmergenciesOperationTable/i18n.json | 0 .../EmergenciesOperationTable/index.tsx | 40 +- .../src}/views/CountryOperations/index.tsx | 6 +- .../views/CountryOperations/styles.module.css | 0 .../PreviousAssessmentChart/i18n.json | 0 .../PreviousAssessmentChart/index.tsx | 17 +- .../PreviousAssessmentChart/styles.module.css | 0 .../PublicCountryPreparedness/i18n.json | 0 .../PublicCountryPreparedness/index.tsx | 19 +- .../styles.module.css | 0 .../RatingByAreaChart/index.tsx | 12 +- .../RatingByAreaChart/styles.module.css | 0 .../src}/views/CountryPreparedness/i18n.json | 0 .../src}/views/CountryPreparedness/index.tsx | 49 +- .../CountryPreparedness/styles.module.css | 0 .../src}/views/CountryProfile/i18n.json | 0 .../src}/views/CountryProfile/index.tsx | 9 +- .../views/CountryProfile/styles.module.css | 0 .../views/CountryProfileOverview/i18n.json | 0 .../views/CountryProfileOverview/index.tsx | 13 +- .../CountryProfileOverview/styles.module.css | 0 .../EmergenciesOverMonth/index.tsx | 22 +- .../EmergenciesOverMonth/styles.module.css | 0 .../PastEventsChart/index.tsx | 25 +- .../PastEventsChart/styles.module.css | 0 .../CountryProfilePreviousEvents/i18n.json | 0 .../CountryProfilePreviousEvents/index.tsx | 23 +- .../styles.module.css | 0 .../MultiMonthSelectInput/i18n.json | 0 .../MultiMonthSelectInput/index.tsx | 17 +- .../MultiMonthSelectInput/styles.module.css | 0 .../PossibleEarlyActionTable/i18n.json | 0 .../PossibleEarlyActionTable/index.tsx | 32 +- .../styles.module.css | 0 .../ReturnPeriodTable/i18n.json | 0 .../ReturnPeriodTable/index.tsx | 31 +- .../ReturnPeriodTable/styles.module.css | 0 .../RiskBarChart/CombinedChart/i18n.json | 0 .../RiskBarChart/CombinedChart/index.tsx | 34 +- .../CombinedChart/styles.module.css | 0 .../FoodInsecurityChart/index.tsx | 19 +- .../FoodInsecurityChart/styles.module.css | 0 .../RiskBarChart/WildfireChart/i18n.json | 0 .../RiskBarChart/WildfireChart/index.tsx | 31 +- .../WildfireChart/styles.module.css | 0 .../RiskBarChart/i18n.json | 0 .../RiskBarChart/index.tsx | 53 +- .../RiskBarChart/styles.module.css | 0 .../RiskTable/i18n.json | 0 .../RiskTable/index.tsx | 37 +- .../RiskTable/styles.module.css | 0 .../views/CountryProfileRiskWatch/i18n.json | 0 .../views/CountryProfileRiskWatch/index.tsx | 25 +- .../CountryProfileRiskWatch/styles.module.css | 0 .../MembershipCoordinationTable/i18n.json | 0 .../MembershipCoordinationTable/index.tsx | 15 +- .../styles.module.css | 0 .../SupportingPartnersContacts/i18n.json | 0 .../SupportingPartnersContacts/index.tsx | 22 +- .../styles.module.css | 0 .../i18n.json | 0 .../index.tsx | 6 +- .../styles.module.css | 0 .../src}/views/CountryThreeW/i18n.json | 0 .../src}/views/CountryThreeW/index.tsx | 12 +- .../views/CountryThreeW/styles.module.css | 0 .../views/DrefApplicationExport/i18n.json | 0 .../views/DrefApplicationExport/index.tsx | 31 +- .../DrefApplicationExport/styles.module.css | 0 .../Actions/NSActionInput/i18n.json | 0 .../Actions/NSActionInput/index.tsx | 15 +- .../Actions/NSActionInput/styles.module.css | 0 .../Actions/NeedInput/i18n.json | 0 .../Actions/NeedInput/index.tsx | 16 +- .../Actions/NeedInput/styles.module.css | 0 .../DrefApplicationForm/Actions/i18n.json | 0 .../DrefApplicationForm/Actions/index.tsx | 35 +- .../Actions/styles.module.css | 0 .../SourceInformationInput/i18n.json | 0 .../SourceInformationInput/index.tsx | 15 +- .../SourceInformationInput/styles.module.css | 0 .../DrefApplicationForm/EventDetail/i18n.json | 0 .../DrefApplicationForm/EventDetail/index.tsx | 38 +- .../EventDetail/styles.module.css | 0 .../ObsoletePayloadModal/i18n.json | 0 .../ObsoletePayloadModal/index.tsx | 12 +- .../ObsoletePayloadModal/styles.module.css | 0 .../IndicatorInput/i18n.json | 0 .../IndicatorInput/index.tsx | 13 +- .../IndicatorInput/styles.module.css | 0 .../Operation/InterventionInput/i18n.json | 0 .../Operation/InterventionInput/index.tsx | 22 +- .../InterventionInput/styles.module.css | 0 .../Operation/RiskSecurityInput/i18n.json | 0 .../Operation/RiskSecurityInput/index.tsx | 16 +- .../RiskSecurityInput/styles.module.css | 0 .../DrefApplicationForm/Operation/i18n.json | 0 .../DrefApplicationForm/Operation/index.tsx | 42 +- .../Operation/styles.module.css | 0 .../Overview/CopyFieldReportSection/i18n.json | 0 .../Overview/CopyFieldReportSection/index.tsx | 31 +- .../CopyFieldReportSection/styles.module.css | 0 .../DrefApplicationForm/Overview/i18n.json | 0 .../DrefApplicationForm/Overview/index.tsx | 61 +- .../Overview/styles.module.css | 0 .../DrefApplicationForm/Submission/i18n.json | 0 .../DrefApplicationForm/Submission/index.tsx | 22 +- .../Submission/styles.module.css | 0 .../src}/views/DrefApplicationForm/common.tsx | 8 +- .../src}/views/DrefApplicationForm/i18n.json | 0 .../src}/views/DrefApplicationForm/index.tsx | 82 +- .../src}/views/DrefApplicationForm/schema.ts | 27 +- .../DrefApplicationForm/styles.module.css | 0 .../views/DrefFinalReportExport/i18n.json | 0 .../views/DrefFinalReportExport/index.tsx | 33 +- .../DrefFinalReportExport/styles.module.css | 0 .../Actions/NeedInput/i18n.json | 0 .../Actions/NeedInput/index.tsx | 17 +- .../Actions/NeedInput/styles.module.css | 0 .../DrefFinalReportForm/Actions/i18n.json | 0 .../DrefFinalReportForm/Actions/index.tsx | 31 +- .../Actions/styles.module.css | 0 .../DrefFinalReportForm/EventDetail/i18n.json | 0 .../DrefFinalReportForm/EventDetail/index.tsx | 24 +- .../EventDetail/styles.module.css | 0 .../ObsoletePayloadModal/i18n.json | 0 .../ObsoletePayloadModal/index.tsx | 12 +- .../ObsoletePayloadModal/styles.module.css | 0 .../IndicatorInput/i18n.json | 0 .../IndicatorInput/index.tsx | 13 +- .../IndicatorInput/styles.module.css | 0 .../Operation/InterventionInput/i18n.json | 0 .../Operation/InterventionInput/index.tsx | 22 +- .../InterventionInput/styles.module.css | 0 .../Operation/RiskSecurityInput/i18n.json | 0 .../Operation/RiskSecurityInput/index.tsx | 16 +- .../RiskSecurityInput/styles.module.css | 0 .../DrefFinalReportForm/Operation/i18n.json | 0 .../DrefFinalReportForm/Operation/index.tsx | 42 +- .../Operation/styles.module.css | 0 .../DrefFinalReportForm/Overview/i18n.json | 0 .../DrefFinalReportForm/Overview/index.tsx | 59 +- .../Overview/styles.module.css | 0 .../DrefFinalReportForm/Submission/i18n.json | 0 .../DrefFinalReportForm/Submission/index.tsx | 22 +- .../Submission/styles.module.css | 0 .../src}/views/DrefFinalReportForm/common.tsx | 8 +- .../src}/views/DrefFinalReportForm/i18n.json | 0 .../src}/views/DrefFinalReportForm/index.tsx | 76 +- .../src}/views/DrefFinalReportForm/schema.ts | 27 +- .../DrefFinalReportForm/styles.module.css | 0 .../DrefOperationalUpdateExport/i18n.json | 0 .../DrefOperationalUpdateExport/index.tsx | 42 +- .../styles.module.css | 0 .../Actions/NSActionInput/i18n.json | 0 .../Actions/NSActionInput/index.tsx | 15 +- .../Actions/NSActionInput/styles.module.css | 0 .../Actions/NeedInput/i18n.json | 0 .../Actions/NeedInput/index.tsx | 17 +- .../Actions/NeedInput/styles.module.css | 0 .../Actions/i18n.json | 0 .../Actions/index.tsx | 37 +- .../Actions/styles.module.css | 0 .../EventDetail/i18n.json | 0 .../EventDetail/index.tsx | 26 +- .../EventDetail/styles.module.css | 0 .../ObsoletePayloadModal/i18n.json | 0 .../ObsoletePayloadModal/index.tsx | 12 +- .../ObsoletePayloadModal/styles.module.css | 0 .../IndicatorInput/i18n.json | 0 .../IndicatorInput/index.tsx | 13 +- .../IndicatorInput/styles.module.css | 0 .../Operation/InterventionInput/i18n.json | 0 .../Operation/InterventionInput/index.tsx | 22 +- .../InterventionInput/styles.module.css | 0 .../Operation/RiskSecurityInput/i18n.json | 0 .../Operation/RiskSecurityInput/index.tsx | 15 +- .../RiskSecurityInput/styles.module.css | 0 .../Operation/i18n.json | 0 .../Operation/index.tsx | 42 +- .../Operation/styles.module.css | 0 .../Overview/i18n.json | 0 .../Overview/index.tsx | 73 +- .../Overview/styles.module.css | 0 .../Submission/i18n.json | 0 .../Submission/index.tsx | 22 +- .../Submission/styles.module.css | 0 .../DrefOperationalUpdateForm/common.tsx | 8 +- .../views/DrefOperationalUpdateForm/i18n.json | 0 .../views/DrefOperationalUpdateForm/index.tsx | 78 +- .../views/DrefOperationalUpdateForm/schema.ts | 27 +- .../styles.module.css | 0 .../Emergencies/EmergenciesTable/i18n.json | 0 .../Emergencies/EmergenciesTable/index.tsx | 39 +- .../EmergenciesTable/styles.module.css | 0 .../Emergencies/FieldReportsTable/i18n.json | 0 .../Emergencies/FieldReportsTable/index.tsx | 32 +- .../FieldReportsTable/styles.module.css | 0 .../FlashUpdatesTableActions/i18n.json | 0 .../FlashUpdatesTableActions/index.tsx | 4 +- .../Emergencies/FlashUpdatesTable/i18n.json | 0 .../Emergencies/FlashUpdatesTable/index.tsx | 37 +- .../FlashUpdatesTable/styles.module.css | 0 .../src}/views/Emergencies/Map/i18n.json | 0 .../src}/views/Emergencies/Map/index.tsx | 55 +- .../views/Emergencies/Map/styles.module.css | 0 .../src}/views/Emergencies/Map/utils.ts | 8 +- {src => app/src}/views/Emergencies/i18n.json | 0 {src => app/src}/views/Emergencies/index.tsx | 54 +- .../src}/views/Emergencies/styles.module.css | 0 {src => app/src}/views/Emergency/i18n.json | 0 {src => app/src}/views/Emergency/index.tsx | 44 +- .../src}/views/Emergency/styles.module.css | 0 .../ActivitesMap/i18n.json | 0 .../ActivitesMap/index.tsx | 24 +- .../ActivitesMap/styles.module.css | 0 .../ActivityActions/i18n.json | 0 .../ActivityActions/index.tsx | 4 +- .../ActivityDetail/i18n.json | 0 .../ActivityDetail/index.tsx | 42 +- .../ActivityDetail/styles.module.css | 0 .../EmergencyActivities/Filters/i18n.json | 0 .../EmergencyActivities/Filters/index.tsx | 28 +- .../Filters/styles.module.css | 0 .../src}/views/EmergencyActivities/i18n.json | 0 .../src}/views/EmergencyActivities/index.tsx | 61 +- .../EmergencyActivities/styles.module.css | 0 .../useEmergencyProjectStats.ts | 2 +- .../views/EmergencyAdditionalTab/index.tsx | 6 +- .../EmergencyAdditionalTab/styles.module.css | 0 .../EmergencyDetails/EmergencyMap/i18n.json | 0 .../EmergencyDetails/EmergencyMap/index.tsx | 12 +- .../EmergencyMap/styles.module.css | 0 .../FieldReportStats/i18n.json | 0 .../FieldReportStats/index.tsx | 15 +- .../FieldReportStats/styles.module.css | 0 .../src}/views/EmergencyDetails/i18n.json | 0 .../src}/views/EmergencyDetails/index.tsx | 20 +- .../views/EmergencyDetails/styles.module.css | 0 .../src}/views/EmergencyFollow/i18n.json | 0 .../src}/views/EmergencyFollow/index.tsx | 9 +- .../EmergencyReportAndDocument/i18n.json | 0 .../EmergencyReportAndDocument/index.tsx | 42 +- .../styles.module.css | 0 .../src}/views/EmergencySlug/i18n.json | 0 .../src}/views/EmergencySlug/index.tsx | 14 +- .../DeployedErusTable/i18n.json | 0 .../DeployedErusTable/index.tsx | 37 +- .../RapidResponsePerosnnelTable/i18n.json | 0 .../RapidResponsePerosnnelTable/index.tsx | 41 +- .../styles.module.css | 0 .../views/EmergencySurge/SurgeTable/i18n.json | 0 .../views/EmergencySurge/SurgeTable/index.tsx | 35 +- .../src}/views/EmergencySurge/i18n.json | 0 .../src}/views/EmergencySurge/index.tsx | 16 +- .../views/EmergencySurge/styles.module.css | 0 .../CovidNumericDetails/i18n.json | 0 .../CovidNumericDetails/index.tsx | 9 +- .../EarlyWarningNumericDetails/i18n.json | 0 .../EarlyWarningNumericDetails/index.tsx | 5 +- .../EpidemicNumericDetails/i18n.json | 0 .../EpidemicNumericDetails/index.tsx | 5 +- .../EventNumericDetails/i18n.json | 0 .../EventNumericDetails/index.tsx | 5 +- .../src}/views/FieldReportDetails/i18n.json | 0 .../src}/views/FieldReportDetails/index.tsx | 45 +- .../FieldReportDetails/styles.module.css | 0 .../FieldReportForm/ActionsFields/i18n.json | 0 .../FieldReportForm/ActionsFields/index.tsx | 36 +- .../ActionsFields/styles.module.css | 0 .../FieldReportForm/ContextFields/i18n.json | 0 .../FieldReportForm/ContextFields/index.tsx | 32 +- .../ContextFields/styles.module.css | 0 .../EarlyActionsFields/ActionInput/i18n.json | 0 .../EarlyActionsFields/ActionInput/index.tsx | 16 +- .../ActionInput/styles.module.css | 0 .../EarlyActionsFields/i18n.json | 0 .../EarlyActionsFields/index.tsx | 25 +- .../EarlyActionsFields/styles.module.css | 0 .../ResponseFields/ContactInput/i18n.json | 0 .../ResponseFields/ContactInput/index.tsx | 4 +- .../FieldReportForm/ResponseFields/i18n.json | 0 .../FieldReportForm/ResponseFields/index.tsx | 28 +- .../ResponseFields/styles.module.css | 0 .../RiskAnalysisFields/i18n.json | 0 .../RiskAnalysisFields/index.tsx | 18 +- .../RiskAnalysisFields/styles.module.css | 0 .../FieldReportForm/SituationFields/i18n.json | 0 .../FieldReportForm/SituationFields/index.tsx | 19 +- .../SituationFields/styles.module.css | 0 .../src}/views/FieldReportForm/common.ts | 31 +- .../src}/views/FieldReportForm/i18n.json | 0 .../src}/views/FieldReportForm/index.tsx | 93 +- .../views/FieldReportForm/styles.module.css | 0 .../FlashUpdateExportModal/i18n.json | 0 .../FlashUpdateExportModal/index.tsx | 8 +- .../FlashUpdateShareModal/i18n.json | 0 .../FlashUpdateShareModal/index.tsx | 21 +- .../FlashUpdateShareModal/styles.module.css | 0 .../src}/views/FlashUpdateDetails/i18n.json | 0 .../src}/views/FlashUpdateDetails/index.tsx | 41 +- .../FlashUpdateDetails/styles.module.css | 0 .../ActionsTab/ActionInput/index.tsx | 13 +- .../ActionsTab/ActionInput/styles.module.css | 0 .../FlashUpdateForm/ActionsTab/i18n.json | 0 .../FlashUpdateForm/ActionsTab/index.tsx | 16 +- .../ContextTab/CountryProvinceInput/i18n.json | 0 .../ContextTab/CountryProvinceInput/index.tsx | 18 +- .../CountryProvinceInput/styles.module.css | 0 .../ContextTab/ReferenceInput/i18n.json | 0 .../ContextTab/ReferenceInput/index.tsx | 18 +- .../ReferenceInput/styles.module.css | 0 .../FlashUpdateForm/ContextTab/i18n.json | 0 .../FlashUpdateForm/ContextTab/index.tsx | 37 +- .../FlashUpdateForm/FocalPointsTab/i18n.json | 0 .../FlashUpdateForm/FocalPointsTab/index.tsx | 14 +- .../src}/views/FlashUpdateForm/common.ts | 7 +- .../src}/views/FlashUpdateForm/i18n.json | 0 .../src}/views/FlashUpdateForm/index.tsx | 65 +- .../src}/views/FlashUpdateForm/schema.ts | 10 +- .../views/FlashUpdateForm/styles.module.css | 0 .../src}/views/FourHundredFour/i18n.json | 0 .../src}/views/FourHundredFour/index.tsx | 6 +- .../views/FourHundredFour/styles.module.css | 0 .../src}/views/GlobalThreeW/Filters/i18n.json | 0 .../src}/views/GlobalThreeW/Filters/index.tsx | 14 +- .../GlobalThreeW/Filters/styles.module.css | 0 .../src}/views/GlobalThreeW/Map/i18n.json | 0 .../src}/views/GlobalThreeW/Map/index.tsx | 49 +- .../views/GlobalThreeW/Map/styles.module.css | 0 .../GlobalThreeW/RegionDropdown/i18n.json | 0 .../GlobalThreeW/RegionDropdown/index.tsx | 8 +- {src => app/src}/views/GlobalThreeW/common.ts | 0 {src => app/src}/views/GlobalThreeW/i18n.json | 0 {src => app/src}/views/GlobalThreeW/index.tsx | 37 +- .../src}/views/GlobalThreeW/styles.module.css | 0 {src => app/src}/views/Home/i18n.json | 0 {src => app/src}/views/Home/index.tsx | 30 +- {src => app/src}/views/Home/styles.module.css | 0 {src => app/src}/views/Login/i18n.json | 0 {src => app/src}/views/Login/index.tsx | 31 +- .../src}/views/Login/styles.module.css | 0 .../ComponentInput/QuestionInput/i18n.json | 0 .../ComponentInput/QuestionInput/index.tsx | 17 +- .../QuestionInput/styles.module.css | 0 .../AreaInput/ComponentInput/i18n.json | 0 .../AreaInput/ComponentInput/index.tsx | 28 +- .../ComponentInput/styles.module.css | 0 .../PerAssessmentForm/AreaInput/index.tsx | 21 +- .../AreaInput/styles.module.css | 0 .../src}/views/PerAssessmentForm/i18n.json | 0 .../src}/views/PerAssessmentForm/index.tsx | 66 +- .../src}/views/PerAssessmentForm/schema.ts | 2 +- .../views/PerAssessmentForm/styles.module.css | 0 .../src}/views/PerOverviewForm/i18n.json | 0 .../src}/views/PerOverviewForm/index.tsx | 71 +- .../src}/views/PerOverviewForm/schema.ts | 14 +- .../views/PerOverviewForm/styles.module.css | 0 .../ComponentInput/QuestionOutput/index.tsx | 1 + .../QuestionOutput/styles.module.css | 0 .../ComponentInput/i18n.json | 0 .../ComponentInput/index.tsx | 35 +- .../ComponentInput/styles.module.css | 0 .../views/PerPrioritizationForm/i18n.json | 0 .../views/PerPrioritizationForm/index.tsx | 54 +- .../views/PerPrioritizationForm/schema.ts | 0 .../PerPrioritizationForm/styles.module.css | 0 .../src}/views/PerProcessForm/i18n.json | 0 .../src}/views/PerProcessForm/index.tsx | 34 +- .../views/PerProcessForm/styles.module.css | 0 .../AdditionalActionInput/i18n.json | 0 .../AdditionalActionInput/index.tsx | 30 +- .../AdditionalActionInput/styles.module.css | 0 .../PrioritizedActionInput/i18n.json | 0 .../PrioritizedActionInput/index.tsx | 24 +- .../PrioritizedActionInput/styles.module.css | 0 .../src}/views/PerWorkPlanForm/i18n.json | 0 .../src}/views/PerWorkPlanForm/index.tsx | 43 +- .../src}/views/PerWorkPlanForm/schema.ts | 1 + .../views/PerWorkPlanForm/styles.module.css | 0 {src => app/src}/views/Preparedness/i18n.json | 0 {src => app/src}/views/Preparedness/index.tsx | 13 +- .../src}/views/Preparedness/styles.module.css | 0 .../PreparednessCatalogueResources/i18n.json | 0 .../PreparednessCatalogueResources/index.tsx | 2 +- .../styles.module.css | 0 .../PreparednessGlobalPerformance/i18n.json | 0 .../PreparednessGlobalPerformance/index.tsx | 2 +- .../styles.module.css | 0 .../views/PreparednessGlobalSummary/i18n.json | 0 .../views/PreparednessGlobalSummary/index.tsx | 2 +- .../styles.module.css | 0 .../PreparednessOperationalLearning/i18n.json | 0 .../PreparednessOperationalLearning/index.tsx | 2 +- .../styles.module.css | 0 .../src}/views/RecoverAccount/i18n.json | 0 .../src}/views/RecoverAccount/index.tsx | 16 +- .../views/RecoverAccount/styles.module.css | 0 .../views/RecoverAccountConfirm/i18n.json | 0 .../views/RecoverAccountConfirm/index.tsx | 24 +- .../RecoverAccountConfirm/styles.module.css | 0 {src => app/src}/views/Region/i18n.json | 0 {src => app/src}/views/Region/index.tsx | 23 +- .../src}/views/Region/styles.module.css | 0 .../src}/views/RegionAdditionalInfo/i18n.json | 0 .../src}/views/RegionAdditionalInfo/index.tsx | 19 +- .../RegionAdditionalInfo/styles.module.css | 0 .../RecentEmergenciesTable/i18n.json | 0 .../RecentEmergenciesTable/index.tsx | 40 +- .../RecentEmergenciesTable/styles.module.css | 0 .../src}/views/RegionOperations/i18n.json | 0 .../src}/views/RegionOperations/index.tsx | 28 +- .../views/RegionOperations/styles.module.css | 0 .../src}/views/RegionPreparedness/index.tsx | 14 +- .../RegionPreparedness/styles.module.css | 0 .../src}/views/RegionProfile/i18n.json | 0 .../src}/views/RegionProfile/index.tsx | 12 +- .../views/RegionProfile/styles.module.css | 0 .../src}/views/RegionRiskWatch/i18n.json | 0 .../src}/views/RegionRiskWatch/index.tsx | 6 +- .../views/RegionRiskWatch/styles.module.css | 0 .../views/RegionRiskWatchImminent/index.tsx | 0 .../RegionRiskWatchImminent/styles.module.css | 0 .../views/RegionRiskWatchSeasonal/index.tsx | 5 +- .../RegionRiskWatchSeasonal/styles.module.css | 0 .../CountryProjectTable/i18n.json | 0 .../CountryProjectTable/index.tsx | 26 +- .../src}/views/RegionThreeW/Filters/i18n.json | 0 .../src}/views/RegionThreeW/Filters/index.tsx | 15 +- .../MovementActivitiesMap/i18n.json | 0 .../MovementActivitiesMap/index.tsx | 39 +- .../MovementActivitiesMap/styles.module.css | 0 {src => app/src}/views/RegionThreeW/i18n.json | 0 {src => app/src}/views/RegionThreeW/index.tsx | 50 +- .../src}/views/RegionThreeW/styles.module.css | 0 {src => app/src}/views/Register/i18n.json | 0 {src => app/src}/views/Register/index.tsx | 56 +- .../src}/views/Register/styles.module.css | 0 .../views/ResendValidationEmail/i18n.json | 0 .../views/ResendValidationEmail/index.tsx | 16 +- .../ResendValidationEmail/styles.module.css | 0 .../src}/views/Resources/VideoList/i18n.json | 0 .../src}/views/Resources/VideoList/index.tsx | 4 +- .../Resources/VideoList/styles.module.css | 0 {src => app/src}/views/Resources/i18n.json | 0 {src => app/src}/views/Resources/index.tsx | 19 +- .../src}/views/Resources/styles.module.css | 0 {src => app/src}/views/RiskWatch/i18n.json | 0 {src => app/src}/views/RiskWatch/index.tsx | 7 +- .../src}/views/RiskWatchImminent/i18n.json | 0 .../src}/views/RiskWatchImminent/index.tsx | 2 +- .../views/RiskWatchImminent/styles.module.css | 0 .../src}/views/RiskWatchSeasonal/index.tsx | 3 +- {src => app/src}/views/RootLayout/i18n.json | 0 {src => app/src}/views/RootLayout/index.tsx | 39 +- .../src}/views/RootLayout/styles.module.css | 0 .../src}/views/Search/ResultList/index.tsx | 9 +- .../views/Search/ResultList/styles.module.css | 0 .../src}/views/Search/ResultTable/index.tsx | 13 +- {src => app/src}/views/Search/i18n.json | 0 {src => app/src}/views/Search/index.tsx | 42 +- .../src}/views/Search/styles.module.css | 0 .../useColumns/DistrictNameOutput/index.tsx | 0 .../src}/views/Search/useColumns/i18n.json | 0 .../src}/views/Search/useColumns/index.tsx | 29 +- {src => app/src}/views/Surge/i18n.json | 0 {src => app/src}/views/Surge/index.tsx | 16 +- .../src}/views/Surge/styles.module.css | 0 .../src}/views/SurgeCatalogue/i18n.json | 0 .../src}/views/SurgeCatalogue/index.tsx | 22 +- .../views/SurgeCatalogue/styles.module.css | 0 .../views/SurgeCatalogueBasecamp/i18n.json | 0 .../views/SurgeCatalogueBasecamp/index.tsx | 7 +- .../SurgeCatalogueBasecampEruLarge/i18n.json | 0 .../SurgeCatalogueBasecampEruLarge/index.tsx | 4 +- .../SurgeCatalogueBasecampEruMedium/i18n.json | 0 .../SurgeCatalogueBasecampEruMedium/index.tsx | 4 +- .../SurgeCatalogueBasecampEruSmall/i18n.json | 0 .../SurgeCatalogueBasecampEruSmall/index.tsx | 4 +- .../i18n.json | 0 .../index.tsx | 5 +- .../src}/views/SurgeCatalogueCash/i18n.json | 0 .../src}/views/SurgeCatalogueCash/index.tsx | 7 +- .../SurgeCatalogueCashRapidResponse/i18n.json | 0 .../SurgeCatalogueCashRapidResponse/index.tsx | 4 +- .../SurgeCatalogueCommunication/i18n.json | 0 .../SurgeCatalogueCommunication/index.tsx | 7 +- .../i18n.json | 0 .../index.tsx | 4 +- .../i18n.json | 0 .../index.tsx | 4 +- .../i18n.json | 0 .../index.tsx | 4 +- .../i18n.json | 0 .../index.tsx | 5 +- .../i18n.json | 0 .../index.tsx | 4 +- .../i18n.json | 0 .../index.tsx | 6 +- .../i18n.json | 0 .../index.tsx | 5 +- .../src}/views/SurgeCatalogueHealth/i18n.json | 0 .../src}/views/SurgeCatalogueHealth/index.tsx | 5 +- .../i18n.json | 0 .../index.tsx | 7 +- .../i18n.json | 0 .../index.tsx | 7 +- .../i18n.json | 0 .../index.tsx | 5 +- .../i18n.json | 0 .../index.tsx | 4 +- .../i18n.json | 0 .../index.tsx | 5 +- .../SurgeCatalogueHealthEruClinic/i18n.json | 0 .../SurgeCatalogueHealthEruClinic/index.tsx | 7 +- .../SurgeCatalogueHealthEruHospital/i18n.json | 0 .../SurgeCatalogueHealthEruHospital/index.tsx | 7 +- .../i18n.json | 0 .../index.tsx | 5 +- .../SurgeCatalogueHealthEruSurgical/i18n.json | 0 .../SurgeCatalogueHealthEruSurgical/index.tsx | 5 +- .../i18n.json | 0 .../index.tsx | 5 +- .../i18n.json | 0 .../index.tsx | 5 +- .../i18n.json | 0 .../index.tsx | 11 +- .../i18n.json | 0 .../index.tsx | 7 +- .../i18n.json | 0 .../index.tsx | 5 +- .../i18n.json | 0 .../index.tsx | 3 +- .../i18n.json | 0 .../index.tsx | 7 +- .../i18n.json | 0 .../index.tsx | 7 +- .../i18n.json | 0 .../index.tsx | 7 +- .../i18n.json | 0 .../index.tsx | 7 +- .../views/SurgeCatalogueLivelihood/i18n.json | 0 .../views/SurgeCatalogueLivelihood/index.tsx | 7 +- .../i18n.json | 0 .../index.tsx | 6 +- .../views/SurgeCatalogueLogistics/i18n.json | 0 .../views/SurgeCatalogueLogistics/index.tsx | 6 +- .../SurgeCatalogueLogisticsEru/i18n.json | 0 .../SurgeCatalogueLogisticsEru/index.tsx | 4 +- .../SurgeCatalogueLogisticsLpscmNs/i18n.json | 0 .../SurgeCatalogueLogisticsLpscmNs/index.tsx | 7 +- .../i18n.json | 0 .../index.tsx | 7 +- .../i18n.json | 0 .../index.tsx | 7 +- .../src}/views/SurgeCatalogueOther/i18n.json | 0 .../src}/views/SurgeCatalogueOther/index.tsx | 3 +- .../i18n.json | 0 .../index.tsx | 5 +- .../i18n.json | 0 .../index.tsx | 5 +- .../i18n.json | 0 .../index.tsx | 5 +- .../i18n.json | 0 .../index.tsx | 3 +- .../i18n.json | 0 .../index.tsx | 5 +- .../SurgeCatalogueOtherMigration/i18n.json | 0 .../SurgeCatalogueOtherMigration/index.tsx | 5 +- .../i18n.json | 0 .../index.tsx | 3 +- .../i18n.json | 0 .../index.tsx | 3 +- .../i18n.json | 0 .../index.tsx | 3 +- .../SurgeCatalogueOtherRecovery/i18n.json | 0 .../SurgeCatalogueOtherRecovery/index.tsx | 5 +- .../views/SurgeCatalogueOverview/i18n.json | 0 .../views/SurgeCatalogueOverview/index.tsx | 5 +- .../src}/views/SurgeCataloguePgi/i18n.json | 0 .../src}/views/SurgeCataloguePgi/index.tsx | 7 +- .../views/SurgeCataloguePgiServices/i18n.json | 0 .../views/SurgeCataloguePgiServices/index.tsx | 4 +- .../src}/views/SurgeCataloguePmer/i18n.json | 0 .../src}/views/SurgeCataloguePmer/index.tsx | 5 +- .../i18n.json | 0 .../index.tsx | 5 +- .../i18n.json | 0 .../index.tsx | 5 +- .../src}/views/SurgeCatalogueRelief/i18n.json | 0 .../src}/views/SurgeCatalogueRelief/index.tsx | 7 +- .../views/SurgeCatalogueReliefEru/i18n.json | 0 .../views/SurgeCatalogueReliefEru/index.tsx | 4 +- .../views/SurgeCatalogueSecurity/i18n.json | 0 .../views/SurgeCatalogueSecurity/index.tsx | 5 +- .../i18n.json | 0 .../index.tsx | 4 +- .../views/SurgeCatalogueShelter/i18n.json | 0 .../views/SurgeCatalogueShelter/index.tsx | 7 +- .../i18n.json | 0 .../index.tsx | 6 +- .../i18n.json | 0 .../index.tsx | 6 +- .../src}/views/SurgeCatalogueWash/i18n.json | 0 .../src}/views/SurgeCatalogueWash/index.tsx | 7 +- .../views/SurgeCatalogueWashHwts/i18n.json | 0 .../views/SurgeCatalogueWashHwts/index.tsx | 5 +- .../views/SurgeCatalogueWashKit2/i18n.json | 0 .../views/SurgeCatalogueWashKit2/index.tsx | 9 +- .../views/SurgeCatalogueWashKit5/i18n.json | 0 .../views/SurgeCatalogueWashKit5/index.tsx | 9 +- .../SurgeCatalogueWashKitM15Eru/i18n.json | 0 .../SurgeCatalogueWashKitM15Eru/index.tsx | 4 +- .../SurgeCatalogueWashKitM40Eru/i18n.json | 0 .../SurgeCatalogueWashKitM40Eru/index.tsx | 4 +- .../SurgeCatalogueWashKitMsm20Eru/i18n.json | 0 .../SurgeCatalogueWashKitMsm20Eru/index.tsx | 4 +- .../i18n.json | 0 .../index.tsx | 7 +- .../views/SurgeOperationalToolbox/i18n.json | 0 .../views/SurgeOperationalToolbox/index.tsx | 17 +- .../SurgeOperationalToolbox/styles.module.css | 0 .../EmergencyResponseUnitsTable/i18n.json | 0 .../EmergencyResponseUnitsTable/index.tsx | 35 +- .../styles.module.css | 0 .../PersonnelByEventTable/i18n.json | 0 .../PersonnelByEventTable/index.tsx | 25 +- .../PersonnelByEventTable/styles.module.css | 0 .../EmergencyResponseUnitOwnerCard/i18n.json | 0 .../EmergencyResponseUnitOwnerCard/index.tsx | 12 +- .../styles.module.css | 0 .../views/SurgeOverview/Readiness/i18n.json | 0 .../views/SurgeOverview/Readiness/index.tsx | 30 +- .../SurgeOverview/Readiness/styles.module.css | 0 .../SurgeOverview/SurgeAlertsTable/i18n.json | 0 .../SurgeOverview/SurgeAlertsTable/index.tsx | 34 +- .../SurgeAlertsTable/styles.module.css | 0 .../views/SurgeOverview/SurgeMap/i18n.json | 0 .../views/SurgeOverview/SurgeMap/index.tsx | 33 +- .../SurgeOverview/SurgeMap/styles.module.css | 0 .../views/SurgeOverview/SurgeMap/utils.ts | 9 +- .../src}/views/SurgeOverview/i18n.json | 0 .../src}/views/SurgeOverview/index.tsx | 31 +- .../views/SurgeOverview/styles.module.css | 0 .../ActivityListItem/i18n.json | 0 .../ActivityListItem/index.tsx | 8 +- .../ActivityListItem/styles.module.css | 0 .../src}/views/ThreeWActivityDetail/i18n.json | 0 .../src}/views/ThreeWActivityDetail/index.tsx | 37 +- .../ThreeWActivityDetail/styles.module.css | 0 .../ActivityInput/ActionSupplyInput/i18n.json | 0 .../ActivityInput/ActionSupplyInput/index.tsx | 19 +- .../ActionSupplyInput/styles.module.css | 0 .../CustomSuppliesInput/i18n.json | 0 .../CustomSuppliesInput/index.tsx | 19 +- .../CustomSuppliesInput/styles.module.css | 0 .../DisaggregationInput/i18n.json | 0 .../DisaggregationInput/index.tsx | 19 +- .../DisaggregationInput/styles.module.css | 0 .../ActivityInput/PointInput/i18n.json | 0 .../ActivityInput/PointInput/index.tsx | 19 +- .../PointInput/styles.module.css | 0 .../ActivityInput/i18n.json | 0 .../ActivityInput/index.tsx | 45 +- .../ActivityInput/styles.module.css | 0 .../ActivitiesBySectorInput/i18n.json | 0 .../ActivitiesBySectorInput/index.tsx | 37 +- .../ActivitiesBySectorInput/styles.module.css | 0 .../src}/views/ThreeWActivityForm/i18n.json | 0 .../src}/views/ThreeWActivityForm/index.tsx | 112 +- .../src}/views/ThreeWActivityForm/schema.ts | 30 +- .../ThreeWActivityForm/styles.module.css | 0 .../DisaggregatedPeopleOutput/i18n.json | 0 .../DisaggregatedPeopleOutput/index.tsx | 9 +- .../styles.module.css | 0 .../src}/views/ThreeWProjectDetail/i18n.json | 0 .../src}/views/ThreeWProjectDetail/index.tsx | 31 +- .../ThreeWProjectDetail/styles.module.css | 0 .../AnnualSplitInput/i18n.json | 0 .../AnnualSplitInput/index.tsx | 23 +- .../AnnualSplitInput/styles.module.css | 0 .../DistrictMapModal/DistrictItem/i18n.json | 0 .../DistrictMapModal/DistrictItem/index.tsx | 6 +- .../DistrictItem/styles.module.css | 0 .../DistrictMap/DistrictMapModal/i18n.json | 0 .../DistrictMap/DistrictMapModal/index.tsx | 56 +- .../DistrictMapModal/styles.module.css | 0 .../ThreeWProjectForm/DistrictMap/i18n.json | 0 .../ThreeWProjectForm/DistrictMap/index.tsx | 22 +- .../DistrictMap/styles.module.css | 0 .../src}/views/ThreeWProjectForm/i18n.json | 0 .../src}/views/ThreeWProjectForm/index.tsx | 120 +- .../src}/views/ThreeWProjectForm/schema.ts | 27 +- .../views/ThreeWProjectForm/styles.module.css | 0 .../stylelint.config.cjs | 0 tsconfig.json => app/tsconfig.json | 0 tsconfig.node.json => app/tsconfig.node.json | 0 types.stub.ts => app/types.stub.ts | 0 vite.config.ts => app/vite.config.ts | 0 package.json | 104 +- packages/ui/.eslintignore | 2 + packages/ui/README.md | 1 + .../ui/eslint.config.js | 2 +- packages/ui/package.json | 100 + packages/ui/postcss.config.cjs | 8 + .../ui/src}/components/Alert/i18n.json | 0 .../ui/src}/components/Alert/index.tsx | 1 - .../src}/components/Alert/styles.module.css | 0 .../src}/components/AlertContainer/index.tsx | 0 .../AlertContainer/styles.module.css | 0 .../ui/src}/components/BarChart/index.tsx | 2 +- .../components/BarChart/styles.module.css | 0 .../ui/src}/components/BlockLoading/index.tsx | 2 +- .../components/BlockLoading/styles.module.css | 0 .../ui/src}/components/BodyOverlay/index.tsx | 2 +- .../components/BodyOverlay/styles.module.css | 0 .../ui/src}/components/BooleanInput/i18n.json | 0 .../ui/src}/components/BooleanInput/index.tsx | 0 .../src}/components/BooleanOutput/i18n.json | 0 .../src}/components/BooleanOutput/index.tsx | 0 .../BooleanOutput/styles.module.css | 0 .../ui/src}/components/Breadcrumbs/index.tsx | 0 .../components/Breadcrumbs/styles.module.css | 0 .../ui/src}/components/Button/index.tsx | 0 .../src}/components/Button/styles.module.css | 0 .../ui/src}/components/ChartAxes/index.tsx | 0 .../components/ChartAxes/styles.module.css | 0 .../ui/src/components/ChartAxisX/index.tsx | 91 + .../components/ChartAxisX/styles.module.css | 31 + .../ui/src/components/ChartAxisY/index.tsx | 73 + .../components/ChartAxisY/styles.module.css | 21 + .../components/Checkbox/Checkmark/index.tsx | 0 .../ui/src}/components/Checkbox/index.tsx | 0 .../components/Checkbox/styles.module.css | 0 .../ui/src}/components/Checklist/index.tsx | 0 .../components/Checklist/styles.module.css | 0 .../src}/components/ConfirmButton/i18n.json | 0 .../src}/components/ConfirmButton/index.tsx | 0 .../ui/src}/components/Container/index.tsx | 0 .../components/Container/styles.module.css | 0 .../ui/src}/components/DateInput/index.tsx | 0 .../ui/src}/components/DateOutput/index.tsx | 0 .../components/DateOutput/styles.module.css | 0 .../src}/components/DateRangeOutput/index.tsx | 0 .../DateRangeOutput/styles.module.css | 0 .../ui/src}/components/DropdownMenu/index.tsx | 0 .../components/DropdownMenu/styles.module.css | 0 .../components/ExpandableContainer/i18n.json | 0 .../components/ExpandableContainer/index.tsx | 0 .../ExpandableContainer/styles.module.css | 0 .../ui/src}/components/Footer/index.tsx | 0 .../ui/src}/components/Grid/i18n.json | 0 .../ui/src}/components/Grid/index.tsx | 0 .../ui/src}/components/Grid/styles.module.css | 0 .../ui/src}/components/Header/index.tsx | 0 .../src}/components/Header/styles.module.css | 0 .../ui/src}/components/Heading/index.tsx | 0 .../src}/components/Heading/styles.module.css | 0 .../ui/src}/components/HtmlOutput/index.tsx | 0 .../components/HtmlOutput/styles.module.css | 0 .../ui/src}/components/IconButton/index.tsx | 0 .../components/IconButton/styles.module.css | 0 .../ui/src}/components/Image/index.tsx | 0 .../src}/components/Image/styles.module.css | 0 .../ui/src}/components/InfoPopup/index.tsx | 0 .../components/InfoPopup/styles.module.css | 0 .../src}/components/InputContainer/index.tsx | 0 .../InputContainer/styles.module.css | 0 .../ui/src}/components/InputError/index.tsx | 0 .../components/InputError/styles.module.css | 0 .../ui/src}/components/InputHint/index.tsx | 0 .../components/InputHint/styles.module.css | 0 .../ui/src}/components/InputLabel/index.tsx | 0 .../components/InputLabel/styles.module.css | 0 .../ui/src}/components/InputSection/index.tsx | 0 .../components/InputSection/styles.module.css | 0 .../ui/src}/components/KeyFigure/index.tsx | 0 .../components/KeyFigure/styles.module.css | 0 .../ui/src}/components/LegendItem/index.tsx | 0 .../components/LegendItem/styles.module.css | 0 .../ui/src}/components/List/i18n.json | 0 .../ui/src}/components/List/index.tsx | 0 .../ui/src}/components/List/styles.module.css | 0 .../ui/src}/components/Message/index.tsx | 0 .../src}/components/Message/styles.module.css | 0 .../ui/src}/components/Modal/i18n.json | 0 .../ui/src}/components/Modal/index.tsx | 0 .../src}/components/Modal/styles.module.css | 0 .../components/MultiSelectInput/index.tsx | 0 .../components/NavigationTabList/index.tsx | 0 .../NavigationTabList/styles.module.css | 0 .../ui/src}/components/NumberInput/index.tsx | 0 .../ui/src}/components/NumberOutput/index.tsx | 0 .../components/NumberOutput/styles.module.css | 0 .../ui/src}/components/Overlay/index.tsx | 0 .../src}/components/Overlay/styles.module.css | 0 .../src}/components/PageContainer/index.tsx | 0 .../PageContainer/styles.module.css | 0 .../ui/src}/components/PageHeader/index.tsx | 0 .../components/PageHeader/styles.module.css | 0 .../ui/src}/components/Pager/i18n.json | 0 .../ui/src}/components/Pager/index.tsx | 0 .../src}/components/Pager/styles.module.css | 0 .../src}/components/PasswordInput/i18n.json | 0 .../src}/components/PasswordInput/index.tsx | 0 .../ui/src}/components/PieChart/index.tsx | 0 .../components/PieChart/styles.module.css | 0 .../ui/src}/components/Popup/index.tsx | 0 .../src}/components/Popup/styles.module.css | 0 .../ui/src}/components/Portal/index.tsx | 0 .../ui/src}/components/ProgressBar/index.tsx | 0 .../components/ProgressBar/styles.module.css | 0 .../components/RadioInput/Radio/index.tsx | 0 .../RadioInput/Radio/styles.module.css | 0 .../ui/src}/components/RadioInput/index.tsx | 0 .../components/RadioInput/styles.module.css | 0 .../ui/src}/components/RawButton/index.tsx | 0 .../components/RawButton/styles.module.css | 0 .../ui/src}/components/RawFileInput/index.tsx | 0 .../components/RawFileInput/styles.module.css | 0 .../ui/src}/components/RawInput/index.tsx | 0 .../components/RawInput/styles.module.css | 0 .../ui/src}/components/RawList/index.tsx | 0 .../ui/src}/components/RawTextArea/index.tsx | 0 .../components/RawTextArea/styles.module.css | 0 .../components/ReducedListDisplay/i18n.json | 0 .../components/ReducedListDisplay/index.tsx | 0 .../ReducedListDisplay/styles.module.css | 0 .../SearchMultiSelectInput/Option/index.tsx | 0 .../SearchMultiSelectInput/index.tsx | 0 .../SearchMultiSelectInput/styles.module.css | 0 .../SearchSelectInput/Option/index.tsx | 0 .../Option/styles.module.css | 0 .../components/SearchSelectInput/index.tsx | 0 .../SearchSelectInput/styles.module.css | 0 .../ui/src}/components/SegmentInput/index.tsx | 0 .../components/SegmentInput/styles.module.css | 0 .../ui/src}/components/SelectInput/index.tsx | 0 .../GenericOption/index.tsx | 0 .../GenericOption/styles.module.css | 0 .../components/SelectInputContainer/i18n.json | 0 .../components/SelectInputContainer/index.tsx | 0 .../SelectInputContainer/styles.module.css | 0 .../ui/src}/components/Spinner/index.tsx | 0 .../src}/components/Spinner/styles.module.css | 0 .../components/StackedProgressBar/index.tsx | 0 .../StackedProgressBar/styles.module.css | 0 .../components/Switch/SwitchIcon/index.tsx | 0 .../Switch/SwitchIcon/styles.module.css | 0 .../ui/src}/components/Switch/index.tsx | 0 .../src}/components/Switch/styles.module.css | 0 .../ui/src}/components/Table/Cell/index.tsx | 0 .../ColumnShortcuts/ExpandButton/index.tsx | 0 .../ExpandButton/styles.module.css | 0 .../ExpansionIndicator/index.tsx | 0 .../ExpansionIndicator/styles.module.css | 0 .../ColumnShortcuts/TimelineHeader/index.tsx | 0 .../TimelineHeader/styles.module.css | 0 .../ColumnShortcuts/TimelineItem/index.tsx | 0 .../TimelineItem/styles.module.css | 0 .../components/Table/ColumnShortcuts/index.ts | 148 - .../Table/ColumnShortcuts/styles.module.css | 0 .../components/Table/HeaderCell/i18n.json | 0 .../components/Table/HeaderCell/index.tsx | 0 .../Table/HeaderCell/styles.module.css | 0 .../components/Table/TableActions/index.tsx | 0 .../Table/TableActions/styles.module.css | 0 .../Table/TableBodyContent/index.tsx | 0 .../Table/TableBodyContent/styles.module.css | 0 .../src}/components/Table/TableData/index.tsx | 0 .../Table/TableData/styles.module.css | 0 .../components/Table/TableHeader/index.tsx | 0 .../Table/TableHeader/styles.module.css | 0 .../src}/components/Table/TableRow/index.tsx | 0 .../ui/src}/components/Table/i18n.json | 0 .../ui/src}/components/Table/index.tsx | 0 .../src}/components/Table/styles.module.css | 0 .../ui/src}/components/Table/types.ts | 0 .../ui/src}/components/Table/useSorting.ts | 0 .../ui/src}/components/Tabs/Tab/i18n.json | 0 .../ui/src}/components/Tabs/Tab/index.tsx | 0 .../components/Tabs/Tab/styles.module.css | 0 .../ui/src}/components/Tabs/TabContext.tsx | 0 .../ui/src}/components/Tabs/TabList/index.tsx | 0 .../components/Tabs/TabList/styles.module.css | 0 .../src}/components/Tabs/TabPanel/index.tsx | 0 .../ui/src}/components/Tabs/index.tsx | 0 .../ui/src}/components/TextArea/index.tsx | 0 .../ui/src}/components/TextInput/index.tsx | 0 .../ui/src}/components/TextOutput/index.tsx | 0 .../components/TextOutput/styles.module.css | 0 .../TimeSeriesChart/ChartPoint/index.tsx | 0 .../ChartPoint/styles.module.css | 0 .../src}/components/TimeSeriesChart/index.tsx | 0 .../TimeSeriesChart/styles.module.css | 0 .../ui/src}/components/Tooltip/index.tsx | 0 .../src}/components/Tooltip/styles.module.css | 0 .../components/parked/TopBanner/index.tsx | 0 .../parked/TopBanner/styles.module.css | 0 .../components/printable/Container/index.tsx | 2 +- .../printable/Container/styles.module.css | 0 .../printable/DescriptionText/index.tsx | 2 +- .../DescriptionText/styles.module.css | 0 .../components/printable/Heading/index.tsx | 2 +- .../printable/Heading/styles.module.css | 0 .../src}/components/printable/Image/index.tsx | 2 +- .../printable/Image/styles.module.css | 0 .../components/printable/TextOutput/index.tsx | 0 .../printable/TextOutput/styles.module.css | 0 .../ui/src/components/printable/index.tsx | 10 + {src => packages/ui/src}/components/types.ts | 0 {src => packages/ui/src}/contexts/alert.tsx | 0 .../ui/src}/contexts/dropdown-menu.tsx | 0 packages/ui/src/contexts/index.ts | 10 + .../ui/src}/contexts/language.tsx | 0 .../ui/src}/contexts/navigation-tab.tsx | 0 packages/ui/src/declarations/css.d.ts | 4 + packages/ui/src/hooks/index.ts | 11 + .../ui/src}/hooks/useBasicLayout/index.tsx | 0 .../hooks/useBasicLayout/styles.module.css | 0 .../ui/src}/hooks/useBlurEffect.ts | 0 .../ui/src}/hooks/useBooleanState.ts | 0 .../ui/src}/hooks/useFloatPlacement.ts | 0 {src => packages/ui/src}/hooks/useKeyboard.ts | 0 .../ui/src}/hooks/useSizeTracking.ts | 0 .../ui/src}/hooks/useSpacingTokens.ts | 0 .../ui/src}/hooks/useTranslation.ts | 0 {src => packages/ui/src}/index.css | 43 - packages/ui/src/index.tsx | 169 + {src => packages/ui/src}/utils/chart.test.ts | 0 {src => packages/ui/src}/utils/chart.ts | 105 +- {src => packages/ui/src}/utils/common.test.ts | 0 {src => packages/ui/src}/utils/common.ts | 19 - packages/ui/src/utils/constants.ts | 9 + packages/ui/src/utils/index.ts | 7 + {src => packages/ui/src}/utils/selectors.ts | 0 .../ui/src}/utils/translation.tsx | 0 packages/ui/stylelint.config.cjs | 31 + packages/ui/tsconfig.json | 33 + packages/ui/tsconfig.node.json | 10 + packages/ui/vite.config.ts | 61 + yarn.lock | 3580 +++++++++-------- 1390 files changed, 8840 insertions(+), 5932 deletions(-) rename .dockerignore => app/.dockerignore (100%) rename .eslintignore => app/.eslintignore (100%) rename .unimportedrc.json => app/.unimportedrc.json (100%) rename Dockerfile => app/Dockerfile (100%) rename docker-compose.yml => app/docker-compose.yml (100%) rename env.ts => app/env.ts (100%) create mode 100644 app/eslint.config.js rename index.html => app/index.html (100%) create mode 100644 app/package.json rename postcss.config.cjs => app/postcss.config.cjs (100%) rename {public => app/public}/go-icon.svg (100%) rename {scripts => app/scripts}/translator.js (100%) rename {src => app/src}/App/Auth.tsx (95%) rename {src => app/src}/App/PageError/i18n.json (100%) rename {src => app/src}/App/PageError/index.tsx (93%) rename {src => app/src}/App/PageError/styles.module.css (100%) rename {src => app/src}/App/index.tsx (94%) rename {src => app/src}/App/routes/CountryRoutes.tsx (99%) rename {src => app/src}/App/routes/RegionRoutes.tsx (100%) rename {src => app/src}/App/routes/SmartNavigate.tsx (93%) rename {src => app/src}/App/routes/SurgeRoutes.tsx (99%) rename {src => app/src}/App/routes/common.tsx (99%) rename {src => app/src}/App/routes/index.tsx (99%) rename {src => app/src}/App/styles.module.css (100%) rename {src => app/src}/assets/content/operational_timeline_body.svg (100%) rename {src => app/src}/assets/content/operational_timeline_title.svg (100%) rename {src => app/src}/assets/content/per_approach_notext.svg (100%) rename {src => app/src}/assets/icons/arc_logo.png (100%) rename {src => app/src}/assets/icons/aurc_logo.svg (100%) rename {src => app/src}/assets/icons/brc_logo.png (100%) rename {src => app/src}/assets/icons/crc_logo.png (100%) rename {src => app/src}/assets/icons/dnk_logo.png (100%) rename {src => app/src}/assets/icons/ericsson_logo.png (100%) rename {src => app/src}/assets/icons/eru.jpg (100%) rename {src => app/src}/assets/icons/esp_logo.svg (100%) rename {src => app/src}/assets/icons/frc_logo.png (100%) rename {src => app/src}/assets/icons/go-logo-2020.svg (100%) rename {src => app/src}/assets/icons/ifrc-square.png (100%) rename {src => app/src}/assets/icons/jrc_logo.png (100%) rename {src => app/src}/assets/icons/nlrc_logo.jpg (100%) rename {src => app/src}/assets/icons/pdc_logo.svg (100%) rename {src => app/src}/assets/icons/risk/cyclone.png (100%) rename {src => app/src}/assets/icons/risk/drought.png (100%) rename {src => app/src}/assets/icons/risk/earthquake.png (100%) rename {src => app/src}/assets/icons/risk/flood.png (100%) rename {src => app/src}/assets/icons/risk/wildfire.png (100%) rename {src => app/src}/assets/icons/swiss.svg (100%) rename {src => app/src}/assets/icons/us_aid.svg (100%) rename {src => app/src}/assets/images/surge-im-composition.jpg (100%) rename {src => app/src}/assets/images/surge-im-pyramid.png (100%) rename {src => app/src}/assets/images/surge-im-support-responsible-operation.jpg (100%) rename {src => app/src}/components/CatalogueInfoCard/index.tsx (96%) rename {src => app/src}/components/CatalogueInfoCard/styles.module.css (100%) rename {src => app/src}/components/DropdownMenuItem/index.tsx (92%) rename {src => app/src}/components/FourHundredThree/i18n.json (100%) rename {src => app/src}/components/FourHundredThree/index.tsx (95%) rename {src => app/src}/components/FourHundredThree/styles.module.css (100%) rename {src => app/src}/components/GlobalFooter/i18n.json (100%) rename {src => app/src}/components/GlobalFooter/index.tsx (94%) rename {src => app/src}/components/GlobalFooter/styles.module.css (100%) rename {src => app/src}/components/Link/index.tsx (98%) rename {src => app/src}/components/Link/styles.module.css (100%) rename {src => app/src}/components/MapContainerWithDisclaimer/i18n.json (100%) rename {src => app/src}/components/MapContainerWithDisclaimer/index.tsx (94%) rename {src => app/src}/components/MapContainerWithDisclaimer/styles.module.css (100%) rename {src => app/src}/components/MapPopup/i18n.json (100%) rename {src => app/src}/components/MapPopup/index.tsx (92%) rename {src => app/src}/components/MapPopup/styles.module.css (100%) rename {src => app/src}/components/Navbar/AuthenticatedUserDropdown/i18n.json (100%) rename {src => app/src}/components/Navbar/AuthenticatedUserDropdown/index.tsx (91%) rename {src => app/src}/components/Navbar/CountryDropdown/i18n.json (100%) rename {src => app/src}/components/Navbar/CountryDropdown/index.tsx (92%) rename {src => app/src}/components/Navbar/CountryDropdown/styles.module.css (100%) rename {src => app/src}/components/Navbar/LanguageDropdown/index.tsx (87%) rename {src => app/src}/components/Navbar/LanguageDropdown/styles.module.css (100%) rename {src => app/src}/components/Navbar/i18n.json (100%) rename {src => app/src}/components/Navbar/index.tsx (98%) rename {src => app/src}/components/Navbar/styles.module.css (100%) rename {src => app/src}/components/NavigationTab/index.tsx (95%) rename {src => app/src}/components/NavigationTab/styles.module.css (100%) rename {src => app/src}/components/NonFieldError/i18n.json (100%) rename {src => app/src}/components/NonFieldError/index.tsx (90%) rename {src => app/src}/components/NonFieldError/styles.module.css (100%) rename {src => app/src}/components/Page/i18n.json (100%) rename {src => app/src}/components/Page/index.tsx (91%) rename {src => app/src}/components/Page/styles.module.css (100%) rename {src => app/src}/components/RichTextArea/index.tsx (95%) rename {src => app/src}/components/RichTextArea/styles.module.css (100%) rename {src => app/src}/components/WikiLink/i18n.json (100%) rename {src => app/src}/components/WikiLink/index.tsx (95%) rename {src => app/src}/components/WikiLink/styles.module.css (100%) rename {src => app/src}/components/domain/ActiveOperationMap/i18n.json (100%) rename {src => app/src}/components/domain/ActiveOperationMap/index.tsx (96%) rename {src => app/src}/components/domain/ActiveOperationMap/styles.module.css (100%) rename {src => app/src}/components/domain/ActiveOperationMap/utils.ts (100%) rename {src => app/src}/components/domain/ActivityEventSearchSelectInput.tsx (91%) rename {src => app/src}/components/domain/AppealsOverYearsChart/MonthlyChart/i18n.json (100%) rename {src => app/src}/components/domain/AppealsOverYearsChart/MonthlyChart/index.tsx (91%) rename {src => app/src}/components/domain/AppealsOverYearsChart/MonthlyChart/styles.module.css (100%) rename {src => app/src}/components/domain/AppealsOverYearsChart/PointDetails/i18n.json (100%) rename {src => app/src}/components/domain/AppealsOverYearsChart/PointDetails/index.tsx (95%) rename {src => app/src}/components/domain/AppealsOverYearsChart/PointDetails/styles.module.css (100%) rename {src => app/src}/components/domain/AppealsOverYearsChart/YearlyChart/i18n.json (100%) rename {src => app/src}/components/domain/AppealsOverYearsChart/YearlyChart/index.tsx (92%) rename {src => app/src}/components/domain/AppealsOverYearsChart/YearlyChart/styles.module.css (100%) rename {src => app/src}/components/domain/AppealsOverYearsChart/index.tsx (100%) rename {src => app/src}/components/domain/AppealsTable/i18n.json (100%) rename {src => app/src}/components/domain/AppealsTable/index.tsx (93%) rename {src => app/src}/components/domain/AppealsTable/styles.module.css (100%) rename {src => app/src}/components/domain/BaseMap/index.tsx (99%) rename {src => app/src}/components/domain/CountryMultiSelectInput.tsx (84%) create mode 100644 app/src/components/domain/CountryPageEmptyMessage/i18n.json create mode 100644 app/src/components/domain/CountryPageEmptyMessage/index.tsx create mode 100644 app/src/components/domain/CountryPageEmptyMessage/styles.module.css rename {src => app/src}/components/domain/CountrySelectInput.tsx (84%) rename {src => app/src}/components/domain/DetailsFailedToLoadMessage/i18n.json (100%) rename {src => app/src}/components/domain/DetailsFailedToLoadMessage/index.tsx (86%) rename {src => app/src}/components/domain/DisasterTypeSelectInput.tsx (92%) rename {src => app/src}/components/domain/DistrictMultiCountrySearchMultiSelectInput.tsx (97%) rename {src => app/src}/components/domain/DistrictSearchMultiSelectInput/i18n.json (100%) rename {src => app/src}/components/domain/DistrictSearchMultiSelectInput/index.tsx (93%) rename {src => app/src}/components/domain/DistrictSearchMultiSelectInput/styles.module.css (100%) rename {src => app/src}/components/domain/DrefExportModal/i18n.json (100%) rename {src => app/src}/components/domain/DrefExportModal/index.tsx (94%) rename {src => app/src}/components/domain/DrefShareModal/UserItem/i18n.json (100%) rename {src => app/src}/components/domain/DrefShareModal/UserItem/index.tsx (89%) rename {src => app/src}/components/domain/DrefShareModal/UserItem/styles.module.css (100%) rename {src => app/src}/components/domain/DrefShareModal/i18n.json (100%) rename {src => app/src}/components/domain/DrefShareModal/index.tsx (91%) rename {src => app/src}/components/domain/DrefShareModal/styles.module.css (100%) rename {src => app/src}/components/domain/EventSearchSelectInput.tsx (95%) rename {src => app/src}/components/domain/ExportButton/i18n.json (100%) rename {src => app/src}/components/domain/ExportButton/index.tsx (84%) rename {src => app/src}/components/domain/FieldReportSearchSelectInput.tsx (93%) rename {src => app/src}/components/domain/FormFailedToLoadMessage/i18n.json (100%) rename {src => app/src}/components/domain/FormFailedToLoadMessage/index.tsx (86%) rename {src => app/src}/components/domain/GoMultiFileInput/i18n.json (100%) rename {src => app/src}/components/domain/GoMultiFileInput/index.tsx (95%) rename {src => app/src}/components/domain/GoMultiFileInput/styles.module.css (100%) rename {src => app/src}/components/domain/GoSingleFileInput/i18n.json (100%) rename {src => app/src}/components/domain/GoSingleFileInput/index.tsx (93%) rename {src => app/src}/components/domain/GoSingleFileInput/styles.module.css (100%) rename {src => app/src}/components/domain/HighlightedOperations/OperationCard/i18n.json (100%) rename {src => app/src}/components/domain/HighlightedOperations/OperationCard/index.tsx (93%) rename {src => app/src}/components/domain/HighlightedOperations/OperationCard/styles.module.css (100%) rename {src => app/src}/components/domain/HighlightedOperations/i18n.json (100%) rename {src => app/src}/components/domain/HighlightedOperations/index.tsx (96%) rename {src => app/src}/components/domain/HistoricalDataChart/i18n.json (100%) rename {src => app/src}/components/domain/HistoricalDataChart/index.tsx (96%) rename {src => app/src}/components/domain/HistoricalDataChart/styles.module.css (100%) rename {src => app/src}/components/domain/ImageWithCaptionInput/i18n.json (100%) rename {src => app/src}/components/domain/ImageWithCaptionInput/index.tsx (94%) rename {src => app/src}/components/domain/ImageWithCaptionInput/styles.module.css (100%) rename {src => app/src}/components/domain/KeywordSearchSelectInput/i18n.json (100%) rename {src => app/src}/components/domain/KeywordSearchSelectInput/index.tsx (97%) rename {src => app/src}/components/domain/LanguageMismatchMessage/i18n.json (100%) rename {src => app/src}/components/domain/LanguageMismatchMessage/index.tsx (82%) rename {src => app/src}/components/domain/MultiImageWithCaptionInput/i18n.json (100%) rename {src => app/src}/components/domain/MultiImageWithCaptionInput/index.tsx (95%) rename {src => app/src}/components/domain/MultiImageWithCaptionInput/styles.module.css (100%) rename {src => app/src}/components/domain/NationalSocietyMultiSelectInput.tsx (86%) rename {src => app/src}/components/domain/NationalSocietySelectInput.tsx (90%) rename {src => app/src}/components/domain/NonEnglishFormCreationMessage/i18n.json (100%) rename {src => app/src}/components/domain/NonEnglishFormCreationMessage/index.tsx (84%) rename {src => app/src}/components/domain/OperationListItem/i18n.json (100%) rename {src => app/src}/components/domain/OperationListItem/index.tsx (88%) rename {src => app/src}/components/domain/OperationListItem/styles.module.css (100%) rename {src => app/src}/components/domain/PerAssessmentSummary/i18n.json (100%) rename {src => app/src}/components/domain/PerAssessmentSummary/index.tsx (95%) rename {src => app/src}/components/domain/PerAssessmentSummary/styles.module.css (100%) rename {src => app/src}/components/domain/ProjectActions/i18n.json (100%) rename {src => app/src}/components/domain/ProjectActions/index.tsx (93%) rename {src => app/src}/components/domain/ProjectActions/styles.module.css (100%) rename {src => app/src}/components/domain/RegionKeyFigures/i18n.json (100%) rename {src => app/src}/components/domain/RegionKeyFigures/index.tsx (94%) rename {src => app/src}/components/domain/RegionKeyFigures/styles.module.css (100%) rename {src => app/src}/components/domain/RegionSelectInput.tsx (88%) rename {src => app/src}/components/domain/RiskImminentEventMap/i18n.json (100%) rename {src => app/src}/components/domain/RiskImminentEventMap/index.tsx (97%) rename {src => app/src}/components/domain/RiskImminentEventMap/mapStyles.ts (95%) rename {src => app/src}/components/domain/RiskImminentEventMap/styles.module.css (100%) rename {src => app/src}/components/domain/RiskImminentEvents/Gdacs/EventDetails/i18n.json (100%) rename {src => app/src}/components/domain/RiskImminentEvents/Gdacs/EventDetails/index.tsx (96%) rename {src => app/src}/components/domain/RiskImminentEvents/Gdacs/EventDetails/styles.module.css (100%) rename {src => app/src}/components/domain/RiskImminentEvents/Gdacs/EventListItem/i18n.json (100%) rename {src => app/src}/components/domain/RiskImminentEvents/Gdacs/EventListItem/index.tsx (88%) rename {src => app/src}/components/domain/RiskImminentEvents/Gdacs/EventListItem/styles.module.css (100%) rename {src => app/src}/components/domain/RiskImminentEvents/Gdacs/index.tsx (95%) rename {src => app/src}/components/domain/RiskImminentEvents/MeteoSwiss/EventDetails/i18n.json (100%) rename {src => app/src}/components/domain/RiskImminentEvents/MeteoSwiss/EventDetails/index.tsx (95%) rename {src => app/src}/components/domain/RiskImminentEvents/MeteoSwiss/EventDetails/styles.module.css (100%) rename {src => app/src}/components/domain/RiskImminentEvents/MeteoSwiss/EventListItem/i18n.json (100%) rename {src => app/src}/components/domain/RiskImminentEvents/MeteoSwiss/EventListItem/index.tsx (89%) rename {src => app/src}/components/domain/RiskImminentEvents/MeteoSwiss/EventListItem/styles.module.css (100%) rename {src => app/src}/components/domain/RiskImminentEvents/MeteoSwiss/index.tsx (97%) rename {src => app/src}/components/domain/RiskImminentEvents/Pdc/EventDetails/i18n.json (100%) rename {src => app/src}/components/domain/RiskImminentEvents/Pdc/EventDetails/index.tsx (95%) rename {src => app/src}/components/domain/RiskImminentEvents/Pdc/EventDetails/styles.module.css (100%) rename {src => app/src}/components/domain/RiskImminentEvents/Pdc/EventListItem/i18n.json (100%) rename {src => app/src}/components/domain/RiskImminentEvents/Pdc/EventListItem/index.tsx (88%) rename {src => app/src}/components/domain/RiskImminentEvents/Pdc/EventListItem/styles.module.css (100%) rename {src => app/src}/components/domain/RiskImminentEvents/Pdc/index.tsx (96%) rename {src => app/src}/components/domain/RiskImminentEvents/WfpAdam/EventDetails/i18n.json (100%) rename {src => app/src}/components/domain/RiskImminentEvents/WfpAdam/EventDetails/index.tsx (96%) rename {src => app/src}/components/domain/RiskImminentEvents/WfpAdam/EventDetails/styles.module.css (100%) rename {src => app/src}/components/domain/RiskImminentEvents/WfpAdam/EventListItem/i18n.json (100%) rename {src => app/src}/components/domain/RiskImminentEvents/WfpAdam/EventListItem/index.tsx (88%) rename {src => app/src}/components/domain/RiskImminentEvents/WfpAdam/EventListItem/styles.module.css (100%) rename {src => app/src}/components/domain/RiskImminentEvents/WfpAdam/index.tsx (97%) rename {src => app/src}/components/domain/RiskImminentEvents/i18n.json (100%) rename {src => app/src}/components/domain/RiskImminentEvents/index.tsx (97%) rename {src => app/src}/components/domain/RiskImminentEvents/styles.module.css (100%) rename {src => app/src}/components/domain/RiskSeasonalMap/Filters/i18n.json (100%) rename {src => app/src}/components/domain/RiskSeasonalMap/Filters/index.tsx (93%) rename {src => app/src}/components/domain/RiskSeasonalMap/Filters/styles.module.css (100%) rename {src => app/src}/components/domain/RiskSeasonalMap/i18n.json (100%) rename {src => app/src}/components/domain/RiskSeasonalMap/index.tsx (98%) rename {src => app/src}/components/domain/RiskSeasonalMap/styles.module.css (100%) rename {src => app/src}/components/domain/SeverityIndicator/index.tsx (91%) rename {src => app/src}/components/domain/SeverityIndicator/styles.module.css (100%) rename {src => app/src}/components/domain/SurgeCardContainer/index.tsx (91%) rename {src => app/src}/components/domain/SurgeCardContainer/styles.module.css (100%) rename {src => app/src}/components/domain/SurgeCatalogueContainer/i18n.json (100%) rename {src => app/src}/components/domain/SurgeCatalogueContainer/index.tsx (92%) rename {src => app/src}/components/domain/SurgeCatalogueContainer/styles.module.css (100%) rename {src => app/src}/components/domain/SurgeContentContainer/index.tsx (91%) rename {src => app/src}/components/domain/SurgeContentContainer/styles.module.css (100%) rename {src => app/src}/components/domain/UserSearchMultiSelectInput.tsx (96%) rename {src => app/src}/config.ts (100%) rename {src => app/src}/contexts/domain.tsx (99%) rename {src => app/src}/contexts/route.tsx (99%) rename {src => app/src}/contexts/user.tsx (100%) rename {src => app/src}/declarations/env.d.ts (100%) rename {src => app/src}/hooks/domain/useAuth.ts (86%) rename {src => app/src}/hooks/domain/useCountry.ts (100%) rename {src => app/src}/hooks/domain/useCountryRaw.ts (100%) rename {src => app/src}/hooks/domain/useCurrentLanguage.ts (77%) rename {src => app/src}/hooks/domain/useDisasterType.ts (100%) rename {src => app/src}/hooks/domain/useGlobalEnums.ts (100%) rename {src => app/src}/hooks/domain/useNationalSociety.ts (100%) rename {src => app/src}/hooks/domain/usePermissions.ts (100%) rename {src => app/src}/hooks/domain/useRegion.ts (100%) rename {src => app/src}/hooks/domain/useUserMe.ts (100%) rename {src => app/src}/hooks/useAlert.ts (82%) rename {src => app/src}/hooks/useChartData.ts (97%) rename {src => app/src}/hooks/useDebouncedValue.ts (93%) rename {src => app/src}/hooks/useFilterState.ts (98%) rename {src => app/src}/hooks/useInputState.ts (94%) rename {src => app/src}/hooks/useRecursiveCsvRequest.ts (97%) rename {src => app/src}/hooks/useRouting.ts (92%) rename {src => app/src}/hooks/useUrlSearchState.ts (94%) create mode 100644 app/src/index.css rename {src => app/src}/index.tsx (95%) create mode 100644 app/src/utils/common.ts rename {src => app/src}/utils/constants.ts (96%) rename {src/components/Table/ColumnShortcuts => app/src/utils/domain}/CountryLink/index.tsx (100%) rename {src/components/Table/ColumnShortcuts => app/src/utils/domain}/RegionLink/index.tsx (100%) rename {src => app/src}/utils/domain/dref.ts (100%) rename {src => app/src}/utils/domain/emergency.ts (92%) rename {src => app/src}/utils/domain/per.ts (93%) rename {src => app/src}/utils/domain/risk.test.ts (71%) rename {src => app/src}/utils/domain/risk.ts (99%) create mode 100644 app/src/utils/domain/tableHelpers.ts rename {src => app/src}/utils/domain/user.ts (90%) rename {src => app/src}/utils/form.ts (100%) rename {src => app/src}/utils/localStorage.ts (100%) rename {src => app/src}/utils/map.ts (100%) rename {src => app/src}/utils/outletContext.ts (100%) rename {src => app/src}/utils/resolveUrl.ts (100%) rename {src => app/src}/utils/restRequest/error.ts (100%) rename {src => app/src}/utils/restRequest/go.ts (98%) rename {src => app/src}/utils/restRequest/index.ts (99%) rename {src => app/src}/utils/restRequest/overrideTypes.ts (99%) rename {src => app/src}/utils/routes.test.tsx (89%) rename {src => app/src}/utils/routes.tsx (100%) rename {src => app/src}/views/Account/i18n.json (100%) rename {src => app/src}/views/Account/index.tsx (93%) rename {src => app/src}/views/AccountDetails/ChangePassword/i18n.json (100%) rename {src => app/src}/views/AccountDetails/ChangePassword/index.tsx (95%) rename {src => app/src}/views/AccountDetails/ChangePassword/styles.module.css (100%) rename {src => app/src}/views/AccountDetails/EditAccountInfo/i18n.json (100%) rename {src => app/src}/views/AccountDetails/EditAccountInfo/index.tsx (97%) rename {src => app/src}/views/AccountDetails/EditAccountInfo/styles.module.css (100%) rename {src => app/src}/views/AccountDetails/i18n.json (100%) rename {src => app/src}/views/AccountDetails/index.tsx (95%) rename {src => app/src}/views/AccountDetails/styles.module.css (100%) rename {src => app/src}/views/AccountMyFormsDref/ActiveDrefTable/i18n.json (100%) rename {src => app/src}/views/AccountMyFormsDref/ActiveDrefTable/index.tsx (96%) rename {src => app/src}/views/AccountMyFormsDref/ActiveDrefTable/styles.module.css (100%) rename {src => app/src}/views/AccountMyFormsDref/CompletedDrefTable/i18n.json (100%) rename {src => app/src}/views/AccountMyFormsDref/CompletedDrefTable/index.tsx (93%) rename {src => app/src}/views/AccountMyFormsDref/CompletedDrefTable/styles.module.css (100%) rename {src => app/src}/views/AccountMyFormsDref/DrefTableActions/drefAllocationExport.ts (100%) rename {src => app/src}/views/AccountMyFormsDref/DrefTableActions/i18n.json (100%) rename {src => app/src}/views/AccountMyFormsDref/DrefTableActions/index.tsx (97%) rename {src => app/src}/views/AccountMyFormsDref/DrefTableActions/styles.module.css (100%) rename {src => app/src}/views/AccountMyFormsDref/Filters/i18n.json (100%) rename {src => app/src}/views/AccountMyFormsDref/Filters/index.tsx (91%) rename {src => app/src}/views/AccountMyFormsDref/i18n.json (100%) rename {src => app/src}/views/AccountMyFormsDref/index.tsx (90%) rename {src => app/src}/views/AccountMyFormsDref/styles.module.css (100%) rename {src => app/src}/views/AccountMyFormsFieldReport/i18n.json (100%) rename {src => app/src}/views/AccountMyFormsFieldReport/index.tsx (90%) rename {src => app/src}/views/AccountMyFormsFieldReport/styles.module.css (100%) rename {src => app/src}/views/AccountMyFormsLayout/i18n.json (100%) rename {src => app/src}/views/AccountMyFormsLayout/index.tsx (91%) rename {src => app/src}/views/AccountMyFormsLayout/styles.module.css (100%) rename {src => app/src}/views/AccountMyFormsPer/PerTableActions/i18n.json (100%) rename {src => app/src}/views/AccountMyFormsPer/PerTableActions/index.tsx (94%) rename {src => app/src}/views/AccountMyFormsPer/i18n.json (100%) rename {src => app/src}/views/AccountMyFormsPer/index.tsx (93%) rename {src => app/src}/views/AccountMyFormsPer/styles.module.css (100%) rename {src => app/src}/views/AccountMyFormsThreeW/ThreeWTableActions/i18n.json (100%) rename {src => app/src}/views/AccountMyFormsThreeW/ThreeWTableActions/index.tsx (96%) rename {src => app/src}/views/AccountMyFormsThreeW/i18n.json (100%) rename {src => app/src}/views/AccountMyFormsThreeW/index.tsx (95%) rename {src => app/src}/views/AccountMyFormsThreeW/styles.module.css (100%) rename {src => app/src}/views/AccountNotifications/SubscriptionPreferences/i18n.json (100%) rename {src => app/src}/views/AccountNotifications/SubscriptionPreferences/index.tsx (95%) rename {src => app/src}/views/AccountNotifications/SubscriptionPreferences/styles.module.css (100%) rename {src => app/src}/views/AccountNotifications/i18n.json (100%) rename {src => app/src}/views/AccountNotifications/index.tsx (90%) rename {src => app/src}/views/AccountNotifications/styles.module.css (100%) rename {src => app/src}/views/AllAppeals/i18n.json (100%) rename {src => app/src}/views/AllAppeals/index.tsx (95%) rename {src => app/src}/views/AllAppeals/styles.module.css (100%) rename {src => app/src}/views/AllDeployedEmergencyResponseUnits/i18n.json (100%) rename {src => app/src}/views/AllDeployedEmergencyResponseUnits/index.tsx (94%) rename {src => app/src}/views/AllDeployedPersonnel/i18n.json (100%) rename {src => app/src}/views/AllDeployedPersonnel/index.tsx (94%) rename {src => app/src}/views/AllEmergencies/i18n.json (100%) rename {src => app/src}/views/AllEmergencies/index.tsx (95%) rename {src => app/src}/views/AllEmergencies/styles.module.css (100%) rename {src => app/src}/views/AllFieldReports/i18n.json (100%) rename {src => app/src}/views/AllFieldReports/index.tsx (95%) rename {src => app/src}/views/AllFieldReports/styles.module.css (100%) rename {src => app/src}/views/AllFlashUpdates/FlashUpdatesTableActions/i18n.json (100%) rename {src/views/Emergencies/FlashUpdatesTable => app/src/views/AllFlashUpdates}/FlashUpdatesTableActions/index.tsx (91%) rename {src => app/src}/views/AllFlashUpdates/i18n.json (100%) rename {src => app/src}/views/AllFlashUpdates/index.tsx (90%) rename {src => app/src}/views/AllFlashUpdates/styles.module.css (100%) rename {src => app/src}/views/AllSurgeAlerts/i18n.json (100%) rename {src => app/src}/views/AllSurgeAlerts/index.tsx (92%) rename {src => app/src}/views/AllSurgeAlerts/styles.module.css (100%) rename {src => app/src}/views/AllThreeWActivity/AllThreeWProjectTableActions/i18n.json (100%) rename {src => app/src}/views/AllThreeWActivity/AllThreeWProjectTableActions/index.tsx (93%) rename {src => app/src}/views/AllThreeWActivity/i18n.json (100%) rename {src => app/src}/views/AllThreeWActivity/index.tsx (93%) rename {src => app/src}/views/AllThreeWActivity/styles.module.css (100%) rename {src => app/src}/views/AllThreeWProject/AllThreeWProjectTableActions/i18n.json (100%) rename {src => app/src}/views/AllThreeWProject/AllThreeWProjectTableActions/index.tsx (91%) rename {src => app/src}/views/AllThreeWProject/i18n.json (100%) rename {src => app/src}/views/AllThreeWProject/index.tsx (92%) rename {src => app/src}/views/AllThreeWProject/styles.module.css (100%) rename {src => app/src}/views/Country/i18n.json (100%) rename {src => app/src}/views/Country/index.tsx (94%) rename {src => app/src}/views/Country/styles.module.css (100%) rename {src => app/src}/views/CountryAdditionalInfo/i18n.json (100%) rename {src => app/src}/views/CountryAdditionalInfo/index.tsx (88%) rename {src => app/src}/views/CountryAdditionalInfo/styles.module.css (100%) rename {src => app/src}/views/CountryNsOverview/i18n.json (100%) rename {src => app/src}/views/CountryNsOverview/index.tsx (90%) rename {src => app/src}/views/CountryNsOverview/styles.module.css (100%) rename {src => app/src}/views/CountryNsOverviewActivities/Filters/i18n.json (100%) rename {src => app/src}/views/CountryNsOverviewActivities/Filters/index.tsx (96%) rename {src => app/src}/views/CountryNsOverviewActivities/Filters/styles.module.css (100%) rename {src => app/src}/views/CountryNsOverviewActivities/Map/i18n.json (100%) rename {src => app/src}/views/CountryNsOverviewActivities/Map/index.tsx (98%) rename {src => app/src}/views/CountryNsOverviewActivities/Map/styles.module.css (100%) rename {src => app/src}/views/CountryNsOverviewActivities/i18n.json (100%) rename {src => app/src}/views/CountryNsOverviewActivities/index.tsx (96%) rename {src => app/src}/views/CountryNsOverviewActivities/styles.module.css (100%) rename {src/views/CountryNsOverviewCapacity/CountryNsCapacityStrengthening => app/src/views/CountryNsOverviewCapacity/CountryNSCapacityStrengthening}/CapacityListItem/i18n.json (100%) rename {src/views/CountryNsOverviewCapacity/CountryNsCapacityStrengthening => app/src/views/CountryNsOverviewCapacity/CountryNSCapacityStrengthening}/CapacityListItem/index.tsx (93%) rename {src/views/CountryNsOverviewCapacity/CountryNsCapacityStrengthening => app/src/views/CountryNsOverviewCapacity/CountryNSCapacityStrengthening}/CapacityListItem/styles.module.css (100%) rename {src/views/CountryNsOverviewCapacity/CountryNsCapacityStrengthening => app/src/views/CountryNsOverviewCapacity/CountryNSCapacityStrengthening}/i18n.json (100%) rename {src/views/CountryNsOverviewCapacity/CountryNsCapacityStrengthening => app/src/views/CountryNsOverviewCapacity/CountryNSCapacityStrengthening}/index.tsx (91%) rename {src/views/CountryNsOverviewCapacity/CountryNsCapacityStrengthening => app/src/views/CountryNsOverviewCapacity/CountryNSCapacityStrengthening}/styles.module.css (100%) create mode 100644 app/src/views/CountryNsOverviewCapacity/CountryNsCapacityStrengthening/CapacityListItem/i18n.json create mode 100644 app/src/views/CountryNsOverviewCapacity/CountryNsCapacityStrengthening/CapacityListItem/index.tsx create mode 100644 app/src/views/CountryNsOverviewCapacity/CountryNsCapacityStrengthening/CapacityListItem/styles.module.css create mode 100644 app/src/views/CountryNsOverviewCapacity/CountryNsCapacityStrengthening/i18n.json create mode 100644 app/src/views/CountryNsOverviewCapacity/CountryNsCapacityStrengthening/index.tsx create mode 100644 app/src/views/CountryNsOverviewCapacity/CountryNsCapacityStrengthening/styles.module.css rename {src => app/src}/views/CountryNsOverviewCapacity/CountryNsOrganisationalCapacity/i18n.json (100%) rename {src => app/src}/views/CountryNsOverviewCapacity/CountryNsOrganisationalCapacity/index.tsx (96%) rename {src => app/src}/views/CountryNsOverviewCapacity/CountryNsOrganisationalCapacity/styles.module.css (100%) rename {src => app/src}/views/CountryNsOverviewCapacity/i18n.json (100%) rename {src => app/src}/views/CountryNsOverviewCapacity/index.tsx (93%) rename {src => app/src}/views/CountryNsOverviewCapacity/styles.module.css (100%) rename {src => app/src}/views/CountryNsOverviewContextAndStructure/NationalSocietyContacts/i18n.json (100%) rename {src => app/src}/views/CountryNsOverviewContextAndStructure/NationalSocietyContacts/index.tsx (87%) rename {src => app/src}/views/CountryNsOverviewContextAndStructure/NationalSocietyContacts/styles.module.css (100%) rename {src => app/src}/views/CountryNsOverviewContextAndStructure/NationalSocietyDirectory/i18n.json (100%) rename {src => app/src}/views/CountryNsOverviewContextAndStructure/NationalSocietyDirectory/index.tsx (92%) rename {src => app/src}/views/CountryNsOverviewContextAndStructure/NationalSocietyDirectory/styles.module.css (100%) rename {src => app/src}/views/CountryNsOverviewContextAndStructure/NationalSocietyIndicators/i18n.json (100%) rename {src => app/src}/views/CountryNsOverviewContextAndStructure/NationalSocietyIndicators/index.tsx (91%) rename {src => app/src}/views/CountryNsOverviewContextAndStructure/NationalSocietyIndicators/styles.module.css (100%) rename {src => app/src}/views/CountryNsOverviewContextAndStructure/NationalSocietyKeyDocuments/DocumentListCard/index.tsx (92%) rename {src => app/src}/views/CountryNsOverviewContextAndStructure/NationalSocietyKeyDocuments/DocumentListCard/styles.module.css (100%) rename {src => app/src}/views/CountryNsOverviewContextAndStructure/NationalSocietyKeyDocuments/i18n.json (100%) rename {src => app/src}/views/CountryNsOverviewContextAndStructure/NationalSocietyKeyDocuments/index.tsx (92%) rename {src => app/src}/views/CountryNsOverviewContextAndStructure/NationalSocietyLocalUnitsMap/i18n.json (100%) rename {src => app/src}/views/CountryNsOverviewContextAndStructure/NationalSocietyLocalUnitsMap/index.tsx (96%) rename {src => app/src}/views/CountryNsOverviewContextAndStructure/NationalSocietyLocalUnitsMap/styles.module.css (100%) rename {src => app/src}/views/CountryNsOverviewContextAndStructure/NsDirectoryInitiatives/InitiativeCard/i18n.json (100%) rename {src => app/src}/views/CountryNsOverviewContextAndStructure/NsDirectoryInitiatives/InitiativeCard/index.tsx (94%) rename {src => app/src}/views/CountryNsOverviewContextAndStructure/NsDirectoryInitiatives/InitiativeCard/styles.module.css (100%) rename {src => app/src}/views/CountryNsOverviewContextAndStructure/NsDirectoryInitiatives/i18n.json (100%) rename {src => app/src}/views/CountryNsOverviewContextAndStructure/NsDirectoryInitiatives/index.tsx (92%) rename {src => app/src}/views/CountryNsOverviewContextAndStructure/i18n.json (100%) rename {src => app/src}/views/CountryNsOverviewContextAndStructure/index.tsx (94%) rename {src => app/src}/views/CountryNsOverviewContextAndStructure/styles.module.css (100%) rename {src => app/src}/views/CountryNsOverviewStrategicPriorities/StrategicPrioritiesTable/i18n.json (100%) rename {src => app/src}/views/CountryNsOverviewStrategicPriorities/StrategicPrioritiesTable/index.tsx (86%) rename {src => app/src}/views/CountryNsOverviewStrategicPriorities/i18n.json (100%) rename {src => app/src}/views/CountryNsOverviewStrategicPriorities/index.tsx (97%) rename {src => app/src}/views/CountryNsOverviewStrategicPriorities/styles.module.css (100%) rename {src => app/src}/views/CountryOngoingActivities/i18n.json (100%) rename {src => app/src}/views/CountryOngoingActivities/index.tsx (89%) rename {src => app/src}/views/CountryOngoingActivities/styles.module.css (100%) rename {src => app/src}/views/CountryOngoingActivitiesEmergencies/EmergencyAlerts/i18n.json (100%) rename {src => app/src}/views/CountryOngoingActivitiesEmergencies/EmergencyAlerts/index.tsx (92%) rename {src => app/src}/views/CountryOngoingActivitiesEmergencies/EmergencyAlerts/styles.module.css (100%) rename {src => app/src}/views/CountryOngoingActivitiesEmergencies/i18n.json (100%) rename {src => app/src}/views/CountryOngoingActivitiesEmergencies/index.tsx (95%) rename {src => app/src}/views/CountryOngoingActivitiesEmergencies/styles.module.css (100%) rename {src => app/src}/views/CountryOngoingActivitiesThreeWActivities/Filters/i18n.json (100%) rename {src => app/src}/views/CountryOngoingActivitiesThreeWActivities/Filters/index.tsx (92%) rename {src => app/src}/views/CountryOngoingActivitiesThreeWActivities/ResponseActivitiesMap/i18n.json (100%) rename {src => app/src}/views/CountryOngoingActivitiesThreeWActivities/ResponseActivitiesMap/index.tsx (97%) rename {src => app/src}/views/CountryOngoingActivitiesThreeWActivities/ResponseActivitiesMap/styles.module.css (100%) rename {src => app/src}/views/CountryOngoingActivitiesThreeWActivities/i18n.json (100%) rename {src => app/src}/views/CountryOngoingActivitiesThreeWActivities/index.tsx (95%) rename {src => app/src}/views/CountryOngoingActivitiesThreeWActivities/styles.module.css (100%) rename {src => app/src}/views/CountryOngoingActivitiesThreeWProjects/Filters/i18n.json (100%) rename {src => app/src}/views/CountryOngoingActivitiesThreeWProjects/Filters/index.tsx (97%) rename {src => app/src}/views/CountryOngoingActivitiesThreeWProjects/Filters/styles.module.css (100%) rename {src => app/src}/views/CountryOngoingActivitiesThreeWProjects/Map/i18n.json (100%) rename {src => app/src}/views/CountryOngoingActivitiesThreeWProjects/Map/index.tsx (98%) rename {src => app/src}/views/CountryOngoingActivitiesThreeWProjects/Map/styles.module.css (100%) rename {src => app/src}/views/CountryOngoingActivitiesThreeWProjects/i18n.json (100%) rename {src => app/src}/views/CountryOngoingActivitiesThreeWProjects/index.tsx (97%) rename {src => app/src}/views/CountryOngoingActivitiesThreeWProjects/styles.module.css (100%) rename {src => app/src}/views/CountryOperations/AppealOperationTable/i18n.json (100%) rename {src => app/src}/views/CountryOperations/AppealOperationTable/index.tsx (93%) rename {src => app/src}/views/CountryOperations/EmergenciesOperationTable/i18n.json (100%) rename {src => app/src}/views/CountryOperations/EmergenciesOperationTable/index.tsx (91%) rename {src => app/src}/views/CountryOperations/index.tsx (99%) rename {src => app/src}/views/CountryOperations/styles.module.css (100%) rename {src => app/src}/views/CountryPreparedness/PreviousAssessmentChart/i18n.json (100%) rename {src => app/src}/views/CountryPreparedness/PreviousAssessmentChart/index.tsx (93%) rename {src => app/src}/views/CountryPreparedness/PreviousAssessmentChart/styles.module.css (100%) rename {src => app/src}/views/CountryPreparedness/PublicCountryPreparedness/i18n.json (100%) rename {src => app/src}/views/CountryPreparedness/PublicCountryPreparedness/index.tsx (95%) rename {src => app/src}/views/CountryPreparedness/PublicCountryPreparedness/styles.module.css (100%) rename {src => app/src}/views/CountryPreparedness/RatingByAreaChart/index.tsx (95%) rename {src => app/src}/views/CountryPreparedness/RatingByAreaChart/styles.module.css (100%) rename {src => app/src}/views/CountryPreparedness/i18n.json (100%) rename {src => app/src}/views/CountryPreparedness/index.tsx (97%) rename {src => app/src}/views/CountryPreparedness/styles.module.css (100%) rename {src => app/src}/views/CountryProfile/i18n.json (100%) rename {src => app/src}/views/CountryProfile/index.tsx (90%) rename {src => app/src}/views/CountryProfile/styles.module.css (100%) rename {src => app/src}/views/CountryProfileOverview/i18n.json (100%) rename {src => app/src}/views/CountryProfileOverview/index.tsx (91%) rename {src => app/src}/views/CountryProfileOverview/styles.module.css (100%) rename {src => app/src}/views/CountryProfilePreviousEvents/EmergenciesOverMonth/index.tsx (91%) rename {src => app/src}/views/CountryProfilePreviousEvents/EmergenciesOverMonth/styles.module.css (100%) rename {src => app/src}/views/CountryProfilePreviousEvents/PastEventsChart/index.tsx (91%) rename {src => app/src}/views/CountryProfilePreviousEvents/PastEventsChart/styles.module.css (100%) rename {src => app/src}/views/CountryProfilePreviousEvents/i18n.json (100%) rename {src => app/src}/views/CountryProfilePreviousEvents/index.tsx (92%) rename {src => app/src}/views/CountryProfilePreviousEvents/styles.module.css (100%) rename {src => app/src}/views/CountryProfileRiskWatch/MultiMonthSelectInput/i18n.json (100%) rename {src => app/src}/views/CountryProfileRiskWatch/MultiMonthSelectInput/index.tsx (95%) rename {src => app/src}/views/CountryProfileRiskWatch/MultiMonthSelectInput/styles.module.css (100%) rename {src => app/src}/views/CountryProfileRiskWatch/PossibleEarlyActionTable/i18n.json (100%) rename {src => app/src}/views/CountryProfileRiskWatch/PossibleEarlyActionTable/index.tsx (93%) rename {src => app/src}/views/CountryProfileRiskWatch/PossibleEarlyActionTable/styles.module.css (100%) rename {src => app/src}/views/CountryProfileRiskWatch/ReturnPeriodTable/i18n.json (100%) rename {src => app/src}/views/CountryProfileRiskWatch/ReturnPeriodTable/index.tsx (94%) rename {src => app/src}/views/CountryProfileRiskWatch/ReturnPeriodTable/styles.module.css (100%) rename {src => app/src}/views/CountryProfileRiskWatch/RiskBarChart/CombinedChart/i18n.json (100%) rename {src => app/src}/views/CountryProfileRiskWatch/RiskBarChart/CombinedChart/index.tsx (97%) rename {src => app/src}/views/CountryProfileRiskWatch/RiskBarChart/CombinedChart/styles.module.css (100%) rename {src => app/src}/views/CountryProfileRiskWatch/RiskBarChart/FoodInsecurityChart/index.tsx (97%) rename {src => app/src}/views/CountryProfileRiskWatch/RiskBarChart/FoodInsecurityChart/styles.module.css (100%) rename {src => app/src}/views/CountryProfileRiskWatch/RiskBarChart/WildfireChart/i18n.json (100%) rename {src => app/src}/views/CountryProfileRiskWatch/RiskBarChart/WildfireChart/index.tsx (95%) rename {src => app/src}/views/CountryProfileRiskWatch/RiskBarChart/WildfireChart/styles.module.css (100%) rename {src => app/src}/views/CountryProfileRiskWatch/RiskBarChart/i18n.json (100%) rename {src => app/src}/views/CountryProfileRiskWatch/RiskBarChart/index.tsx (96%) rename {src => app/src}/views/CountryProfileRiskWatch/RiskBarChart/styles.module.css (100%) rename {src => app/src}/views/CountryProfileRiskWatch/RiskTable/i18n.json (100%) rename {src => app/src}/views/CountryProfileRiskWatch/RiskTable/index.tsx (97%) rename {src => app/src}/views/CountryProfileRiskWatch/RiskTable/styles.module.css (100%) rename {src => app/src}/views/CountryProfileRiskWatch/i18n.json (100%) rename {src => app/src}/views/CountryProfileRiskWatch/index.tsx (95%) rename {src => app/src}/views/CountryProfileRiskWatch/styles.module.css (100%) rename {src => app/src}/views/CountryProfileSupportingPartners/MembershipCoordinationTable/i18n.json (100%) rename {src => app/src}/views/CountryProfileSupportingPartners/MembershipCoordinationTable/index.tsx (93%) rename {src => app/src}/views/CountryProfileSupportingPartners/MembershipCoordinationTable/styles.module.css (100%) rename {src => app/src}/views/CountryProfileSupportingPartners/SupportingPartnersContacts/i18n.json (100%) rename {src => app/src}/views/CountryProfileSupportingPartners/SupportingPartnersContacts/index.tsx (90%) rename {src => app/src}/views/CountryProfileSupportingPartners/SupportingPartnersContacts/styles.module.css (100%) rename {src => app/src}/views/CountryProfileSupportingPartners/i18n.json (100%) rename {src => app/src}/views/CountryProfileSupportingPartners/index.tsx (97%) rename {src => app/src}/views/CountryProfileSupportingPartners/styles.module.css (100%) rename {src => app/src}/views/CountryThreeW/i18n.json (100%) rename {src => app/src}/views/CountryThreeW/index.tsx (90%) rename {src => app/src}/views/CountryThreeW/styles.module.css (100%) rename {src => app/src}/views/DrefApplicationExport/i18n.json (100%) rename {src => app/src}/views/DrefApplicationExport/index.tsx (99%) rename {src => app/src}/views/DrefApplicationExport/styles.module.css (100%) rename {src => app/src}/views/DrefApplicationForm/Actions/NSActionInput/i18n.json (100%) rename {src => app/src}/views/DrefApplicationForm/Actions/NSActionInput/index.tsx (92%) rename {src => app/src}/views/DrefApplicationForm/Actions/NSActionInput/styles.module.css (100%) rename {src => app/src}/views/DrefApplicationForm/Actions/NeedInput/i18n.json (100%) rename {src => app/src}/views/DrefApplicationForm/Actions/NeedInput/index.tsx (92%) rename {src => app/src}/views/DrefApplicationForm/Actions/NeedInput/styles.module.css (100%) rename {src => app/src}/views/DrefApplicationForm/Actions/i18n.json (100%) rename {src => app/src}/views/DrefApplicationForm/Actions/index.tsx (97%) rename {src => app/src}/views/DrefApplicationForm/Actions/styles.module.css (100%) rename {src => app/src}/views/DrefApplicationForm/EventDetail/SourceInformationInput/i18n.json (100%) rename {src => app/src}/views/DrefApplicationForm/EventDetail/SourceInformationInput/index.tsx (94%) rename {src => app/src}/views/DrefApplicationForm/EventDetail/SourceInformationInput/styles.module.css (100%) rename {src => app/src}/views/DrefApplicationForm/EventDetail/i18n.json (100%) rename {src => app/src}/views/DrefApplicationForm/EventDetail/index.tsx (97%) rename {src => app/src}/views/DrefApplicationForm/EventDetail/styles.module.css (100%) rename {src => app/src}/views/DrefApplicationForm/ObsoletePayloadModal/i18n.json (100%) rename {src => app/src}/views/DrefApplicationForm/ObsoletePayloadModal/index.tsx (93%) rename {src => app/src}/views/DrefApplicationForm/ObsoletePayloadModal/styles.module.css (100%) rename {src => app/src}/views/DrefApplicationForm/Operation/InterventionInput/IndicatorInput/i18n.json (100%) rename {src => app/src}/views/DrefApplicationForm/Operation/InterventionInput/IndicatorInput/index.tsx (92%) rename {src => app/src}/views/DrefApplicationForm/Operation/InterventionInput/IndicatorInput/styles.module.css (100%) rename {src => app/src}/views/DrefApplicationForm/Operation/InterventionInput/i18n.json (100%) rename {src => app/src}/views/DrefApplicationForm/Operation/InterventionInput/index.tsx (95%) rename {src => app/src}/views/DrefApplicationForm/Operation/InterventionInput/styles.module.css (100%) rename {src => app/src}/views/DrefApplicationForm/Operation/RiskSecurityInput/i18n.json (100%) rename {src => app/src}/views/DrefApplicationForm/Operation/RiskSecurityInput/index.tsx (94%) rename {src => app/src}/views/DrefApplicationForm/Operation/RiskSecurityInput/styles.module.css (100%) rename {src => app/src}/views/DrefApplicationForm/Operation/i18n.json (100%) rename {src => app/src}/views/DrefApplicationForm/Operation/index.tsx (97%) rename {src => app/src}/views/DrefApplicationForm/Operation/styles.module.css (100%) rename {src => app/src}/views/DrefApplicationForm/Overview/CopyFieldReportSection/i18n.json (100%) rename {src => app/src}/views/DrefApplicationForm/Overview/CopyFieldReportSection/index.tsx (96%) rename {src => app/src}/views/DrefApplicationForm/Overview/CopyFieldReportSection/styles.module.css (100%) rename {src => app/src}/views/DrefApplicationForm/Overview/i18n.json (100%) rename {src => app/src}/views/DrefApplicationForm/Overview/index.tsx (96%) rename {src => app/src}/views/DrefApplicationForm/Overview/styles.module.css (100%) rename {src => app/src}/views/DrefApplicationForm/Submission/i18n.json (100%) rename {src => app/src}/views/DrefApplicationForm/Submission/index.tsx (98%) rename {src => app/src}/views/DrefApplicationForm/Submission/styles.module.css (100%) rename {src => app/src}/views/DrefApplicationForm/common.tsx (98%) rename {src => app/src}/views/DrefApplicationForm/i18n.json (100%) rename {src => app/src}/views/DrefApplicationForm/index.tsx (98%) rename {src => app/src}/views/DrefApplicationForm/schema.ts (99%) rename {src => app/src}/views/DrefApplicationForm/styles.module.css (100%) rename {src => app/src}/views/DrefFinalReportExport/i18n.json (100%) rename {src => app/src}/views/DrefFinalReportExport/index.tsx (98%) rename {src => app/src}/views/DrefFinalReportExport/styles.module.css (100%) rename {src => app/src}/views/DrefFinalReportForm/Actions/NeedInput/i18n.json (100%) rename {src => app/src}/views/DrefFinalReportForm/Actions/NeedInput/index.tsx (92%) rename {src => app/src}/views/DrefFinalReportForm/Actions/NeedInput/styles.module.css (100%) rename {src => app/src}/views/DrefFinalReportForm/Actions/i18n.json (100%) rename {src => app/src}/views/DrefFinalReportForm/Actions/index.tsx (96%) rename {src => app/src}/views/DrefFinalReportForm/Actions/styles.module.css (100%) rename {src => app/src}/views/DrefFinalReportForm/EventDetail/i18n.json (100%) rename {src => app/src}/views/DrefFinalReportForm/EventDetail/index.tsx (97%) rename {src => app/src}/views/DrefFinalReportForm/EventDetail/styles.module.css (100%) rename {src => app/src}/views/DrefFinalReportForm/ObsoletePayloadModal/i18n.json (100%) rename {src => app/src}/views/DrefFinalReportForm/ObsoletePayloadModal/index.tsx (93%) rename {src => app/src}/views/DrefFinalReportForm/ObsoletePayloadModal/styles.module.css (100%) rename {src => app/src}/views/DrefFinalReportForm/Operation/InterventionInput/IndicatorInput/i18n.json (100%) rename {src => app/src}/views/DrefFinalReportForm/Operation/InterventionInput/IndicatorInput/index.tsx (93%) rename {src => app/src}/views/DrefFinalReportForm/Operation/InterventionInput/IndicatorInput/styles.module.css (100%) rename {src => app/src}/views/DrefFinalReportForm/Operation/InterventionInput/i18n.json (100%) rename {src => app/src}/views/DrefFinalReportForm/Operation/InterventionInput/index.tsx (96%) rename {src => app/src}/views/DrefFinalReportForm/Operation/InterventionInput/styles.module.css (100%) rename {src => app/src}/views/DrefFinalReportForm/Operation/RiskSecurityInput/i18n.json (100%) rename {src => app/src}/views/DrefFinalReportForm/Operation/RiskSecurityInput/index.tsx (94%) rename {src => app/src}/views/DrefFinalReportForm/Operation/RiskSecurityInput/styles.module.css (100%) rename {src => app/src}/views/DrefFinalReportForm/Operation/i18n.json (100%) rename {src => app/src}/views/DrefFinalReportForm/Operation/index.tsx (97%) rename {src => app/src}/views/DrefFinalReportForm/Operation/styles.module.css (100%) rename {src => app/src}/views/DrefFinalReportForm/Overview/i18n.json (100%) rename {src => app/src}/views/DrefFinalReportForm/Overview/index.tsx (95%) rename {src => app/src}/views/DrefFinalReportForm/Overview/styles.module.css (100%) rename {src => app/src}/views/DrefFinalReportForm/Submission/i18n.json (100%) rename {src => app/src}/views/DrefFinalReportForm/Submission/index.tsx (97%) rename {src => app/src}/views/DrefFinalReportForm/Submission/styles.module.css (100%) rename {src => app/src}/views/DrefFinalReportForm/common.tsx (98%) rename {src => app/src}/views/DrefFinalReportForm/i18n.json (100%) rename {src => app/src}/views/DrefFinalReportForm/index.tsx (97%) rename {src => app/src}/views/DrefFinalReportForm/schema.ts (99%) rename {src => app/src}/views/DrefFinalReportForm/styles.module.css (100%) rename {src => app/src}/views/DrefOperationalUpdateExport/i18n.json (100%) rename {src => app/src}/views/DrefOperationalUpdateExport/index.tsx (98%) rename {src => app/src}/views/DrefOperationalUpdateExport/styles.module.css (100%) rename {src => app/src}/views/DrefOperationalUpdateForm/Actions/NSActionInput/i18n.json (100%) rename {src => app/src}/views/DrefOperationalUpdateForm/Actions/NSActionInput/index.tsx (92%) rename {src => app/src}/views/DrefOperationalUpdateForm/Actions/NSActionInput/styles.module.css (100%) rename {src => app/src}/views/DrefOperationalUpdateForm/Actions/NeedInput/i18n.json (100%) rename {src => app/src}/views/DrefOperationalUpdateForm/Actions/NeedInput/index.tsx (92%) rename {src => app/src}/views/DrefOperationalUpdateForm/Actions/NeedInput/styles.module.css (100%) rename {src => app/src}/views/DrefOperationalUpdateForm/Actions/i18n.json (100%) rename {src => app/src}/views/DrefOperationalUpdateForm/Actions/index.tsx (97%) rename {src => app/src}/views/DrefOperationalUpdateForm/Actions/styles.module.css (100%) rename {src => app/src}/views/DrefOperationalUpdateForm/EventDetail/i18n.json (100%) rename {src => app/src}/views/DrefOperationalUpdateForm/EventDetail/index.tsx (98%) rename {src => app/src}/views/DrefOperationalUpdateForm/EventDetail/styles.module.css (100%) rename {src => app/src}/views/DrefOperationalUpdateForm/ObsoletePayloadModal/i18n.json (100%) rename {src => app/src}/views/DrefOperationalUpdateForm/ObsoletePayloadModal/index.tsx (93%) rename {src => app/src}/views/DrefOperationalUpdateForm/ObsoletePayloadModal/styles.module.css (100%) rename {src => app/src}/views/DrefOperationalUpdateForm/Operation/InterventionInput/IndicatorInput/i18n.json (100%) rename {src => app/src}/views/DrefOperationalUpdateForm/Operation/InterventionInput/IndicatorInput/index.tsx (93%) rename {src => app/src}/views/DrefOperationalUpdateForm/Operation/InterventionInput/IndicatorInput/styles.module.css (100%) rename {src => app/src}/views/DrefOperationalUpdateForm/Operation/InterventionInput/i18n.json (100%) rename {src => app/src}/views/DrefOperationalUpdateForm/Operation/InterventionInput/index.tsx (96%) rename {src => app/src}/views/DrefOperationalUpdateForm/Operation/InterventionInput/styles.module.css (100%) rename {src => app/src}/views/DrefOperationalUpdateForm/Operation/RiskSecurityInput/i18n.json (100%) rename {src => app/src}/views/DrefOperationalUpdateForm/Operation/RiskSecurityInput/index.tsx (94%) rename {src => app/src}/views/DrefOperationalUpdateForm/Operation/RiskSecurityInput/styles.module.css (100%) rename {src => app/src}/views/DrefOperationalUpdateForm/Operation/i18n.json (100%) rename {src => app/src}/views/DrefOperationalUpdateForm/Operation/index.tsx (97%) rename {src => app/src}/views/DrefOperationalUpdateForm/Operation/styles.module.css (100%) rename {src => app/src}/views/DrefOperationalUpdateForm/Overview/i18n.json (100%) rename {src => app/src}/views/DrefOperationalUpdateForm/Overview/index.tsx (96%) rename {src => app/src}/views/DrefOperationalUpdateForm/Overview/styles.module.css (100%) rename {src => app/src}/views/DrefOperationalUpdateForm/Submission/i18n.json (100%) rename {src => app/src}/views/DrefOperationalUpdateForm/Submission/index.tsx (98%) rename {src => app/src}/views/DrefOperationalUpdateForm/Submission/styles.module.css (100%) rename {src => app/src}/views/DrefOperationalUpdateForm/common.tsx (98%) rename {src => app/src}/views/DrefOperationalUpdateForm/i18n.json (100%) rename {src => app/src}/views/DrefOperationalUpdateForm/index.tsx (98%) rename {src => app/src}/views/DrefOperationalUpdateForm/schema.ts (99%) rename {src => app/src}/views/DrefOperationalUpdateForm/styles.module.css (100%) rename {src => app/src}/views/Emergencies/EmergenciesTable/i18n.json (100%) rename {src => app/src}/views/Emergencies/EmergenciesTable/index.tsx (92%) rename {src => app/src}/views/Emergencies/EmergenciesTable/styles.module.css (100%) rename {src => app/src}/views/Emergencies/FieldReportsTable/i18n.json (100%) rename {src => app/src}/views/Emergencies/FieldReportsTable/index.tsx (93%) rename {src => app/src}/views/Emergencies/FieldReportsTable/styles.module.css (100%) rename {src => app/src}/views/Emergencies/FlashUpdatesTable/FlashUpdatesTableActions/i18n.json (100%) rename {src/views/AllFlashUpdates => app/src/views/Emergencies/FlashUpdatesTable}/FlashUpdatesTableActions/index.tsx (91%) rename {src => app/src}/views/Emergencies/FlashUpdatesTable/i18n.json (100%) rename {src => app/src}/views/Emergencies/FlashUpdatesTable/index.tsx (90%) rename {src => app/src}/views/Emergencies/FlashUpdatesTable/styles.module.css (100%) rename {src => app/src}/views/Emergencies/Map/i18n.json (100%) rename {src => app/src}/views/Emergencies/Map/index.tsx (97%) rename {src => app/src}/views/Emergencies/Map/styles.module.css (100%) rename {src => app/src}/views/Emergencies/Map/utils.ts (100%) rename {src => app/src}/views/Emergencies/i18n.json (100%) rename {src => app/src}/views/Emergencies/index.tsx (95%) rename {src => app/src}/views/Emergencies/styles.module.css (100%) rename {src => app/src}/views/Emergency/i18n.json (100%) rename {src => app/src}/views/Emergency/index.tsx (96%) rename {src => app/src}/views/Emergency/styles.module.css (100%) rename {src => app/src}/views/EmergencyActivities/ActivitesMap/i18n.json (100%) rename {src => app/src}/views/EmergencyActivities/ActivitesMap/index.tsx (96%) rename {src => app/src}/views/EmergencyActivities/ActivitesMap/styles.module.css (100%) rename {src => app/src}/views/EmergencyActivities/ActivityActions/i18n.json (100%) rename {src => app/src}/views/EmergencyActivities/ActivityActions/index.tsx (93%) rename {src => app/src}/views/EmergencyActivities/ActivityDetail/i18n.json (100%) rename {src => app/src}/views/EmergencyActivities/ActivityDetail/index.tsx (89%) rename {src => app/src}/views/EmergencyActivities/ActivityDetail/styles.module.css (100%) rename {src => app/src}/views/EmergencyActivities/Filters/i18n.json (100%) rename {src => app/src}/views/EmergencyActivities/Filters/index.tsx (92%) rename {src => app/src}/views/EmergencyActivities/Filters/styles.module.css (100%) rename {src => app/src}/views/EmergencyActivities/i18n.json (100%) rename {src => app/src}/views/EmergencyActivities/index.tsx (96%) rename {src => app/src}/views/EmergencyActivities/styles.module.css (100%) rename {src => app/src}/views/EmergencyActivities/useEmergencyProjectStats.ts (99%) rename {src => app/src}/views/EmergencyAdditionalTab/index.tsx (97%) rename {src => app/src}/views/EmergencyAdditionalTab/styles.module.css (100%) rename {src => app/src}/views/EmergencyDetails/EmergencyMap/i18n.json (100%) rename {src => app/src}/views/EmergencyDetails/EmergencyMap/index.tsx (98%) rename {src => app/src}/views/EmergencyDetails/EmergencyMap/styles.module.css (100%) rename {src => app/src}/views/EmergencyDetails/FieldReportStats/i18n.json (100%) rename {src => app/src}/views/EmergencyDetails/FieldReportStats/index.tsx (97%) rename {src => app/src}/views/EmergencyDetails/FieldReportStats/styles.module.css (100%) rename {src => app/src}/views/EmergencyDetails/i18n.json (100%) rename {src => app/src}/views/EmergencyDetails/index.tsx (97%) rename {src => app/src}/views/EmergencyDetails/styles.module.css (100%) rename {src => app/src}/views/EmergencyFollow/i18n.json (100%) rename {src => app/src}/views/EmergencyFollow/index.tsx (87%) rename {src => app/src}/views/EmergencyReportAndDocument/i18n.json (100%) rename {src => app/src}/views/EmergencyReportAndDocument/index.tsx (97%) rename {src => app/src}/views/EmergencyReportAndDocument/styles.module.css (100%) rename {src => app/src}/views/EmergencySlug/i18n.json (100%) rename {src => app/src}/views/EmergencySlug/index.tsx (80%) rename {src => app/src}/views/EmergencySurge/DeployedErusTable/i18n.json (100%) rename {src => app/src}/views/EmergencySurge/DeployedErusTable/index.tsx (92%) rename {src => app/src}/views/EmergencySurge/RapidResponsePerosnnelTable/i18n.json (100%) rename {src => app/src}/views/EmergencySurge/RapidResponsePerosnnelTable/index.tsx (93%) rename {src => app/src}/views/EmergencySurge/RapidResponsePerosnnelTable/styles.module.css (100%) rename {src => app/src}/views/EmergencySurge/SurgeTable/i18n.json (100%) rename {src => app/src}/views/EmergencySurge/SurgeTable/index.tsx (92%) rename {src => app/src}/views/EmergencySurge/i18n.json (100%) rename {src => app/src}/views/EmergencySurge/index.tsx (92%) rename {src => app/src}/views/EmergencySurge/styles.module.css (100%) rename {src => app/src}/views/FieldReportDetails/CovidNumericDetails/i18n.json (100%) rename {src => app/src}/views/FieldReportDetails/CovidNumericDetails/index.tsx (92%) rename {src => app/src}/views/FieldReportDetails/EarlyWarningNumericDetails/i18n.json (100%) rename {src => app/src}/views/FieldReportDetails/EarlyWarningNumericDetails/index.tsx (95%) rename {src => app/src}/views/FieldReportDetails/EpidemicNumericDetails/i18n.json (100%) rename {src => app/src}/views/FieldReportDetails/EpidemicNumericDetails/index.tsx (95%) rename {src => app/src}/views/FieldReportDetails/EventNumericDetails/i18n.json (100%) rename {src => app/src}/views/FieldReportDetails/EventNumericDetails/index.tsx (97%) rename {src => app/src}/views/FieldReportDetails/i18n.json (100%) rename {src => app/src}/views/FieldReportDetails/index.tsx (98%) rename {src => app/src}/views/FieldReportDetails/styles.module.css (100%) rename {src => app/src}/views/FieldReportForm/ActionsFields/i18n.json (100%) rename {src => app/src}/views/FieldReportForm/ActionsFields/index.tsx (97%) rename {src => app/src}/views/FieldReportForm/ActionsFields/styles.module.css (100%) rename {src => app/src}/views/FieldReportForm/ContextFields/i18n.json (100%) rename {src => app/src}/views/FieldReportForm/ContextFields/index.tsx (96%) rename {src => app/src}/views/FieldReportForm/ContextFields/styles.module.css (100%) rename {src => app/src}/views/FieldReportForm/EarlyActionsFields/ActionInput/i18n.json (100%) rename {src => app/src}/views/FieldReportForm/EarlyActionsFields/ActionInput/index.tsx (97%) rename {src => app/src}/views/FieldReportForm/EarlyActionsFields/ActionInput/styles.module.css (100%) rename {src => app/src}/views/FieldReportForm/EarlyActionsFields/i18n.json (100%) rename {src => app/src}/views/FieldReportForm/EarlyActionsFields/index.tsx (95%) rename {src => app/src}/views/FieldReportForm/EarlyActionsFields/styles.module.css (100%) rename {src => app/src}/views/FieldReportForm/ResponseFields/ContactInput/i18n.json (100%) rename {src => app/src}/views/FieldReportForm/ResponseFields/ContactInput/index.tsx (96%) rename {src => app/src}/views/FieldReportForm/ResponseFields/i18n.json (100%) rename {src => app/src}/views/FieldReportForm/ResponseFields/index.tsx (97%) rename {src => app/src}/views/FieldReportForm/ResponseFields/styles.module.css (100%) rename {src => app/src}/views/FieldReportForm/RiskAnalysisFields/i18n.json (100%) rename {src => app/src}/views/FieldReportForm/RiskAnalysisFields/index.tsx (95%) rename {src => app/src}/views/FieldReportForm/RiskAnalysisFields/styles.module.css (100%) rename {src => app/src}/views/FieldReportForm/SituationFields/i18n.json (100%) rename {src => app/src}/views/FieldReportForm/SituationFields/index.tsx (98%) rename {src => app/src}/views/FieldReportForm/SituationFields/styles.module.css (100%) rename {src => app/src}/views/FieldReportForm/common.ts (99%) rename {src => app/src}/views/FieldReportForm/i18n.json (100%) rename {src => app/src}/views/FieldReportForm/index.tsx (98%) rename {src => app/src}/views/FieldReportForm/styles.module.css (100%) rename {src => app/src}/views/FlashUpdateDetails/FlashUpdateExportModal/i18n.json (100%) rename {src => app/src}/views/FlashUpdateDetails/FlashUpdateExportModal/index.tsx (93%) rename {src => app/src}/views/FlashUpdateDetails/FlashUpdateShareModal/i18n.json (100%) rename {src => app/src}/views/FlashUpdateDetails/FlashUpdateShareModal/index.tsx (92%) rename {src => app/src}/views/FlashUpdateDetails/FlashUpdateShareModal/styles.module.css (100%) rename {src => app/src}/views/FlashUpdateDetails/i18n.json (100%) rename {src => app/src}/views/FlashUpdateDetails/index.tsx (95%) rename {src => app/src}/views/FlashUpdateDetails/styles.module.css (100%) rename {src => app/src}/views/FlashUpdateForm/ActionsTab/ActionInput/index.tsx (96%) rename {src => app/src}/views/FlashUpdateForm/ActionsTab/ActionInput/styles.module.css (100%) rename {src => app/src}/views/FlashUpdateForm/ActionsTab/i18n.json (100%) rename {src => app/src}/views/FlashUpdateForm/ActionsTab/index.tsx (97%) rename {src => app/src}/views/FlashUpdateForm/ContextTab/CountryProvinceInput/i18n.json (100%) rename {src => app/src}/views/FlashUpdateForm/ContextTab/CountryProvinceInput/index.tsx (93%) rename {src => app/src}/views/FlashUpdateForm/ContextTab/CountryProvinceInput/styles.module.css (100%) rename {src => app/src}/views/FlashUpdateForm/ContextTab/ReferenceInput/i18n.json (100%) rename {src => app/src}/views/FlashUpdateForm/ContextTab/ReferenceInput/index.tsx (95%) rename {src => app/src}/views/FlashUpdateForm/ContextTab/ReferenceInput/styles.module.css (100%) rename {src => app/src}/views/FlashUpdateForm/ContextTab/i18n.json (100%) rename {src => app/src}/views/FlashUpdateForm/ContextTab/index.tsx (97%) rename {src => app/src}/views/FlashUpdateForm/FocalPointsTab/i18n.json (100%) rename {src => app/src}/views/FlashUpdateForm/FocalPointsTab/index.tsx (95%) rename {src => app/src}/views/FlashUpdateForm/common.ts (97%) rename {src => app/src}/views/FlashUpdateForm/i18n.json (100%) rename {src => app/src}/views/FlashUpdateForm/index.tsx (98%) rename {src => app/src}/views/FlashUpdateForm/schema.ts (98%) rename {src => app/src}/views/FlashUpdateForm/styles.module.css (100%) rename {src => app/src}/views/FourHundredFour/i18n.json (100%) rename {src => app/src}/views/FourHundredFour/index.tsx (95%) rename {src => app/src}/views/FourHundredFour/styles.module.css (100%) rename {src => app/src}/views/GlobalThreeW/Filters/i18n.json (100%) rename {src => app/src}/views/GlobalThreeW/Filters/index.tsx (95%) rename {src => app/src}/views/GlobalThreeW/Filters/styles.module.css (100%) rename {src => app/src}/views/GlobalThreeW/Map/i18n.json (100%) rename {src => app/src}/views/GlobalThreeW/Map/index.tsx (98%) rename {src => app/src}/views/GlobalThreeW/Map/styles.module.css (100%) rename {src => app/src}/views/GlobalThreeW/RegionDropdown/i18n.json (100%) rename {src => app/src}/views/GlobalThreeW/RegionDropdown/index.tsx (88%) rename {src => app/src}/views/GlobalThreeW/common.ts (100%) rename {src => app/src}/views/GlobalThreeW/i18n.json (100%) rename {src => app/src}/views/GlobalThreeW/index.tsx (96%) rename {src => app/src}/views/GlobalThreeW/styles.module.css (100%) rename {src => app/src}/views/Home/i18n.json (100%) rename {src => app/src}/views/Home/index.tsx (94%) rename {src => app/src}/views/Home/styles.module.css (100%) rename {src => app/src}/views/Login/i18n.json (100%) rename {src => app/src}/views/Login/index.tsx (94%) rename {src => app/src}/views/Login/styles.module.css (100%) rename {src => app/src}/views/PerAssessmentForm/AreaInput/ComponentInput/QuestionInput/i18n.json (100%) rename {src => app/src}/views/PerAssessmentForm/AreaInput/ComponentInput/QuestionInput/index.tsx (94%) rename {src => app/src}/views/PerAssessmentForm/AreaInput/ComponentInput/QuestionInput/styles.module.css (100%) rename {src => app/src}/views/PerAssessmentForm/AreaInput/ComponentInput/i18n.json (100%) rename {src => app/src}/views/PerAssessmentForm/AreaInput/ComponentInput/index.tsx (96%) rename {src => app/src}/views/PerAssessmentForm/AreaInput/ComponentInput/styles.module.css (100%) rename {src => app/src}/views/PerAssessmentForm/AreaInput/index.tsx (99%) rename {src => app/src}/views/PerAssessmentForm/AreaInput/styles.module.css (100%) rename {src => app/src}/views/PerAssessmentForm/i18n.json (100%) rename {src => app/src}/views/PerAssessmentForm/index.tsx (97%) rename {src => app/src}/views/PerAssessmentForm/schema.ts (98%) rename {src => app/src}/views/PerAssessmentForm/styles.module.css (100%) rename {src => app/src}/views/PerOverviewForm/i18n.json (100%) rename {src => app/src}/views/PerOverviewForm/index.tsx (97%) rename {src => app/src}/views/PerOverviewForm/schema.ts (97%) rename {src => app/src}/views/PerOverviewForm/styles.module.css (100%) rename {src => app/src}/views/PerPrioritizationForm/ComponentInput/QuestionOutput/index.tsx (99%) rename {src => app/src}/views/PerPrioritizationForm/ComponentInput/QuestionOutput/styles.module.css (100%) rename {src => app/src}/views/PerPrioritizationForm/ComponentInput/i18n.json (100%) rename {src => app/src}/views/PerPrioritizationForm/ComponentInput/index.tsx (94%) rename {src => app/src}/views/PerPrioritizationForm/ComponentInput/styles.module.css (100%) rename {src => app/src}/views/PerPrioritizationForm/i18n.json (100%) rename {src => app/src}/views/PerPrioritizationForm/index.tsx (97%) rename {src => app/src}/views/PerPrioritizationForm/schema.ts (100%) rename {src => app/src}/views/PerPrioritizationForm/styles.module.css (100%) rename {src => app/src}/views/PerProcessForm/i18n.json (100%) rename {src => app/src}/views/PerProcessForm/index.tsx (95%) rename {src => app/src}/views/PerProcessForm/styles.module.css (100%) rename {src => app/src}/views/PerWorkPlanForm/AdditionalActionInput/i18n.json (100%) rename {src => app/src}/views/PerWorkPlanForm/AdditionalActionInput/index.tsx (91%) rename {src => app/src}/views/PerWorkPlanForm/AdditionalActionInput/styles.module.css (100%) rename {src => app/src}/views/PerWorkPlanForm/PrioritizedActionInput/i18n.json (100%) rename {src => app/src}/views/PerWorkPlanForm/PrioritizedActionInput/index.tsx (92%) rename {src => app/src}/views/PerWorkPlanForm/PrioritizedActionInput/styles.module.css (100%) rename {src => app/src}/views/PerWorkPlanForm/i18n.json (100%) rename {src => app/src}/views/PerWorkPlanForm/index.tsx (97%) rename {src => app/src}/views/PerWorkPlanForm/schema.ts (99%) rename {src => app/src}/views/PerWorkPlanForm/styles.module.css (100%) rename {src => app/src}/views/Preparedness/i18n.json (100%) rename {src => app/src}/views/Preparedness/index.tsx (93%) rename {src => app/src}/views/Preparedness/styles.module.css (100%) rename {src => app/src}/views/PreparednessCatalogueResources/i18n.json (100%) rename {src => app/src}/views/PreparednessCatalogueResources/index.tsx (93%) rename {src => app/src}/views/PreparednessCatalogueResources/styles.module.css (100%) rename {src => app/src}/views/PreparednessGlobalPerformance/i18n.json (100%) rename {src => app/src}/views/PreparednessGlobalPerformance/index.tsx (93%) rename {src => app/src}/views/PreparednessGlobalPerformance/styles.module.css (100%) rename {src => app/src}/views/PreparednessGlobalSummary/i18n.json (100%) rename {src => app/src}/views/PreparednessGlobalSummary/index.tsx (93%) rename {src => app/src}/views/PreparednessGlobalSummary/styles.module.css (100%) rename {src => app/src}/views/PreparednessOperationalLearning/i18n.json (100%) rename {src => app/src}/views/PreparednessOperationalLearning/index.tsx (93%) rename {src => app/src}/views/PreparednessOperationalLearning/styles.module.css (100%) rename {src => app/src}/views/RecoverAccount/i18n.json (100%) rename {src => app/src}/views/RecoverAccount/index.tsx (96%) rename {src => app/src}/views/RecoverAccount/styles.module.css (100%) rename {src => app/src}/views/RecoverAccountConfirm/i18n.json (100%) rename {src => app/src}/views/RecoverAccountConfirm/index.tsx (96%) rename {src => app/src}/views/RecoverAccountConfirm/styles.module.css (100%) rename {src => app/src}/views/Region/i18n.json (100%) rename {src => app/src}/views/Region/index.tsx (93%) rename {src => app/src}/views/Region/styles.module.css (100%) rename {src => app/src}/views/RegionAdditionalInfo/i18n.json (100%) rename {src => app/src}/views/RegionAdditionalInfo/index.tsx (91%) rename {src => app/src}/views/RegionAdditionalInfo/styles.module.css (100%) rename {src => app/src}/views/RegionOperations/RecentEmergenciesTable/i18n.json (100%) rename {src => app/src}/views/RegionOperations/RecentEmergenciesTable/index.tsx (91%) rename {src => app/src}/views/RegionOperations/RecentEmergenciesTable/styles.module.css (100%) rename {src => app/src}/views/RegionOperations/i18n.json (100%) rename {src => app/src}/views/RegionOperations/index.tsx (94%) rename {src => app/src}/views/RegionOperations/styles.module.css (100%) rename {src => app/src}/views/RegionPreparedness/index.tsx (87%) rename {src => app/src}/views/RegionPreparedness/styles.module.css (100%) rename {src => app/src}/views/RegionProfile/i18n.json (100%) rename {src => app/src}/views/RegionProfile/index.tsx (94%) rename {src => app/src}/views/RegionProfile/styles.module.css (100%) rename {src => app/src}/views/RegionRiskWatch/i18n.json (100%) rename {src => app/src}/views/RegionRiskWatch/index.tsx (93%) rename {src => app/src}/views/RegionRiskWatch/styles.module.css (100%) rename {src => app/src}/views/RegionRiskWatchImminent/index.tsx (100%) rename {src => app/src}/views/RegionRiskWatchImminent/styles.module.css (100%) rename {src => app/src}/views/RegionRiskWatchSeasonal/index.tsx (94%) rename {src => app/src}/views/RegionRiskWatchSeasonal/styles.module.css (100%) rename {src => app/src}/views/RegionThreeW/CountryProjectTable/i18n.json (100%) rename {src => app/src}/views/RegionThreeW/CountryProjectTable/index.tsx (91%) rename {src => app/src}/views/RegionThreeW/Filters/i18n.json (100%) rename {src => app/src}/views/RegionThreeW/Filters/index.tsx (95%) rename {src => app/src}/views/RegionThreeW/MovementActivitiesMap/i18n.json (100%) rename {src => app/src}/views/RegionThreeW/MovementActivitiesMap/index.tsx (98%) rename {src => app/src}/views/RegionThreeW/MovementActivitiesMap/styles.module.css (100%) rename {src => app/src}/views/RegionThreeW/i18n.json (100%) rename {src => app/src}/views/RegionThreeW/index.tsx (94%) rename {src => app/src}/views/RegionThreeW/styles.module.css (100%) rename {src => app/src}/views/Register/i18n.json (100%) rename {src => app/src}/views/Register/index.tsx (97%) rename {src => app/src}/views/Register/styles.module.css (100%) rename {src => app/src}/views/ResendValidationEmail/i18n.json (100%) rename {src => app/src}/views/ResendValidationEmail/index.tsx (96%) rename {src => app/src}/views/ResendValidationEmail/styles.module.css (100%) rename {src => app/src}/views/Resources/VideoList/i18n.json (100%) rename {src => app/src}/views/Resources/VideoList/index.tsx (96%) rename {src => app/src}/views/Resources/VideoList/styles.module.css (100%) rename {src => app/src}/views/Resources/i18n.json (100%) rename {src => app/src}/views/Resources/index.tsx (99%) rename {src => app/src}/views/Resources/styles.module.css (100%) rename {src => app/src}/views/RiskWatch/i18n.json (100%) rename {src => app/src}/views/RiskWatch/index.tsx (89%) rename {src => app/src}/views/RiskWatchImminent/i18n.json (100%) rename {src => app/src}/views/RiskWatchImminent/index.tsx (93%) rename {src => app/src}/views/RiskWatchImminent/styles.module.css (100%) rename {src => app/src}/views/RiskWatchSeasonal/index.tsx (99%) rename {src => app/src}/views/RootLayout/i18n.json (100%) rename {src => app/src}/views/RootLayout/index.tsx (96%) rename {src => app/src}/views/RootLayout/styles.module.css (100%) rename {src => app/src}/views/Search/ResultList/index.tsx (97%) rename {src => app/src}/views/Search/ResultList/styles.module.css (100%) rename {src => app/src}/views/Search/ResultTable/index.tsx (91%) rename {src => app/src}/views/Search/i18n.json (100%) rename {src => app/src}/views/Search/index.tsx (97%) rename {src => app/src}/views/Search/styles.module.css (100%) rename {src => app/src}/views/Search/useColumns/DistrictNameOutput/index.tsx (100%) rename {src => app/src}/views/Search/useColumns/i18n.json (100%) rename {src => app/src}/views/Search/useColumns/index.tsx (98%) rename {src => app/src}/views/Surge/i18n.json (100%) rename {src => app/src}/views/Surge/index.tsx (90%) rename {src => app/src}/views/Surge/styles.module.css (100%) rename {src => app/src}/views/SurgeCatalogue/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogue/index.tsx (98%) rename {src => app/src}/views/SurgeCatalogue/styles.module.css (100%) rename {src => app/src}/views/SurgeCatalogueBasecamp/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueBasecamp/index.tsx (97%) rename {src => app/src}/views/SurgeCatalogueBasecampEruLarge/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueBasecampEruLarge/index.tsx (98%) rename {src => app/src}/views/SurgeCatalogueBasecampEruMedium/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueBasecampEruMedium/index.tsx (98%) rename {src => app/src}/views/SurgeCatalogueBasecampEruSmall/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueBasecampEruSmall/index.tsx (98%) rename {src => app/src}/views/SurgeCatalogueBasecampFacilityManagement/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueBasecampFacilityManagement/index.tsx (96%) rename {src => app/src}/views/SurgeCatalogueCash/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueCash/index.tsx (98%) rename {src => app/src}/views/SurgeCatalogueCashRapidResponse/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueCashRapidResponse/index.tsx (98%) rename {src => app/src}/views/SurgeCatalogueCommunication/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueCommunication/index.tsx (98%) rename {src => app/src}/views/SurgeCatalogueCommunicationErtOne/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueCommunicationErtOne/index.tsx (97%) rename {src => app/src}/views/SurgeCatalogueCommunicationErtThree/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueCommunicationErtThree/index.tsx (98%) rename {src => app/src}/views/SurgeCatalogueCommunicationErtTwo/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueCommunicationErtTwo/index.tsx (98%) rename {src => app/src}/views/SurgeCatalogueCommunityEngagement/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueCommunityEngagement/index.tsx (98%) rename {src => app/src}/views/SurgeCatalogueCommunityEngagementRapidResponse/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueCommunityEngagementRapidResponse/index.tsx (97%) rename {src => app/src}/views/SurgeCatalogueEmergencyNeedsAssessment/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueEmergencyNeedsAssessment/index.tsx (98%) rename {src => app/src}/views/SurgeCatalogueEmergencyNeedsAssessmentCell/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueEmergencyNeedsAssessmentCell/index.tsx (97%) rename {src => app/src}/views/SurgeCatalogueHealth/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueHealth/index.tsx (99%) rename {src => app/src}/views/SurgeCatalogueHealthCommunityBasedSurveillance/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueHealthCommunityBasedSurveillance/index.tsx (97%) rename {src => app/src}/views/SurgeCatalogueHealthCommunityCaseManagementChlorea/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueHealthCommunityCaseManagementChlorea/index.tsx (97%) rename {src => app/src}/views/SurgeCatalogueHealthCommunityManagementMalnutrition/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueHealthCommunityManagementMalnutrition/index.tsx (93%) rename {src => app/src}/views/SurgeCatalogueHealthEmergencyClinic/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueHealthEmergencyClinic/index.tsx (98%) rename {src => app/src}/views/SurgeCatalogueHealthEruChloreaTreatment/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueHealthEruChloreaTreatment/index.tsx (98%) rename {src => app/src}/views/SurgeCatalogueHealthEruClinic/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueHealthEruClinic/index.tsx (99%) rename {src => app/src}/views/SurgeCatalogueHealthEruHospital/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueHealthEruHospital/index.tsx (98%) rename {src => app/src}/views/SurgeCatalogueHealthEruPsychosocialSupport/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueHealthEruPsychosocialSupport/index.tsx (97%) rename {src => app/src}/views/SurgeCatalogueHealthEruSurgical/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueHealthEruSurgical/index.tsx (97%) rename {src => app/src}/views/SurgeCatalogueHealthMaternalNewbornClinic/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueHealthMaternalNewbornClinic/index.tsx (97%) rename {src => app/src}/views/SurgeCatalogueHealthSafeDignifiedBurials/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueHealthSafeDignifiedBurials/index.tsx (97%) rename {src => app/src}/views/SurgeCatalogueInformationManagement/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueInformationManagement/index.tsx (98%) rename {src => app/src}/views/SurgeCatalogueInformationManagementComposition/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueInformationManagementComposition/index.tsx (93%) rename {src => app/src}/views/SurgeCatalogueInformationManagementOperationSupport/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueInformationManagementOperationSupport/index.tsx (93%) rename {src => app/src}/views/SurgeCatalogueInformationManagementRolesResponsibility/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueInformationManagementRolesResponsibility/index.tsx (97%) rename {src => app/src}/views/SurgeCatalogueInformationManagementSatelliteImagery/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueInformationManagementSatelliteImagery/index.tsx (99%) rename {src => app/src}/views/SurgeCatalogueInformationManagementSupport/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueInformationManagementSupport/index.tsx (96%) rename {src => app/src}/views/SurgeCatalogueInformationTechnology/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueInformationTechnology/index.tsx (97%) rename {src => app/src}/views/SurgeCatalogueInformationTechnologyEruItTelecom/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueInformationTechnologyEruItTelecom/index.tsx (96%) rename {src => app/src}/views/SurgeCatalogueLivelihood/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueLivelihood/index.tsx (99%) rename {src => app/src}/views/SurgeCatalogueLivelihoodServices/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueLivelihoodServices/index.tsx (97%) rename {src => app/src}/views/SurgeCatalogueLogistics/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueLogistics/index.tsx (99%) rename {src => app/src}/views/SurgeCatalogueLogisticsEru/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueLogisticsEru/index.tsx (98%) rename {src => app/src}/views/SurgeCatalogueLogisticsLpscmNs/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueLogisticsLpscmNs/index.tsx (97%) rename {src => app/src}/views/SurgeCatalogueOperationsManagement/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueOperationsManagement/index.tsx (98%) rename {src => app/src}/views/SurgeCatalogueOperationsManagementHeops/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueOperationsManagementHeops/index.tsx (96%) rename {src => app/src}/views/SurgeCatalogueOther/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueOther/index.tsx (98%) rename {src => app/src}/views/SurgeCatalogueOtherCivilMilitaryRelations/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueOtherCivilMilitaryRelations/index.tsx (93%) rename {src => app/src}/views/SurgeCatalogueOtherDisasterRiskReduction/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueOtherDisasterRiskReduction/index.tsx (93%) rename {src => app/src}/views/SurgeCatalogueOtherGreenResponse/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueOtherGreenResponse/index.tsx (93%) rename {src => app/src}/views/SurgeCatalogueOtherHumanResources/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueOtherHumanResources/index.tsx (97%) rename {src => app/src}/views/SurgeCatalogueOtherInternationalDisasterResponseLaw/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueOtherInternationalDisasterResponseLaw/index.tsx (93%) rename {src => app/src}/views/SurgeCatalogueOtherMigration/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueOtherMigration/index.tsx (93%) rename {src => app/src}/views/SurgeCatalogueOtherNationalSocietyDevelopment/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueOtherNationalSocietyDevelopment/index.tsx (97%) rename {src => app/src}/views/SurgeCatalogueOtherPartnershipResourceDevelopment/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueOtherPartnershipResourceDevelopment/index.tsx (97%) rename {src => app/src}/views/SurgeCatalogueOtherPreparednessEffectiveResponse/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueOtherPreparednessEffectiveResponse/index.tsx (96%) rename {src => app/src}/views/SurgeCatalogueOtherRecovery/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueOtherRecovery/index.tsx (95%) rename {src => app/src}/views/SurgeCatalogueOverview/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueOverview/index.tsx (95%) rename {src => app/src}/views/SurgeCataloguePgi/i18n.json (100%) rename {src => app/src}/views/SurgeCataloguePgi/index.tsx (98%) rename {src => app/src}/views/SurgeCataloguePgiServices/i18n.json (100%) rename {src => app/src}/views/SurgeCataloguePgiServices/index.tsx (98%) rename {src => app/src}/views/SurgeCataloguePmer/i18n.json (100%) rename {src => app/src}/views/SurgeCataloguePmer/index.tsx (97%) rename {src => app/src}/views/SurgeCataloguePmerEmergencyPlanAction/i18n.json (100%) rename {src => app/src}/views/SurgeCataloguePmerEmergencyPlanAction/index.tsx (95%) rename {src => app/src}/views/SurgeCataloguePmerRealTimeEvaluation/i18n.json (100%) rename {src => app/src}/views/SurgeCataloguePmerRealTimeEvaluation/index.tsx (95%) rename {src => app/src}/views/SurgeCatalogueRelief/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueRelief/index.tsx (97%) rename {src => app/src}/views/SurgeCatalogueReliefEru/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueReliefEru/index.tsx (98%) rename {src => app/src}/views/SurgeCatalogueSecurity/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueSecurity/index.tsx (97%) rename {src => app/src}/views/SurgeCatalogueSecurityManagement/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueSecurityManagement/index.tsx (96%) rename {src => app/src}/views/SurgeCatalogueShelter/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueShelter/index.tsx (98%) rename {src => app/src}/views/SurgeCatalogueShelterCoordinatorTeam/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueShelterCoordinatorTeam/index.tsx (98%) rename {src => app/src}/views/SurgeCatalogueShelterTechnicalTeam/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueShelterTechnicalTeam/index.tsx (98%) rename {src => app/src}/views/SurgeCatalogueWash/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueWash/index.tsx (99%) rename {src => app/src}/views/SurgeCatalogueWashHwts/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueWashHwts/index.tsx (98%) rename {src => app/src}/views/SurgeCatalogueWashKit2/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueWashKit2/index.tsx (93%) rename {src => app/src}/views/SurgeCatalogueWashKit5/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueWashKit5/index.tsx (93%) rename {src => app/src}/views/SurgeCatalogueWashKitM15Eru/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueWashKitM15Eru/index.tsx (98%) rename {src => app/src}/views/SurgeCatalogueWashKitM40Eru/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueWashKitM40Eru/index.tsx (97%) rename {src => app/src}/views/SurgeCatalogueWashKitMsm20Eru/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueWashKitMsm20Eru/index.tsx (98%) rename {src => app/src}/views/SurgeCatalogueWashWaterSupplyRehabilitation/i18n.json (100%) rename {src => app/src}/views/SurgeCatalogueWashWaterSupplyRehabilitation/index.tsx (96%) rename {src => app/src}/views/SurgeOperationalToolbox/i18n.json (100%) rename {src => app/src}/views/SurgeOperationalToolbox/index.tsx (98%) rename {src => app/src}/views/SurgeOperationalToolbox/styles.module.css (100%) rename {src => app/src}/views/SurgeOverview/EmergencyResponseUnitsTable/i18n.json (100%) rename {src => app/src}/views/SurgeOverview/EmergencyResponseUnitsTable/index.tsx (92%) rename {src => app/src}/views/SurgeOverview/EmergencyResponseUnitsTable/styles.module.css (100%) rename {src => app/src}/views/SurgeOverview/PersonnelByEventTable/i18n.json (100%) rename {src => app/src}/views/SurgeOverview/PersonnelByEventTable/index.tsx (90%) rename {src => app/src}/views/SurgeOverview/PersonnelByEventTable/styles.module.css (100%) rename {src => app/src}/views/SurgeOverview/Readiness/EmergencyResponseUnitOwnerCard/i18n.json (100%) rename {src => app/src}/views/SurgeOverview/Readiness/EmergencyResponseUnitOwnerCard/index.tsx (94%) rename {src => app/src}/views/SurgeOverview/Readiness/EmergencyResponseUnitOwnerCard/styles.module.css (100%) rename {src => app/src}/views/SurgeOverview/Readiness/i18n.json (100%) rename {src => app/src}/views/SurgeOverview/Readiness/index.tsx (90%) rename {src => app/src}/views/SurgeOverview/Readiness/styles.module.css (100%) rename {src => app/src}/views/SurgeOverview/SurgeAlertsTable/i18n.json (100%) rename {src => app/src}/views/SurgeOverview/SurgeAlertsTable/index.tsx (93%) rename {src => app/src}/views/SurgeOverview/SurgeAlertsTable/styles.module.css (100%) rename {src => app/src}/views/SurgeOverview/SurgeMap/i18n.json (100%) rename {src => app/src}/views/SurgeOverview/SurgeMap/index.tsx (97%) rename {src => app/src}/views/SurgeOverview/SurgeMap/styles.module.css (100%) rename {src => app/src}/views/SurgeOverview/SurgeMap/utils.ts (99%) rename {src => app/src}/views/SurgeOverview/i18n.json (100%) rename {src => app/src}/views/SurgeOverview/index.tsx (90%) rename {src => app/src}/views/SurgeOverview/styles.module.css (100%) rename {src => app/src}/views/ThreeWActivityDetail/ActivityListItem/i18n.json (100%) rename {src => app/src}/views/ThreeWActivityDetail/ActivityListItem/index.tsx (96%) rename {src => app/src}/views/ThreeWActivityDetail/ActivityListItem/styles.module.css (100%) rename {src => app/src}/views/ThreeWActivityDetail/i18n.json (100%) rename {src => app/src}/views/ThreeWActivityDetail/index.tsx (93%) rename {src => app/src}/views/ThreeWActivityDetail/styles.module.css (100%) rename {src => app/src}/views/ThreeWActivityForm/ActivitiesBySectorInput/ActivityInput/ActionSupplyInput/i18n.json (100%) rename {src => app/src}/views/ThreeWActivityForm/ActivitiesBySectorInput/ActivityInput/ActionSupplyInput/index.tsx (92%) rename {src => app/src}/views/ThreeWActivityForm/ActivitiesBySectorInput/ActivityInput/ActionSupplyInput/styles.module.css (100%) rename {src => app/src}/views/ThreeWActivityForm/ActivitiesBySectorInput/ActivityInput/CustomSuppliesInput/i18n.json (100%) rename {src => app/src}/views/ThreeWActivityForm/ActivitiesBySectorInput/ActivityInput/CustomSuppliesInput/index.tsx (92%) rename {src => app/src}/views/ThreeWActivityForm/ActivitiesBySectorInput/ActivityInput/CustomSuppliesInput/styles.module.css (100%) rename {src => app/src}/views/ThreeWActivityForm/ActivitiesBySectorInput/ActivityInput/DisaggregationInput/i18n.json (100%) rename {src => app/src}/views/ThreeWActivityForm/ActivitiesBySectorInput/ActivityInput/DisaggregationInput/index.tsx (99%) rename {src => app/src}/views/ThreeWActivityForm/ActivitiesBySectorInput/ActivityInput/DisaggregationInput/styles.module.css (100%) rename {src => app/src}/views/ThreeWActivityForm/ActivitiesBySectorInput/ActivityInput/PointInput/i18n.json (100%) rename {src => app/src}/views/ThreeWActivityForm/ActivitiesBySectorInput/ActivityInput/PointInput/index.tsx (93%) rename {src => app/src}/views/ThreeWActivityForm/ActivitiesBySectorInput/ActivityInput/PointInput/styles.module.css (100%) rename {src => app/src}/views/ThreeWActivityForm/ActivitiesBySectorInput/ActivityInput/i18n.json (100%) rename {src => app/src}/views/ThreeWActivityForm/ActivitiesBySectorInput/ActivityInput/index.tsx (97%) rename {src => app/src}/views/ThreeWActivityForm/ActivitiesBySectorInput/ActivityInput/styles.module.css (100%) rename {src => app/src}/views/ThreeWActivityForm/ActivitiesBySectorInput/i18n.json (100%) rename {src => app/src}/views/ThreeWActivityForm/ActivitiesBySectorInput/index.tsx (96%) rename {src => app/src}/views/ThreeWActivityForm/ActivitiesBySectorInput/styles.module.css (100%) rename {src => app/src}/views/ThreeWActivityForm/i18n.json (100%) rename {src => app/src}/views/ThreeWActivityForm/index.tsx (97%) rename {src => app/src}/views/ThreeWActivityForm/schema.ts (99%) rename {src => app/src}/views/ThreeWActivityForm/styles.module.css (100%) rename {src => app/src}/views/ThreeWProjectDetail/DisaggregatedPeopleOutput/i18n.json (100%) rename {src => app/src}/views/ThreeWProjectDetail/DisaggregatedPeopleOutput/index.tsx (96%) rename {src => app/src}/views/ThreeWProjectDetail/DisaggregatedPeopleOutput/styles.module.css (100%) rename {src => app/src}/views/ThreeWProjectDetail/i18n.json (100%) rename {src => app/src}/views/ThreeWProjectDetail/index.tsx (96%) rename {src => app/src}/views/ThreeWProjectDetail/styles.module.css (100%) rename {src => app/src}/views/ThreeWProjectForm/AnnualSplitInput/i18n.json (100%) rename {src => app/src}/views/ThreeWProjectForm/AnnualSplitInput/index.tsx (98%) rename {src => app/src}/views/ThreeWProjectForm/AnnualSplitInput/styles.module.css (100%) rename {src => app/src}/views/ThreeWProjectForm/DistrictMap/DistrictMapModal/DistrictItem/i18n.json (100%) rename {src => app/src}/views/ThreeWProjectForm/DistrictMap/DistrictMapModal/DistrictItem/index.tsx (97%) rename {src => app/src}/views/ThreeWProjectForm/DistrictMap/DistrictMapModal/DistrictItem/styles.module.css (100%) rename {src => app/src}/views/ThreeWProjectForm/DistrictMap/DistrictMapModal/i18n.json (100%) rename {src => app/src}/views/ThreeWProjectForm/DistrictMap/DistrictMapModal/index.tsx (98%) rename {src => app/src}/views/ThreeWProjectForm/DistrictMap/DistrictMapModal/styles.module.css (100%) rename {src => app/src}/views/ThreeWProjectForm/DistrictMap/i18n.json (100%) rename {src => app/src}/views/ThreeWProjectForm/DistrictMap/index.tsx (91%) rename {src => app/src}/views/ThreeWProjectForm/DistrictMap/styles.module.css (100%) rename {src => app/src}/views/ThreeWProjectForm/i18n.json (100%) rename {src => app/src}/views/ThreeWProjectForm/index.tsx (98%) rename {src => app/src}/views/ThreeWProjectForm/schema.ts (99%) rename {src => app/src}/views/ThreeWProjectForm/styles.module.css (100%) rename stylelint.config.cjs => app/stylelint.config.cjs (100%) rename tsconfig.json => app/tsconfig.json (100%) rename tsconfig.node.json => app/tsconfig.node.json (100%) rename types.stub.ts => app/types.stub.ts (100%) rename vite.config.ts => app/vite.config.ts (100%) create mode 100644 packages/ui/.eslintignore create mode 100644 packages/ui/README.md rename eslint.config.js => packages/ui/eslint.config.js (98%) create mode 100644 packages/ui/package.json create mode 100644 packages/ui/postcss.config.cjs rename {src => packages/ui/src}/components/Alert/i18n.json (100%) rename {src => packages/ui/src}/components/Alert/index.tsx (99%) rename {src => packages/ui/src}/components/Alert/styles.module.css (100%) rename {src => packages/ui/src}/components/AlertContainer/index.tsx (100%) rename {src => packages/ui/src}/components/AlertContainer/styles.module.css (100%) rename {src => packages/ui/src}/components/BarChart/index.tsx (99%) rename {src => packages/ui/src}/components/BarChart/styles.module.css (100%) rename {src => packages/ui/src}/components/BlockLoading/index.tsx (97%) rename {src => packages/ui/src}/components/BlockLoading/styles.module.css (100%) rename {src => packages/ui/src}/components/BodyOverlay/index.tsx (95%) rename {src => packages/ui/src}/components/BodyOverlay/styles.module.css (100%) rename {src => packages/ui/src}/components/BooleanInput/i18n.json (100%) rename {src => packages/ui/src}/components/BooleanInput/index.tsx (100%) rename {src => packages/ui/src}/components/BooleanOutput/i18n.json (100%) rename {src => packages/ui/src}/components/BooleanOutput/index.tsx (100%) rename {src => packages/ui/src}/components/BooleanOutput/styles.module.css (100%) rename {src => packages/ui/src}/components/Breadcrumbs/index.tsx (100%) rename {src => packages/ui/src}/components/Breadcrumbs/styles.module.css (100%) rename {src => packages/ui/src}/components/Button/index.tsx (100%) rename {src => packages/ui/src}/components/Button/styles.module.css (100%) rename {src => packages/ui/src}/components/ChartAxes/index.tsx (100%) rename {src => packages/ui/src}/components/ChartAxes/styles.module.css (100%) create mode 100644 packages/ui/src/components/ChartAxisX/index.tsx create mode 100644 packages/ui/src/components/ChartAxisX/styles.module.css create mode 100644 packages/ui/src/components/ChartAxisY/index.tsx create mode 100644 packages/ui/src/components/ChartAxisY/styles.module.css rename {src => packages/ui/src}/components/Checkbox/Checkmark/index.tsx (100%) rename {src => packages/ui/src}/components/Checkbox/index.tsx (100%) rename {src => packages/ui/src}/components/Checkbox/styles.module.css (100%) rename {src => packages/ui/src}/components/Checklist/index.tsx (100%) rename {src => packages/ui/src}/components/Checklist/styles.module.css (100%) rename {src => packages/ui/src}/components/ConfirmButton/i18n.json (100%) rename {src => packages/ui/src}/components/ConfirmButton/index.tsx (100%) rename {src => packages/ui/src}/components/Container/index.tsx (100%) rename {src => packages/ui/src}/components/Container/styles.module.css (100%) rename {src => packages/ui/src}/components/DateInput/index.tsx (100%) rename {src => packages/ui/src}/components/DateOutput/index.tsx (100%) rename {src => packages/ui/src}/components/DateOutput/styles.module.css (100%) rename {src => packages/ui/src}/components/DateRangeOutput/index.tsx (100%) rename {src => packages/ui/src}/components/DateRangeOutput/styles.module.css (100%) rename {src => packages/ui/src}/components/DropdownMenu/index.tsx (100%) rename {src => packages/ui/src}/components/DropdownMenu/styles.module.css (100%) rename {src => packages/ui/src}/components/ExpandableContainer/i18n.json (100%) rename {src => packages/ui/src}/components/ExpandableContainer/index.tsx (100%) rename {src => packages/ui/src}/components/ExpandableContainer/styles.module.css (100%) rename {src => packages/ui/src}/components/Footer/index.tsx (100%) rename {src => packages/ui/src}/components/Grid/i18n.json (100%) rename {src => packages/ui/src}/components/Grid/index.tsx (100%) rename {src => packages/ui/src}/components/Grid/styles.module.css (100%) rename {src => packages/ui/src}/components/Header/index.tsx (100%) rename {src => packages/ui/src}/components/Header/styles.module.css (100%) rename {src => packages/ui/src}/components/Heading/index.tsx (100%) rename {src => packages/ui/src}/components/Heading/styles.module.css (100%) rename {src => packages/ui/src}/components/HtmlOutput/index.tsx (100%) rename {src => packages/ui/src}/components/HtmlOutput/styles.module.css (100%) rename {src => packages/ui/src}/components/IconButton/index.tsx (100%) rename {src => packages/ui/src}/components/IconButton/styles.module.css (100%) rename {src => packages/ui/src}/components/Image/index.tsx (100%) rename {src => packages/ui/src}/components/Image/styles.module.css (100%) rename {src => packages/ui/src}/components/InfoPopup/index.tsx (100%) rename {src => packages/ui/src}/components/InfoPopup/styles.module.css (100%) rename {src => packages/ui/src}/components/InputContainer/index.tsx (100%) rename {src => packages/ui/src}/components/InputContainer/styles.module.css (100%) rename {src => packages/ui/src}/components/InputError/index.tsx (100%) rename {src => packages/ui/src}/components/InputError/styles.module.css (100%) rename {src => packages/ui/src}/components/InputHint/index.tsx (100%) rename {src => packages/ui/src}/components/InputHint/styles.module.css (100%) rename {src => packages/ui/src}/components/InputLabel/index.tsx (100%) rename {src => packages/ui/src}/components/InputLabel/styles.module.css (100%) rename {src => packages/ui/src}/components/InputSection/index.tsx (100%) rename {src => packages/ui/src}/components/InputSection/styles.module.css (100%) rename {src => packages/ui/src}/components/KeyFigure/index.tsx (100%) rename {src => packages/ui/src}/components/KeyFigure/styles.module.css (100%) rename {src => packages/ui/src}/components/LegendItem/index.tsx (100%) rename {src => packages/ui/src}/components/LegendItem/styles.module.css (100%) rename {src => packages/ui/src}/components/List/i18n.json (100%) rename {src => packages/ui/src}/components/List/index.tsx (100%) rename {src => packages/ui/src}/components/List/styles.module.css (100%) rename {src => packages/ui/src}/components/Message/index.tsx (100%) rename {src => packages/ui/src}/components/Message/styles.module.css (100%) rename {src => packages/ui/src}/components/Modal/i18n.json (100%) rename {src => packages/ui/src}/components/Modal/index.tsx (100%) rename {src => packages/ui/src}/components/Modal/styles.module.css (100%) rename {src => packages/ui/src}/components/MultiSelectInput/index.tsx (100%) rename {src => packages/ui/src}/components/NavigationTabList/index.tsx (100%) rename {src => packages/ui/src}/components/NavigationTabList/styles.module.css (100%) rename {src => packages/ui/src}/components/NumberInput/index.tsx (100%) rename {src => packages/ui/src}/components/NumberOutput/index.tsx (100%) rename {src => packages/ui/src}/components/NumberOutput/styles.module.css (100%) rename {src => packages/ui/src}/components/Overlay/index.tsx (100%) rename {src => packages/ui/src}/components/Overlay/styles.module.css (100%) rename {src => packages/ui/src}/components/PageContainer/index.tsx (100%) rename {src => packages/ui/src}/components/PageContainer/styles.module.css (100%) rename {src => packages/ui/src}/components/PageHeader/index.tsx (100%) rename {src => packages/ui/src}/components/PageHeader/styles.module.css (100%) rename {src => packages/ui/src}/components/Pager/i18n.json (100%) rename {src => packages/ui/src}/components/Pager/index.tsx (100%) rename {src => packages/ui/src}/components/Pager/styles.module.css (100%) rename {src => packages/ui/src}/components/PasswordInput/i18n.json (100%) rename {src => packages/ui/src}/components/PasswordInput/index.tsx (100%) rename {src => packages/ui/src}/components/PieChart/index.tsx (100%) rename {src => packages/ui/src}/components/PieChart/styles.module.css (100%) rename {src => packages/ui/src}/components/Popup/index.tsx (100%) rename {src => packages/ui/src}/components/Popup/styles.module.css (100%) rename {src => packages/ui/src}/components/Portal/index.tsx (100%) rename {src => packages/ui/src}/components/ProgressBar/index.tsx (100%) rename {src => packages/ui/src}/components/ProgressBar/styles.module.css (100%) rename {src => packages/ui/src}/components/RadioInput/Radio/index.tsx (100%) rename {src => packages/ui/src}/components/RadioInput/Radio/styles.module.css (100%) rename {src => packages/ui/src}/components/RadioInput/index.tsx (100%) rename {src => packages/ui/src}/components/RadioInput/styles.module.css (100%) rename {src => packages/ui/src}/components/RawButton/index.tsx (100%) rename {src => packages/ui/src}/components/RawButton/styles.module.css (100%) rename {src => packages/ui/src}/components/RawFileInput/index.tsx (100%) rename {src => packages/ui/src}/components/RawFileInput/styles.module.css (100%) rename {src => packages/ui/src}/components/RawInput/index.tsx (100%) rename {src => packages/ui/src}/components/RawInput/styles.module.css (100%) rename {src => packages/ui/src}/components/RawList/index.tsx (100%) rename {src => packages/ui/src}/components/RawTextArea/index.tsx (100%) rename {src => packages/ui/src}/components/RawTextArea/styles.module.css (100%) rename {src => packages/ui/src}/components/ReducedListDisplay/i18n.json (100%) rename {src => packages/ui/src}/components/ReducedListDisplay/index.tsx (100%) rename {src => packages/ui/src}/components/ReducedListDisplay/styles.module.css (100%) rename {src => packages/ui/src}/components/SearchMultiSelectInput/Option/index.tsx (100%) rename {src => packages/ui/src}/components/SearchMultiSelectInput/index.tsx (100%) rename {src => packages/ui/src}/components/SearchMultiSelectInput/styles.module.css (100%) rename {src => packages/ui/src}/components/SearchSelectInput/Option/index.tsx (100%) rename {src => packages/ui/src}/components/SearchSelectInput/Option/styles.module.css (100%) rename {src => packages/ui/src}/components/SearchSelectInput/index.tsx (100%) rename {src => packages/ui/src}/components/SearchSelectInput/styles.module.css (100%) rename {src => packages/ui/src}/components/SegmentInput/index.tsx (100%) rename {src => packages/ui/src}/components/SegmentInput/styles.module.css (100%) rename {src => packages/ui/src}/components/SelectInput/index.tsx (100%) rename {src => packages/ui/src}/components/SelectInputContainer/GenericOption/index.tsx (100%) rename {src => packages/ui/src}/components/SelectInputContainer/GenericOption/styles.module.css (100%) rename {src => packages/ui/src}/components/SelectInputContainer/i18n.json (100%) rename {src => packages/ui/src}/components/SelectInputContainer/index.tsx (100%) rename {src => packages/ui/src}/components/SelectInputContainer/styles.module.css (100%) rename {src => packages/ui/src}/components/Spinner/index.tsx (100%) rename {src => packages/ui/src}/components/Spinner/styles.module.css (100%) rename {src => packages/ui/src}/components/StackedProgressBar/index.tsx (100%) rename {src => packages/ui/src}/components/StackedProgressBar/styles.module.css (100%) rename {src => packages/ui/src}/components/Switch/SwitchIcon/index.tsx (100%) rename {src => packages/ui/src}/components/Switch/SwitchIcon/styles.module.css (100%) rename {src => packages/ui/src}/components/Switch/index.tsx (100%) rename {src => packages/ui/src}/components/Switch/styles.module.css (100%) rename {src => packages/ui/src}/components/Table/Cell/index.tsx (100%) rename {src => packages/ui/src}/components/Table/ColumnShortcuts/ExpandButton/index.tsx (100%) rename {src => packages/ui/src}/components/Table/ColumnShortcuts/ExpandButton/styles.module.css (100%) rename {src => packages/ui/src}/components/Table/ColumnShortcuts/ExpansionIndicator/index.tsx (100%) rename {src => packages/ui/src}/components/Table/ColumnShortcuts/ExpansionIndicator/styles.module.css (100%) rename {src => packages/ui/src}/components/Table/ColumnShortcuts/TimelineHeader/index.tsx (100%) rename {src => packages/ui/src}/components/Table/ColumnShortcuts/TimelineHeader/styles.module.css (100%) rename {src => packages/ui/src}/components/Table/ColumnShortcuts/TimelineItem/index.tsx (100%) rename {src => packages/ui/src}/components/Table/ColumnShortcuts/TimelineItem/styles.module.css (100%) rename {src => packages/ui/src}/components/Table/ColumnShortcuts/index.ts (78%) rename {src => packages/ui/src}/components/Table/ColumnShortcuts/styles.module.css (100%) rename {src => packages/ui/src}/components/Table/HeaderCell/i18n.json (100%) rename {src => packages/ui/src}/components/Table/HeaderCell/index.tsx (100%) rename {src => packages/ui/src}/components/Table/HeaderCell/styles.module.css (100%) rename {src => packages/ui/src}/components/Table/TableActions/index.tsx (100%) rename {src => packages/ui/src}/components/Table/TableActions/styles.module.css (100%) rename {src => packages/ui/src}/components/Table/TableBodyContent/index.tsx (100%) rename {src => packages/ui/src}/components/Table/TableBodyContent/styles.module.css (100%) rename {src => packages/ui/src}/components/Table/TableData/index.tsx (100%) rename {src => packages/ui/src}/components/Table/TableData/styles.module.css (100%) rename {src => packages/ui/src}/components/Table/TableHeader/index.tsx (100%) rename {src => packages/ui/src}/components/Table/TableHeader/styles.module.css (100%) rename {src => packages/ui/src}/components/Table/TableRow/index.tsx (100%) rename {src => packages/ui/src}/components/Table/i18n.json (100%) rename {src => packages/ui/src}/components/Table/index.tsx (100%) rename {src => packages/ui/src}/components/Table/styles.module.css (100%) rename {src => packages/ui/src}/components/Table/types.ts (100%) rename {src => packages/ui/src}/components/Table/useSorting.ts (100%) rename {src => packages/ui/src}/components/Tabs/Tab/i18n.json (100%) rename {src => packages/ui/src}/components/Tabs/Tab/index.tsx (100%) rename {src => packages/ui/src}/components/Tabs/Tab/styles.module.css (100%) rename {src => packages/ui/src}/components/Tabs/TabContext.tsx (100%) rename {src => packages/ui/src}/components/Tabs/TabList/index.tsx (100%) rename {src => packages/ui/src}/components/Tabs/TabList/styles.module.css (100%) rename {src => packages/ui/src}/components/Tabs/TabPanel/index.tsx (100%) rename {src => packages/ui/src}/components/Tabs/index.tsx (100%) rename {src => packages/ui/src}/components/TextArea/index.tsx (100%) rename {src => packages/ui/src}/components/TextInput/index.tsx (100%) rename {src => packages/ui/src}/components/TextOutput/index.tsx (100%) rename {src => packages/ui/src}/components/TextOutput/styles.module.css (100%) rename {src => packages/ui/src}/components/TimeSeriesChart/ChartPoint/index.tsx (100%) rename {src => packages/ui/src}/components/TimeSeriesChart/ChartPoint/styles.module.css (100%) rename {src => packages/ui/src}/components/TimeSeriesChart/index.tsx (100%) rename {src => packages/ui/src}/components/TimeSeriesChart/styles.module.css (100%) rename {src => packages/ui/src}/components/Tooltip/index.tsx (100%) rename {src => packages/ui/src}/components/Tooltip/styles.module.css (100%) rename {src => packages/ui/src}/components/parked/TopBanner/index.tsx (100%) rename {src => packages/ui/src}/components/parked/TopBanner/styles.module.css (100%) rename {src => packages/ui/src}/components/printable/Container/index.tsx (96%) rename {src => packages/ui/src}/components/printable/Container/styles.module.css (100%) rename {src => packages/ui/src}/components/printable/DescriptionText/index.tsx (90%) rename {src => packages/ui/src}/components/printable/DescriptionText/styles.module.css (100%) rename {src => packages/ui/src}/components/printable/Heading/index.tsx (96%) rename {src => packages/ui/src}/components/printable/Heading/styles.module.css (100%) rename {src => packages/ui/src}/components/printable/Image/index.tsx (98%) rename {src => packages/ui/src}/components/printable/Image/styles.module.css (100%) rename {src => packages/ui/src}/components/printable/TextOutput/index.tsx (100%) rename {src => packages/ui/src}/components/printable/TextOutput/styles.module.css (100%) create mode 100644 packages/ui/src/components/printable/index.tsx rename {src => packages/ui/src}/components/types.ts (100%) rename {src => packages/ui/src}/contexts/alert.tsx (100%) rename {src => packages/ui/src}/contexts/dropdown-menu.tsx (100%) create mode 100644 packages/ui/src/contexts/index.ts rename {src => packages/ui/src}/contexts/language.tsx (100%) rename {src => packages/ui/src}/contexts/navigation-tab.tsx (100%) create mode 100644 packages/ui/src/declarations/css.d.ts create mode 100644 packages/ui/src/hooks/index.ts rename {src => packages/ui/src}/hooks/useBasicLayout/index.tsx (100%) rename {src => packages/ui/src}/hooks/useBasicLayout/styles.module.css (100%) rename {src => packages/ui/src}/hooks/useBlurEffect.ts (100%) rename {src => packages/ui/src}/hooks/useBooleanState.ts (100%) rename {src => packages/ui/src}/hooks/useFloatPlacement.ts (100%) rename {src => packages/ui/src}/hooks/useKeyboard.ts (100%) rename {src => packages/ui/src}/hooks/useSizeTracking.ts (100%) rename {src => packages/ui/src}/hooks/useSpacingTokens.ts (100%) rename {src => packages/ui/src}/hooks/useTranslation.ts (100%) rename {src => packages/ui/src}/index.css (92%) create mode 100644 packages/ui/src/index.tsx rename {src => packages/ui/src}/utils/chart.test.ts (100%) rename {src => packages/ui/src}/utils/chart.ts (97%) rename {src => packages/ui/src}/utils/common.test.ts (100%) rename {src => packages/ui/src}/utils/common.ts (97%) create mode 100644 packages/ui/src/utils/constants.ts create mode 100644 packages/ui/src/utils/index.ts rename {src => packages/ui/src}/utils/selectors.ts (100%) rename {src => packages/ui/src}/utils/translation.tsx (100%) create mode 100644 packages/ui/stylelint.config.cjs create mode 100644 packages/ui/tsconfig.json create mode 100644 packages/ui/tsconfig.node.json create mode 100644 packages/ui/vite.config.ts diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2e425b47b5..a553bca418 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,10 +22,45 @@ env: GITHUB_WORKFLOW: true jobs: + ui: + name: UI library + environment: 'test' + runs-on: ubuntu-latest + defaults: + run: + working-directory: packages/ui + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: '18.x' + cache: 'yarn' + + - name: Install dependencies on UI library + run: yarn install --frozen-lockfile + + - name: Typecheck + run: yarn typecheck + + - name: Lint CSS + run: yarn lint:css + + - name: Lint JS + run: yarn lint:js + + - name: build UI library + run: yarn build + + - uses: actions/upload-artifact@v4 + with: + name: ui-build + path: packages/ui/dist + test: name: Run tests environment: 'test' runs-on: ubuntu-latest + needs: [ui] steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 @@ -33,15 +68,23 @@ jobs: node-version: '18.x' cache: 'yarn' + - uses: actions/download-artifact@v4 + with: + name: ui-build + path: packages/ui/dist + - name: Install dependencies - run: yarn install --prefer-offline --frozen-lockfile + run: yarn install --frozen-lockfile + working-directory: app - name: Run test - run: yarn test + working-directory: app + translation: name: Identify error with translation files runs-on: ubuntu-latest + needs: [ui] steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 @@ -49,14 +92,23 @@ jobs: node-version: '18.x' cache: 'yarn' + - uses: actions/download-artifact@v4 + with: + name: ui-build + path: packages/ui/dist + - name: Install dependencies - run: yarn install --prefer-offline --frozen-lockfile + run: yarn install --frozen-lockfile + working-directory: app - name: Identify error with translation files run: yarn lint:translation + working-directory: app + unimported: name: Identify unused files runs-on: ubuntu-latest + needs: [ui] steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 @@ -64,14 +116,23 @@ jobs: node-version: '18.x' cache: 'yarn' + - uses: actions/download-artifact@v4 + with: + name: ui-build + path: packages/ui/dist + - name: Install dependencies - run: yarn install --prefer-offline --frozen-lockfile + run: yarn install --frozen-lockfile + working-directory: app - name: Identify unused files run: yarn lint:unused + working-directory: app + lint: name: Lint JS runs-on: ubuntu-latest + needs: [ui] steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 @@ -79,14 +140,23 @@ jobs: node-version: '18.x' cache: 'yarn' + - uses: actions/download-artifact@v4 + with: + name: ui-build + path: packages/ui/dist + - name: Install dependencies - run: yarn install --prefer-offline --frozen-lockfile + run: yarn install --frozen-lockfile + working-directory: app - name: Lint JS run: yarn lint:js + working-directory: app + lint-css: name: Lint CSS runs-on: ubuntu-latest + needs: [ui] steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 @@ -94,11 +164,19 @@ jobs: node-version: '18.x' cache: 'yarn' + - uses: actions/download-artifact@v4 + with: + name: ui-build + path: packages/ui/dist + - name: Install dependencies - run: yarn install --prefer-offline --frozen-lockfile + run: yarn install --frozen-lockfile + working-directory: app - name: Lint CSS run: yarn lint:css + working-directory: app + # FIXME: Identify a way to generate schema before we run typecheck # typecheck: # name: Typecheck @@ -111,14 +189,14 @@ jobs: # cache: 'yarn' # - name: Install dependencies - # run: yarn install --prefer-offline --frozen-lockfile + # run: yarn install --frozen-lockfile # - name: Typecheck # run: yarn typecheck build: name: Build environment: 'test' - needs: [lint, lint-css, test] + needs: [lint, lint-css, test, ui] runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 @@ -127,8 +205,15 @@ jobs: node-version: '18.x' cache: 'yarn' + - uses: actions/download-artifact@v4 + with: + name: ui-build + path: packages/ui/dist + - name: Install dependencies - run: yarn install --prefer-offline --frozen-lockfile + run: yarn install --frozen-lockfile + working-directory: app - name: Build run: yarn build + working-directory: app diff --git a/.dockerignore b/app/.dockerignore similarity index 100% rename from .dockerignore rename to app/.dockerignore diff --git a/.eslintignore b/app/.eslintignore similarity index 100% rename from .eslintignore rename to app/.eslintignore diff --git a/.unimportedrc.json b/app/.unimportedrc.json similarity index 100% rename from .unimportedrc.json rename to app/.unimportedrc.json diff --git a/Dockerfile b/app/Dockerfile similarity index 100% rename from Dockerfile rename to app/Dockerfile diff --git a/docker-compose.yml b/app/docker-compose.yml similarity index 100% rename from docker-compose.yml rename to app/docker-compose.yml diff --git a/env.ts b/app/env.ts similarity index 100% rename from env.ts rename to app/env.ts diff --git a/app/eslint.config.js b/app/eslint.config.js new file mode 100644 index 0000000000..831d6c06cc --- /dev/null +++ b/app/eslint.config.js @@ -0,0 +1,132 @@ +import { FlatCompat } from '@eslint/eslintrc'; +import js from '@eslint/js'; +import process from 'process'; + +const dirname = process.cwd(); + +const compat = new FlatCompat({ + baseDirectory: dirname, + resolvePluginsRelativeTo: dirname, +}); + +const appConfigs = compat.config({ + env: { + node: true, + browser: true, + es2020: true, + }, + root: true, + extends: [ + 'airbnb', + 'airbnb/hooks', + 'plugin:@typescript-eslint/recommended', + 'plugin:react-hooks/recommended', + ], + parser: '@typescript-eslint/parser', + parserOptions: { + ecmaVersion: 'latest', + sourceType: 'module', + }, + plugins: [ + '@typescript-eslint', + 'react-refresh', + 'simple-import-sort', + 'import-newlines' + ], + settings: { + 'import/parsers': { + '@typescript-eslint/parser': ['.ts', '.tsx'] + }, + 'import/resolver': { + typescript: { + project: './tsconfig.json', + }, + }, + }, + rules: { + 'react-refresh/only-export-components': 'warn', + + 'no-unused-vars': 0, + '@typescript-eslint/no-unused-vars': 1, + + 'no-use-before-define': 0, + '@typescript-eslint/no-use-before-define': 1, + + 'no-shadow': 0, + '@typescript-eslint/no-shadow': ['error'], + + 'import/no-extraneous-dependencies': [ + 'error', + { + devDependencies: [ + '**/*.test.{ts,tsx}', + 'eslint.config.js', + 'postcss.config.cjs', + 'stylelint.config.cjs', + 'vite.config.ts', + ], + optionalDependencies: false, + }, + ], + + indent: ['error', 4, { SwitchCase: 1 }], + + 'import/no-cycle': ['error', { allowUnsafeDynamicCyclicDependency: true }], + + 'react/react-in-jsx-scope': 'off', + 'camelcase': 'off', + + 'react/jsx-indent': ['error', 4], + 'react/jsx-indent-props': ['error', 4], + 'react/jsx-filename-extension': ['error', { extensions: ['.js', '.jsx', '.ts', '.tsx'] }], + + 'import/extensions': ['off', 'never'], + + 'react-hooks/rules-of-hooks': 'error', + 'react-hooks/exhaustive-deps': 'warn', + + 'react/require-default-props': ['warn', { ignoreFunctionalComponents: true }], + 'simple-import-sort/imports': 'error', + 'simple-import-sort/exports': 'error', + 'import-newlines/enforce': ['error', 1] + }, + overrides: [ + { + files: ['*.js', '*.jsx', '*.ts', '*.tsx'], + rules: { + 'simple-import-sort/imports': [ + 'error', + { + 'groups': [ + // side effect imports + ['^\\u0000'], + // packages `react` related packages come first + ['^react', '^@?\\w'], + // internal packages + ['^#.+$'], + // parent imports. Put `..` last + // other relative imports. Put same-folder imports and `.` last + ['^\\.\\.(?!/?$)', '^\\.\\./?$', '^\\./(?=.*/)(?!/?$)', '^\\.(?!/?$)', '^\\./?$'], + // style imports + ['^.+\\.json$', '^.+\\.module.css$'], + ] + } + ] + } + } + ] +}).map((conf) => ({ + ...conf, + files: ['src/**/*.tsx', 'src/**/*.jsx', 'src/**/*.ts', 'src/**/*.js'], + ignores: ['src/generated/types.ts'], +})); + +const otherConfig = { + files: ['*.js', '*.ts', '*.cjs'], + ...js.configs.recommended, +}; + +export default [ + ...appConfigs, + otherConfig, +]; diff --git a/index.html b/app/index.html similarity index 100% rename from index.html rename to app/index.html diff --git a/app/package.json b/app/package.json new file mode 100644 index 0000000000..b200db6885 --- /dev/null +++ b/app/package.json @@ -0,0 +1,109 @@ +{ + "name": "go-web-app", + "version": "7.0.17", + "type": "module", + "private": true, + "scripts": { + "initialize:type": "mkdir -p generated/ && yarn initialize:type:go-api && yarn initialize:type:risk-api", + "initialize:type:go-api": "test -f ./generated/types.ts && true || cp types.stub.ts ./generated/types.ts", + "initialize:type:risk-api": "test -f ./generated/riskTypes.ts && true || cp types.stub.ts ./generated/riskTypes.ts", + "prestart": "yarn initialize:type", + "pretypecheck": "yarn initialize:type", + "prelint:js": "yarn initialize:type", + "prelint:unused": "yarn initialize:type", + "prebuild": "yarn initialize:type", + "start": "vite", + "build": "vite build", + "generate:type": "yarn generate:type:go-api && yarn generate:type:risk-api", + "generate:type:go-api": "dotenv -- cross-var openapi-typescript \"%APP_API_ENDPOINT%api-docs/\" -o ./generated/types.ts --alphabetize", + "generate:type:risk-api": "dotenv -- cross-var openapi-typescript \"%APP_RISK_API_ENDPOINT%api-docs/\" -o ./generated/riskTypes.ts --alphabetize", + "typecheck": "tsc", + "lint:js": "eslint src", + "lint:css": "stylelint \"./src/**/*.css\"", + "lint:unused": "unimported", + "lint:translation": "node ./scripts/translator.js", + "lint": "yarn lint:js && yarn lint:css && yarn lint:unused && yarn lint:translation", + "test": "vitest", + "test:coverage": "vitest run --coverage", + "surge:deploy": "branch=$(git rev-parse --symbolic-full-name --abbrev-ref HEAD); branch=$(echo $branch | tr ./ -); cp build/index.html build/200.html; surge -p build/ -d https://ifrc-go-$branch.surge.sh", + "surge:teardown": "branch=$(git rev-parse --symbolic-full-name --abbrev-ref HEAD); branch=$(echo $branch | tr ./ -); surge teardown https://ifrc-go-$branch.surge.sh", + "postinstall": "patch-package" + }, + "dependencies": { + "@ifrc-go/icons": "^1.2.0", + "@ifrc-go/ui": "^0.0.1", + "@mapbox/mapbox-gl-draw": "^1.2.0", + "@sentry/react": "^7.81.1", + "@tinymce/tinymce-react": "^4.3.0", + "@togglecorp/fujs": "^2.1.1", + "@togglecorp/re-map": "^0.2.0-beta-6", + "@togglecorp/toggle-form": "^2.0.4", + "@togglecorp/toggle-request": "^1.0.0-beta.2", + "@turf/bbox": "^6.5.0", + "@turf/buffer": "^6.5.0", + "exceljs": "^4.3.0", + "file-saver": "^2.0.5", + "html-to-image": "^1.11.11", + "mapbox-gl": "^1.13.0", + "papaparse": "^5.4.1", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-focus-on": "^3.8.1", + "react-router-dom": "^6.18.0", + "sanitize-html": "^2.10.0" + }, + "devDependencies": { + "@eslint/eslintrc": "^2.0.3", + "@julr/vite-plugin-validate-env": "^1.0.1", + "@types/file-saver": "^2.0.5", + "@types/html2canvas": "^1.0.0", + "@types/mapbox-gl": "^1.13.0", + "@types/node": "^20.1.3", + "@types/papaparse": "^5.3.8", + "@types/react": "^18.0.28", + "@types/react-dom": "^18.0.11", + "@types/sanitize-html": "^2.9.0", + "@typescript-eslint/eslint-plugin": "^5.59.5", + "@typescript-eslint/parser": "^5.59.5", + "@vitejs/plugin-react-swc": "^3.5.0", + "autoprefixer": "^10.4.14", + "cross-var": "^1.1.0", + "dotenv-cli": "^7.2.1", + "eslint": "^8.40.0", + "eslint-config-airbnb": "^19.0.4", + "eslint-import-resolver-typescript": "^3.5.5", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-import-newlines": "^1.3.4", + "eslint-plugin-jsx-a11y": "^6.7.1", + "eslint-plugin-react": "^7.32.2", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.3.4", + "eslint-plugin-simple-import-sort": "^10.0.0", + "fast-glob": "^3.3.0", + "happy-dom": "^9.18.3", + "openapi-typescript": "^6.7.3", + "patch-package": "^7.0.0", + "postcss": "^8.3.0", + "postcss-nested": "^6.0.1", + "postcss-normalize": "^10.0.1", + "postcss-preset-env": "^8.3.2", + "postinstall-postinstall": "^2.1.0", + "rollup-plugin-visualizer": "^5.9.0", + "stylelint": "^15.6.1", + "stylelint-config-concentric": "^2.0.2", + "stylelint-config-recommended": "^12.0.0", + "stylelint-no-unused-selectors": "git+https://github.com/toggle-corp/stylelint-no-unused-selectors#e0831e1", + "stylelint-value-no-unknown-custom-properties": "^4.0.0", + "surge": "^0.23.1", + "typescript": "^5.0.4", + "unimported": "1.28.0", + "vite": "^5.0.10", + "vite-plugin-checker": "^0.6.2", + "vite-plugin-compression2": "^0.11.0", + "vite-plugin-radar": "^0.9.2", + "vite-plugin-svgr": "^4.2.0", + "vite-plugin-webfont-dl": "^3.9.1", + "vite-tsconfig-paths": "^4.2.2", + "vitest": "^1.1.0" + } +} diff --git a/postcss.config.cjs b/app/postcss.config.cjs similarity index 100% rename from postcss.config.cjs rename to app/postcss.config.cjs diff --git a/public/go-icon.svg b/app/public/go-icon.svg similarity index 100% rename from public/go-icon.svg rename to app/public/go-icon.svg diff --git a/scripts/translator.js b/app/scripts/translator.js similarity index 100% rename from scripts/translator.js rename to app/scripts/translator.js diff --git a/src/App/Auth.tsx b/app/src/App/Auth.tsx similarity index 95% rename from src/App/Auth.tsx rename to app/src/App/Auth.tsx index 4cf6b0f01a..999e9dd14a 100644 --- a/src/App/Auth.tsx +++ b/app/src/App/Auth.tsx @@ -1,12 +1,16 @@ -import { type ReactElement, Fragment } from 'react'; +import { + Fragment, + type ReactElement, +} from 'react'; import { Navigate, useParams, } from 'react-router-dom'; -import useAuth from '#hooks/domain/useAuth'; import FourHundredThree from '#components/FourHundredThree'; +import useAuth from '#hooks/domain/useAuth'; import usePermissions from '#hooks/domain/usePermissions'; + import { type ExtendedProps } from './routes/common'; interface Props { diff --git a/src/App/PageError/i18n.json b/app/src/App/PageError/i18n.json similarity index 100% rename from src/App/PageError/i18n.json rename to app/src/App/PageError/i18n.json diff --git a/src/App/PageError/index.tsx b/app/src/App/PageError/index.tsx similarity index 93% rename from src/App/PageError/index.tsx rename to app/src/App/PageError/index.tsx index 73a1a53aa0..6a10d7acb6 100644 --- a/src/App/PageError/index.tsx +++ b/app/src/App/PageError/index.tsx @@ -1,10 +1,15 @@ -import { useCallback, useEffect } from 'react'; +import { + useCallback, + useEffect, +} from 'react'; import { useRouteError } from 'react-router-dom'; +import { Button } from '@ifrc-go/ui'; +import { + useBooleanState, + useTranslation, +} from '@ifrc-go/ui/hooks'; -import Button from '#components/Button'; import Link from '#components/Link'; -import useBooleanState from '#hooks/useBooleanState'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/App/PageError/styles.module.css b/app/src/App/PageError/styles.module.css similarity index 100% rename from src/App/PageError/styles.module.css rename to app/src/App/PageError/styles.module.css diff --git a/src/App/index.tsx b/app/src/App/index.tsx similarity index 94% rename from src/App/index.tsx rename to app/src/App/index.tsx index b803713e93..de0d0435b7 100644 --- a/src/App/index.tsx +++ b/app/src/App/index.tsx @@ -1,42 +1,58 @@ import { - useState, useCallback, useEffect, useMemo, + useState, } from 'react'; import { createBrowserRouter, RouterProvider, } from 'react-router-dom'; -import mapboxgl from 'mapbox-gl'; -import { isDefined, unique } from '@togglecorp/fujs'; +import { + AlertContext, + type AlertContextProps, + type AlertParams, + type Language, + LanguageContext, + type LanguageContextProps, + type LanguageNamespaceStatus, +} from '@ifrc-go/ui/contexts'; import * as Sentry from '@sentry/react'; +import { + isDefined, + unique, +} from '@togglecorp/fujs'; +import mapboxgl from 'mapbox-gl'; -import UserContext, { UserAuth, UserContextProps } from '#contexts/user'; -import AlertContext, { AlertParams, AlertContextProps } from '#contexts/alert'; +import goLogo from '#assets/icons/go-logo-2020.svg'; +import { + appTitle, + mbtoken, +} from '#config'; import RouteContext from '#contexts/route'; -import LanguageContext, { - Language, - LanguageNamespaceStatus, - type LanguageContextProps, -} from '#contexts/language'; -import { RequestContext } from '#utils/restRequest'; -import { KEY_LANGUAGE_STORAGE, KEY_USER_STORAGE } from '#utils/constants'; +import UserContext, { + UserAuth, + UserContextProps, +} from '#contexts/user'; import { - processGoUrls, - processGoOptions, - processGoError, - processGoResponse, -} from '#utils/restRequest/go'; + KEY_LANGUAGE_STORAGE, + KEY_USER_STORAGE, +} from '#utils/constants'; import { getFromStorage, removeFromStorage, setToStorage, } from '#utils/localStorage'; -import goLogo from '#assets/icons/go-logo-2020.svg'; -import { mbtoken, appTitle } from '#config'; +import { RequestContext } from '#utils/restRequest'; +import { + processGoError, + processGoOptions, + processGoResponse, + processGoUrls, +} from '#utils/restRequest/go'; import wrappedRoutes, { unwrappedRoutes } from './routes'; + import styles from './styles.module.css'; const requestContextValue = { diff --git a/src/App/routes/CountryRoutes.tsx b/app/src/App/routes/CountryRoutes.tsx similarity index 99% rename from src/App/routes/CountryRoutes.tsx rename to app/src/App/routes/CountryRoutes.tsx index a6286e2618..43e5d6b0bf 100644 --- a/src/App/routes/CountryRoutes.tsx +++ b/app/src/App/routes/CountryRoutes.tsx @@ -1,9 +1,12 @@ import { - Navigate, generatePath, + Navigate, useParams, } from 'react-router-dom'; -import { isDefined, isTruthyString } from '@togglecorp/fujs'; +import { + isDefined, + isTruthyString, +} from '@togglecorp/fujs'; import { COUNTRY_AFRICA_REGION, diff --git a/src/App/routes/RegionRoutes.tsx b/app/src/App/routes/RegionRoutes.tsx similarity index 100% rename from src/App/routes/RegionRoutes.tsx rename to app/src/App/routes/RegionRoutes.tsx diff --git a/src/App/routes/SmartNavigate.tsx b/app/src/App/routes/SmartNavigate.tsx similarity index 93% rename from src/App/routes/SmartNavigate.tsx rename to app/src/App/routes/SmartNavigate.tsx index 67f11e65ee..965c08d8a9 100644 --- a/src/App/routes/SmartNavigate.tsx +++ b/app/src/App/routes/SmartNavigate.tsx @@ -1,9 +1,12 @@ import { Navigate, - useLocation, type NavigateProps, + useLocation, } from 'react-router-dom'; -import { isDefined, isTruthyString } from '@togglecorp/fujs'; +import { + isDefined, + isTruthyString, +} from '@togglecorp/fujs'; type RouteKey = string; diff --git a/src/App/routes/SurgeRoutes.tsx b/app/src/App/routes/SurgeRoutes.tsx similarity index 99% rename from src/App/routes/SurgeRoutes.tsx rename to app/src/App/routes/SurgeRoutes.tsx index 1170f1bd97..45aedaa963 100644 --- a/src/App/routes/SurgeRoutes.tsx +++ b/app/src/App/routes/SurgeRoutes.tsx @@ -3,16 +3,18 @@ import { Outlet, useParams, } from 'react-router-dom'; -import { isDefined, isTruthyString } from '@togglecorp/fujs'; +import { + isDefined, + isTruthyString, +} from '@togglecorp/fujs'; import type { MyOutputNonIndexRouteObject } from '#utils/routes'; import Auth from '../Auth'; - import { customWrapRoute, - rootLayout, type ExtendedProps, + rootLayout, } from './common'; type DefaultSurgeChild = 'overview'; diff --git a/src/App/routes/common.tsx b/app/src/App/routes/common.tsx similarity index 99% rename from src/App/routes/common.tsx rename to app/src/App/routes/common.tsx index cb57dcb281..48cba20a15 100644 --- a/src/App/routes/common.tsx +++ b/app/src/App/routes/common.tsx @@ -1,5 +1,3 @@ -import { Component as RootLayout } from '#views/RootLayout'; - import { type MyInputIndexRouteObject, type MyInputNonIndexRouteObject, @@ -7,6 +5,7 @@ import { type MyOutputNonIndexRouteObject, wrapRoute, } from '#utils/routes'; +import { Component as RootLayout } from '#views/RootLayout'; import Auth from '../Auth'; import PageError from '../PageError'; diff --git a/src/App/routes/index.tsx b/app/src/App/routes/index.tsx similarity index 99% rename from src/App/routes/index.tsx rename to app/src/App/routes/index.tsx index 9f103841c7..830d16c15e 100644 --- a/src/App/routes/index.tsx +++ b/app/src/App/routes/index.tsx @@ -3,15 +3,14 @@ import { Navigate } from 'react-router-dom'; import { unwrapRoute } from '#utils/routes'; import Auth from '../Auth'; -import SmartNavigate from './SmartNavigate'; import { customWrapRoute, rootLayout, } from './common'; - -import surgeRoutes from './SurgeRoutes'; import countryRoutes from './CountryRoutes'; import regionRoutes from './RegionRoutes'; +import SmartNavigate from './SmartNavigate'; +import surgeRoutes from './SurgeRoutes'; const fourHundredFour = customWrapRoute({ parent: rootLayout, diff --git a/src/App/styles.module.css b/app/src/App/styles.module.css similarity index 100% rename from src/App/styles.module.css rename to app/src/App/styles.module.css diff --git a/src/assets/content/operational_timeline_body.svg b/app/src/assets/content/operational_timeline_body.svg similarity index 100% rename from src/assets/content/operational_timeline_body.svg rename to app/src/assets/content/operational_timeline_body.svg diff --git a/src/assets/content/operational_timeline_title.svg b/app/src/assets/content/operational_timeline_title.svg similarity index 100% rename from src/assets/content/operational_timeline_title.svg rename to app/src/assets/content/operational_timeline_title.svg diff --git a/src/assets/content/per_approach_notext.svg b/app/src/assets/content/per_approach_notext.svg similarity index 100% rename from src/assets/content/per_approach_notext.svg rename to app/src/assets/content/per_approach_notext.svg diff --git a/src/assets/icons/arc_logo.png b/app/src/assets/icons/arc_logo.png similarity index 100% rename from src/assets/icons/arc_logo.png rename to app/src/assets/icons/arc_logo.png diff --git a/src/assets/icons/aurc_logo.svg b/app/src/assets/icons/aurc_logo.svg similarity index 100% rename from src/assets/icons/aurc_logo.svg rename to app/src/assets/icons/aurc_logo.svg diff --git a/src/assets/icons/brc_logo.png b/app/src/assets/icons/brc_logo.png similarity index 100% rename from src/assets/icons/brc_logo.png rename to app/src/assets/icons/brc_logo.png diff --git a/src/assets/icons/crc_logo.png b/app/src/assets/icons/crc_logo.png similarity index 100% rename from src/assets/icons/crc_logo.png rename to app/src/assets/icons/crc_logo.png diff --git a/src/assets/icons/dnk_logo.png b/app/src/assets/icons/dnk_logo.png similarity index 100% rename from src/assets/icons/dnk_logo.png rename to app/src/assets/icons/dnk_logo.png diff --git a/src/assets/icons/ericsson_logo.png b/app/src/assets/icons/ericsson_logo.png similarity index 100% rename from src/assets/icons/ericsson_logo.png rename to app/src/assets/icons/ericsson_logo.png diff --git a/src/assets/icons/eru.jpg b/app/src/assets/icons/eru.jpg similarity index 100% rename from src/assets/icons/eru.jpg rename to app/src/assets/icons/eru.jpg diff --git a/src/assets/icons/esp_logo.svg b/app/src/assets/icons/esp_logo.svg similarity index 100% rename from src/assets/icons/esp_logo.svg rename to app/src/assets/icons/esp_logo.svg diff --git a/src/assets/icons/frc_logo.png b/app/src/assets/icons/frc_logo.png similarity index 100% rename from src/assets/icons/frc_logo.png rename to app/src/assets/icons/frc_logo.png diff --git a/src/assets/icons/go-logo-2020.svg b/app/src/assets/icons/go-logo-2020.svg similarity index 100% rename from src/assets/icons/go-logo-2020.svg rename to app/src/assets/icons/go-logo-2020.svg diff --git a/src/assets/icons/ifrc-square.png b/app/src/assets/icons/ifrc-square.png similarity index 100% rename from src/assets/icons/ifrc-square.png rename to app/src/assets/icons/ifrc-square.png diff --git a/src/assets/icons/jrc_logo.png b/app/src/assets/icons/jrc_logo.png similarity index 100% rename from src/assets/icons/jrc_logo.png rename to app/src/assets/icons/jrc_logo.png diff --git a/src/assets/icons/nlrc_logo.jpg b/app/src/assets/icons/nlrc_logo.jpg similarity index 100% rename from src/assets/icons/nlrc_logo.jpg rename to app/src/assets/icons/nlrc_logo.jpg diff --git a/src/assets/icons/pdc_logo.svg b/app/src/assets/icons/pdc_logo.svg similarity index 100% rename from src/assets/icons/pdc_logo.svg rename to app/src/assets/icons/pdc_logo.svg diff --git a/src/assets/icons/risk/cyclone.png b/app/src/assets/icons/risk/cyclone.png similarity index 100% rename from src/assets/icons/risk/cyclone.png rename to app/src/assets/icons/risk/cyclone.png diff --git a/src/assets/icons/risk/drought.png b/app/src/assets/icons/risk/drought.png similarity index 100% rename from src/assets/icons/risk/drought.png rename to app/src/assets/icons/risk/drought.png diff --git a/src/assets/icons/risk/earthquake.png b/app/src/assets/icons/risk/earthquake.png similarity index 100% rename from src/assets/icons/risk/earthquake.png rename to app/src/assets/icons/risk/earthquake.png diff --git a/src/assets/icons/risk/flood.png b/app/src/assets/icons/risk/flood.png similarity index 100% rename from src/assets/icons/risk/flood.png rename to app/src/assets/icons/risk/flood.png diff --git a/src/assets/icons/risk/wildfire.png b/app/src/assets/icons/risk/wildfire.png similarity index 100% rename from src/assets/icons/risk/wildfire.png rename to app/src/assets/icons/risk/wildfire.png diff --git a/src/assets/icons/swiss.svg b/app/src/assets/icons/swiss.svg similarity index 100% rename from src/assets/icons/swiss.svg rename to app/src/assets/icons/swiss.svg diff --git a/src/assets/icons/us_aid.svg b/app/src/assets/icons/us_aid.svg similarity index 100% rename from src/assets/icons/us_aid.svg rename to app/src/assets/icons/us_aid.svg diff --git a/src/assets/images/surge-im-composition.jpg b/app/src/assets/images/surge-im-composition.jpg similarity index 100% rename from src/assets/images/surge-im-composition.jpg rename to app/src/assets/images/surge-im-composition.jpg diff --git a/src/assets/images/surge-im-pyramid.png b/app/src/assets/images/surge-im-pyramid.png similarity index 100% rename from src/assets/images/surge-im-pyramid.png rename to app/src/assets/images/surge-im-pyramid.png diff --git a/src/assets/images/surge-im-support-responsible-operation.jpg b/app/src/assets/images/surge-im-support-responsible-operation.jpg similarity index 100% rename from src/assets/images/surge-im-support-responsible-operation.jpg rename to app/src/assets/images/surge-im-support-responsible-operation.jpg diff --git a/src/components/CatalogueInfoCard/index.tsx b/app/src/components/CatalogueInfoCard/index.tsx similarity index 96% rename from src/components/CatalogueInfoCard/index.tsx rename to app/src/components/CatalogueInfoCard/index.tsx index c3adeb2304..d2b522a602 100644 --- a/src/components/CatalogueInfoCard/index.tsx +++ b/app/src/components/CatalogueInfoCard/index.tsx @@ -1,9 +1,11 @@ import { useCallback } from 'react'; +import { + Container, + List, +} from '@ifrc-go/ui'; import { _cs } from '@togglecorp/fujs'; -import Container from '#components/Container'; import Link, { Props as LinkProps } from '#components/Link'; -import List from '#components/List'; import styles from './styles.module.css'; diff --git a/src/components/CatalogueInfoCard/styles.module.css b/app/src/components/CatalogueInfoCard/styles.module.css similarity index 100% rename from src/components/CatalogueInfoCard/styles.module.css rename to app/src/components/CatalogueInfoCard/styles.module.css diff --git a/src/components/DropdownMenuItem/index.tsx b/app/src/components/DropdownMenuItem/index.tsx similarity index 92% rename from src/components/DropdownMenuItem/index.tsx rename to app/src/components/DropdownMenuItem/index.tsx index a42d93bf49..24b6ac22fa 100644 --- a/src/components/DropdownMenuItem/index.tsx +++ b/app/src/components/DropdownMenuItem/index.tsx @@ -1,10 +1,17 @@ -import { useCallback, useContext } from 'react'; +import { + useCallback, + useContext, +} from 'react'; +import { + Button, + ButtonProps, + ConfirmButton, + ConfirmButtonProps, +} from '@ifrc-go/ui'; +import { DropdownMenuContext } from '@ifrc-go/ui/contexts'; import { isDefined } from '@togglecorp/fujs'; import Link, { Props as LinkProps } from '#components/Link'; -import Button, { Props as ButtonProps } from '#components/Button'; -import ConfirmButton, { Props as ConfirmButtonProps } from '#components/ConfirmButton'; -import DropdownMenuContext from '#contexts/dropdown-menu'; type CommonProp = { persist?: boolean; diff --git a/src/components/FourHundredThree/i18n.json b/app/src/components/FourHundredThree/i18n.json similarity index 100% rename from src/components/FourHundredThree/i18n.json rename to app/src/components/FourHundredThree/i18n.json diff --git a/src/components/FourHundredThree/index.tsx b/app/src/components/FourHundredThree/index.tsx similarity index 95% rename from src/components/FourHundredThree/index.tsx rename to app/src/components/FourHundredThree/index.tsx index 4c6399af77..b528c1290d 100644 --- a/src/components/FourHundredThree/index.tsx +++ b/app/src/components/FourHundredThree/index.tsx @@ -1,9 +1,9 @@ import { SearchLineIcon } from '@ifrc-go/icons'; +import { Heading } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; -import Page from '#components/Page'; -import Heading from '#components/Heading'; -import useTranslation from '#hooks/useTranslation'; import Link from '#components/Link'; +import Page from '#components/Page'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/components/FourHundredThree/styles.module.css b/app/src/components/FourHundredThree/styles.module.css similarity index 100% rename from src/components/FourHundredThree/styles.module.css rename to app/src/components/FourHundredThree/styles.module.css diff --git a/src/components/GlobalFooter/i18n.json b/app/src/components/GlobalFooter/i18n.json similarity index 100% rename from src/components/GlobalFooter/i18n.json rename to app/src/components/GlobalFooter/i18n.json diff --git a/src/components/GlobalFooter/index.tsx b/app/src/components/GlobalFooter/index.tsx similarity index 94% rename from src/components/GlobalFooter/index.tsx rename to app/src/components/GlobalFooter/index.tsx index d9ac17f43a..4b6ccf4308 100644 --- a/src/components/GlobalFooter/index.tsx +++ b/app/src/components/GlobalFooter/index.tsx @@ -1,17 +1,23 @@ -import { _cs } from '@togglecorp/fujs'; import { - SocialMediumIcon, SocialFacebookIcon, + SocialMediumIcon, SocialTwitterIcon, SocialYoutubeIcon, } from '@ifrc-go/icons'; +import { + Heading, + PageContainer, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToComponent } from '@ifrc-go/ui/utils'; +import { _cs } from '@togglecorp/fujs'; -import Heading from '#components/Heading'; import Link from '#components/Link'; -import PageContainer from '#components/PageContainer'; -import useTranslation from '#hooks/useTranslation'; -import { resolveToComponent } from '#utils/translation'; -import { api, appVersion, appCommitHash } from '#config'; +import { + api, + appCommitHash, + appVersion, +} from '#config'; import { resolveUrl } from '#utils/resolveUrl'; import i18n from './i18n.json'; diff --git a/src/components/GlobalFooter/styles.module.css b/app/src/components/GlobalFooter/styles.module.css similarity index 100% rename from src/components/GlobalFooter/styles.module.css rename to app/src/components/GlobalFooter/styles.module.css diff --git a/src/components/Link/index.tsx b/app/src/components/Link/index.tsx similarity index 98% rename from src/components/Link/index.tsx rename to app/src/components/Link/index.tsx index a7136bc098..4e8765caae 100644 --- a/src/components/Link/index.tsx +++ b/app/src/components/Link/index.tsx @@ -1,27 +1,31 @@ -import { useMemo, useContext } from 'react'; import { - _cs, - isNotDefined, - isDefined, - isFalsyString, -} from '@togglecorp/fujs'; + useContext, + useMemo, +} from 'react'; import { + generatePath, Link as InternalLink, LinkProps as RouterLinkProps, - generatePath, } from 'react-router-dom'; import { ChevronRightLineIcon, ExternalLinkLineIcon, } from '@ifrc-go/icons'; +import type { ButtonFeatureProps } from '@ifrc-go/ui'; +import { useButtonFeatures } from '@ifrc-go/ui/hooks'; +import { + _cs, + isDefined, + isFalsyString, + isNotDefined, +} from '@togglecorp/fujs'; -import usePermissions from '#hooks/domain/usePermissions'; -import useAuth from '#hooks/domain/useAuth'; import RouteContext from '#contexts/route'; -import { useButtonFeatures } from '#components/Button'; -import type { ButtonFeatureProps } from '#components/Button'; +import useAuth from '#hooks/domain/useAuth'; +import usePermissions from '#hooks/domain/usePermissions'; import { type WrappedRoutes } from '../../App/routes'; + import styles from './styles.module.css'; export interface UrlParams { diff --git a/src/components/Link/styles.module.css b/app/src/components/Link/styles.module.css similarity index 100% rename from src/components/Link/styles.module.css rename to app/src/components/Link/styles.module.css diff --git a/src/components/MapContainerWithDisclaimer/i18n.json b/app/src/components/MapContainerWithDisclaimer/i18n.json similarity index 100% rename from src/components/MapContainerWithDisclaimer/i18n.json rename to app/src/components/MapContainerWithDisclaimer/i18n.json diff --git a/src/components/MapContainerWithDisclaimer/index.tsx b/app/src/components/MapContainerWithDisclaimer/index.tsx similarity index 94% rename from src/components/MapContainerWithDisclaimer/index.tsx rename to app/src/components/MapContainerWithDisclaimer/index.tsx index e3d0a97df5..ff97dce321 100644 --- a/src/components/MapContainerWithDisclaimer/index.tsx +++ b/app/src/components/MapContainerWithDisclaimer/index.tsx @@ -1,28 +1,33 @@ -import { useRef, useCallback } from 'react'; +import { + useCallback, + useRef, +} from 'react'; +import { + CloseFillIcon, + DownloadTwoLineIcon, +} from '@ifrc-go/icons'; +import { + Button, + DateOutput, + Header, + IconButton, + InfoPopup, + RawButton, +} from '@ifrc-go/ui'; +import { + useBooleanState, + useTranslation, +} from '@ifrc-go/ui/hooks'; +import { resolveToComponent } from '@ifrc-go/ui/utils'; import { _cs } from '@togglecorp/fujs'; import { MapContainer } from '@togglecorp/re-map'; import FileSaver from 'file-saver'; import { toPng } from 'html-to-image'; -import { - DownloadTwoLineIcon, - CloseFillIcon, -} from '@ifrc-go/icons'; - import goLogo from '#assets/icons/go-logo-2020.svg'; -import InfoPopup from '#components/InfoPopup'; -import DateOutput from '#components/DateOutput'; -import useAlert from '#hooks/useAlert'; -import Header from '#components/Header'; -import useTranslation from '#hooks/useTranslation'; -import IconButton from '#components/IconButton'; -import Button from '#components/Button'; import Link from '#components/Link'; -import { resolveToComponent } from '#utils/translation'; -import useBooleanState from '#hooks/useBooleanState'; -import RawButton from '#components/RawButton'; - import { mbtoken } from '#config'; +import useAlert from '#hooks/useAlert'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/components/MapContainerWithDisclaimer/styles.module.css b/app/src/components/MapContainerWithDisclaimer/styles.module.css similarity index 100% rename from src/components/MapContainerWithDisclaimer/styles.module.css rename to app/src/components/MapContainerWithDisclaimer/styles.module.css diff --git a/src/components/MapPopup/i18n.json b/app/src/components/MapPopup/i18n.json similarity index 100% rename from src/components/MapPopup/i18n.json rename to app/src/components/MapPopup/i18n.json diff --git a/src/components/MapPopup/index.tsx b/app/src/components/MapPopup/index.tsx similarity index 92% rename from src/components/MapPopup/index.tsx rename to app/src/components/MapPopup/index.tsx index 409e95af11..2961bb2589 100644 --- a/src/components/MapPopup/index.tsx +++ b/app/src/components/MapPopup/index.tsx @@ -1,10 +1,12 @@ -import { MapPopup as BasicMapPopup } from '@togglecorp/re-map'; import { CloseLineIcon } from '@ifrc-go/icons'; +import { + Button, + Container, + ContainerProps, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { _cs } from '@togglecorp/fujs'; - -import Container, { Props as ContainerProps } from '#components/Container'; -import useTranslation from '#hooks/useTranslation'; -import Button from '#components/Button'; +import { MapPopup as BasicMapPopup } from '@togglecorp/re-map'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/components/MapPopup/styles.module.css b/app/src/components/MapPopup/styles.module.css similarity index 100% rename from src/components/MapPopup/styles.module.css rename to app/src/components/MapPopup/styles.module.css diff --git a/src/components/Navbar/AuthenticatedUserDropdown/i18n.json b/app/src/components/Navbar/AuthenticatedUserDropdown/i18n.json similarity index 100% rename from src/components/Navbar/AuthenticatedUserDropdown/i18n.json rename to app/src/components/Navbar/AuthenticatedUserDropdown/i18n.json diff --git a/src/components/Navbar/AuthenticatedUserDropdown/index.tsx b/app/src/components/Navbar/AuthenticatedUserDropdown/index.tsx similarity index 91% rename from src/components/Navbar/AuthenticatedUserDropdown/index.tsx rename to app/src/components/Navbar/AuthenticatedUserDropdown/index.tsx index 1a11c20e55..01932e17a6 100644 --- a/src/components/Navbar/AuthenticatedUserDropdown/index.tsx +++ b/app/src/components/Navbar/AuthenticatedUserDropdown/index.tsx @@ -1,12 +1,15 @@ -import { useContext, useCallback } from 'react'; +import { + useCallback, + useContext, +} from 'react'; +import { DropdownMenu } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; -import useAuth from '#hooks/domain/useAuth'; -import { getUserName } from '#utils/domain/user'; -import useUserMe from '#hooks/domain/useUserMe'; -import DropdownMenu from '#components/DropdownMenu'; import DropdownMenuItem from '#components/DropdownMenuItem'; -import useTranslation from '#hooks/useTranslation'; import UserContext from '#contexts/user'; +import useAuth from '#hooks/domain/useAuth'; +import useUserMe from '#hooks/domain/useUserMe'; +import { getUserName } from '#utils/domain/user'; import i18n from './i18n.json'; diff --git a/src/components/Navbar/CountryDropdown/i18n.json b/app/src/components/Navbar/CountryDropdown/i18n.json similarity index 100% rename from src/components/Navbar/CountryDropdown/i18n.json rename to app/src/components/Navbar/CountryDropdown/i18n.json diff --git a/src/components/Navbar/CountryDropdown/index.tsx b/app/src/components/Navbar/CountryDropdown/index.tsx similarity index 92% rename from src/components/Navbar/CountryDropdown/index.tsx rename to app/src/components/Navbar/CountryDropdown/index.tsx index 84a3efa37b..70ee7fa28d 100644 --- a/src/components/Navbar/CountryDropdown/index.tsx +++ b/app/src/components/Navbar/CountryDropdown/index.tsx @@ -1,8 +1,25 @@ -import { useContext, useMemo, useState } from 'react'; import { - useLocation, + useContext, + useMemo, + useState, +} from 'react'; +import { matchPath, + useLocation, } from 'react-router-dom'; +import { SearchLineIcon } from '@ifrc-go/icons'; +import { + Container, + DropdownMenu, + Message, + Tab, + TabList, + TabPanel, + Tabs, + TextInput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { rankedSearchOnList } from '@ifrc-go/ui/utils'; import { _cs, isDefined, @@ -10,23 +27,11 @@ import { isNotDefined, } from '@togglecorp/fujs'; -import Container from '#components/Container'; -import Message from '#components/Message'; -import DropdownMenu from '#components/DropdownMenu'; import DropdownMenuItem from '#components/DropdownMenuItem'; -import TabList from '#components/Tabs/TabList'; -import Tabs from '#components/Tabs'; -import Tab from '#components/Tabs/Tab'; -import TabPanel from '#components/Tabs/TabPanel'; +import RouteContext from '#contexts/route'; import useCountry from '#hooks/domain/useCountry'; -import useTranslation from '#hooks/useTranslation'; import useGlobalEnums from '#hooks/domain/useGlobalEnums'; -import RouteContext from '#contexts/route'; - -import TextInput from '#components/TextInput'; import useInputState from '#hooks/useInputState'; -import { SearchLineIcon } from '@ifrc-go/icons'; -import { rankedSearchOnList } from '#utils/common'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/components/Navbar/CountryDropdown/styles.module.css b/app/src/components/Navbar/CountryDropdown/styles.module.css similarity index 100% rename from src/components/Navbar/CountryDropdown/styles.module.css rename to app/src/components/Navbar/CountryDropdown/styles.module.css diff --git a/src/components/Navbar/LanguageDropdown/index.tsx b/app/src/components/Navbar/LanguageDropdown/index.tsx similarity index 87% rename from src/components/Navbar/LanguageDropdown/index.tsx rename to app/src/components/Navbar/LanguageDropdown/index.tsx index ad7facfccb..29ac0e8c1c 100644 --- a/src/components/Navbar/LanguageDropdown/index.tsx +++ b/app/src/components/Navbar/LanguageDropdown/index.tsx @@ -1,11 +1,21 @@ -import { useContext, useCallback, useEffect } from 'react'; -import { _cs, mapToList } from '@togglecorp/fujs'; +import { + useCallback, + useContext, + useEffect, +} from 'react'; import { CheckFillIcon } from '@ifrc-go/icons'; +import { DropdownMenu } from '@ifrc-go/ui'; +import { + type Language, + LanguageContext, +} from '@ifrc-go/ui/contexts'; +import { languageNameMapEn } from '@ifrc-go/ui/utils'; +import { + _cs, + mapToList, +} from '@togglecorp/fujs'; -import DropdownMenu from '#components/DropdownMenu'; import DropdownMenuItem from '#components/DropdownMenuItem'; -import LanguageContext, { type Language } from '#contexts/language'; -import { languageNameMapEn } from '#utils/common'; import styles from './styles.module.css'; diff --git a/src/components/Navbar/LanguageDropdown/styles.module.css b/app/src/components/Navbar/LanguageDropdown/styles.module.css similarity index 100% rename from src/components/Navbar/LanguageDropdown/styles.module.css rename to app/src/components/Navbar/LanguageDropdown/styles.module.css diff --git a/src/components/Navbar/i18n.json b/app/src/components/Navbar/i18n.json similarity index 100% rename from src/components/Navbar/i18n.json rename to app/src/components/Navbar/i18n.json diff --git a/src/components/Navbar/index.tsx b/app/src/components/Navbar/index.tsx similarity index 98% rename from src/components/Navbar/index.tsx rename to app/src/components/Navbar/index.tsx index 3497c3b0ac..550f34e77a 100644 --- a/src/components/Navbar/index.tsx +++ b/app/src/components/Navbar/index.tsx @@ -1,25 +1,28 @@ import { useState } from 'react'; +import { + DropdownMenu, + NavigationTabList, + PageContainer, + Tab, + TabList, + TabPanel, + Tabs, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { _cs } from '@togglecorp/fujs'; -import useAuth from '#hooks/domain/useAuth'; -import PageContainer from '#components/PageContainer'; -import Link from '#components/Link'; -import DropdownMenu from '#components/DropdownMenu'; +import goLogo from '#assets/icons/go-logo-2020.svg'; +import KeywordSearchSelectInput from '#components/domain/KeywordSearchSelectInput'; import DropdownMenuItem from '#components/DropdownMenuItem'; -import NavigationTabList from '#components/NavigationTabList'; +import Link from '#components/Link'; import NavigationTab from '#components/NavigationTab'; -import KeywordSearchSelectInput from '#components/domain/KeywordSearchSelectInput'; -import useTranslation from '#hooks/useTranslation'; import { environment } from '#config'; -import goLogo from '#assets/icons/go-logo-2020.svg'; -import TabList from '#components/Tabs/TabList'; -import Tabs from '#components/Tabs'; -import Tab from '#components/Tabs/Tab'; -import TabPanel from '#components/Tabs/TabPanel'; +import useAuth from '#hooks/domain/useAuth'; import AuthenticatedUserDropdown from './AuthenticatedUserDropdown'; -import LangaugeDropdown from './LanguageDropdown'; import CountryDropdown from './CountryDropdown'; +import LangaugeDropdown from './LanguageDropdown'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/components/Navbar/styles.module.css b/app/src/components/Navbar/styles.module.css similarity index 100% rename from src/components/Navbar/styles.module.css rename to app/src/components/Navbar/styles.module.css diff --git a/src/components/NavigationTab/index.tsx b/app/src/components/NavigationTab/index.tsx similarity index 95% rename from src/components/NavigationTab/index.tsx rename to app/src/components/NavigationTab/index.tsx index 1a20a28099..e1c72e8e34 100644 --- a/src/components/NavigationTab/index.tsx +++ b/app/src/components/NavigationTab/index.tsx @@ -1,22 +1,30 @@ -import { useCallback, useContext, useMemo } from 'react'; import { - _cs, - isFalsyString, - isNotDefined, - isTruthyString, -} from '@togglecorp/fujs'; + useCallback, + useContext, + useMemo, +} from 'react'; import { matchPath, NavLink, useLocation, } from 'react-router-dom'; import { CheckFillIcon } from '@ifrc-go/icons'; +import { NavigationTabContext } from '@ifrc-go/ui/contexts'; +import { + _cs, + isFalsyString, + isNotDefined, + isTruthyString, +} from '@togglecorp/fujs'; -import NavigationTabContext from '#contexts/navigation-tab'; +import { + type UrlParams, + useLink, +} from '#components/Link'; import RouteContext from '#contexts/route'; -import { useLink, type UrlParams } from '#components/Link'; import { type WrappedRoutes } from '../../App/routes'; + import styles from './styles.module.css'; interface Props { diff --git a/src/components/NavigationTab/styles.module.css b/app/src/components/NavigationTab/styles.module.css similarity index 100% rename from src/components/NavigationTab/styles.module.css rename to app/src/components/NavigationTab/styles.module.css diff --git a/src/components/NonFieldError/i18n.json b/app/src/components/NonFieldError/i18n.json similarity index 100% rename from src/components/NonFieldError/i18n.json rename to app/src/components/NonFieldError/i18n.json diff --git a/src/components/NonFieldError/index.tsx b/app/src/components/NonFieldError/index.tsx similarity index 90% rename from src/components/NonFieldError/index.tsx rename to app/src/components/NonFieldError/index.tsx index 338eb3ddf3..8602c69324 100644 --- a/src/components/NonFieldError/index.tsx +++ b/app/src/components/NonFieldError/index.tsx @@ -1,13 +1,17 @@ import { useMemo } from 'react'; import { AlertLineIcon } from '@ifrc-go/icons'; -import { _cs, isNotDefined, isFalsyString } from '@togglecorp/fujs'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + _cs, + isFalsyString, + isNotDefined, +} from '@togglecorp/fujs'; import { - getErrorObject, analyzeErrors, - nonFieldError, Error, + getErrorObject, + nonFieldError, } from '@togglecorp/toggle-form'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/components/NonFieldError/styles.module.css b/app/src/components/NonFieldError/styles.module.css similarity index 100% rename from src/components/NonFieldError/styles.module.css rename to app/src/components/NonFieldError/styles.module.css diff --git a/src/components/Page/i18n.json b/app/src/components/Page/i18n.json similarity index 100% rename from src/components/Page/i18n.json rename to app/src/components/Page/i18n.json diff --git a/src/components/Page/index.tsx b/app/src/components/Page/index.tsx similarity index 91% rename from src/components/Page/index.tsx rename to app/src/components/Page/index.tsx index ae58449441..377c653ec8 100644 --- a/src/components/Page/index.tsx +++ b/app/src/components/Page/index.tsx @@ -1,18 +1,26 @@ -import { useEffect, ElementRef, RefObject } from 'react'; +import { + ElementRef, + RefObject, + useEffect, +} from 'react'; +import { + PageContainer, + PageHeader, +} from '@ifrc-go/ui'; +import { type Language } from '@ifrc-go/ui/contexts'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + languageNameMapEn, + resolveToString, +} from '@ifrc-go/ui/utils'; import { _cs, isDefined, isNotDefined, } from '@togglecorp/fujs'; -import { type Language } from '#contexts/language'; -import PageContainer from '#components/PageContainer'; -import PageHeader from '#components/PageHeader'; -import useCurrentLanguage from '#hooks/domain/useCurrentLanguage'; -import useTranslation from '#hooks/useTranslation'; -import { resolveToString } from '#utils/translation'; -import { languageNameMapEn } from '#utils/common'; import { components } from '#generated/types'; +import useCurrentLanguage from '#hooks/domain/useCurrentLanguage'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/components/Page/styles.module.css b/app/src/components/Page/styles.module.css similarity index 100% rename from src/components/Page/styles.module.css rename to app/src/components/Page/styles.module.css diff --git a/src/components/RichTextArea/index.tsx b/app/src/components/RichTextArea/index.tsx similarity index 95% rename from src/components/RichTextArea/index.tsx rename to app/src/components/RichTextArea/index.tsx index f7a0251a23..8ed2e84cd9 100644 --- a/src/components/RichTextArea/index.tsx +++ b/app/src/components/RichTextArea/index.tsx @@ -1,9 +1,15 @@ import React from 'react'; -import { Editor, IAllProps } from '@tinymce/tinymce-react'; +import { + InputContainer, + InputContainerProps, +} from '@ifrc-go/ui'; +import { + Editor, + IAllProps, +} from '@tinymce/tinymce-react'; import { _cs } from '@togglecorp/fujs'; -import { tinyApiKey } from '#config'; -import InputContainer, { Props as InputContainerProps } from '#components/InputContainer'; +import { tinyApiKey } from '#config'; import styles from './styles.module.css'; diff --git a/src/components/RichTextArea/styles.module.css b/app/src/components/RichTextArea/styles.module.css similarity index 100% rename from src/components/RichTextArea/styles.module.css rename to app/src/components/RichTextArea/styles.module.css diff --git a/src/components/WikiLink/i18n.json b/app/src/components/WikiLink/i18n.json similarity index 100% rename from src/components/WikiLink/i18n.json rename to app/src/components/WikiLink/i18n.json diff --git a/src/components/WikiLink/index.tsx b/app/src/components/WikiLink/index.tsx similarity index 95% rename from src/components/WikiLink/index.tsx rename to app/src/components/WikiLink/index.tsx index 2703bb03be..e3def2c4f5 100644 --- a/src/components/WikiLink/index.tsx +++ b/app/src/components/WikiLink/index.tsx @@ -1,10 +1,10 @@ import { WikiHelpSectionLineIcon } from '@ifrc-go/icons'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { _cs } from '@togglecorp/fujs'; -import Link from '#components/Link'; import type { Props as LinkProps } from '#components/Link'; +import Link from '#components/Link'; import useCurrentLanguage from '#hooks/domain/useCurrentLanguage'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/components/WikiLink/styles.module.css b/app/src/components/WikiLink/styles.module.css similarity index 100% rename from src/components/WikiLink/styles.module.css rename to app/src/components/WikiLink/styles.module.css diff --git a/src/components/domain/ActiveOperationMap/i18n.json b/app/src/components/domain/ActiveOperationMap/i18n.json similarity index 100% rename from src/components/domain/ActiveOperationMap/i18n.json rename to app/src/components/domain/ActiveOperationMap/i18n.json diff --git a/src/components/domain/ActiveOperationMap/index.tsx b/app/src/components/domain/ActiveOperationMap/index.tsx similarity index 96% rename from src/components/domain/ActiveOperationMap/index.tsx rename to app/src/components/domain/ActiveOperationMap/index.tsx index d339274a70..f334bd6f9b 100644 --- a/src/components/domain/ActiveOperationMap/index.tsx +++ b/app/src/components/domain/ActiveOperationMap/index.tsx @@ -1,9 +1,24 @@ import { - useMemo, useCallback, + useMemo, useState, } from 'react'; -import type { LngLatBoundsLike } from 'mapbox-gl'; +import { ArtboardLineIcon } from '@ifrc-go/icons'; +import { + Button, + Container, + DateInput, + LegendItem, + RadioInput, + SelectInput, + TextOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + hasSomeDefinedValue, + resolveToComponent, + sumSafe, +} from '@ifrc-go/ui/utils'; import { _cs, isDefined, @@ -13,56 +28,51 @@ import { unique, } from '@togglecorp/fujs'; import { - MapSource, - MapLayer, MapBounds, + MapLayer, + MapSource, } from '@togglecorp/re-map'; -import { ArtboardLineIcon } from '@ifrc-go/icons'; +import type { LngLatBoundsLike } from 'mapbox-gl'; import BaseMap from '#components/domain/BaseMap'; -import Button from '#components/Button'; -import Container from '#components/Container'; import DisasterTypeSelectInput from '#components/domain/DisasterTypeSelectInput'; import DistrictSearchMultiSelectInput, { type DistrictItem } from '#components/domain/DistrictSearchMultiSelectInput'; -import LegendItem from '#components/LegendItem'; import Link from '#components/Link'; import MapContainerWithDisclaimer from '#components/MapContainerWithDisclaimer'; import MapPopup from '#components/MapPopup'; -import RadioInput from '#components/RadioInput'; -import SelectInput from '#components/SelectInput'; -import TextOutput from '#components/TextOutput'; -import useFilterState from '#hooks/useFilterState'; +import useCountryRaw from '#hooks/domain/useCountryRaw'; import useGlobalEnums from '#hooks/domain/useGlobalEnums'; +import useFilterState from '#hooks/useFilterState'; import useInputState from '#hooks/useInputState'; -import { useRequest } from '#utils/restRequest'; -import type { GoApiUrlQuery, GoApiResponse } from '#utils/restRequest'; import { - adminFillLayerOptions, -} from '#utils/map'; -import { resolveToComponent } from '#utils/translation'; -import useTranslation from '#hooks/useTranslation'; -import { hasSomeDefinedValue, sumSafe } from '#utils/common'; -import useCountryRaw from '#hooks/domain/useCountryRaw'; -import { DEFAULT_MAP_PADDING, DURATION_MAP_ZOOM } from '#utils/constants'; -import DateInput from '#components/DateInput'; + DEFAULT_MAP_PADDING, + DURATION_MAP_ZOOM, +} from '#utils/constants'; +import { adminFillLayerOptions } from '#utils/map'; +import type { + GoApiResponse, + GoApiUrlQuery, +} from '#utils/restRequest'; +import { useRequest } from '#utils/restRequest'; -import i18n from './i18n.json'; import { - ScaleOption, - optionKeySelector, - optionLabelSelector, - outerCircleLayerOptionsForFinancialRequirements, - outerCircleLayerOptionsForPeopleTargeted, + APPEAL_TYPE_DREF, + APPEAL_TYPE_EAP, + APPEAL_TYPE_EMERGENCY, + APPEAL_TYPE_MULTIPLE, basePointLayerOptions, - COLOR_EMERGENCY_APPEAL, COLOR_DREF, COLOR_EAP, + COLOR_EMERGENCY_APPEAL, COLOR_MULTIPLE_TYPES, - APPEAL_TYPE_DREF, - APPEAL_TYPE_EMERGENCY, - APPEAL_TYPE_EAP, - APPEAL_TYPE_MULTIPLE, + optionKeySelector, + optionLabelSelector, + outerCircleLayerOptionsForFinancialRequirements, + outerCircleLayerOptionsForPeopleTargeted, + ScaleOption, } from './utils'; + +import i18n from './i18n.json'; import styles from './styles.module.css'; type AppealQueryParams = GoApiUrlQuery<'/api/v2/appeal/'>; diff --git a/src/components/domain/ActiveOperationMap/styles.module.css b/app/src/components/domain/ActiveOperationMap/styles.module.css similarity index 100% rename from src/components/domain/ActiveOperationMap/styles.module.css rename to app/src/components/domain/ActiveOperationMap/styles.module.css diff --git a/src/components/domain/ActiveOperationMap/utils.ts b/app/src/components/domain/ActiveOperationMap/utils.ts similarity index 100% rename from src/components/domain/ActiveOperationMap/utils.ts rename to app/src/components/domain/ActiveOperationMap/utils.ts index 2bd5cbf866..a8bbeeee88 100644 --- a/src/components/domain/ActiveOperationMap/utils.ts +++ b/app/src/components/domain/ActiveOperationMap/utils.ts @@ -1,14 +1,14 @@ import type { - CirclePaint, CircleLayer, + CirclePaint, } from 'mapbox-gl'; import { COLOR_BLACK, + COLOR_BLUE, + COLOR_ORANGE, COLOR_RED, COLOR_YELLOW, - COLOR_ORANGE, - COLOR_BLUE, } from '#utils/constants'; export const COLOR_EMERGENCY_APPEAL = COLOR_RED; diff --git a/src/components/domain/ActivityEventSearchSelectInput.tsx b/app/src/components/domain/ActivityEventSearchSelectInput.tsx similarity index 91% rename from src/components/domain/ActivityEventSearchSelectInput.tsx rename to app/src/components/domain/ActivityEventSearchSelectInput.tsx index bc4ee75c3e..36ebc61f76 100644 --- a/src/components/domain/ActivityEventSearchSelectInput.tsx +++ b/app/src/components/domain/ActivityEventSearchSelectInput.tsx @@ -1,10 +1,15 @@ import { useState } from 'react'; +import { + SearchSelectInput, + SearchSelectInputProps, +} from '@ifrc-go/ui'; -import SearchSelectInput, { - Props as SearchSelectInputProps, -} from '#components/SearchSelectInput'; -import { useRequest, type GoApiResponse, type GoApiUrlQuery } from '#utils/restRequest'; import useDebouncedValue from '#hooks/useDebouncedValue'; +import { + type GoApiResponse, + type GoApiUrlQuery, + useRequest, +} from '#utils/restRequest'; type GetEventParams = GoApiUrlQuery<'/api/v2/event/response-activity/'>; type GetEventResponse = GoApiResponse<'/api/v2/event/response-activity/'>; diff --git a/src/components/domain/AppealsOverYearsChart/MonthlyChart/i18n.json b/app/src/components/domain/AppealsOverYearsChart/MonthlyChart/i18n.json similarity index 100% rename from src/components/domain/AppealsOverYearsChart/MonthlyChart/i18n.json rename to app/src/components/domain/AppealsOverYearsChart/MonthlyChart/i18n.json diff --git a/src/components/domain/AppealsOverYearsChart/MonthlyChart/index.tsx b/app/src/components/domain/AppealsOverYearsChart/MonthlyChart/index.tsx similarity index 91% rename from src/components/domain/AppealsOverYearsChart/MonthlyChart/index.tsx rename to app/src/components/domain/AppealsOverYearsChart/MonthlyChart/index.tsx index 06794ffb16..d9499fdef6 100644 --- a/src/components/domain/AppealsOverYearsChart/MonthlyChart/index.tsx +++ b/app/src/components/domain/AppealsOverYearsChart/MonthlyChart/index.tsx @@ -1,15 +1,27 @@ -import { useMemo, useState, useCallback } from 'react'; -import { encodeDate, listToMap, isNotDefined } from '@togglecorp/fujs'; -import { useRequest } from '#utils/restRequest'; +import { + useCallback, + useMemo, + useState, +} from 'react'; +import { + BlockLoading, + Button, + Container, + TimeSeriesChart, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + getDatesSeparatedByMonths, + getFormattedDateKey, + resolveToComponent, +} from '@ifrc-go/ui/utils'; +import { + encodeDate, + isNotDefined, + listToMap, +} from '@togglecorp/fujs'; -import BlockLoading from '#components/BlockLoading'; -import Container from '#components/Container'; -import TimeSeriesChart from '#components/TimeSeriesChart'; -import Button from '#components/Button'; -import { getDatesSeparatedByMonths } from '#utils/chart'; -import { resolveToComponent } from '#utils/translation'; -import { getFormattedDateKey } from '#utils/common'; -import useTranslation from '#hooks/useTranslation'; +import { useRequest } from '#utils/restRequest'; import PointDetails from '../PointDetails'; diff --git a/src/components/domain/AppealsOverYearsChart/MonthlyChart/styles.module.css b/app/src/components/domain/AppealsOverYearsChart/MonthlyChart/styles.module.css similarity index 100% rename from src/components/domain/AppealsOverYearsChart/MonthlyChart/styles.module.css rename to app/src/components/domain/AppealsOverYearsChart/MonthlyChart/styles.module.css diff --git a/src/components/domain/AppealsOverYearsChart/PointDetails/i18n.json b/app/src/components/domain/AppealsOverYearsChart/PointDetails/i18n.json similarity index 100% rename from src/components/domain/AppealsOverYearsChart/PointDetails/i18n.json rename to app/src/components/domain/AppealsOverYearsChart/PointDetails/i18n.json diff --git a/src/components/domain/AppealsOverYearsChart/PointDetails/index.tsx b/app/src/components/domain/AppealsOverYearsChart/PointDetails/index.tsx similarity index 95% rename from src/components/domain/AppealsOverYearsChart/PointDetails/index.tsx rename to app/src/components/domain/AppealsOverYearsChart/PointDetails/index.tsx index 0f5884866e..9d0b54d60c 100644 --- a/src/components/domain/AppealsOverYearsChart/PointDetails/index.tsx +++ b/app/src/components/domain/AppealsOverYearsChart/PointDetails/index.tsx @@ -1,8 +1,10 @@ +import { + Container, + TextOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { _cs } from '@togglecorp/fujs'; -import Container from '#components/Container'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; import { type GoApiResponse } from '#utils/restRequest'; import i18n from './i18n.json'; diff --git a/src/components/domain/AppealsOverYearsChart/PointDetails/styles.module.css b/app/src/components/domain/AppealsOverYearsChart/PointDetails/styles.module.css similarity index 100% rename from src/components/domain/AppealsOverYearsChart/PointDetails/styles.module.css rename to app/src/components/domain/AppealsOverYearsChart/PointDetails/styles.module.css diff --git a/src/components/domain/AppealsOverYearsChart/YearlyChart/i18n.json b/app/src/components/domain/AppealsOverYearsChart/YearlyChart/i18n.json similarity index 100% rename from src/components/domain/AppealsOverYearsChart/YearlyChart/i18n.json rename to app/src/components/domain/AppealsOverYearsChart/YearlyChart/i18n.json diff --git a/src/components/domain/AppealsOverYearsChart/YearlyChart/index.tsx b/app/src/components/domain/AppealsOverYearsChart/YearlyChart/index.tsx similarity index 92% rename from src/components/domain/AppealsOverYearsChart/YearlyChart/index.tsx rename to app/src/components/domain/AppealsOverYearsChart/YearlyChart/index.tsx index dc90bce01a..ae56b84eb8 100644 --- a/src/components/domain/AppealsOverYearsChart/YearlyChart/index.tsx +++ b/app/src/components/domain/AppealsOverYearsChart/YearlyChart/index.tsx @@ -1,20 +1,28 @@ -import { useMemo, useState, useCallback } from 'react'; +import { + useCallback, + useMemo, + useState, +} from 'react'; +import { + BlockLoading, + Button, + Container, + Message, + TimeSeriesChart, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + getDatesSeparatedByYear, + getFormattedDateKey, +} from '@ifrc-go/ui/utils'; import { encodeDate, - listToMap, - isNotDefined, isDefined, + isNotDefined, + listToMap, } from '@togglecorp/fujs'; -import BlockLoading from '#components/BlockLoading'; -import Container from '#components/Container'; -import TimeSeriesChart from '#components/TimeSeriesChart'; -import Button from '#components/Button'; -import Message from '#components/Message'; import { useRequest } from '#utils/restRequest'; -import { getDatesSeparatedByYear } from '#utils/chart'; -import { getFormattedDateKey } from '#utils/common'; -import useTranslation from '#hooks/useTranslation'; import PointDetails from '../PointDetails'; diff --git a/src/components/domain/AppealsOverYearsChart/YearlyChart/styles.module.css b/app/src/components/domain/AppealsOverYearsChart/YearlyChart/styles.module.css similarity index 100% rename from src/components/domain/AppealsOverYearsChart/YearlyChart/styles.module.css rename to app/src/components/domain/AppealsOverYearsChart/YearlyChart/styles.module.css diff --git a/src/components/domain/AppealsOverYearsChart/index.tsx b/app/src/components/domain/AppealsOverYearsChart/index.tsx similarity index 100% rename from src/components/domain/AppealsOverYearsChart/index.tsx rename to app/src/components/domain/AppealsOverYearsChart/index.tsx index f1e09aa5de..0cd06ae096 100644 --- a/src/components/domain/AppealsOverYearsChart/index.tsx +++ b/app/src/components/domain/AppealsOverYearsChart/index.tsx @@ -1,8 +1,8 @@ import { useState } from 'react'; import { isNotDefined } from '@togglecorp/fujs'; -import YearlyChart from './YearlyChart'; import MonthlyChart from './MonthlyChart'; +import YearlyChart from './YearlyChart'; interface Props { regionId?: number; diff --git a/src/components/domain/AppealsTable/i18n.json b/app/src/components/domain/AppealsTable/i18n.json similarity index 100% rename from src/components/domain/AppealsTable/i18n.json rename to app/src/components/domain/AppealsTable/i18n.json diff --git a/src/components/domain/AppealsTable/index.tsx b/app/src/components/domain/AppealsTable/index.tsx similarity index 93% rename from src/components/domain/AppealsTable/index.tsx rename to app/src/components/domain/AppealsTable/index.tsx index 3080ce5623..6e26c63a28 100644 --- a/src/components/domain/AppealsTable/index.tsx +++ b/app/src/components/domain/AppealsTable/index.tsx @@ -1,28 +1,41 @@ -import { useMemo, useCallback, useState } from 'react'; -import { _cs, isDefined } from '@togglecorp/fujs'; +import { + useCallback, + useMemo, + useState, +} from 'react'; +import { + Button, + Container, + DateInput, + Pager, + SelectInput, + Table, +} from '@ifrc-go/ui'; +import { SortContext } from '@ifrc-go/ui/contexts'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + createDateColumn, + createNumberColumn, + createProgressColumn, + createStringColumn, + getPercentage, + hasSomeDefinedValue, +} from '@ifrc-go/ui/utils'; +import { + _cs, + isDefined, +} from '@togglecorp/fujs'; -import Button from '#components/Button'; -import Container from '#components/Container'; -import DateInput from '#components/DateInput'; import DisasterTypeSelectInput from '#components/domain/DisasterTypeSelectInput'; import DistrictSearchMultiSelectInput, { type DistrictItem } from '#components/domain/DistrictSearchMultiSelectInput'; -import Pager from '#components/Pager'; -import SelectInput from '#components/SelectInput'; -import Table from '#components/Table'; -import useFilterState from '#hooks/useFilterState'; import useGlobalEnums from '#hooks/domain/useGlobalEnums'; -import useTranslation from '#hooks/useTranslation'; -import { - createStringColumn, - createNumberColumn, - createDateColumn, - createLinkColumn, - createProgressColumn, -} from '#components/Table/ColumnShortcuts'; -import { SortContext } from '#components/Table/useSorting'; +import useFilterState from '#hooks/useFilterState'; +import { createLinkColumn } from '#utils/domain/tableHelpers'; +import type { + GoApiResponse, + GoApiUrlQuery, +} from '#utils/restRequest'; import { useRequest } from '#utils/restRequest'; -import type { GoApiResponse, GoApiUrlQuery } from '#utils/restRequest'; -import { hasSomeDefinedValue, getPercentage } from '#utils/common'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/components/domain/AppealsTable/styles.module.css b/app/src/components/domain/AppealsTable/styles.module.css similarity index 100% rename from src/components/domain/AppealsTable/styles.module.css rename to app/src/components/domain/AppealsTable/styles.module.css diff --git a/src/components/domain/BaseMap/index.tsx b/app/src/components/domain/BaseMap/index.tsx similarity index 99% rename from src/components/domain/BaseMap/index.tsx rename to app/src/components/domain/BaseMap/index.tsx index 37e2b1e2a6..47abb62bba 100644 --- a/src/components/domain/BaseMap/index.tsx +++ b/app/src/components/domain/BaseMap/index.tsx @@ -1,22 +1,23 @@ import { useMemo } from 'react'; -import { type SymbolLayer } from 'mapbox-gl'; -import Map, { - MapSource, - MapLayer, -} from '@togglecorp/re-map'; import { isDefined, - isNotDefined, isFalsyString, + isNotDefined, } from '@togglecorp/fujs'; +import Map, { + MapLayer, + MapSource, +} from '@togglecorp/re-map'; +import { type SymbolLayer } from 'mapbox-gl'; + +import useCountry from '#hooks/domain/useCountry'; import { - defaultMapStyle, - defaultMapOptions, adminLabelLayerOptions, - defaultNavControlPosition, + defaultMapOptions, + defaultMapStyle, defaultNavControlOptions, + defaultNavControlPosition, } from '#utils/map'; -import useCountry from '#hooks/domain/useCountry'; type MapProps = Parameters[0]; diff --git a/src/components/domain/CountryMultiSelectInput.tsx b/app/src/components/domain/CountryMultiSelectInput.tsx similarity index 84% rename from src/components/domain/CountryMultiSelectInput.tsx rename to app/src/components/domain/CountryMultiSelectInput.tsx index 20f90d776e..dad4662cc9 100644 --- a/src/components/domain/CountryMultiSelectInput.tsx +++ b/app/src/components/domain/CountryMultiSelectInput.tsx @@ -1,6 +1,12 @@ -import type { MultiSelectInputProps } from '#components/MultiSelectInput'; -import MultiSelectInput from '#components/MultiSelectInput'; -import { numericIdSelector, stringNameSelector } from '#utils/selectors'; +import { + MultiSelectInput, + MultiSelectInputProps, +} from '@ifrc-go/ui'; +import { + numericIdSelector, + stringNameSelector, +} from '@ifrc-go/ui/utils'; + import useCountry, { Country } from '#hooks/domain/useCountry'; export type CountryOption = Country; diff --git a/app/src/components/domain/CountryPageEmptyMessage/i18n.json b/app/src/components/domain/CountryPageEmptyMessage/i18n.json new file mode 100644 index 0000000000..52285369f4 --- /dev/null +++ b/app/src/components/domain/CountryPageEmptyMessage/i18n.json @@ -0,0 +1,6 @@ +{ + "namespace": "common", + "strings": { + "countryPageWipMessage": "This page is currently under construction!" + } +} diff --git a/app/src/components/domain/CountryPageEmptyMessage/index.tsx b/app/src/components/domain/CountryPageEmptyMessage/index.tsx new file mode 100644 index 0000000000..411bec590d --- /dev/null +++ b/app/src/components/domain/CountryPageEmptyMessage/index.tsx @@ -0,0 +1,29 @@ +import { PaintBrushLineIcon } from '@ifrc-go/icons'; +import { Message } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + +import i18n from './i18n.json'; +import styles from './styles.module.css'; + +interface Props { + title?: string; +} + +function CountryPageEmptyMessage(props: Props) { + const { + title, + } = props; + + const strings = useTranslation(i18n); + + return ( + } + description={strings.countryPageWipMessage} + /> + ); +} + +export default CountryPageEmptyMessage; diff --git a/app/src/components/domain/CountryPageEmptyMessage/styles.module.css b/app/src/components/domain/CountryPageEmptyMessage/styles.module.css new file mode 100644 index 0000000000..60091ad392 --- /dev/null +++ b/app/src/components/domain/CountryPageEmptyMessage/styles.module.css @@ -0,0 +1,3 @@ +.country-page-empty-message { + min-height: 24rem; +} diff --git a/src/components/domain/CountrySelectInput.tsx b/app/src/components/domain/CountrySelectInput.tsx similarity index 84% rename from src/components/domain/CountrySelectInput.tsx rename to app/src/components/domain/CountrySelectInput.tsx index effbdcd2ab..3ffbc11730 100644 --- a/src/components/domain/CountrySelectInput.tsx +++ b/app/src/components/domain/CountrySelectInput.tsx @@ -1,6 +1,12 @@ -import type { Props as SelectInputProps } from '#components/SelectInput'; -import SelectInput from '#components/SelectInput'; -import { numericIdSelector, stringNameSelector } from '#utils/selectors'; +import { + SelectInput, + SelectInputProps, +} from '@ifrc-go/ui'; +import { + numericIdSelector, + stringNameSelector, +} from '@ifrc-go/ui/utils'; + import useCountry, { Country } from '#hooks/domain/useCountry'; export type CountryOption = Country; diff --git a/src/components/domain/DetailsFailedToLoadMessage/i18n.json b/app/src/components/domain/DetailsFailedToLoadMessage/i18n.json similarity index 100% rename from src/components/domain/DetailsFailedToLoadMessage/i18n.json rename to app/src/components/domain/DetailsFailedToLoadMessage/i18n.json diff --git a/src/components/domain/DetailsFailedToLoadMessage/index.tsx b/app/src/components/domain/DetailsFailedToLoadMessage/index.tsx similarity index 86% rename from src/components/domain/DetailsFailedToLoadMessage/index.tsx rename to app/src/components/domain/DetailsFailedToLoadMessage/index.tsx index 7b6bea7326..610ea229bb 100644 --- a/src/components/domain/DetailsFailedToLoadMessage/index.tsx +++ b/app/src/components/domain/DetailsFailedToLoadMessage/index.tsx @@ -1,5 +1,5 @@ -import Message from '#components/Message'; -import useTranslation from '#hooks/useTranslation'; +import { Message } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import i18n from './i18n.json'; diff --git a/src/components/domain/DisasterTypeSelectInput.tsx b/app/src/components/domain/DisasterTypeSelectInput.tsx similarity index 92% rename from src/components/domain/DisasterTypeSelectInput.tsx rename to app/src/components/domain/DisasterTypeSelectInput.tsx index 28cce2e292..14fe14d43e 100644 --- a/src/components/domain/DisasterTypeSelectInput.tsx +++ b/app/src/components/domain/DisasterTypeSelectInput.tsx @@ -1,7 +1,10 @@ -import type { Props as SelectInputProps } from '#components/SelectInput'; -import SelectInput from '#components/SelectInput'; -import useDisasterType from '#hooks/domain/useDisasterType'; +import { + SelectInput, + SelectInputProps, +} from '@ifrc-go/ui'; + import { DisasterTypes } from '#contexts/domain'; +import useDisasterType from '#hooks/domain/useDisasterType'; export type DisasterTypeItem = NonNullable[number]; diff --git a/src/components/domain/DistrictMultiCountrySearchMultiSelectInput.tsx b/app/src/components/domain/DistrictMultiCountrySearchMultiSelectInput.tsx similarity index 97% rename from src/components/domain/DistrictMultiCountrySearchMultiSelectInput.tsx rename to app/src/components/domain/DistrictMultiCountrySearchMultiSelectInput.tsx index 9805d11bba..df399aa361 100644 --- a/src/components/domain/DistrictMultiCountrySearchMultiSelectInput.tsx +++ b/app/src/components/domain/DistrictMultiCountrySearchMultiSelectInput.tsx @@ -1,13 +1,13 @@ import { useState } from 'react'; -import { isNotDefined } from '@togglecorp/fujs'; - -import SearchMultiSelectInput, { +import { + SearchMultiSelectInput, SearchMultiSelectInputProps, -} from '#components/SearchMultiSelectInput'; +} from '@ifrc-go/ui'; +import { isNotDefined } from '@togglecorp/fujs'; -import { useRequest } from '#utils/restRequest'; -import useDebouncedValue from '#hooks/useDebouncedValue'; import { paths } from '#generated/types'; +import useDebouncedValue from '#hooks/useDebouncedValue'; +import { useRequest } from '#utils/restRequest'; type GetDistrict = paths['/api/v2/district/']['get']; type GetDistrictParams = GetDistrict['parameters']['query']; diff --git a/src/components/domain/DistrictSearchMultiSelectInput/i18n.json b/app/src/components/domain/DistrictSearchMultiSelectInput/i18n.json similarity index 100% rename from src/components/domain/DistrictSearchMultiSelectInput/i18n.json rename to app/src/components/domain/DistrictSearchMultiSelectInput/i18n.json diff --git a/src/components/domain/DistrictSearchMultiSelectInput/index.tsx b/app/src/components/domain/DistrictSearchMultiSelectInput/index.tsx similarity index 93% rename from src/components/domain/DistrictSearchMultiSelectInput/index.tsx rename to app/src/components/domain/DistrictSearchMultiSelectInput/index.tsx index 9ecf41db7f..5cc27b880f 100644 --- a/src/components/domain/DistrictSearchMultiSelectInput/index.tsx +++ b/app/src/components/domain/DistrictSearchMultiSelectInput/index.tsx @@ -1,20 +1,26 @@ -import { useCallback, useState } from 'react'; -import { isNotDefined, unique } from '@togglecorp/fujs'; - +import { + useCallback, + useState, +} from 'react'; import { CheckDoubleFillIcon } from '@ifrc-go/icons'; -import SearchMultiSelectInput, { +import { + Button, + SearchMultiSelectInput, SearchMultiSelectInputProps, -} from '#components/SearchMultiSelectInput'; +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + isNotDefined, + unique, +} from '@togglecorp/fujs'; +import useDebouncedValue from '#hooks/useDebouncedValue'; import { - useRequest, - useLazyRequest, - type GoApiUrlQuery, type GoApiResponse, + type GoApiUrlQuery, + useLazyRequest, + useRequest, } from '#utils/restRequest'; -import Button from '#components/Button'; -import useDebouncedValue from '#hooks/useDebouncedValue'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/components/domain/DistrictSearchMultiSelectInput/styles.module.css b/app/src/components/domain/DistrictSearchMultiSelectInput/styles.module.css similarity index 100% rename from src/components/domain/DistrictSearchMultiSelectInput/styles.module.css rename to app/src/components/domain/DistrictSearchMultiSelectInput/styles.module.css diff --git a/src/components/domain/DrefExportModal/i18n.json b/app/src/components/domain/DrefExportModal/i18n.json similarity index 100% rename from src/components/domain/DrefExportModal/i18n.json rename to app/src/components/domain/DrefExportModal/i18n.json diff --git a/src/components/domain/DrefExportModal/index.tsx b/app/src/components/domain/DrefExportModal/index.tsx similarity index 94% rename from src/components/domain/DrefExportModal/index.tsx rename to app/src/components/domain/DrefExportModal/index.tsx index c1a2a70447..fd7acf67d6 100644 --- a/src/components/domain/DrefExportModal/index.tsx +++ b/app/src/components/domain/DrefExportModal/index.tsx @@ -1,12 +1,19 @@ -import { useMemo, useState } from 'react'; +import { + useMemo, + useState, +} from 'react'; +import { + Message, + Modal, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + isDefined, + isNotDefined, +} from '@togglecorp/fujs'; -import { isDefined, isNotDefined } from '@togglecorp/fujs'; - -import Message from '#components/Message'; -import Modal from '#components/Modal'; import Link from '#components/Link'; import { type components } from '#generated/types'; -import useTranslation from '#hooks/useTranslation'; import { useRequest } from '#utils/restRequest'; import i18n from './i18n.json'; diff --git a/src/components/domain/DrefShareModal/UserItem/i18n.json b/app/src/components/domain/DrefShareModal/UserItem/i18n.json similarity index 100% rename from src/components/domain/DrefShareModal/UserItem/i18n.json rename to app/src/components/domain/DrefShareModal/UserItem/i18n.json diff --git a/src/components/domain/DrefShareModal/UserItem/index.tsx b/app/src/components/domain/DrefShareModal/UserItem/index.tsx similarity index 89% rename from src/components/domain/DrefShareModal/UserItem/index.tsx rename to app/src/components/domain/DrefShareModal/UserItem/index.tsx index f170443c0c..5e8f936688 100644 --- a/src/components/domain/DrefShareModal/UserItem/index.tsx +++ b/app/src/components/domain/DrefShareModal/UserItem/index.tsx @@ -1,11 +1,14 @@ import { useMemo } from 'react'; import { DeleteBinFillIcon } from '@ifrc-go/icons'; -import { _cs, isDefined } from '@togglecorp/fujs'; +import { Button } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + _cs, + isDefined, +} from '@togglecorp/fujs'; -import Button from '#components/Button'; -import useTranslation from '#hooks/useTranslation'; -import { getUserName } from '#utils/domain/user'; import { type User } from '#components/domain/UserSearchMultiSelectInput'; +import { getUserName } from '#utils/domain/user'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/components/domain/DrefShareModal/UserItem/styles.module.css b/app/src/components/domain/DrefShareModal/UserItem/styles.module.css similarity index 100% rename from src/components/domain/DrefShareModal/UserItem/styles.module.css rename to app/src/components/domain/DrefShareModal/UserItem/styles.module.css diff --git a/src/components/domain/DrefShareModal/i18n.json b/app/src/components/domain/DrefShareModal/i18n.json similarity index 100% rename from src/components/domain/DrefShareModal/i18n.json rename to app/src/components/domain/DrefShareModal/i18n.json diff --git a/src/components/domain/DrefShareModal/index.tsx b/app/src/components/domain/DrefShareModal/index.tsx similarity index 91% rename from src/components/domain/DrefShareModal/index.tsx rename to app/src/components/domain/DrefShareModal/index.tsx index 0c4223f5af..ee35cb26bd 100644 --- a/src/components/domain/DrefShareModal/index.tsx +++ b/app/src/components/domain/DrefShareModal/index.tsx @@ -1,16 +1,28 @@ -import { useCallback, useMemo } from 'react'; -import { isDefined, isNotDefined } from '@togglecorp/fujs'; +import { + useCallback, + useMemo, +} from 'react'; +import { + Button, + List, + Modal, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + isDefined, + isNotDefined, +} from '@togglecorp/fujs'; -import Button from '#components/Button'; -import List from '#components/List'; -import Modal from '#components/Modal'; import UserSearchMultiSelectInput, { type User } from '#components/domain/UserSearchMultiSelectInput'; import useAlert from '#hooks/useAlert'; import useInputState from '#hooks/useInputState'; -import useTranslation from '#hooks/useTranslation'; -import { useLazyRequest, useRequest } from '#utils/restRequest'; +import { + useLazyRequest, + useRequest, +} from '#utils/restRequest'; import UserItem from './UserItem'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/components/domain/DrefShareModal/styles.module.css b/app/src/components/domain/DrefShareModal/styles.module.css similarity index 100% rename from src/components/domain/DrefShareModal/styles.module.css rename to app/src/components/domain/DrefShareModal/styles.module.css diff --git a/src/components/domain/EventSearchSelectInput.tsx b/app/src/components/domain/EventSearchSelectInput.tsx similarity index 95% rename from src/components/domain/EventSearchSelectInput.tsx rename to app/src/components/domain/EventSearchSelectInput.tsx index e1a2d58f3c..155ae7bd7d 100644 --- a/src/components/domain/EventSearchSelectInput.tsx +++ b/app/src/components/domain/EventSearchSelectInput.tsx @@ -1,15 +1,15 @@ import { useState } from 'react'; +import { + SearchSelectInput, + SearchSelectInputProps, +} from '@ifrc-go/ui'; -import SearchSelectInput, { - Props as SearchSelectInputProps, -} from '#components/SearchSelectInput'; - +import useDebouncedValue from '#hooks/useDebouncedValue'; import { - useRequest, - type GoApiUrlQuery, type GoApiResponse, + type GoApiUrlQuery, + useRequest, } from '#utils/restRequest'; -import useDebouncedValue from '#hooks/useDebouncedValue'; type GetEventParams = GoApiUrlQuery<'/api/v2/event/mini/'>; type GetEventResponse = GoApiResponse<'/api/v2/event/mini/'>; diff --git a/src/components/domain/ExportButton/i18n.json b/app/src/components/domain/ExportButton/i18n.json similarity index 100% rename from src/components/domain/ExportButton/i18n.json rename to app/src/components/domain/ExportButton/i18n.json diff --git a/src/components/domain/ExportButton/index.tsx b/app/src/components/domain/ExportButton/index.tsx similarity index 84% rename from src/components/domain/ExportButton/index.tsx rename to app/src/components/domain/ExportButton/index.tsx index 0bb5f9a2e1..87d0e7444b 100644 --- a/src/components/domain/ExportButton/index.tsx +++ b/app/src/components/domain/ExportButton/index.tsx @@ -1,12 +1,11 @@ import { useMemo } from 'react'; +import { DownloadTwoLineIcon } from '@ifrc-go/icons'; import { - DownloadTwoLineIcon, -} from '@ifrc-go/icons'; - -import NumberOutput from '#components/NumberOutput'; -import { resolveToComponent } from '#utils/translation'; -import useTranslation from '#hooks/useTranslation'; -import Button from '#components/Button'; + Button, + NumberOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToComponent } from '@ifrc-go/ui/utils'; import i18n from './i18n.json'; diff --git a/src/components/domain/FieldReportSearchSelectInput.tsx b/app/src/components/domain/FieldReportSearchSelectInput.tsx similarity index 93% rename from src/components/domain/FieldReportSearchSelectInput.tsx rename to app/src/components/domain/FieldReportSearchSelectInput.tsx index 63da28e3e7..07e5889df6 100644 --- a/src/components/domain/FieldReportSearchSelectInput.tsx +++ b/app/src/components/domain/FieldReportSearchSelectInput.tsx @@ -1,15 +1,15 @@ import { useState } from 'react'; +import { + SearchSelectInput, + SearchSelectInputProps, +} from '@ifrc-go/ui'; -import SearchSelectInput, { - Props, -} from '#components/SearchSelectInput'; - +import useDebouncedValue from '#hooks/useDebouncedValue'; import { - useRequest, - type GoApiUrlQuery, type GoApiResponse, + type GoApiUrlQuery, + useRequest, } from '#utils/restRequest'; -import useDebouncedValue from '#hooks/useDebouncedValue'; type GetFieldReportParams = GoApiUrlQuery<'/api/v2/field-report/'>; type GetFieldReportResponse = GoApiResponse<'/api/v2/field-report/'>; @@ -19,7 +19,7 @@ const keySelector = (d: FieldReportItem) => d.id; const labelSelector = (d: FieldReportItem) => d.summary || '???'; type Def = { containerClassName?: string;} -type FieldReportSelectInputProps = Props< +type FieldReportSelectInputProps = SearchSelectInputProps< number, NAME, FieldReportItem, diff --git a/src/components/domain/FormFailedToLoadMessage/i18n.json b/app/src/components/domain/FormFailedToLoadMessage/i18n.json similarity index 100% rename from src/components/domain/FormFailedToLoadMessage/i18n.json rename to app/src/components/domain/FormFailedToLoadMessage/i18n.json diff --git a/src/components/domain/FormFailedToLoadMessage/index.tsx b/app/src/components/domain/FormFailedToLoadMessage/index.tsx similarity index 86% rename from src/components/domain/FormFailedToLoadMessage/index.tsx rename to app/src/components/domain/FormFailedToLoadMessage/index.tsx index 7d438c5a2f..92b6d8052d 100644 --- a/src/components/domain/FormFailedToLoadMessage/index.tsx +++ b/app/src/components/domain/FormFailedToLoadMessage/index.tsx @@ -1,5 +1,5 @@ -import Message from '#components/Message'; -import useTranslation from '#hooks/useTranslation'; +import { Message } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import i18n from './i18n.json'; diff --git a/src/components/domain/GoMultiFileInput/i18n.json b/app/src/components/domain/GoMultiFileInput/i18n.json similarity index 100% rename from src/components/domain/GoMultiFileInput/i18n.json rename to app/src/components/domain/GoMultiFileInput/i18n.json diff --git a/src/components/domain/GoMultiFileInput/index.tsx b/app/src/components/domain/GoMultiFileInput/index.tsx similarity index 95% rename from src/components/domain/GoMultiFileInput/index.tsx rename to app/src/components/domain/GoMultiFileInput/index.tsx index a84be0ec28..3adeee262b 100644 --- a/src/components/domain/GoMultiFileInput/index.tsx +++ b/app/src/components/domain/GoMultiFileInput/index.tsx @@ -1,22 +1,28 @@ -import React, { useCallback, useRef } from 'react'; +import React, { + useCallback, + useRef, +} from 'react'; +import { DeleteBinFillIcon } from '@ifrc-go/icons'; +import type { ButtonVariant } from '@ifrc-go/ui'; +import { + Button, + InputError, + NameType, + RawFileInput, + RawFileInputProps, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { _cs, isDefined, isNotDefined, } from '@togglecorp/fujs'; -import { DeleteBinFillIcon } from '@ifrc-go/icons'; import { nonFieldError } from '@togglecorp/toggle-form'; -import Button from '#components/Button'; -import InputError from '#components/InputError'; import Link from '#components/Link'; -import { NameType } from '#components/types'; -import type { ButtonVariant } from '#components/Button'; -import RawFileInput, { RawFileInputProps } from '#components/RawFileInput'; +import useAlert from '#hooks/useAlert'; import { useLazyRequest } from '#utils/restRequest'; import { transformObjectError } from '#utils/restRequest/error'; -import useAlert from '#hooks/useAlert'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/components/domain/GoMultiFileInput/styles.module.css b/app/src/components/domain/GoMultiFileInput/styles.module.css similarity index 100% rename from src/components/domain/GoMultiFileInput/styles.module.css rename to app/src/components/domain/GoMultiFileInput/styles.module.css diff --git a/src/components/domain/GoSingleFileInput/i18n.json b/app/src/components/domain/GoSingleFileInput/i18n.json similarity index 100% rename from src/components/domain/GoSingleFileInput/i18n.json rename to app/src/components/domain/GoSingleFileInput/i18n.json diff --git a/src/components/domain/GoSingleFileInput/index.tsx b/app/src/components/domain/GoSingleFileInput/index.tsx similarity index 93% rename from src/components/domain/GoSingleFileInput/index.tsx rename to app/src/components/domain/GoSingleFileInput/index.tsx index f2e93581c0..eb7d992bb5 100644 --- a/src/components/domain/GoSingleFileInput/index.tsx +++ b/app/src/components/domain/GoSingleFileInput/index.tsx @@ -1,18 +1,24 @@ import React, { useCallback } from 'react'; -import { _cs, isDefined } from '@togglecorp/fujs'; -import { nonFieldError } from '@togglecorp/toggle-form'; import { DeleteBinLineIcon } from '@ifrc-go/icons'; +import { + ButtonVariant, + IconButton, + InputError, + type NameType, + RawFileInput, + type RawFileInputProps, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + _cs, + isDefined, +} from '@togglecorp/fujs'; +import { nonFieldError } from '@togglecorp/toggle-form'; -import InputError from '#components/InputError'; -import { NameType } from '#components/types'; -import IconButton from '#components/IconButton'; import Link from '#components/Link'; -import type { ButtonVariant } from '#components/Button'; -import RawFileInput, { RawFileInputProps } from '#components/RawFileInput'; +import useAlert from '#hooks/useAlert'; import { useLazyRequest } from '#utils/restRequest'; import { transformObjectError } from '#utils/restRequest/error'; -import useAlert from '#hooks/useAlert'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/components/domain/GoSingleFileInput/styles.module.css b/app/src/components/domain/GoSingleFileInput/styles.module.css similarity index 100% rename from src/components/domain/GoSingleFileInput/styles.module.css rename to app/src/components/domain/GoSingleFileInput/styles.module.css diff --git a/src/components/domain/HighlightedOperations/OperationCard/i18n.json b/app/src/components/domain/HighlightedOperations/OperationCard/i18n.json similarity index 100% rename from src/components/domain/HighlightedOperations/OperationCard/i18n.json rename to app/src/components/domain/HighlightedOperations/OperationCard/i18n.json diff --git a/src/components/domain/HighlightedOperations/OperationCard/index.tsx b/app/src/components/domain/HighlightedOperations/OperationCard/index.tsx similarity index 93% rename from src/components/domain/HighlightedOperations/OperationCard/index.tsx rename to app/src/components/domain/HighlightedOperations/OperationCard/index.tsx index 4fcfa90082..33d553e0d8 100644 --- a/src/components/domain/HighlightedOperations/OperationCard/index.tsx +++ b/app/src/components/domain/HighlightedOperations/OperationCard/index.tsx @@ -1,21 +1,28 @@ import { useContext } from 'react'; -import { _cs, isNotDefined } from '@togglecorp/fujs'; import { FocusLineIcon } from '@ifrc-go/icons'; +import { + Button, + Container, + KeyFigure, + NumberOutput, + TextOutput, + Tooltip, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + resolveToComponent, + sumSafe, +} from '@ifrc-go/ui/utils'; +import { + _cs, + isNotDefined, +} from '@togglecorp/fujs'; -import DomainContext from '#contexts/domain'; -import Container from '#components/Container'; -import Button from '#components/Button'; -import NumberOutput from '#components/NumberOutput'; -import KeyFigure from '#components/KeyFigure'; -import Tooltip from '#components/Tooltip'; -import TextOutput from '#components/TextOutput'; import SeverityIndicator from '#components/domain/SeverityIndicator'; import Link from '#components/Link'; -import useTranslation from '#hooks/useTranslation'; +import DomainContext from '#contexts/domain'; import useAuth from '#hooks/domain/useAuth'; -import { resolveToComponent } from '#utils/translation'; import { useLazyRequest } from '#utils/restRequest'; -import { sumSafe } from '#utils/common'; import { type GoApiResponse } from '#utils/restRequest'; import i18n from './i18n.json'; diff --git a/src/components/domain/HighlightedOperations/OperationCard/styles.module.css b/app/src/components/domain/HighlightedOperations/OperationCard/styles.module.css similarity index 100% rename from src/components/domain/HighlightedOperations/OperationCard/styles.module.css rename to app/src/components/domain/HighlightedOperations/OperationCard/styles.module.css diff --git a/src/components/domain/HighlightedOperations/i18n.json b/app/src/components/domain/HighlightedOperations/i18n.json similarity index 100% rename from src/components/domain/HighlightedOperations/i18n.json rename to app/src/components/domain/HighlightedOperations/i18n.json diff --git a/src/components/domain/HighlightedOperations/index.tsx b/app/src/components/domain/HighlightedOperations/index.tsx similarity index 96% rename from src/components/domain/HighlightedOperations/index.tsx rename to app/src/components/domain/HighlightedOperations/index.tsx index f38a3fd22b..2dd5853643 100644 --- a/src/components/domain/HighlightedOperations/index.tsx +++ b/app/src/components/domain/HighlightedOperations/index.tsx @@ -1,20 +1,27 @@ -import { useCallback, useMemo } from 'react'; import { - listToMap, + useCallback, + useMemo, +} from 'react'; +import { + Container, + Grid, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { isDefined, + listToMap, } from '@togglecorp/fujs'; -import Container from '#components/Container'; + import Link from '#components/Link'; -import Grid from '#components/Grid'; -import useTranslation from '#hooks/useTranslation'; +import useUserMe from '#hooks/domain/useUserMe'; import { type GoApiResponse, type GoApiUrlQuery, useRequest, } from '#utils/restRequest'; -import useUserMe from '#hooks/domain/useUserMe'; import OperationCard from './OperationCard'; + import i18n from './i18n.json'; type EventQueryParams = GoApiUrlQuery<'/api/v2/event/'>; diff --git a/src/components/domain/HistoricalDataChart/i18n.json b/app/src/components/domain/HistoricalDataChart/i18n.json similarity index 100% rename from src/components/domain/HistoricalDataChart/i18n.json rename to app/src/components/domain/HistoricalDataChart/i18n.json diff --git a/src/components/domain/HistoricalDataChart/index.tsx b/app/src/components/domain/HistoricalDataChart/index.tsx similarity index 96% rename from src/components/domain/HistoricalDataChart/index.tsx rename to app/src/components/domain/HistoricalDataChart/index.tsx index 9b0826ee39..362d156899 100644 --- a/src/components/domain/HistoricalDataChart/index.tsx +++ b/app/src/components/domain/HistoricalDataChart/index.tsx @@ -1,31 +1,33 @@ import { useRef } from 'react'; import { - isDefined, - isFalsyString, - isNotDefined, - unique, -} from '@togglecorp/fujs'; -import { + CycloneIcon, DroughtIcon, FloodIcon, FoodSecurityIcon, - CycloneIcon, } from '@ifrc-go/icons'; - -import Container from '#components/Container'; -import SelectInput from '#components/SelectInput'; -import Tooltip from '#components/Tooltip'; -import TextOutput from '#components/TextOutput'; -import ChartAxes from '#components/ChartAxes'; -import useTranslation from '#hooks/useTranslation'; -import useInputState from '#hooks/useInputState'; -import { useRequest } from '#utils/restRequest'; -import type { GoApiResponse } from '#utils/restRequest'; -import { numericIdSelector, stringNameSelector } from '#utils/selectors'; +import { + ChartAxes, + Container, + SelectInput, + TextOutput, + Tooltip, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { getPercentage, + numericIdSelector, + stringNameSelector, sumSafe, -} from '#utils/common'; +} from '@ifrc-go/ui/utils'; +import { + isDefined, + isFalsyString, + isNotDefined, + unique, +} from '@togglecorp/fujs'; + +import useChartData from '#hooks/useChartData'; +import useInputState from '#hooks/useInputState'; import { COLOR_HAZARD_CYCLONE, COLOR_HAZARD_DROUGHT, @@ -34,7 +36,8 @@ import { defaultChartMargin, defaultChartPadding, } from '#utils/constants'; -import useChartData from '#hooks/useChartData'; +import type { GoApiResponse } from '#utils/restRequest'; +import { useRequest } from '#utils/restRequest'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/components/domain/HistoricalDataChart/styles.module.css b/app/src/components/domain/HistoricalDataChart/styles.module.css similarity index 100% rename from src/components/domain/HistoricalDataChart/styles.module.css rename to app/src/components/domain/HistoricalDataChart/styles.module.css diff --git a/src/components/domain/ImageWithCaptionInput/i18n.json b/app/src/components/domain/ImageWithCaptionInput/i18n.json similarity index 100% rename from src/components/domain/ImageWithCaptionInput/i18n.json rename to app/src/components/domain/ImageWithCaptionInput/i18n.json diff --git a/src/components/domain/ImageWithCaptionInput/index.tsx b/app/src/components/domain/ImageWithCaptionInput/index.tsx similarity index 94% rename from src/components/domain/ImageWithCaptionInput/index.tsx rename to app/src/components/domain/ImageWithCaptionInput/index.tsx index bf99c2e364..d55aa5e2dd 100644 --- a/src/components/domain/ImageWithCaptionInput/index.tsx +++ b/app/src/components/domain/ImageWithCaptionInput/index.tsx @@ -1,22 +1,20 @@ import { useCallback } from 'react'; -import { - useFormObject, - type ObjectError, - getErrorObject, - type SetValueArg, -} from '@togglecorp/toggle-form'; +import { TextInput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { _cs, isDefined, randomString, } from '@togglecorp/fujs'; +import { + getErrorObject, + type ObjectError, + type SetValueArg, + useFormObject, +} from '@togglecorp/toggle-form'; +import GoSingleFileInput, { type SupportedPaths } from '#components/domain/GoSingleFileInput'; import NonFieldError from '#components/NonFieldError'; -import GoSingleFileInput, { - type SupportedPaths, -} from '#components/domain/GoSingleFileInput'; -import TextInput from '#components/TextInput'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/components/domain/ImageWithCaptionInput/styles.module.css b/app/src/components/domain/ImageWithCaptionInput/styles.module.css similarity index 100% rename from src/components/domain/ImageWithCaptionInput/styles.module.css rename to app/src/components/domain/ImageWithCaptionInput/styles.module.css diff --git a/src/components/domain/KeywordSearchSelectInput/i18n.json b/app/src/components/domain/KeywordSearchSelectInput/i18n.json similarity index 100% rename from src/components/domain/KeywordSearchSelectInput/i18n.json rename to app/src/components/domain/KeywordSearchSelectInput/i18n.json diff --git a/src/components/domain/KeywordSearchSelectInput/index.tsx b/app/src/components/domain/KeywordSearchSelectInput/index.tsx similarity index 97% rename from src/components/domain/KeywordSearchSelectInput/index.tsx rename to app/src/components/domain/KeywordSearchSelectInput/index.tsx index cf527a0e8f..b6d47b61a8 100644 --- a/src/components/domain/KeywordSearchSelectInput/index.tsx +++ b/app/src/components/domain/KeywordSearchSelectInput/index.tsx @@ -1,23 +1,28 @@ -import { useState, useCallback, useMemo } from 'react'; +import { + useCallback, + useMemo, + useState, +} from 'react'; +import { SearchLineIcon } from '@ifrc-go/icons'; +import { SearchSelectInput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { sumSafe } from '@ifrc-go/ui/utils'; import { compareNumber, isDefined, isNotDefined, mapToList, } from '@togglecorp/fujs'; -import { SearchLineIcon } from '@ifrc-go/icons'; -import SearchSelectInput from '#components/SearchSelectInput'; +import useDebouncedValue from '#hooks/useDebouncedValue'; import useRouting from '#hooks/useRouting'; -import { sumSafe, defaultRanking } from '#utils/common'; +import { defaultRanking } from '#utils/common'; +import { KEY_URL_SEARCH } from '#utils/constants'; import { - useRequest, - type GoApiUrlQuery, type GoApiResponse, + type GoApiUrlQuery, + useRequest, } from '#utils/restRequest'; -import useDebouncedValue from '#hooks/useDebouncedValue'; -import useTranslation from '#hooks/useTranslation'; -import { KEY_URL_SEARCH } from '#utils/constants'; import { type WrappedRoutes } from '../../../App/routes'; diff --git a/src/components/domain/LanguageMismatchMessage/i18n.json b/app/src/components/domain/LanguageMismatchMessage/i18n.json similarity index 100% rename from src/components/domain/LanguageMismatchMessage/i18n.json rename to app/src/components/domain/LanguageMismatchMessage/i18n.json diff --git a/src/components/domain/LanguageMismatchMessage/index.tsx b/app/src/components/domain/LanguageMismatchMessage/index.tsx similarity index 82% rename from src/components/domain/LanguageMismatchMessage/index.tsx rename to app/src/components/domain/LanguageMismatchMessage/index.tsx index 1d3c177392..bdb95ec9d3 100644 --- a/src/components/domain/LanguageMismatchMessage/index.tsx +++ b/app/src/components/domain/LanguageMismatchMessage/index.tsx @@ -1,8 +1,10 @@ -import Message from '#components/Message'; -import { Language } from '#contexts/language'; -import useTranslation from '#hooks/useTranslation'; -import { languageNameMapEn } from '#utils/common'; -import { resolveToString } from '#utils/translation'; +import { Message } from '@ifrc-go/ui'; +import { Language } from '@ifrc-go/ui/contexts'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + languageNameMapEn, + resolveToString, +} from '@ifrc-go/ui/utils'; import i18n from './i18n.json'; diff --git a/src/components/domain/MultiImageWithCaptionInput/i18n.json b/app/src/components/domain/MultiImageWithCaptionInput/i18n.json similarity index 100% rename from src/components/domain/MultiImageWithCaptionInput/i18n.json rename to app/src/components/domain/MultiImageWithCaptionInput/i18n.json diff --git a/src/components/domain/MultiImageWithCaptionInput/index.tsx b/app/src/components/domain/MultiImageWithCaptionInput/index.tsx similarity index 95% rename from src/components/domain/MultiImageWithCaptionInput/index.tsx rename to app/src/components/domain/MultiImageWithCaptionInput/index.tsx index c234e7b12b..e405178784 100644 --- a/src/components/domain/MultiImageWithCaptionInput/index.tsx +++ b/app/src/components/domain/MultiImageWithCaptionInput/index.tsx @@ -1,25 +1,28 @@ -import { useMemo, useCallback } from 'react'; import { - getErrorObject, - useFormArray, - type ArrayError, - type SetValueArg, -} from '@togglecorp/toggle-form'; + useCallback, + useMemo, +} from 'react'; import { DeleteBinLineIcon } from '@ifrc-go/icons'; +import { + IconButton, + TextInput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { _cs, isDefined, isNotDefined, randomString, } from '@togglecorp/fujs'; +import { + type ArrayError, + getErrorObject, + type SetValueArg, + useFormArray, +} from '@togglecorp/toggle-form'; -import IconButton from '#components/IconButton'; +import GoMultiFileInput, { type SupportedPaths } from '#components/domain/GoMultiFileInput'; import NonFieldError from '#components/NonFieldError'; -import GoMultiFileInput, { - type SupportedPaths, -} from '#components/domain/GoMultiFileInput'; -import TextInput from '#components/TextInput'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/components/domain/MultiImageWithCaptionInput/styles.module.css b/app/src/components/domain/MultiImageWithCaptionInput/styles.module.css similarity index 100% rename from src/components/domain/MultiImageWithCaptionInput/styles.module.css rename to app/src/components/domain/MultiImageWithCaptionInput/styles.module.css diff --git a/src/components/domain/NationalSocietyMultiSelectInput.tsx b/app/src/components/domain/NationalSocietyMultiSelectInput.tsx similarity index 86% rename from src/components/domain/NationalSocietyMultiSelectInput.tsx rename to app/src/components/domain/NationalSocietyMultiSelectInput.tsx index 94bec889fb..6fac81eab9 100644 --- a/src/components/domain/NationalSocietyMultiSelectInput.tsx +++ b/app/src/components/domain/NationalSocietyMultiSelectInput.tsx @@ -1,6 +1,9 @@ -import type { MultiSelectInputProps } from '#components/MultiSelectInput'; -import MultiSelectInput from '#components/MultiSelectInput'; -import { numericIdSelector } from '#utils/selectors'; +import { + MultiSelectInput, + MultiSelectInputProps, +} from '@ifrc-go/ui'; +import { numericIdSelector } from '@ifrc-go/ui/utils'; + import useNationalSociety, { NationalSociety } from '#hooks/domain/useNationalSociety'; function countrySocietyNameSelector(country: NationalSociety) { diff --git a/src/components/domain/NationalSocietySelectInput.tsx b/app/src/components/domain/NationalSocietySelectInput.tsx similarity index 90% rename from src/components/domain/NationalSocietySelectInput.tsx rename to app/src/components/domain/NationalSocietySelectInput.tsx index faf8c61e9e..74a54ab73f 100644 --- a/src/components/domain/NationalSocietySelectInput.tsx +++ b/app/src/components/domain/NationalSocietySelectInput.tsx @@ -1,8 +1,10 @@ +import { + SelectInput, + SelectInputProps, +} from '@ifrc-go/ui'; +import { numericIdSelector } from '@ifrc-go/ui/utils'; import { isDefined } from '@togglecorp/fujs'; -import type { Props as SelectInputProps } from '#components/SelectInput'; -import SelectInput from '#components/SelectInput'; -import { numericIdSelector } from '#utils/selectors'; import useNationalSociety, { NationalSociety } from '#hooks/domain/useNationalSociety'; function countrySocietyNameSelector(country: NationalSociety) { diff --git a/src/components/domain/NonEnglishFormCreationMessage/i18n.json b/app/src/components/domain/NonEnglishFormCreationMessage/i18n.json similarity index 100% rename from src/components/domain/NonEnglishFormCreationMessage/i18n.json rename to app/src/components/domain/NonEnglishFormCreationMessage/i18n.json diff --git a/src/components/domain/NonEnglishFormCreationMessage/index.tsx b/app/src/components/domain/NonEnglishFormCreationMessage/index.tsx similarity index 84% rename from src/components/domain/NonEnglishFormCreationMessage/index.tsx rename to app/src/components/domain/NonEnglishFormCreationMessage/index.tsx index cf958de74a..2ddb6fd7db 100644 --- a/src/components/domain/NonEnglishFormCreationMessage/index.tsx +++ b/app/src/components/domain/NonEnglishFormCreationMessage/index.tsx @@ -1,5 +1,5 @@ -import Message from '#components/Message'; -import useTranslation from '#hooks/useTranslation'; +import { Message } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import i18n from './i18n.json'; diff --git a/src/components/domain/OperationListItem/i18n.json b/app/src/components/domain/OperationListItem/i18n.json similarity index 100% rename from src/components/domain/OperationListItem/i18n.json rename to app/src/components/domain/OperationListItem/i18n.json diff --git a/src/components/domain/OperationListItem/index.tsx b/app/src/components/domain/OperationListItem/index.tsx similarity index 88% rename from src/components/domain/OperationListItem/index.tsx rename to app/src/components/domain/OperationListItem/index.tsx index ffa2ea816b..e9937ce2cf 100644 --- a/src/components/domain/OperationListItem/index.tsx +++ b/app/src/components/domain/OperationListItem/index.tsx @@ -1,8 +1,14 @@ -import Header from '#components/Header'; -import Button from '#components/Button'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; -import { type GoApiResponse, useLazyRequest } from '#utils/restRequest'; +import { + Button, + Header, + TextOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + +import { + type GoApiResponse, + useLazyRequest, +} from '#utils/restRequest'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/components/domain/OperationListItem/styles.module.css b/app/src/components/domain/OperationListItem/styles.module.css similarity index 100% rename from src/components/domain/OperationListItem/styles.module.css rename to app/src/components/domain/OperationListItem/styles.module.css diff --git a/src/components/domain/PerAssessmentSummary/i18n.json b/app/src/components/domain/PerAssessmentSummary/i18n.json similarity index 100% rename from src/components/domain/PerAssessmentSummary/i18n.json rename to app/src/components/domain/PerAssessmentSummary/i18n.json diff --git a/src/components/domain/PerAssessmentSummary/index.tsx b/app/src/components/domain/PerAssessmentSummary/index.tsx similarity index 95% rename from src/components/domain/PerAssessmentSummary/index.tsx rename to app/src/components/domain/PerAssessmentSummary/index.tsx index e379e9bda0..31f9734632 100644 --- a/src/components/domain/PerAssessmentSummary/index.tsx +++ b/app/src/components/domain/PerAssessmentSummary/index.tsx @@ -1,22 +1,27 @@ import { - listToMap, - listToGroupList, - mapToList, + ExpandableContainer, + NumberOutput, + ProgressBar, + StackedProgressBar, + TextOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + getPercentage, + resolveToString, + sumSafe, +} from '@ifrc-go/ui/utils'; +import { _cs, + compareNumber, isDefined, isNotDefined, - compareNumber, + listToGroupList, + listToMap, + mapToList, } from '@togglecorp/fujs'; import { PartialForm } from '@togglecorp/toggle-form'; -import ExpandableContainer from '#components/ExpandableContainer'; -import ProgressBar from '#components/ProgressBar'; -import NumberOutput from '#components/NumberOutput'; -import StackedProgressBar from '#components/StackedProgressBar'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; -import { getPercentage, sumSafe } from '#utils/common'; -import { resolveToString } from '#utils/translation'; import { type GoApiResponse } from '#utils/restRequest'; import i18n from './i18n.json'; diff --git a/src/components/domain/PerAssessmentSummary/styles.module.css b/app/src/components/domain/PerAssessmentSummary/styles.module.css similarity index 100% rename from src/components/domain/PerAssessmentSummary/styles.module.css rename to app/src/components/domain/PerAssessmentSummary/styles.module.css diff --git a/src/components/domain/ProjectActions/i18n.json b/app/src/components/domain/ProjectActions/i18n.json similarity index 100% rename from src/components/domain/ProjectActions/i18n.json rename to app/src/components/domain/ProjectActions/i18n.json diff --git a/src/components/domain/ProjectActions/index.tsx b/app/src/components/domain/ProjectActions/index.tsx similarity index 93% rename from src/components/domain/ProjectActions/index.tsx rename to app/src/components/domain/ProjectActions/index.tsx index 4c3fb9ae5c..cd302758f9 100644 --- a/src/components/domain/ProjectActions/index.tsx +++ b/app/src/components/domain/ProjectActions/index.tsx @@ -1,23 +1,25 @@ import { - MoreFillIcon, - SearchLineIcon, - PencilFillIcon, CopyLineIcon, - HistoryLineIcon, DeleteBinLineIcon, + HistoryLineIcon, + MoreFillIcon, + PencilFillIcon, + SearchLineIcon, } from '@ifrc-go/icons'; +import { + BlockLoading, + ConfirmButton, + DropdownMenu, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToString } from '@ifrc-go/ui/utils'; -import { resolveUrl } from '#utils/resolveUrl'; -import { useLazyRequest } from '#utils/restRequest'; -import BlockLoading from '#components/BlockLoading'; -import DropdownMenu from '#components/DropdownMenu'; import DropdownMenuItem from '#components/DropdownMenuItem'; -import useTranslation from '#hooks/useTranslation'; -import ConfirmButton from '#components/ConfirmButton'; -import useAlert from '#hooks/useAlert'; import { adminUrl } from '#config'; +import useAlert from '#hooks/useAlert'; +import { resolveUrl } from '#utils/resolveUrl'; +import { useLazyRequest } from '#utils/restRequest'; import { type GoApiResponse } from '#utils/restRequest'; -import { resolveToString } from '#utils/translation'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/components/domain/ProjectActions/styles.module.css b/app/src/components/domain/ProjectActions/styles.module.css similarity index 100% rename from src/components/domain/ProjectActions/styles.module.css rename to app/src/components/domain/ProjectActions/styles.module.css diff --git a/src/components/domain/RegionKeyFigures/i18n.json b/app/src/components/domain/RegionKeyFigures/i18n.json similarity index 100% rename from src/components/domain/RegionKeyFigures/i18n.json rename to app/src/components/domain/RegionKeyFigures/i18n.json diff --git a/src/components/domain/RegionKeyFigures/index.tsx b/app/src/components/domain/RegionKeyFigures/index.tsx similarity index 94% rename from src/components/domain/RegionKeyFigures/index.tsx rename to app/src/components/domain/RegionKeyFigures/index.tsx index d11c17241d..b790588a54 100644 --- a/src/components/domain/RegionKeyFigures/index.tsx +++ b/app/src/components/domain/RegionKeyFigures/index.tsx @@ -1,19 +1,21 @@ import { - DrefIcon, AppealsIcon, - FundingIcon, + AppealsTwoIcon, + DrefIcon, FundingCoverageIcon, + FundingIcon, TargetedPopulationIcon, - AppealsTwoIcon, } from '@ifrc-go/icons'; +import { + InfoPopup, + KeyFigure, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { getPercentage } from '@ifrc-go/ui/utils'; import { isNotDefined } from '@togglecorp/fujs'; -import KeyFigure from '#components/KeyFigure'; -import InfoPopup from '#components/InfoPopup'; -import useTranslation from '#hooks/useTranslation'; -import { useRequest } from '#utils/restRequest'; -import { getPercentage } from '#utils/common'; import type { GoApiResponse } from '#utils/restRequest'; +import { useRequest } from '#utils/restRequest'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/components/domain/RegionKeyFigures/styles.module.css b/app/src/components/domain/RegionKeyFigures/styles.module.css similarity index 100% rename from src/components/domain/RegionKeyFigures/styles.module.css rename to app/src/components/domain/RegionKeyFigures/styles.module.css diff --git a/src/components/domain/RegionSelectInput.tsx b/app/src/components/domain/RegionSelectInput.tsx similarity index 88% rename from src/components/domain/RegionSelectInput.tsx rename to app/src/components/domain/RegionSelectInput.tsx index c4048d1000..5d845a8cea 100644 --- a/src/components/domain/RegionSelectInput.tsx +++ b/app/src/components/domain/RegionSelectInput.tsx @@ -1,8 +1,11 @@ -import type { Props as SelectInputProps } from '#components/SelectInput'; -import SelectInput from '#components/SelectInput'; -import useGlobalEnums from '#hooks/domain/useGlobalEnums'; +import { + SelectInput, + SelectInputProps, +} from '@ifrc-go/ui'; +import { stringValueSelector } from '@ifrc-go/ui/utils'; + import { type components } from '#generated/types'; -import { stringValueSelector } from '#utils/selectors'; +import useGlobalEnums from '#hooks/domain/useGlobalEnums'; export type RegionOption = components<'read'>['schemas']['ApiRegionNameEnum']; function regionKeySelector(option: RegionOption) { diff --git a/src/components/domain/RiskImminentEventMap/i18n.json b/app/src/components/domain/RiskImminentEventMap/i18n.json similarity index 100% rename from src/components/domain/RiskImminentEventMap/i18n.json rename to app/src/components/domain/RiskImminentEventMap/i18n.json diff --git a/src/components/domain/RiskImminentEventMap/index.tsx b/app/src/components/domain/RiskImminentEventMap/index.tsx similarity index 97% rename from src/components/domain/RiskImminentEventMap/index.tsx rename to app/src/components/domain/RiskImminentEventMap/index.tsx index 533f93acf0..42173d99b0 100644 --- a/src/components/domain/RiskImminentEventMap/index.tsx +++ b/app/src/components/domain/RiskImminentEventMap/index.tsx @@ -1,45 +1,55 @@ -import type { LngLatBoundsLike, SymbolLayer } from 'mapbox-gl'; -import { useCallback, useMemo, useState } from 'react'; +import { + useCallback, + useMemo, + useState, +} from 'react'; +import { ChevronLeftLineIcon } from '@ifrc-go/icons'; +import { + Button, + Container, + List, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { isDefined, isNotDefined, mapToList, } from '@togglecorp/fujs'; import { - MapSource, - MapLayer, - MapImage, MapBounds, + MapImage, + MapLayer, + MapSource, } from '@togglecorp/re-map'; -import { ChevronLeftLineIcon } from '@ifrc-go/icons'; import getBbox from '@turf/bbox'; import getBuffer from '@turf/buffer'; +import type { + LngLatBoundsLike, + SymbolLayer, +} from 'mapbox-gl'; -import Container from '#components/Container'; -import Button from '#components/Button'; -import List from '#components/List'; -import useDebouncedValue from '#hooks/useDebouncedValue'; +import BaseMap from '#components/domain/BaseMap'; +import MapContainerWithDisclaimer from '#components/MapContainerWithDisclaimer'; import { type components } from '#generated/riskTypes'; +import useDebouncedValue from '#hooks/useDebouncedValue'; import { COLOR_WHITE, DEFAULT_MAP_PADDING, DURATION_MAP_ZOOM, } from '#utils/constants'; -import MapContainerWithDisclaimer from '#components/MapContainerWithDisclaimer'; -import BaseMap from '#components/domain/BaseMap'; -import useTranslation from '#hooks/useTranslation'; import { exposureFillLayer, geojsonSourceOptions, - hazardPointLayer, - trackOutlineLayer, - trackPointLayer, hazardKeyToIconmap, - invisibleLayout, hazardPointIconLayout, + hazardPointLayer, + invisibleLayout, trackArrowLayer, + trackOutlineLayer, + trackPointLayer, } from './mapStyles'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/components/domain/RiskImminentEventMap/mapStyles.ts b/app/src/components/domain/RiskImminentEventMap/mapStyles.ts similarity index 95% rename from src/components/domain/RiskImminentEventMap/mapStyles.ts rename to app/src/components/domain/RiskImminentEventMap/mapStyles.ts index ef1334d515..206d758d77 100644 --- a/src/components/domain/RiskImminentEventMap/mapStyles.ts +++ b/app/src/components/domain/RiskImminentEventMap/mapStyles.ts @@ -1,23 +1,28 @@ +import { + isDefined, + mapToList, +} from '@togglecorp/fujs'; import type { - SymbolLayout, + CircleLayer, CirclePaint, FillLayer, - LineLayer, - CircleLayer, Layout, + LineLayer, SymbolLayer, + SymbolLayout, } from 'mapbox-gl'; -import { hazardTypeToColorMap } from '#utils/domain/risk'; -import { COLOR_BLACK, COLOR_PRIMARY_BLUE } from '#utils/constants'; -import { isDefined, mapToList } from '@togglecorp/fujs'; -import earthquakeIcon from '#assets/icons/risk/earthquake.png'; -import floodIcon from '#assets/icons/risk/flood.png'; import cycloneIcon from '#assets/icons/risk/cyclone.png'; import droughtIcon from '#assets/icons/risk/drought.png'; +import earthquakeIcon from '#assets/icons/risk/earthquake.png'; +import floodIcon from '#assets/icons/risk/flood.png'; import wildfireIcon from '#assets/icons/risk/wildfire.png'; - import { type components } from '#generated/riskTypes'; +import { + COLOR_BLACK, + COLOR_PRIMARY_BLUE, +} from '#utils/constants'; +import { hazardTypeToColorMap } from '#utils/domain/risk'; type HazardType = components<'read'>['schemas']['HazardTypeEnum']; diff --git a/src/components/domain/RiskImminentEventMap/styles.module.css b/app/src/components/domain/RiskImminentEventMap/styles.module.css similarity index 100% rename from src/components/domain/RiskImminentEventMap/styles.module.css rename to app/src/components/domain/RiskImminentEventMap/styles.module.css diff --git a/src/components/domain/RiskImminentEvents/Gdacs/EventDetails/i18n.json b/app/src/components/domain/RiskImminentEvents/Gdacs/EventDetails/i18n.json similarity index 100% rename from src/components/domain/RiskImminentEvents/Gdacs/EventDetails/i18n.json rename to app/src/components/domain/RiskImminentEvents/Gdacs/EventDetails/i18n.json diff --git a/src/components/domain/RiskImminentEvents/Gdacs/EventDetails/index.tsx b/app/src/components/domain/RiskImminentEvents/Gdacs/EventDetails/index.tsx similarity index 96% rename from src/components/domain/RiskImminentEvents/Gdacs/EventDetails/index.tsx rename to app/src/components/domain/RiskImminentEvents/Gdacs/EventDetails/index.tsx index 39912c53db..851fd8f345 100644 --- a/src/components/domain/RiskImminentEvents/Gdacs/EventDetails/index.tsx +++ b/app/src/components/domain/RiskImminentEvents/Gdacs/EventDetails/index.tsx @@ -1,11 +1,13 @@ +import { + BlockLoading, + Container, + TextOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { isDefined } from '@togglecorp/fujs'; -import BlockLoading from '#components/BlockLoading'; -import Container from '#components/Container'; import Link from '#components/Link'; -import TextOutput from '#components/TextOutput'; import { type RiskApiResponse } from '#utils/restRequest'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/components/domain/RiskImminentEvents/Gdacs/EventDetails/styles.module.css b/app/src/components/domain/RiskImminentEvents/Gdacs/EventDetails/styles.module.css similarity index 100% rename from src/components/domain/RiskImminentEvents/Gdacs/EventDetails/styles.module.css rename to app/src/components/domain/RiskImminentEvents/Gdacs/EventDetails/styles.module.css diff --git a/src/components/domain/RiskImminentEvents/Gdacs/EventListItem/i18n.json b/app/src/components/domain/RiskImminentEvents/Gdacs/EventListItem/i18n.json similarity index 100% rename from src/components/domain/RiskImminentEvents/Gdacs/EventListItem/i18n.json rename to app/src/components/domain/RiskImminentEvents/Gdacs/EventListItem/i18n.json diff --git a/src/components/domain/RiskImminentEvents/Gdacs/EventListItem/index.tsx b/app/src/components/domain/RiskImminentEvents/Gdacs/EventListItem/index.tsx similarity index 88% rename from src/components/domain/RiskImminentEvents/Gdacs/EventListItem/index.tsx rename to app/src/components/domain/RiskImminentEvents/Gdacs/EventListItem/index.tsx index cd5245b0ba..0a4f257ddf 100644 --- a/src/components/domain/RiskImminentEvents/Gdacs/EventListItem/index.tsx +++ b/app/src/components/domain/RiskImminentEvents/Gdacs/EventListItem/index.tsx @@ -1,10 +1,12 @@ import { ChevronRightLineIcon } from '@ifrc-go/icons'; +import { + Button, + Header, + TextOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; -import Button from '#components/Button'; -import Header from '#components/Header'; -import TextOutput from '#components/TextOutput'; import { type RiskApiResponse } from '#utils/restRequest'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/components/domain/RiskImminentEvents/Gdacs/EventListItem/styles.module.css b/app/src/components/domain/RiskImminentEvents/Gdacs/EventListItem/styles.module.css similarity index 100% rename from src/components/domain/RiskImminentEvents/Gdacs/EventListItem/styles.module.css rename to app/src/components/domain/RiskImminentEvents/Gdacs/EventListItem/styles.module.css diff --git a/src/components/domain/RiskImminentEvents/Gdacs/index.tsx b/app/src/components/domain/RiskImminentEvents/Gdacs/index.tsx similarity index 95% rename from src/components/domain/RiskImminentEvents/Gdacs/index.tsx rename to app/src/components/domain/RiskImminentEvents/Gdacs/index.tsx index 5ef336d609..2caed73d6f 100644 --- a/src/components/domain/RiskImminentEvents/Gdacs/index.tsx +++ b/app/src/components/domain/RiskImminentEvents/Gdacs/index.tsx @@ -1,15 +1,22 @@ import { useCallback } from 'react'; +import { numericIdSelector } from '@ifrc-go/ui/utils'; +import { + isDefined, + isNotDefined, +} from '@togglecorp/fujs'; import { type LngLatBoundsLike } from 'mapbox-gl'; -import { isDefined, isNotDefined } from '@togglecorp/fujs'; import RiskImminentEventMap from '#components/domain/RiskImminentEventMap'; import { type EventPointFeature } from '#components/domain/RiskImminentEventMap'; -import { RiskApiResponse, useRiskLazyRequest, useRiskRequest } from '#utils/restRequest'; -import { numericIdSelector } from '#utils/selectors'; import { isValidFeatureCollection } from '#utils/domain/risk'; +import { + RiskApiResponse, + useRiskLazyRequest, + useRiskRequest, +} from '#utils/restRequest'; -import EventListItem from './EventListItem'; import EventDetails from './EventDetails'; +import EventListItem from './EventListItem'; type ImminentEventResponse = RiskApiResponse<'/api/v1/gdacs/'>; type EventItem = NonNullable[number]; diff --git a/src/components/domain/RiskImminentEvents/MeteoSwiss/EventDetails/i18n.json b/app/src/components/domain/RiskImminentEvents/MeteoSwiss/EventDetails/i18n.json similarity index 100% rename from src/components/domain/RiskImminentEvents/MeteoSwiss/EventDetails/i18n.json rename to app/src/components/domain/RiskImminentEvents/MeteoSwiss/EventDetails/i18n.json diff --git a/src/components/domain/RiskImminentEvents/MeteoSwiss/EventDetails/index.tsx b/app/src/components/domain/RiskImminentEvents/MeteoSwiss/EventDetails/index.tsx similarity index 95% rename from src/components/domain/RiskImminentEvents/MeteoSwiss/EventDetails/index.tsx rename to app/src/components/domain/RiskImminentEvents/MeteoSwiss/EventDetails/index.tsx index c48a625737..dd1b8bf174 100644 --- a/src/components/domain/RiskImminentEvents/MeteoSwiss/EventDetails/index.tsx +++ b/app/src/components/domain/RiskImminentEvents/MeteoSwiss/EventDetails/index.tsx @@ -1,15 +1,27 @@ -import { useMemo, useCallback } from 'react'; -import { compareString, isDefined, isNotDefined } from '@togglecorp/fujs'; +import { + useCallback, + useMemo, +} from 'react'; +import { + BlockLoading, + Container, + DateOutput, + NumberOutput, + TextOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + resolveToComponent, + resolveToString, +} from '@ifrc-go/ui/utils'; +import { + compareString, + isDefined, + isNotDefined, +} from '@togglecorp/fujs'; -import BlockLoading from '#components/BlockLoading'; import Link from '#components/Link'; -import Container from '#components/Container'; -import TextOutput from '#components/TextOutput'; -import NumberOutput from '#components/NumberOutput'; -import DateOutput from '#components/DateOutput'; import { type RiskApiResponse } from '#utils/restRequest'; -import useTranslation from '#hooks/useTranslation'; -import { resolveToComponent, resolveToString } from '#utils/translation'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/components/domain/RiskImminentEvents/MeteoSwiss/EventDetails/styles.module.css b/app/src/components/domain/RiskImminentEvents/MeteoSwiss/EventDetails/styles.module.css similarity index 100% rename from src/components/domain/RiskImminentEvents/MeteoSwiss/EventDetails/styles.module.css rename to app/src/components/domain/RiskImminentEvents/MeteoSwiss/EventDetails/styles.module.css diff --git a/src/components/domain/RiskImminentEvents/MeteoSwiss/EventListItem/i18n.json b/app/src/components/domain/RiskImminentEvents/MeteoSwiss/EventListItem/i18n.json similarity index 100% rename from src/components/domain/RiskImminentEvents/MeteoSwiss/EventListItem/i18n.json rename to app/src/components/domain/RiskImminentEvents/MeteoSwiss/EventListItem/i18n.json diff --git a/src/components/domain/RiskImminentEvents/MeteoSwiss/EventListItem/index.tsx b/app/src/components/domain/RiskImminentEvents/MeteoSwiss/EventListItem/index.tsx similarity index 89% rename from src/components/domain/RiskImminentEvents/MeteoSwiss/EventListItem/index.tsx rename to app/src/components/domain/RiskImminentEvents/MeteoSwiss/EventListItem/index.tsx index 5cbc489f8d..f06a13dc1a 100644 --- a/src/components/domain/RiskImminentEvents/MeteoSwiss/EventListItem/index.tsx +++ b/app/src/components/domain/RiskImminentEvents/MeteoSwiss/EventListItem/index.tsx @@ -1,9 +1,11 @@ import { ChevronRightLineIcon } from '@ifrc-go/icons'; +import { + Button, + Header, + TextOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; -import Button from '#components/Button'; -import Header from '#components/Header'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; import { type RiskApiResponse } from '#utils/restRequest'; import i18n from './i18n.json'; diff --git a/src/components/domain/RiskImminentEvents/MeteoSwiss/EventListItem/styles.module.css b/app/src/components/domain/RiskImminentEvents/MeteoSwiss/EventListItem/styles.module.css similarity index 100% rename from src/components/domain/RiskImminentEvents/MeteoSwiss/EventListItem/styles.module.css rename to app/src/components/domain/RiskImminentEvents/MeteoSwiss/EventListItem/styles.module.css diff --git a/src/components/domain/RiskImminentEvents/MeteoSwiss/index.tsx b/app/src/components/domain/RiskImminentEvents/MeteoSwiss/index.tsx similarity index 97% rename from src/components/domain/RiskImminentEvents/MeteoSwiss/index.tsx rename to app/src/components/domain/RiskImminentEvents/MeteoSwiss/index.tsx index c4fe12b376..a10d9abdb4 100644 --- a/src/components/domain/RiskImminentEvents/MeteoSwiss/index.tsx +++ b/app/src/components/domain/RiskImminentEvents/MeteoSwiss/index.tsx @@ -1,19 +1,22 @@ -import type { LngLatBoundsLike } from 'mapbox-gl'; import { useCallback } from 'react'; -import { isDefined, isNotDefined } from '@togglecorp/fujs'; +import { numericIdSelector } from '@ifrc-go/ui/utils'; +import { + isDefined, + isNotDefined, +} from '@togglecorp/fujs'; +import type { LngLatBoundsLike } from 'mapbox-gl'; -import RiskImminentEventMap from '#components/domain/RiskImminentEventMap'; import type { EventPointFeature } from '#components/domain/RiskImminentEventMap'; +import RiskImminentEventMap from '#components/domain/RiskImminentEventMap'; +import { isValidFeatureCollection } from '#utils/domain/risk'; import { type RiskApiResponse, useRiskLazyRequest, useRiskRequest, } from '#utils/restRequest'; -import { numericIdSelector } from '#utils/selectors'; -import { isValidFeatureCollection } from '#utils/domain/risk'; -import EventListItem from './EventListItem'; import EventDetails from './EventDetails'; +import EventListItem from './EventListItem'; type ImminentEventResponse = RiskApiResponse<'/api/v1/meteoswiss/'>; type EventItem = NonNullable[number]; diff --git a/src/components/domain/RiskImminentEvents/Pdc/EventDetails/i18n.json b/app/src/components/domain/RiskImminentEvents/Pdc/EventDetails/i18n.json similarity index 100% rename from src/components/domain/RiskImminentEvents/Pdc/EventDetails/i18n.json rename to app/src/components/domain/RiskImminentEvents/Pdc/EventDetails/i18n.json diff --git a/src/components/domain/RiskImminentEvents/Pdc/EventDetails/index.tsx b/app/src/components/domain/RiskImminentEvents/Pdc/EventDetails/index.tsx similarity index 95% rename from src/components/domain/RiskImminentEvents/Pdc/EventDetails/index.tsx rename to app/src/components/domain/RiskImminentEvents/Pdc/EventDetails/index.tsx index 472a645937..475a2770f7 100644 --- a/src/components/domain/RiskImminentEvents/Pdc/EventDetails/index.tsx +++ b/app/src/components/domain/RiskImminentEvents/Pdc/EventDetails/index.tsx @@ -1,7 +1,10 @@ -import BlockLoading from '#components/BlockLoading'; -import Container from '#components/Container'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; +import { + BlockLoading, + Container, + TextOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + import { type RiskApiResponse } from '#utils/restRequest'; import i18n from './i18n.json'; diff --git a/src/components/domain/RiskImminentEvents/Pdc/EventDetails/styles.module.css b/app/src/components/domain/RiskImminentEvents/Pdc/EventDetails/styles.module.css similarity index 100% rename from src/components/domain/RiskImminentEvents/Pdc/EventDetails/styles.module.css rename to app/src/components/domain/RiskImminentEvents/Pdc/EventDetails/styles.module.css diff --git a/src/components/domain/RiskImminentEvents/Pdc/EventListItem/i18n.json b/app/src/components/domain/RiskImminentEvents/Pdc/EventListItem/i18n.json similarity index 100% rename from src/components/domain/RiskImminentEvents/Pdc/EventListItem/i18n.json rename to app/src/components/domain/RiskImminentEvents/Pdc/EventListItem/i18n.json diff --git a/src/components/domain/RiskImminentEvents/Pdc/EventListItem/index.tsx b/app/src/components/domain/RiskImminentEvents/Pdc/EventListItem/index.tsx similarity index 88% rename from src/components/domain/RiskImminentEvents/Pdc/EventListItem/index.tsx rename to app/src/components/domain/RiskImminentEvents/Pdc/EventListItem/index.tsx index 0d0880029e..a2fcbf897e 100644 --- a/src/components/domain/RiskImminentEvents/Pdc/EventListItem/index.tsx +++ b/app/src/components/domain/RiskImminentEvents/Pdc/EventListItem/index.tsx @@ -1,10 +1,12 @@ import { ChevronRightLineIcon } from '@ifrc-go/icons'; +import { + Button, + Header, + TextOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; -import Button from '#components/Button'; -import Header from '#components/Header'; -import TextOutput from '#components/TextOutput'; import { type RiskApiResponse } from '#utils/restRequest'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/components/domain/RiskImminentEvents/Pdc/EventListItem/styles.module.css b/app/src/components/domain/RiskImminentEvents/Pdc/EventListItem/styles.module.css similarity index 100% rename from src/components/domain/RiskImminentEvents/Pdc/EventListItem/styles.module.css rename to app/src/components/domain/RiskImminentEvents/Pdc/EventListItem/styles.module.css diff --git a/src/components/domain/RiskImminentEvents/Pdc/index.tsx b/app/src/components/domain/RiskImminentEvents/Pdc/index.tsx similarity index 96% rename from src/components/domain/RiskImminentEvents/Pdc/index.tsx rename to app/src/components/domain/RiskImminentEvents/Pdc/index.tsx index 24e0f3c279..c4c9d23d25 100644 --- a/src/components/domain/RiskImminentEvents/Pdc/index.tsx +++ b/app/src/components/domain/RiskImminentEvents/Pdc/index.tsx @@ -1,19 +1,25 @@ import { useCallback } from 'react'; +import { numericIdSelector } from '@ifrc-go/ui/utils'; +import { + isDefined, + isNotDefined, +} from '@togglecorp/fujs'; import { type LngLatBoundsLike } from 'mapbox-gl'; -import { isDefined, isNotDefined } from '@togglecorp/fujs'; import RiskImminentEventMap from '#components/domain/RiskImminentEventMap'; import { type EventPointFeature } from '#components/domain/RiskImminentEventMap'; +import { + isValidFeature, + isValidPointFeature, +} from '#utils/domain/risk'; import { type RiskApiResponse, useRiskLazyRequest, useRiskRequest, } from '#utils/restRequest'; -import { numericIdSelector } from '#utils/selectors'; -import { isValidFeature, isValidPointFeature } from '#utils/domain/risk'; -import EventListItem from './EventListItem'; import EventDetails from './EventDetails'; +import EventListItem from './EventListItem'; type ImminentEventResponse = RiskApiResponse<'/api/v1/pdc/'>; type EventItem = NonNullable[number]; diff --git a/src/components/domain/RiskImminentEvents/WfpAdam/EventDetails/i18n.json b/app/src/components/domain/RiskImminentEvents/WfpAdam/EventDetails/i18n.json similarity index 100% rename from src/components/domain/RiskImminentEvents/WfpAdam/EventDetails/i18n.json rename to app/src/components/domain/RiskImminentEvents/WfpAdam/EventDetails/i18n.json diff --git a/src/components/domain/RiskImminentEvents/WfpAdam/EventDetails/index.tsx b/app/src/components/domain/RiskImminentEvents/WfpAdam/EventDetails/index.tsx similarity index 96% rename from src/components/domain/RiskImminentEvents/WfpAdam/EventDetails/index.tsx rename to app/src/components/domain/RiskImminentEvents/WfpAdam/EventDetails/index.tsx index e7418a31d3..40c2365130 100644 --- a/src/components/domain/RiskImminentEvents/WfpAdam/EventDetails/index.tsx +++ b/app/src/components/domain/RiskImminentEvents/WfpAdam/EventDetails/index.tsx @@ -1,4 +1,17 @@ import { useMemo } from 'react'; +import { + BlockLoading, + Container, + TextOutput, + Tooltip, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + getPercentage, + maxSafe, + resolveToString, + roundSafe, +} from '@ifrc-go/ui/utils'; import { compareDate, isDefined, @@ -7,15 +20,11 @@ import { } from '@togglecorp/fujs'; import Link from '#components/Link'; -import BlockLoading from '#components/BlockLoading'; -import Container from '#components/Container'; -import TextOutput from '#components/TextOutput'; -import Tooltip from '#components/Tooltip'; -import useTranslation from '#hooks/useTranslation'; -import { getPercentage, maxSafe, roundSafe } from '#utils/common'; +import { + isValidFeatureCollection, + isValidPointFeature, +} from '#utils/domain/risk'; import { type RiskApiResponse } from '#utils/restRequest'; -import { isValidFeatureCollection, isValidPointFeature } from '#utils/domain/risk'; -import { resolveToString } from '#utils/translation'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/components/domain/RiskImminentEvents/WfpAdam/EventDetails/styles.module.css b/app/src/components/domain/RiskImminentEvents/WfpAdam/EventDetails/styles.module.css similarity index 100% rename from src/components/domain/RiskImminentEvents/WfpAdam/EventDetails/styles.module.css rename to app/src/components/domain/RiskImminentEvents/WfpAdam/EventDetails/styles.module.css diff --git a/src/components/domain/RiskImminentEvents/WfpAdam/EventListItem/i18n.json b/app/src/components/domain/RiskImminentEvents/WfpAdam/EventListItem/i18n.json similarity index 100% rename from src/components/domain/RiskImminentEvents/WfpAdam/EventListItem/i18n.json rename to app/src/components/domain/RiskImminentEvents/WfpAdam/EventListItem/i18n.json diff --git a/src/components/domain/RiskImminentEvents/WfpAdam/EventListItem/index.tsx b/app/src/components/domain/RiskImminentEvents/WfpAdam/EventListItem/index.tsx similarity index 88% rename from src/components/domain/RiskImminentEvents/WfpAdam/EventListItem/index.tsx rename to app/src/components/domain/RiskImminentEvents/WfpAdam/EventListItem/index.tsx index 4c95a2e09a..1596c34de3 100644 --- a/src/components/domain/RiskImminentEvents/WfpAdam/EventListItem/index.tsx +++ b/app/src/components/domain/RiskImminentEvents/WfpAdam/EventListItem/index.tsx @@ -1,9 +1,11 @@ import { ChevronRightLineIcon } from '@ifrc-go/icons'; +import { + Button, + Header, + TextOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; -import Button from '#components/Button'; -import Header from '#components/Header'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; import { type RiskApiResponse } from '#utils/restRequest'; import i18n from './i18n.json'; diff --git a/src/components/domain/RiskImminentEvents/WfpAdam/EventListItem/styles.module.css b/app/src/components/domain/RiskImminentEvents/WfpAdam/EventListItem/styles.module.css similarity index 100% rename from src/components/domain/RiskImminentEvents/WfpAdam/EventListItem/styles.module.css rename to app/src/components/domain/RiskImminentEvents/WfpAdam/EventListItem/styles.module.css diff --git a/src/components/domain/RiskImminentEvents/WfpAdam/index.tsx b/app/src/components/domain/RiskImminentEvents/WfpAdam/index.tsx similarity index 97% rename from src/components/domain/RiskImminentEvents/WfpAdam/index.tsx rename to app/src/components/domain/RiskImminentEvents/WfpAdam/index.tsx index 5f1252c795..2c7f3956f4 100644 --- a/src/components/domain/RiskImminentEvents/WfpAdam/index.tsx +++ b/app/src/components/domain/RiskImminentEvents/WfpAdam/index.tsx @@ -1,19 +1,22 @@ import { useCallback } from 'react'; +import { numericIdSelector } from '@ifrc-go/ui/utils'; +import { + isDefined, + isNotDefined, +} from '@togglecorp/fujs'; import { type LngLatBoundsLike } from 'mapbox-gl'; -import { isDefined, isNotDefined } from '@togglecorp/fujs'; import RiskImminentEventMap from '#components/domain/RiskImminentEventMap'; import { type EventPointFeature } from '#components/domain/RiskImminentEventMap'; +import { isValidFeatureCollection } from '#utils/domain/risk'; import { type RiskApiResponse, useRiskLazyRequest, useRiskRequest, } from '#utils/restRequest'; -import { numericIdSelector } from '#utils/selectors'; -import { isValidFeatureCollection } from '#utils/domain/risk'; -import EventListItem from './EventListItem'; import EventDetails from './EventDetails'; +import EventListItem from './EventListItem'; type ImminentEventResponse = RiskApiResponse<'/api/v1/adam-exposure/'>; type EventItem = NonNullable[number]; diff --git a/src/components/domain/RiskImminentEvents/i18n.json b/app/src/components/domain/RiskImminentEvents/i18n.json similarity index 100% rename from src/components/domain/RiskImminentEvents/i18n.json rename to app/src/components/domain/RiskImminentEvents/i18n.json diff --git a/src/components/domain/RiskImminentEvents/index.tsx b/app/src/components/domain/RiskImminentEvents/index.tsx similarity index 97% rename from src/components/domain/RiskImminentEvents/index.tsx rename to app/src/components/domain/RiskImminentEvents/index.tsx index 74ef3c893b..d40654022f 100644 --- a/src/components/domain/RiskImminentEvents/index.tsx +++ b/app/src/components/domain/RiskImminentEvents/index.tsx @@ -1,6 +1,8 @@ -import { useMemo, useState, useCallback } from 'react'; -import type { LngLatBoundsLike } from 'mapbox-gl'; -import { _cs } from '@togglecorp/fujs'; +import { + useCallback, + useMemo, + useState, +} from 'react'; import { CycloneIcon, DroughtIcon, @@ -8,22 +10,27 @@ import { FloodIcon, ForestFireIcon, } from '@ifrc-go/icons'; +import { + Container, + InfoPopup, + Radio, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToComponent } from '@ifrc-go/ui/utils'; +import { _cs } from '@togglecorp/fujs'; +import type { LngLatBoundsLike } from 'mapbox-gl'; -import Container from '#components/Container'; -import InfoPopup from '#components/InfoPopup'; import Link from '#components/Link'; -import Radio from '#components/RadioInput/Radio'; import WikiLink from '#components/WikiLink'; -import useTranslation from '#hooks/useTranslation'; -import { resolveToComponent } from '#utils/translation'; import { environment } from '#config'; -import { hazardTypeToColorMap } from '#utils/domain/risk'; import { type components } from '#generated/riskTypes'; +import { hazardTypeToColorMap } from '#utils/domain/risk'; -import Pdc from './Pdc'; -import WfpAdam from './WfpAdam'; import Gdacs from './Gdacs'; import MeteoSwiss from './MeteoSwiss'; +import Pdc from './Pdc'; +import WfpAdam from './WfpAdam'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/components/domain/RiskImminentEvents/styles.module.css b/app/src/components/domain/RiskImminentEvents/styles.module.css similarity index 100% rename from src/components/domain/RiskImminentEvents/styles.module.css rename to app/src/components/domain/RiskImminentEvents/styles.module.css diff --git a/src/components/domain/RiskSeasonalMap/Filters/i18n.json b/app/src/components/domain/RiskSeasonalMap/Filters/i18n.json similarity index 100% rename from src/components/domain/RiskSeasonalMap/Filters/i18n.json rename to app/src/components/domain/RiskSeasonalMap/Filters/i18n.json diff --git a/src/components/domain/RiskSeasonalMap/Filters/index.tsx b/app/src/components/domain/RiskSeasonalMap/Filters/index.tsx similarity index 93% rename from src/components/domain/RiskSeasonalMap/Filters/index.tsx rename to app/src/components/domain/RiskSeasonalMap/Filters/index.tsx index 5bc8423b4e..a898000a48 100644 --- a/src/components/domain/RiskSeasonalMap/Filters/index.tsx +++ b/app/src/components/domain/RiskSeasonalMap/Filters/index.tsx @@ -1,27 +1,28 @@ import { useCallback } from 'react'; - +import { + Checkbox, + MultiSelectInput, + SelectInput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + getMonthList, + numericKeySelector, + stringLabelSelector, + stringNameSelector, +} from '@ifrc-go/ui/utils'; import { EntriesAsList } from '@togglecorp/toggle-form'; -import MultiSelectInput from '#components/MultiSelectInput'; -import Checkbox from '#components/Checkbox'; -import SelectInput from '#components/SelectInput'; -import useTranslation from '#hooks/useTranslation'; import useCountry from '#hooks/domain/useCountry'; -import { getMonthList } from '#utils/common'; import { + type HazardType, hazardTypeKeySelector, hazardTypeLabelSelector, - riskMetricKeySelector, - type HazardType, type HazardTypeOption, - type RiskMetricOption, type RiskMetric, + riskMetricKeySelector, + type RiskMetricOption, } from '#utils/domain/risk'; -import { - numericKeySelector, - stringLabelSelector, - stringNameSelector, -} from '#utils/selectors'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/components/domain/RiskSeasonalMap/Filters/styles.module.css b/app/src/components/domain/RiskSeasonalMap/Filters/styles.module.css similarity index 100% rename from src/components/domain/RiskSeasonalMap/Filters/styles.module.css rename to app/src/components/domain/RiskSeasonalMap/Filters/styles.module.css diff --git a/src/components/domain/RiskSeasonalMap/i18n.json b/app/src/components/domain/RiskSeasonalMap/i18n.json similarity index 100% rename from src/components/domain/RiskSeasonalMap/i18n.json rename to app/src/components/domain/RiskSeasonalMap/i18n.json diff --git a/src/components/domain/RiskSeasonalMap/index.tsx b/app/src/components/domain/RiskSeasonalMap/index.tsx similarity index 98% rename from src/components/domain/RiskSeasonalMap/index.tsx rename to app/src/components/domain/RiskSeasonalMap/index.tsx index 4832132abd..e367ffa4f7 100644 --- a/src/components/domain/RiskSeasonalMap/index.tsx +++ b/app/src/components/domain/RiskSeasonalMap/index.tsx @@ -1,10 +1,23 @@ import { + useCallback, useEffect, useMemo, useState, - useCallback, } from 'react'; -import { type FillLayer, type LngLatBoundsLike } from 'mapbox-gl'; +import { + BlockLoading, + Container, + LegendItem, + Message, + TextOutput, + Tooltip, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + formatNumber, + maxSafe, + sumSafe, +} from '@ifrc-go/ui/utils'; import { _cs, compareNumber, @@ -17,57 +30,54 @@ import { unique, } from '@togglecorp/fujs'; import { - MapLayer, MapBounds, + MapLayer, } from '@togglecorp/re-map'; +import { + type FillLayer, + type LngLatBoundsLike, +} from 'mapbox-gl'; -import MapPopup from '#components/MapPopup'; +import BaseMap from '#components/domain/BaseMap'; +import Link from '#components/Link'; import MapContainerWithDisclaimer from '#components/MapContainerWithDisclaimer'; -import Container from '#components/Container'; -import BlockLoading from '#components/BlockLoading'; +import MapPopup from '#components/MapPopup'; import WikiLink from '#components/WikiLink'; -import LegendItem from '#components/LegendItem'; -import TextOutput from '#components/TextOutput'; -import Link from '#components/Link'; -import useInputState from '#hooks/useInputState'; import useCountry from '#hooks/domain/useCountry'; -import useTranslation from '#hooks/useTranslation'; +import useInputState from '#hooks/useInputState'; import { + CATEGORY_RISK_HIGH, + CATEGORY_RISK_LOW, + CATEGORY_RISK_MEDIUM, + CATEGORY_RISK_VERY_HIGH, + CATEGORY_RISK_VERY_LOW, + COLOR_DARK_GREY, + COLOR_LIGHT_BLUE, + COLOR_LIGHT_GREY, + COLOR_PRIMARY_RED, + DEFAULT_MAP_PADDING, + DURATION_MAP_ZOOM, +} from '#utils/constants'; +import { + applicableHazardsByRiskMetric, getDataWithTruthyHazardType, + getDisplacementRiskCategory, + getExposureRiskCategory, getFiRiskDataItem, - hasSomeDefinedValue, getValueForSelectedMonths, - hazardTypeToColorMap, - riskScoreToCategory, - applicableHazardsByRiskMetric, + hasSomeDefinedValue, type HazardType, type HazardTypeOption, + hazardTypeToColorMap, type RiskDataItem, - type RiskMetricOption, - getExposureRiskCategory, - getDisplacementRiskCategory, RiskMetric, + type RiskMetricOption, + riskScoreToCategory, } from '#utils/domain/risk'; import { useRiskRequest } from '#utils/restRequest'; -import { formatNumber, maxSafe, sumSafe } from '#utils/common'; -import { - COLOR_LIGHT_BLUE, - COLOR_LIGHT_GREY, - COLOR_PRIMARY_RED, - CATEGORY_RISK_HIGH, - CATEGORY_RISK_LOW, - CATEGORY_RISK_MEDIUM, - CATEGORY_RISK_VERY_HIGH, - CATEGORY_RISK_VERY_LOW, - DURATION_MAP_ZOOM, - DEFAULT_MAP_PADDING, - COLOR_DARK_GREY, -} from '#utils/constants'; -import BaseMap from '#components/domain/BaseMap'; -import Message from '#components/Message'; -import Tooltip from '#components/Tooltip'; import Filters, { type FilterValue } from './Filters'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/components/domain/RiskSeasonalMap/styles.module.css b/app/src/components/domain/RiskSeasonalMap/styles.module.css similarity index 100% rename from src/components/domain/RiskSeasonalMap/styles.module.css rename to app/src/components/domain/RiskSeasonalMap/styles.module.css diff --git a/src/components/domain/SeverityIndicator/index.tsx b/app/src/components/domain/SeverityIndicator/index.tsx similarity index 91% rename from src/components/domain/SeverityIndicator/index.tsx rename to app/src/components/domain/SeverityIndicator/index.tsx index 079b89d09b..006680b483 100644 --- a/src/components/domain/SeverityIndicator/index.tsx +++ b/app/src/components/domain/SeverityIndicator/index.tsx @@ -1,4 +1,7 @@ -import { isNotDefined, _cs } from '@togglecorp/fujs'; +import { + _cs, + isNotDefined, +} from '@togglecorp/fujs'; import styles from './styles.module.css'; diff --git a/src/components/domain/SeverityIndicator/styles.module.css b/app/src/components/domain/SeverityIndicator/styles.module.css similarity index 100% rename from src/components/domain/SeverityIndicator/styles.module.css rename to app/src/components/domain/SeverityIndicator/styles.module.css diff --git a/src/components/domain/SurgeCardContainer/index.tsx b/app/src/components/domain/SurgeCardContainer/index.tsx similarity index 91% rename from src/components/domain/SurgeCardContainer/index.tsx rename to app/src/components/domain/SurgeCardContainer/index.tsx index 0e24040469..9a91fe5203 100644 --- a/src/components/domain/SurgeCardContainer/index.tsx +++ b/app/src/components/domain/SurgeCardContainer/index.tsx @@ -1,4 +1,4 @@ -import Container from '#components/Container'; +import { Container } from '@ifrc-go/ui'; import styles from './styles.module.css'; diff --git a/src/components/domain/SurgeCardContainer/styles.module.css b/app/src/components/domain/SurgeCardContainer/styles.module.css similarity index 100% rename from src/components/domain/SurgeCardContainer/styles.module.css rename to app/src/components/domain/SurgeCardContainer/styles.module.css diff --git a/src/components/domain/SurgeCatalogueContainer/i18n.json b/app/src/components/domain/SurgeCatalogueContainer/i18n.json similarity index 100% rename from src/components/domain/SurgeCatalogueContainer/i18n.json rename to app/src/components/domain/SurgeCatalogueContainer/i18n.json diff --git a/src/components/domain/SurgeCatalogueContainer/index.tsx b/app/src/components/domain/SurgeCatalogueContainer/index.tsx similarity index 92% rename from src/components/domain/SurgeCatalogueContainer/index.tsx rename to app/src/components/domain/SurgeCatalogueContainer/index.tsx index 4e6ff6ef7a..880881826b 100644 --- a/src/components/domain/SurgeCatalogueContainer/index.tsx +++ b/app/src/components/domain/SurgeCatalogueContainer/index.tsx @@ -1,14 +1,17 @@ import { useCallback } from 'react'; import { ArrowLeftLineIcon } from '@ifrc-go/icons'; +import { + Button, + Container, + Image, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { isDefined } from '@togglecorp/fujs'; -import Image from '#components/Image'; -import Button from '#components/Button'; -import Container from '#components/Container'; import useRouting from '#hooks/useRouting'; -import useTranslation from '#hooks/useTranslation'; import { WrappedRoutes } from '../../../App/routes'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/components/domain/SurgeCatalogueContainer/styles.module.css b/app/src/components/domain/SurgeCatalogueContainer/styles.module.css similarity index 100% rename from src/components/domain/SurgeCatalogueContainer/styles.module.css rename to app/src/components/domain/SurgeCatalogueContainer/styles.module.css diff --git a/src/components/domain/SurgeContentContainer/index.tsx b/app/src/components/domain/SurgeContentContainer/index.tsx similarity index 91% rename from src/components/domain/SurgeContentContainer/index.tsx rename to app/src/components/domain/SurgeContentContainer/index.tsx index 44e76199c3..1017cef0c8 100644 --- a/src/components/domain/SurgeContentContainer/index.tsx +++ b/app/src/components/domain/SurgeContentContainer/index.tsx @@ -1,4 +1,4 @@ -import Container from '#components/Container'; +import { Container } from '@ifrc-go/ui'; import styles from './styles.module.css'; diff --git a/src/components/domain/SurgeContentContainer/styles.module.css b/app/src/components/domain/SurgeContentContainer/styles.module.css similarity index 100% rename from src/components/domain/SurgeContentContainer/styles.module.css rename to app/src/components/domain/SurgeContentContainer/styles.module.css diff --git a/src/components/domain/UserSearchMultiSelectInput.tsx b/app/src/components/domain/UserSearchMultiSelectInput.tsx similarity index 96% rename from src/components/domain/UserSearchMultiSelectInput.tsx rename to app/src/components/domain/UserSearchMultiSelectInput.tsx index a2dd974f7b..b7cbcb5267 100644 --- a/src/components/domain/UserSearchMultiSelectInput.tsx +++ b/app/src/components/domain/UserSearchMultiSelectInput.tsx @@ -1,13 +1,13 @@ import { useState } from 'react'; - -import SearchMultiSelectInput, { +import { + SearchMultiSelectInput, SearchMultiSelectInputProps, -} from '#components/SearchMultiSelectInput'; +} from '@ifrc-go/ui'; -import { useRequest } from '#utils/restRequest'; -import type { GoApiResponse } from '#utils/restRequest'; import useDebouncedValue from '#hooks/useDebouncedValue'; import { getUserName } from '#utils/domain/user'; +import type { GoApiResponse } from '#utils/restRequest'; +import { useRequest } from '#utils/restRequest'; type UserDetails = NonNullable['results']>[number]; export type User = Pick; diff --git a/src/config.ts b/app/src/config.ts similarity index 100% rename from src/config.ts rename to app/src/config.ts diff --git a/src/contexts/domain.tsx b/app/src/contexts/domain.tsx similarity index 99% rename from src/contexts/domain.tsx rename to app/src/contexts/domain.tsx index e923d2d1f2..b05d9022ed 100644 --- a/src/contexts/domain.tsx +++ b/app/src/contexts/domain.tsx @@ -1,4 +1,5 @@ import { createContext } from 'react'; + import { type GoApiResponse } from '#utils/restRequest'; export type CacheKey = 'country' | 'global-enums' | 'disaster-type' | 'user-me' | 'region'; diff --git a/src/contexts/route.tsx b/app/src/contexts/route.tsx similarity index 99% rename from src/contexts/route.tsx rename to app/src/contexts/route.tsx index 39a9822e7b..4f8c9081fc 100644 --- a/src/contexts/route.tsx +++ b/app/src/contexts/route.tsx @@ -1,4 +1,5 @@ import { createContext } from 'react'; + import type { WrappedRoutes } from '../App/routes'; const RouteContext = createContext( diff --git a/src/contexts/user.tsx b/app/src/contexts/user.tsx similarity index 100% rename from src/contexts/user.tsx rename to app/src/contexts/user.tsx diff --git a/src/declarations/env.d.ts b/app/src/declarations/env.d.ts similarity index 100% rename from src/declarations/env.d.ts rename to app/src/declarations/env.d.ts diff --git a/src/hooks/domain/useAuth.ts b/app/src/hooks/domain/useAuth.ts similarity index 86% rename from src/hooks/domain/useAuth.ts rename to app/src/hooks/domain/useAuth.ts index 262ae6fda2..f74a7a384d 100644 --- a/src/hooks/domain/useAuth.ts +++ b/app/src/hooks/domain/useAuth.ts @@ -1,4 +1,7 @@ -import { useContext, useMemo } from 'react'; +import { + useContext, + useMemo, +} from 'react'; import { isDefined } from '@togglecorp/fujs'; import UserContext from '#contexts/user'; diff --git a/src/hooks/domain/useCountry.ts b/app/src/hooks/domain/useCountry.ts similarity index 100% rename from src/hooks/domain/useCountry.ts rename to app/src/hooks/domain/useCountry.ts index 3cc8be1944..c1fd2e1111 100644 --- a/src/hooks/domain/useCountry.ts +++ b/app/src/hooks/domain/useCountry.ts @@ -1,12 +1,12 @@ import { - isDefined, - isTruthyString, -} from '@togglecorp/fujs'; -import { - useMemo, useContext, useEffect, + useMemo, } from 'react'; +import { + isDefined, + isTruthyString, +} from '@togglecorp/fujs'; import DomainContext, { type Countries } from '#contexts/domain'; diff --git a/src/hooks/domain/useCountryRaw.ts b/app/src/hooks/domain/useCountryRaw.ts similarity index 100% rename from src/hooks/domain/useCountryRaw.ts rename to app/src/hooks/domain/useCountryRaw.ts index 7cb74c1c06..057bd420c1 100644 --- a/src/hooks/domain/useCountryRaw.ts +++ b/app/src/hooks/domain/useCountryRaw.ts @@ -1,9 +1,9 @@ -import { isDefined } from '@togglecorp/fujs'; import { - useMemo, useContext, useEffect, + useMemo, } from 'react'; +import { isDefined } from '@togglecorp/fujs'; import DomainContext, { type Countries } from '#contexts/domain'; diff --git a/src/hooks/domain/useCurrentLanguage.ts b/app/src/hooks/domain/useCurrentLanguage.ts similarity index 77% rename from src/hooks/domain/useCurrentLanguage.ts rename to app/src/hooks/domain/useCurrentLanguage.ts index 030b0fc94c..7aca9307fb 100644 --- a/src/hooks/domain/useCurrentLanguage.ts +++ b/app/src/hooks/domain/useCurrentLanguage.ts @@ -1,6 +1,5 @@ import { useContext } from 'react'; - -import LanguageContext from '#contexts/language'; +import { LanguageContext } from '@ifrc-go/ui/contexts'; function useCurrentLanguage() { const { currentLanguage } = useContext(LanguageContext); diff --git a/src/hooks/domain/useDisasterType.ts b/app/src/hooks/domain/useDisasterType.ts similarity index 100% rename from src/hooks/domain/useDisasterType.ts rename to app/src/hooks/domain/useDisasterType.ts index 25847950a3..e7575e4842 100644 --- a/src/hooks/domain/useDisasterType.ts +++ b/app/src/hooks/domain/useDisasterType.ts @@ -1,9 +1,9 @@ -import { isTruthyString } from '@togglecorp/fujs'; import { useContext, useEffect, useMemo, } from 'react'; +import { isTruthyString } from '@togglecorp/fujs'; import DomainContext, { DisasterTypes } from '#contexts/domain'; diff --git a/src/hooks/domain/useGlobalEnums.ts b/app/src/hooks/domain/useGlobalEnums.ts similarity index 100% rename from src/hooks/domain/useGlobalEnums.ts rename to app/src/hooks/domain/useGlobalEnums.ts diff --git a/src/hooks/domain/useNationalSociety.ts b/app/src/hooks/domain/useNationalSociety.ts similarity index 100% rename from src/hooks/domain/useNationalSociety.ts rename to app/src/hooks/domain/useNationalSociety.ts index 58d9ba4751..39730d2538 100644 --- a/src/hooks/domain/useNationalSociety.ts +++ b/app/src/hooks/domain/useNationalSociety.ts @@ -1,19 +1,19 @@ import { - isDefined, - isTruthyString, -} from '@togglecorp/fujs'; -import { - useMemo, useContext, useEffect, + useMemo, } from 'react'; +import { + isDefined, + isTruthyString, +} from '@togglecorp/fujs'; import DomainContext from '#contexts/domain'; import { - type PartialCountry, type Country, isValidCountry, + type PartialCountry, } from './useCountry'; export type NationalSociety = Omit & { diff --git a/src/hooks/domain/usePermissions.ts b/app/src/hooks/domain/usePermissions.ts similarity index 100% rename from src/hooks/domain/usePermissions.ts rename to app/src/hooks/domain/usePermissions.ts diff --git a/src/hooks/domain/useRegion.ts b/app/src/hooks/domain/useRegion.ts similarity index 100% rename from src/hooks/domain/useRegion.ts rename to app/src/hooks/domain/useRegion.ts index 9f62b3fec9..5c3862a448 100644 --- a/src/hooks/domain/useRegion.ts +++ b/app/src/hooks/domain/useRegion.ts @@ -1,11 +1,11 @@ import { - useMemo, useContext, useEffect, + useMemo, } from 'react'; +import { isDefined } from '@togglecorp/fujs'; import DomainContext, { type Regions } from '#contexts/domain'; -import { isDefined } from '@togglecorp/fujs'; export type Region = NonNullable[number]; diff --git a/src/hooks/domain/useUserMe.ts b/app/src/hooks/domain/useUserMe.ts similarity index 100% rename from src/hooks/domain/useUserMe.ts rename to app/src/hooks/domain/useUserMe.ts diff --git a/src/hooks/useAlert.ts b/app/src/hooks/useAlert.ts similarity index 82% rename from src/hooks/useAlert.ts rename to app/src/hooks/useAlert.ts index bfa0551e41..328790e7dc 100644 --- a/src/hooks/useAlert.ts +++ b/app/src/hooks/useAlert.ts @@ -1,9 +1,15 @@ -import { useContext, useCallback, useMemo } from 'react'; +import { + useCallback, + useContext, + useMemo, +} from 'react'; +import { + AlertContext, + type AlertType, +} from '@ifrc-go/ui/contexts'; +import { DURATION_DEFAULT_ALERT_DISMISS } from '@ifrc-go/ui/utils'; import { randomString } from '@togglecorp/fujs'; -import AlertContext, { AlertType } from '#contexts/alert'; -import { DURATION_DEFAULT_ALERT_DISMISS } from '#utils/constants'; - interface AddAlertOption { name?: string; variant?: AlertType; diff --git a/src/hooks/useChartData.ts b/app/src/hooks/useChartData.ts similarity index 97% rename from src/hooks/useChartData.ts rename to app/src/hooks/useChartData.ts index b3b96f5fc9..641ae6389a 100644 --- a/src/hooks/useChartData.ts +++ b/app/src/hooks/useChartData.ts @@ -1,17 +1,15 @@ import { useMemo } from 'react'; -import { isDefined } from '@togglecorp/fujs'; - +import { useSizeTracking } from '@ifrc-go/ui/hooks'; import { type Bounds, - type Rect, + ChartScale, getBounds, getIntervals, getScaleFunction, - ChartScale, -} from '#utils/chart'; -import { formatNumber } from '#utils/common'; - -import useSizeTracking from '#hooks/useSizeTracking'; + type Rect, +} from '@ifrc-go/ui/utils'; +import { formatNumber } from '@ifrc-go/ui/utils'; +import { isDefined } from '@togglecorp/fujs'; type Key = string | number; diff --git a/src/hooks/useDebouncedValue.ts b/app/src/hooks/useDebouncedValue.ts similarity index 93% rename from src/hooks/useDebouncedValue.ts rename to app/src/hooks/useDebouncedValue.ts index 35a76f8d29..5cb59a4fde 100644 --- a/src/hooks/useDebouncedValue.ts +++ b/app/src/hooks/useDebouncedValue.ts @@ -1,4 +1,7 @@ -import { useState, useEffect } from 'react'; +import { + useEffect, + useState, +} from 'react'; function useDebouncedValue( input: T, diff --git a/src/hooks/useFilterState.ts b/app/src/hooks/useFilterState.ts similarity index 98% rename from src/hooks/useFilterState.ts rename to app/src/hooks/useFilterState.ts index c3b171f2c9..174e271ec9 100644 --- a/src/hooks/useFilterState.ts +++ b/app/src/hooks/useFilterState.ts @@ -1,14 +1,14 @@ import { type SetStateAction, - useReducer, useCallback, useMemo, + useReducer, } from 'react'; +import { hasSomeDefinedValue } from '@ifrc-go/ui/utils'; import { isNotDefined } from '@togglecorp/fujs'; import { EntriesAsList } from '@togglecorp/toggle-form'; import useDebouncedValue from '#hooks/useDebouncedValue'; -import { hasSomeDefinedValue } from '#utils/common'; type SortDirection = 'asc' | 'dsc'; interface SortParameter { diff --git a/src/hooks/useInputState.ts b/app/src/hooks/useInputState.ts similarity index 94% rename from src/hooks/useInputState.ts rename to app/src/hooks/useInputState.ts index 9ead3c667d..f731be64ce 100644 --- a/src/hooks/useInputState.ts +++ b/app/src/hooks/useInputState.ts @@ -1,4 +1,7 @@ -import React, { useEffect, useRef } from 'react'; +import React, { + useEffect, + useRef, +} from 'react'; type ValueOrSetterFn = T | ((value: T) => T); function isSetterFn(value: ValueOrSetterFn): value is ((value: T) => T) { diff --git a/src/hooks/useRecursiveCsvRequest.ts b/app/src/hooks/useRecursiveCsvRequest.ts similarity index 97% rename from src/hooks/useRecursiveCsvRequest.ts rename to app/src/hooks/useRecursiveCsvRequest.ts index 8ac68f9ee7..d1af0c4f73 100644 --- a/src/hooks/useRecursiveCsvRequest.ts +++ b/app/src/hooks/useRecursiveCsvRequest.ts @@ -1,4 +1,9 @@ -import { useCallback, useState, useRef } from 'react'; +import { + useCallback, + useRef, + useState, +} from 'react'; +import { type Language } from '@ifrc-go/ui/contexts'; import { isDefined, isFalsyString, @@ -6,15 +11,17 @@ import { } from '@togglecorp/fujs'; import Papa from 'papaparse'; -import { KEY_LANGUAGE_STORAGE, KEY_USER_STORAGE } from '#utils/constants'; -import { getFromStorage } from '#utils/localStorage'; -import { resolveUrl } from '#utils/resolveUrl'; -import { type UserAuth } from '#contexts/user'; -import { type Language } from '#contexts/language'; import { - riskApi, api, + riskApi, } from '#config'; +import { type UserAuth } from '#contexts/user'; +import { + KEY_LANGUAGE_STORAGE, + KEY_USER_STORAGE, +} from '#utils/constants'; +import { getFromStorage } from '#utils/localStorage'; +import { resolveUrl } from '#utils/resolveUrl'; type Maybe = T | null | undefined; diff --git a/src/hooks/useRouting.ts b/app/src/hooks/useRouting.ts similarity index 92% rename from src/hooks/useRouting.ts rename to app/src/hooks/useRouting.ts index 5449795fb1..477408e17d 100644 --- a/src/hooks/useRouting.ts +++ b/app/src/hooks/useRouting.ts @@ -1,11 +1,17 @@ -import { useContext, useCallback } from 'react'; import { - useNavigate, - useLocation, + useCallback, + useContext, +} from 'react'; +import { type NavigateOptions, + useLocation, + useNavigate, } from 'react-router-dom'; -import { resolvePath, type UrlParams } from '#components/Link'; +import { + resolvePath, + type UrlParams, +} from '#components/Link'; import RouteContext from '#contexts/route'; import { type WrappedRoutes } from '../App/routes'; diff --git a/src/hooks/useUrlSearchState.ts b/app/src/hooks/useUrlSearchState.ts similarity index 94% rename from src/hooks/useUrlSearchState.ts rename to app/src/hooks/useUrlSearchState.ts index 4048b4fef1..b0e7da62eb 100644 --- a/src/hooks/useUrlSearchState.ts +++ b/app/src/hooks/useUrlSearchState.ts @@ -4,9 +4,15 @@ import { useMemo, useRef, } from 'react'; -import { encodeDate, isNotDefined } from '@togglecorp/fujs'; +import { + NavigateOptions, + useSearchParams, +} from 'react-router-dom'; +import { + encodeDate, + isNotDefined, +} from '@togglecorp/fujs'; import { isCallable } from '@togglecorp/toggle-form'; -import { useSearchParams, NavigateOptions } from 'react-router-dom'; type SearchValueFromUrl = string | null | undefined; type SearchValueFromUser = string | number | boolean | Date | undefined | null; diff --git a/app/src/index.css b/app/src/index.css new file mode 100644 index 0000000000..1161db1ad5 --- /dev/null +++ b/app/src/index.css @@ -0,0 +1,40 @@ +* { + box-sizing: border-box; +} + +html { + @media screen { + margin: 0; + padding: 0; + scrollbar-gutter: stable; + } +} + +body { + line-height: var(--go-ui-line-height-md); + color: var(--go-ui-color-text); + font-family: var(--go-ui-font-family-sans-serif); + font-size: var(--go-ui-font-size-md); + font-weight: var(--go-ui-font-weight-normal); + + @media screen { + margin: 0; + background-color: var(--go-ui-color-background); + padding: 0; + } +} + +ul, ol, p { + margin: 0; +} + +@media print { + @page { + size: portrait A4; + margin: 10mm 10mm 16mm 10mm; + } + + body { + font-family: 'Open Sans', sans-serif; + } +} diff --git a/src/index.tsx b/app/src/index.tsx similarity index 95% rename from src/index.tsx rename to app/src/index.tsx index eabbb426df..2be01a74ee 100644 --- a/src/index.tsx +++ b/app/src/index.tsx @@ -1,18 +1,26 @@ +import '@ifrc-go/ui/index.css'; +import 'mapbox-gl/dist/mapbox-gl.css'; +import './index.css'; + import React from 'react'; import ReactDOM from 'react-dom/client'; -import { isNotDefined, isDefined } from '@togglecorp/fujs'; -import * as Sentry from '@sentry/react'; import { - useLocation, - useNavigationType, createRoutesFromChildren, matchRoutes, + useLocation, + useNavigationType, } from 'react-router-dom'; +import * as Sentry from '@sentry/react'; import { + isDefined, + isNotDefined, +} from '@togglecorp/fujs'; + +import { + api, + appCommitHash, appTitle, appVersion, - appCommitHash, - api, environment, sentryAppDsn, sentryReplaysOnErrorSampleRate, @@ -20,9 +28,6 @@ import { sentryTracesSampleRate, } from '#config'; -import 'mapbox-gl/dist/mapbox-gl.css'; -import './index.css'; - import App from './App/index.tsx'; if (isDefined(sentryAppDsn)) { diff --git a/app/src/utils/common.ts b/app/src/utils/common.ts new file mode 100644 index 0000000000..12b1960e16 --- /dev/null +++ b/app/src/utils/common.ts @@ -0,0 +1,18 @@ +import type { GoApiResponse } from '#utils/restRequest'; + +type SearchResponse = GoApiResponse<'/api/v1/search/'>; + +type SearchResponseKeys = keyof SearchResponse; +// eslint-disable-next-line import/prefer-default-export +export const defaultRanking: Record = { + regions: 1, + countries: 2, + district_province_response: 3, + + emergencies: 4, + projects: 5, + surge_alerts: 6, + surge_deployments: 7, + reports: 8, + rapid_response_deployments: 9, +}; diff --git a/src/utils/constants.ts b/app/src/utils/constants.ts similarity index 96% rename from src/utils/constants.ts rename to app/src/utils/constants.ts index 48b72a985b..2ebb370111 100644 --- a/src/utils/constants.ts +++ b/app/src/utils/constants.ts @@ -1,9 +1,5 @@ import { type components } from '#generated/types'; -export const DEFAULT_DATE_FORMAT = 'yyyy-MM-dd'; -export const DEFAULT_PRINT_DATE_FORMAT = 'dd-MM-yyyy'; -export const KEY_DATE_FORMAT = 'yyyy-MM'; - export const defaultChartMargin = { top: 0, right: 0, @@ -18,18 +14,10 @@ export const defaultChartPadding = { left: 10, }; -// Alert - -export const DURATION_DEFAULT_ALERT_DISMISS = 4500; - // Map export const DURATION_MAP_ZOOM = 1000; export const DEFAULT_MAP_PADDING = 50; -// Table - -export const WIDTH_DEFAULT_TABLE_COLUMN = 108; - // Storage export const KEY_USER_STORAGE = 'user'; diff --git a/src/components/Table/ColumnShortcuts/CountryLink/index.tsx b/app/src/utils/domain/CountryLink/index.tsx similarity index 100% rename from src/components/Table/ColumnShortcuts/CountryLink/index.tsx rename to app/src/utils/domain/CountryLink/index.tsx diff --git a/src/components/Table/ColumnShortcuts/RegionLink/index.tsx b/app/src/utils/domain/RegionLink/index.tsx similarity index 100% rename from src/components/Table/ColumnShortcuts/RegionLink/index.tsx rename to app/src/utils/domain/RegionLink/index.tsx diff --git a/src/utils/domain/dref.ts b/app/src/utils/domain/dref.ts similarity index 100% rename from src/utils/domain/dref.ts rename to app/src/utils/domain/dref.ts diff --git a/src/utils/domain/emergency.ts b/app/src/utils/domain/emergency.ts similarity index 92% rename from src/utils/domain/emergency.ts rename to app/src/utils/domain/emergency.ts index 177a767212..9193d0cf96 100644 --- a/src/utils/domain/emergency.ts +++ b/app/src/utils/domain/emergency.ts @@ -1,5 +1,6 @@ +import { sumSafe } from '@ifrc-go/ui/utils'; import { max } from '@togglecorp/fujs'; -import { sumSafe } from '#utils/common'; + import { type GoApiResponse } from '#utils/restRequest'; type EventResponse = GoApiResponse<'/api/v2/event/'>; diff --git a/src/utils/domain/per.ts b/app/src/utils/domain/per.ts similarity index 93% rename from src/utils/domain/per.ts rename to app/src/utils/domain/per.ts index 893ae7ad69..c11af214fb 100644 --- a/src/utils/domain/per.ts +++ b/app/src/utils/domain/per.ts @@ -1,6 +1,10 @@ -import { isNotDefined, isDefined } from '@togglecorp/fujs'; -import { type GoApiResponse } from '#utils/restRequest'; +import { + isDefined, + isNotDefined, +} from '@togglecorp/fujs'; + import { type components } from '#generated/types'; +import { type GoApiResponse } from '#utils/restRequest'; type PerPhase = components<'read'>['schemas']['PhaseEnum']; diff --git a/src/utils/domain/risk.test.ts b/app/src/utils/domain/risk.test.ts similarity index 71% rename from src/utils/domain/risk.test.ts rename to app/src/utils/domain/risk.test.ts index 92397fad20..89fa34c9ba 100644 --- a/src/utils/domain/risk.test.ts +++ b/app/src/utils/domain/risk.test.ts @@ -1,6 +1,12 @@ -import { expect, test } from 'vitest'; +import { + expect, + test, +} from 'vitest'; -import { CATEGORY_RISK_LOW, CATEGORY_RISK_VERY_LOW } from '#utils/constants'; +import { + CATEGORY_RISK_LOW, + CATEGORY_RISK_VERY_LOW, +} from '#utils/constants'; import { riskScoreToCategory } from './risk.ts'; diff --git a/src/utils/domain/risk.ts b/app/src/utils/domain/risk.ts similarity index 99% rename from src/utils/domain/risk.ts rename to app/src/utils/domain/risk.ts index f20534a6a2..95dc07cf17 100644 --- a/src/utils/domain/risk.ts +++ b/app/src/utils/domain/risk.ts @@ -1,3 +1,8 @@ +import { + avgSafe, + maxSafe, + sumSafe, +} from '@ifrc-go/ui/utils'; import { compareNumber, isDefined, @@ -9,14 +14,12 @@ import { unique, } from '@togglecorp/fujs'; -import { type RiskApiResponse } from '#utils/restRequest'; import { type components } from '#generated/riskTypes'; -import { sumSafe, maxSafe, avgSafe } from '#utils/common'; import { CATEGORY_RISK_HIGH, - CATEGORY_RISK_VERY_HIGH, - CATEGORY_RISK_MEDIUM, CATEGORY_RISK_LOW, + CATEGORY_RISK_MEDIUM, + CATEGORY_RISK_VERY_HIGH, CATEGORY_RISK_VERY_LOW, COLOR_HAZARD_CYCLONE, COLOR_HAZARD_DROUGHT, @@ -27,6 +30,7 @@ import { COLOR_HAZARD_WILDFIRE, COLOR_LIGHT_GREY, } from '#utils/constants'; +import { type RiskApiResponse } from '#utils/restRequest'; export type HazardType = components<'read'>['schemas']['HazardTypeEnum']; type IpcEstimationType = components<'read'>['schemas']['EstimationTypeEnum']; diff --git a/app/src/utils/domain/tableHelpers.ts b/app/src/utils/domain/tableHelpers.ts new file mode 100644 index 0000000000..226e95bc97 --- /dev/null +++ b/app/src/utils/domain/tableHelpers.ts @@ -0,0 +1,176 @@ +import { + type Column, + HeaderCell, + type HeaderCellProps, + ReducedListDisplay, + type ReducedListDisplayProps, + type SortDirection, + TableActionsProps, +} from '@ifrc-go/ui'; +import { numericIdSelector } from '@ifrc-go/ui/utils'; + +import Link, { type Props as LinkProps } from '#components/Link'; +import { type GoApiResponse } from '#utils/restRequest'; + +import type { Props as CountryLinkProps } from './CountryLink'; +import CountryLink from './CountryLink'; +import type { Props as RegionLinkProps } from './RegionLink'; +import RegionLink from './RegionLink'; + +type Options = { + sortable?: boolean, + defaultSortDirection?: SortDirection, + + columnClassName?: string; + headerCellRendererClassName?: string; + headerContainerClassName?: string; + cellRendererClassName?: string; + cellContainerClassName?: string; + columnWidth?: Column['columnWidth']; + columnStretch?: Column['columnStretch']; + columnStyle?: Column['columnStyle']; + + headerInfoTitle?: HeaderCellProps['infoTitle']; + headerInfoDescription?: HeaderCellProps['infoDescription']; +} + +export function createLinkColumn( + id: string, + title: string, + accessor: (item: D) => React.ReactNode, + rendererParams: (item: D) => LinkProps, + options?: Options, +) { + const item: Column & { + valueSelector: (item: D) => string | undefined | null, + valueComparator: (foo: D, bar: D) => number, + } = { + id, + title, + headerCellRenderer: HeaderCell, + headerCellRendererParams: { + sortable: options?.sortable, + infoTitle: options?.headerInfoTitle, + infoDescription: options?.headerInfoDescription, + }, + cellRenderer: Link, + cellRendererParams: (_: K, datum: D): LinkProps => ({ + children: accessor(datum) || '--', + withUnderline: true, + ...rendererParams(datum), + }), + valueSelector: () => '', + valueComparator: () => 0, + cellRendererClassName: options?.cellRendererClassName, + columnClassName: options?.columnClassName, + headerCellRendererClassName: options?.headerCellRendererClassName, + cellContainerClassName: options?.cellContainerClassName, + columnWidth: options?.columnWidth, + columnStretch: options?.columnStretch, + columnStyle: options?.columnStyle, + }; + + return item; +} + +type CountryResponse = GoApiResponse<'/api/v2/country/'>; +type CountryListItem = NonNullable[number]; +type PartialCountry = Pick; + +type RegionListResponse = GoApiResponse<'/api/v2/region/'>; +type RegionListItem = NonNullable[number]; +type PartialRegion = Pick; + +const countryLinkRendererParams = (country: PartialCountry) => ({ + id: country.id, + name: country.name ?? '?', +}); + +const regionLinkRendererParams = (region: PartialRegion) => ({ + id: region.id, + name: region.region_name ?? '', +}); + +export function createCountryListColumn( + id: string, + title: string, + countryListSelector: (datum: DATUM) => PartialCountry[] | undefined, + options?: Options, +) { + const item: Column< + DATUM, + KEY, + ReducedListDisplayProps, + HeaderCellProps + > = { + id, + title, + headerCellRenderer: HeaderCell, + headerCellRendererParams: { + sortable: false, + }, + headerContainerClassName: options?.headerContainerClassName, + cellRenderer: ReducedListDisplay, + cellRendererParams: (_, datum) => { + const countryList = countryListSelector(datum); + + return { + list: countryList, + renderer: CountryLink, + keySelector: numericIdSelector, + rendererParams: countryLinkRendererParams, + }; + }, + cellRendererClassName: options?.cellRendererClassName, + columnClassName: options?.columnClassName, + headerCellRendererClassName: options?.headerCellRendererClassName, + cellContainerClassName: options?.cellContainerClassName, + columnWidth: options?.columnWidth, + columnStretch: options?.columnStretch, + columnStyle: options?.columnStyle, + }; + + return item; +} + +export function createRegionListColumn( + id: string, + title: string, + regionListSelector: (datum: DATUM) => PartialRegion[] | undefined, + options?: Options, +) { + const item: Column< + DATUM, + KEY, + ReducedListDisplayProps, + HeaderCellProps + > = { + id, + title, + headerCellRenderer: HeaderCell, + headerCellRendererParams: { + sortable: false, + }, + headerContainerClassName: options?.headerContainerClassName, + cellRenderer: ReducedListDisplay, + cellRendererParams: (_, datum) => { + const regionList = regionListSelector(datum); + + return { + list: regionList, + renderer: RegionLink, + keySelector: numericIdSelector, + rendererParams: regionLinkRendererParams, + }; + }, + cellRendererClassName: options?.cellRendererClassName, + columnClassName: options?.columnClassName, + headerCellRendererClassName: options?.headerCellRendererClassName, + cellContainerClassName: options?.cellContainerClassName, + columnWidth: options?.columnWidth, + columnStretch: options?.columnStretch, + columnStyle: options?.columnStyle, + }; + + return item; +} diff --git a/src/utils/domain/user.ts b/app/src/utils/domain/user.ts similarity index 90% rename from src/utils/domain/user.ts rename to app/src/utils/domain/user.ts index 86f9e992bd..852ce433a5 100644 --- a/src/utils/domain/user.ts +++ b/app/src/utils/domain/user.ts @@ -1,4 +1,7 @@ -import { isNotDefined, isTruthyString } from '@togglecorp/fujs'; +import { + isNotDefined, + isTruthyString, +} from '@togglecorp/fujs'; interface User { first_name: string | undefined | null; diff --git a/src/utils/form.ts b/app/src/utils/form.ts similarity index 100% rename from src/utils/form.ts rename to app/src/utils/form.ts index 98078565b2..e083109837 100644 --- a/src/utils/form.ts +++ b/app/src/utils/form.ts @@ -1,8 +1,8 @@ +import type { Maybe } from '@togglecorp/fujs'; import { - isInteger, isDefined, + isInteger, } from '@togglecorp/fujs'; -import type { Maybe } from '@togglecorp/fujs'; function isNumber(value: unknown): value is number { return typeof value === 'number'; diff --git a/src/utils/localStorage.ts b/app/src/utils/localStorage.ts similarity index 100% rename from src/utils/localStorage.ts rename to app/src/utils/localStorage.ts diff --git a/src/utils/map.ts b/app/src/utils/map.ts similarity index 100% rename from src/utils/map.ts rename to app/src/utils/map.ts index 2805ff60d7..b22616eada 100644 --- a/src/utils/map.ts +++ b/app/src/utils/map.ts @@ -1,22 +1,22 @@ +import getBbox from '@turf/bbox'; import type { FillLayer, - SymbolLayer, - NavigationControl, Map, + NavigationControl, + SymbolLayer, } from 'mapbox-gl'; -import getBbox from '@turf/bbox'; +import { type Country } from '#hooks/domain/useCountryRaw'; import { COLOR_BLUE, - COLOR_RED, + COLOR_DARK_GREY, + COLOR_LIGHT_GREY, COLOR_ORANGE, + COLOR_RED, OPERATION_TYPE_EMERGENCY, OPERATION_TYPE_MULTI, OPERATION_TYPE_PROGRAMME, - COLOR_LIGHT_GREY, - COLOR_DARK_GREY, } from '#utils/constants'; -import { type Country } from '#hooks/domain/useCountryRaw'; export const defaultMapStyle = 'mapbox://styles/go-ifrc/ckrfe16ru4c8718phmckdfjh0'; type NavControlOptions = NonNullable[0]>; diff --git a/src/utils/outletContext.ts b/app/src/utils/outletContext.ts similarity index 100% rename from src/utils/outletContext.ts rename to app/src/utils/outletContext.ts diff --git a/src/utils/resolveUrl.ts b/app/src/utils/resolveUrl.ts similarity index 100% rename from src/utils/resolveUrl.ts rename to app/src/utils/resolveUrl.ts diff --git a/src/utils/restRequest/error.ts b/app/src/utils/restRequest/error.ts similarity index 100% rename from src/utils/restRequest/error.ts rename to app/src/utils/restRequest/error.ts diff --git a/src/utils/restRequest/go.ts b/app/src/utils/restRequest/go.ts similarity index 98% rename from src/utils/restRequest/go.ts rename to app/src/utils/restRequest/go.ts index 192751fc20..a3330dd8cd 100644 --- a/src/utils/restRequest/go.ts +++ b/app/src/utils/restRequest/go.ts @@ -1,3 +1,4 @@ +import { type Language } from '@ifrc-go/ui/contexts'; import { isDefined, isFalsyString, @@ -5,15 +6,17 @@ import { } from '@togglecorp/fujs'; import { ContextInterface } from '@togglecorp/toggle-request'; -import { KEY_LANGUAGE_STORAGE, KEY_USER_STORAGE } from '#utils/constants'; -import { getFromStorage } from '#utils/localStorage'; -import { resolveUrl } from '#utils/resolveUrl'; import { - riskApi, api, + riskApi, } from '#config'; import { type UserAuth } from '#contexts/user'; -import { type Language } from '#contexts/language'; +import { + KEY_LANGUAGE_STORAGE, + KEY_USER_STORAGE, +} from '#utils/constants'; +import { getFromStorage } from '#utils/localStorage'; +import { resolveUrl } from '#utils/resolveUrl'; import { type ResponseObjectError } from './error'; diff --git a/src/utils/restRequest/index.ts b/app/src/utils/restRequest/index.ts similarity index 99% rename from src/utils/restRequest/index.ts rename to app/src/utils/restRequest/index.ts index 56e6d0746e..8dcb1abdfb 100644 --- a/src/utils/restRequest/index.ts +++ b/app/src/utils/restRequest/index.ts @@ -1,20 +1,21 @@ import { RequestContext, - useRequest, useLazyRequest, + useRequest, } from '@togglecorp/toggle-request'; -import type { paths as goApiPaths } from '#generated/types'; import type { paths as riskApiPaths } from '#generated/riskTypes'; +import type { paths as goApiPaths } from '#generated/types'; + import type { - CustomRequestOptions, - CustomRequestReturn, + ApiBody, + ApiResponse, + ApiUrlQuery, CustomLazyRequestOptions, CustomLazyRequestReturn, + CustomRequestOptions, + CustomRequestReturn, VALID_METHOD, - ApiResponse, - ApiUrlQuery, - ApiBody, } from './overrideTypes'; export type GoApiResponse = ApiResponse; @@ -64,8 +65,8 @@ const useRiskLazyRequest = useLazyRequest as < export { RequestContext, - useGoRequest as useRequest, useGoLazyRequest as useLazyRequest, - useRiskRequest, + useGoRequest as useRequest, useRiskLazyRequest, + useRiskRequest, }; diff --git a/src/utils/restRequest/overrideTypes.ts b/app/src/utils/restRequest/overrideTypes.ts similarity index 99% rename from src/utils/restRequest/overrideTypes.ts rename to app/src/utils/restRequest/overrideTypes.ts index 58ffe5ff66..85343d9864 100644 --- a/src/utils/restRequest/overrideTypes.ts +++ b/app/src/utils/restRequest/overrideTypes.ts @@ -1,14 +1,14 @@ +import { type DeepNevaRemove } from '@ifrc-go/ui/utils'; import { - RequestOptions, LazyRequestOptions, - useRequest, + RequestOptions, useLazyRequest, + useRequest, } from '@togglecorp/toggle-request'; -import { type DeepNevaRemove } from '#utils/common'; import { - TransformedError, AdditionalOptions, + TransformedError, } from './go'; export type VALID_METHOD = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; diff --git a/src/utils/routes.test.tsx b/app/src/utils/routes.test.tsx similarity index 89% rename from src/utils/routes.test.tsx rename to app/src/utils/routes.test.tsx index 28139247f4..463352a856 100644 --- a/src/utils/routes.test.tsx +++ b/app/src/utils/routes.test.tsx @@ -1,5 +1,12 @@ -import { expect, test } from 'vitest'; -import { trimChar, joinUrlPart } from './routes.tsx'; +import { + expect, + test, +} from 'vitest'; + +import { + joinUrlPart, + trimChar, +} from './routes.tsx'; // Edit an assertion and save to see HMR in action diff --git a/src/utils/routes.tsx b/app/src/utils/routes.tsx similarity index 100% rename from src/utils/routes.tsx rename to app/src/utils/routes.tsx index 5dccdeaca0..a941984c26 100644 --- a/src/utils/routes.tsx +++ b/app/src/utils/routes.tsx @@ -1,15 +1,15 @@ -import { - listToMap, - mapToList, - randomString, - isNotDefined, - isDefined, -} from '@togglecorp/fujs'; import { IndexRouteObject, NonIndexRouteObject, RouteObject, } from 'react-router-dom'; +import { + isDefined, + isNotDefined, + listToMap, + mapToList, + randomString, +} from '@togglecorp/fujs'; export function trimChar(str: string, char: string) { let op = str; diff --git a/src/views/Account/i18n.json b/app/src/views/Account/i18n.json similarity index 100% rename from src/views/Account/i18n.json rename to app/src/views/Account/i18n.json diff --git a/src/views/Account/index.tsx b/app/src/views/Account/index.tsx similarity index 93% rename from src/views/Account/index.tsx rename to app/src/views/Account/index.tsx index 37b002d245..4b9ef0da21 100644 --- a/src/views/Account/index.tsx +++ b/app/src/views/Account/index.tsx @@ -1,12 +1,12 @@ import { useContext } from 'react'; import { Outlet } from 'react-router-dom'; +import { NavigationTabList } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; -import Page from '#components/Page'; -import NavigationTabList from '#components/NavigationTabList'; import NavigationTab from '#components/NavigationTab'; +import Page from '#components/Page'; import WikiLink from '#components/WikiLink'; import UserContext from '#contexts/user'; -import useTranslation from '#hooks/useTranslation'; import useUserMe from '#hooks/domain/useUserMe'; import { getUserName } from '#utils/domain/user'; diff --git a/src/views/AccountDetails/ChangePassword/i18n.json b/app/src/views/AccountDetails/ChangePassword/i18n.json similarity index 100% rename from src/views/AccountDetails/ChangePassword/i18n.json rename to app/src/views/AccountDetails/ChangePassword/i18n.json diff --git a/src/views/AccountDetails/ChangePassword/index.tsx b/app/src/views/AccountDetails/ChangePassword/index.tsx similarity index 95% rename from src/views/AccountDetails/ChangePassword/index.tsx rename to app/src/views/AccountDetails/ChangePassword/index.tsx index ed48c3f7a0..8561b5fb8f 100644 --- a/src/views/AccountDetails/ChangePassword/index.tsx +++ b/app/src/views/AccountDetails/ChangePassword/index.tsx @@ -1,26 +1,31 @@ -import { useCallback, useMemo } from 'react'; import { - useForm, - ObjectSchema, - requiredStringCondition, + useCallback, + useMemo, +} from 'react'; +import { + Button, + Modal, + TextInput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { isTruthyString } from '@togglecorp/fujs'; +import { + addCondition, + createSubmitHandler, getErrorObject, + ObjectSchema, PartialForm, - createSubmitHandler, + requiredStringCondition, undefinedValue, - addCondition, + useForm, } from '@togglecorp/toggle-form'; -import { - isTruthyString, -} from '@togglecorp/fujs'; -import Button from '#components/Button'; -import Modal from '#components/Modal'; -import TextInput from '#components/TextInput'; import NonFieldError from '#components/NonFieldError'; - -import useTranslation from '#hooks/useTranslation'; import useAlert from '#hooks/useAlert'; -import { GoApiBody, useLazyRequest } from '#utils/restRequest'; +import { + GoApiBody, + useLazyRequest, +} from '#utils/restRequest'; import { transformObjectError } from '#utils/restRequest/error'; import i18n from './i18n.json'; diff --git a/src/views/AccountDetails/ChangePassword/styles.module.css b/app/src/views/AccountDetails/ChangePassword/styles.module.css similarity index 100% rename from src/views/AccountDetails/ChangePassword/styles.module.css rename to app/src/views/AccountDetails/ChangePassword/styles.module.css diff --git a/src/views/AccountDetails/EditAccountInfo/i18n.json b/app/src/views/AccountDetails/EditAccountInfo/i18n.json similarity index 100% rename from src/views/AccountDetails/EditAccountInfo/i18n.json rename to app/src/views/AccountDetails/EditAccountInfo/i18n.json diff --git a/src/views/AccountDetails/EditAccountInfo/index.tsx b/app/src/views/AccountDetails/EditAccountInfo/index.tsx similarity index 97% rename from src/views/AccountDetails/EditAccountInfo/index.tsx rename to app/src/views/AccountDetails/EditAccountInfo/index.tsx index 3589a55cc7..65f3626661 100644 --- a/src/views/AccountDetails/EditAccountInfo/index.tsx +++ b/app/src/views/AccountDetails/EditAccountInfo/index.tsx @@ -3,36 +3,38 @@ import { useContext, } from 'react'; import { - useForm, - requiredStringCondition, - getErrorObject, - createSubmitHandler, - useFormObject, - type ObjectSchema, - type PartialForm, -} from '@togglecorp/toggle-form'; + Button, + Modal, + SelectInput, + TextInput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { stringValueSelector } from '@ifrc-go/ui/utils'; import { isDefined, isFalsyString, } from '@togglecorp/fujs'; +import { + createSubmitHandler, + getErrorObject, + type ObjectSchema, + type PartialForm, + requiredStringCondition, + useForm, + useFormObject, +} from '@togglecorp/toggle-form'; -import Button from '#components/Button'; -import Modal from '#components/Modal'; -import TextInput from '#components/TextInput'; import NonFieldError from '#components/NonFieldError'; -import SelectInput from '#components/SelectInput'; -import UserContext from '#contexts/user'; import DomainContext from '#contexts/domain'; -import useTranslation from '#hooks/useTranslation'; +import UserContext from '#contexts/user'; +import useGlobalEnums from '#hooks/domain/useGlobalEnums'; +import useNationalSociety, { type NationalSociety } from '#hooks/domain/useNationalSociety'; import useAlert from '#hooks/useAlert'; import { type GoApiBody, type GoApiResponse, useLazyRequest, } from '#utils/restRequest'; -import { stringValueSelector } from '#utils/selectors'; -import useGlobalEnums from '#hooks/domain/useGlobalEnums'; -import useNationalSociety, { type NationalSociety } from '#hooks/domain/useNationalSociety'; import { transformObjectError } from '#utils/restRequest/error'; import i18n from './i18n.json'; diff --git a/src/views/AccountDetails/EditAccountInfo/styles.module.css b/app/src/views/AccountDetails/EditAccountInfo/styles.module.css similarity index 100% rename from src/views/AccountDetails/EditAccountInfo/styles.module.css rename to app/src/views/AccountDetails/EditAccountInfo/styles.module.css diff --git a/src/views/AccountDetails/i18n.json b/app/src/views/AccountDetails/i18n.json similarity index 100% rename from src/views/AccountDetails/i18n.json rename to app/src/views/AccountDetails/i18n.json diff --git a/src/views/AccountDetails/index.tsx b/app/src/views/AccountDetails/index.tsx similarity index 95% rename from src/views/AccountDetails/index.tsx rename to app/src/views/AccountDetails/index.tsx index c55a4203a5..7216db3c59 100644 --- a/src/views/AccountDetails/index.tsx +++ b/app/src/views/AccountDetails/index.tsx @@ -1,18 +1,24 @@ -import { useState, useCallback } from 'react'; +import { + useCallback, + useState, +} from 'react'; +import { PencilFillIcon } from '@ifrc-go/icons'; +import { + Button, + Container, + TextOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { isNotDefined, isTruthyString, } from '@togglecorp/fujs'; -import { PencilFillIcon } from '@ifrc-go/icons'; import useUserMe from '#hooks/domain/useUserMe'; -import Container from '#components/Container'; -import Button from '#components/Button'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; import ChangePasswordModal from './ChangePassword'; import EditAccountInfo from './EditAccountInfo'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/AccountDetails/styles.module.css b/app/src/views/AccountDetails/styles.module.css similarity index 100% rename from src/views/AccountDetails/styles.module.css rename to app/src/views/AccountDetails/styles.module.css diff --git a/src/views/AccountMyFormsDref/ActiveDrefTable/i18n.json b/app/src/views/AccountMyFormsDref/ActiveDrefTable/i18n.json similarity index 100% rename from src/views/AccountMyFormsDref/ActiveDrefTable/i18n.json rename to app/src/views/AccountMyFormsDref/ActiveDrefTable/i18n.json diff --git a/src/views/AccountMyFormsDref/ActiveDrefTable/index.tsx b/app/src/views/AccountMyFormsDref/ActiveDrefTable/index.tsx similarity index 96% rename from src/views/AccountMyFormsDref/ActiveDrefTable/index.tsx rename to app/src/views/AccountMyFormsDref/ActiveDrefTable/index.tsx index ae2821f451..3d206e5e2b 100644 --- a/src/views/AccountMyFormsDref/ActiveDrefTable/index.tsx +++ b/app/src/views/AccountMyFormsDref/ActiveDrefTable/index.tsx @@ -1,4 +1,25 @@ -import { useCallback, useMemo, useState } from 'react'; +import { + useCallback, + useMemo, + useState, +} from 'react'; +import { + Container, + Pager, + Table, + TableBodyContent, +} from '@ifrc-go/ui'; +import { type RowOptions } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + createDateColumn, + createElementColumn, + createEmptyColumn, + createExpandColumn, + createExpansionIndicatorColumn, + createStringColumn, + numericIdSelector, +} from '@ifrc-go/ui/utils'; import { _cs, isDefined, @@ -6,27 +27,13 @@ import { listToMap, } from '@togglecorp/fujs'; -import Container from '#components/Container'; -import { - createStringColumn, - createExpandColumn, - createEmptyColumn, - createExpansionIndicatorColumn, - createDateColumn, - createElementColumn, -} from '#components/Table/ColumnShortcuts'; -import { type RowOptions } from '#components/Table/types'; -import Table from '#components/Table'; -import Pager from '#components/Pager'; -import TableBodyContent from '#components/Table/TableBodyContent'; -import useTranslation from '#hooks/useTranslation'; +import useUserMe from '#hooks/domain/useUserMe'; import useFilterState from '#hooks/useFilterState'; -import { numericIdSelector } from '#utils/selectors'; import { useRequest } from '#utils/restRequest'; -import useUserMe from '#hooks/domain/useUserMe'; import DrefTableActions, { type Props as DrefTableActionsProps } from '../DrefTableActions'; import Filters, { type FilterValue } from '../Filters'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/AccountMyFormsDref/ActiveDrefTable/styles.module.css b/app/src/views/AccountMyFormsDref/ActiveDrefTable/styles.module.css similarity index 100% rename from src/views/AccountMyFormsDref/ActiveDrefTable/styles.module.css rename to app/src/views/AccountMyFormsDref/ActiveDrefTable/styles.module.css diff --git a/src/views/AccountMyFormsDref/CompletedDrefTable/i18n.json b/app/src/views/AccountMyFormsDref/CompletedDrefTable/i18n.json similarity index 100% rename from src/views/AccountMyFormsDref/CompletedDrefTable/i18n.json rename to app/src/views/AccountMyFormsDref/CompletedDrefTable/i18n.json diff --git a/src/views/AccountMyFormsDref/CompletedDrefTable/index.tsx b/app/src/views/AccountMyFormsDref/CompletedDrefTable/index.tsx similarity index 93% rename from src/views/AccountMyFormsDref/CompletedDrefTable/index.tsx rename to app/src/views/AccountMyFormsDref/CompletedDrefTable/index.tsx index d3a0b15a0a..88a3872d82 100644 --- a/src/views/AccountMyFormsDref/CompletedDrefTable/index.tsx +++ b/app/src/views/AccountMyFormsDref/CompletedDrefTable/index.tsx @@ -1,26 +1,36 @@ -import { useCallback, useMemo, useState } from 'react'; -import { _cs, isDefined } from '@togglecorp/fujs'; - import { - createStringColumn, - createExpandColumn, - createEmptyColumn, - createExpansionIndicatorColumn, + useCallback, + useMemo, + useState, +} from 'react'; +import { + Container, + Pager, + Table, + TableBodyContent, +} from '@ifrc-go/ui'; +import { type RowOptions } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { createDateColumn, createElementColumn, -} from '#components/Table/ColumnShortcuts'; -import { type RowOptions } from '#components/Table/types'; -import Container from '#components/Container'; -import Table from '#components/Table'; -import Pager from '#components/Pager'; -import TableBodyContent from '#components/Table/TableBodyContent'; -import useTranslation from '#hooks/useTranslation'; + createEmptyColumn, + createExpandColumn, + createExpansionIndicatorColumn, + createStringColumn, + numericIdSelector, +} from '@ifrc-go/ui/utils'; +import { + _cs, + isDefined, +} from '@togglecorp/fujs'; + import useFilterState from '#hooks/useFilterState'; -import { numericIdSelector } from '#utils/selectors'; import { useRequest } from '#utils/restRequest'; import DrefTableActions, { type Props as DrefTableActionsProps } from '../DrefTableActions'; import Filters, { type FilterValue } from '../Filters'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/AccountMyFormsDref/CompletedDrefTable/styles.module.css b/app/src/views/AccountMyFormsDref/CompletedDrefTable/styles.module.css similarity index 100% rename from src/views/AccountMyFormsDref/CompletedDrefTable/styles.module.css rename to app/src/views/AccountMyFormsDref/CompletedDrefTable/styles.module.css diff --git a/src/views/AccountMyFormsDref/DrefTableActions/drefAllocationExport.ts b/app/src/views/AccountMyFormsDref/DrefTableActions/drefAllocationExport.ts similarity index 100% rename from src/views/AccountMyFormsDref/DrefTableActions/drefAllocationExport.ts rename to app/src/views/AccountMyFormsDref/DrefTableActions/drefAllocationExport.ts diff --git a/src/views/AccountMyFormsDref/DrefTableActions/i18n.json b/app/src/views/AccountMyFormsDref/DrefTableActions/i18n.json similarity index 100% rename from src/views/AccountMyFormsDref/DrefTableActions/i18n.json rename to app/src/views/AccountMyFormsDref/DrefTableActions/i18n.json diff --git a/src/views/AccountMyFormsDref/DrefTableActions/index.tsx b/app/src/views/AccountMyFormsDref/DrefTableActions/index.tsx similarity index 97% rename from src/views/AccountMyFormsDref/DrefTableActions/index.tsx rename to app/src/views/AccountMyFormsDref/DrefTableActions/index.tsx index ba672588b0..1e6b98e4be 100644 --- a/src/views/AccountMyFormsDref/DrefTableActions/index.tsx +++ b/app/src/views/AccountMyFormsDref/DrefTableActions/index.tsx @@ -1,5 +1,4 @@ import { useCallback } from 'react'; -import { isDefined } from '@togglecorp/fujs'; import { AddLineIcon, CaseManagementIcon, @@ -9,24 +8,37 @@ import { PencilLineIcon, ShareLineIcon, } from '@ifrc-go/icons'; +import type { ButtonProps } from '@ifrc-go/ui'; +import { + Message, + Modal, + TableActions, +} from '@ifrc-go/ui'; +import { + useBooleanState, + useTranslation, +} from '@ifrc-go/ui/hooks'; +import { isDefined } from '@togglecorp/fujs'; -import useRouting from '#hooks/useRouting'; -import { type Props as ButtonProps } from '#components/Button'; +import DrefExportModal from '#components/domain/DrefExportModal'; +import DrefShareModal from '#components/domain/DrefShareModal'; import DropdownMenuItem from '#components/DropdownMenuItem'; -import TableActions from '#components/Table/TableActions'; import Link from '#components/Link'; -import Modal from '#components/Modal'; -import Message from '#components/Message'; -import DrefShareModal from '#components/domain/DrefShareModal'; -import DrefExportModal from '#components/domain/DrefExportModal'; import { type components } from '#generated/types'; -import useBooleanState from '#hooks/useBooleanState'; -import useTranslation from '#hooks/useTranslation'; import useAlert from '#hooks/useAlert'; -import { GoApiBody, useLazyRequest } from '#utils/restRequest'; -import { DREF_STATUS_IN_PROGRESS, DREF_TYPE_IMMINENT, DREF_TYPE_LOAN } from '#utils/constants'; +import useRouting from '#hooks/useRouting'; +import { + DREF_STATUS_IN_PROGRESS, + DREF_TYPE_IMMINENT, + DREF_TYPE_LOAN, +} from '#utils/constants'; +import { + GoApiBody, + useLazyRequest, +} from '#utils/restRequest'; import { exportDrefAllocation } from './drefAllocationExport'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/AccountMyFormsDref/DrefTableActions/styles.module.css b/app/src/views/AccountMyFormsDref/DrefTableActions/styles.module.css similarity index 100% rename from src/views/AccountMyFormsDref/DrefTableActions/styles.module.css rename to app/src/views/AccountMyFormsDref/DrefTableActions/styles.module.css diff --git a/src/views/AccountMyFormsDref/Filters/i18n.json b/app/src/views/AccountMyFormsDref/Filters/i18n.json similarity index 100% rename from src/views/AccountMyFormsDref/Filters/i18n.json rename to app/src/views/AccountMyFormsDref/Filters/i18n.json diff --git a/src/views/AccountMyFormsDref/Filters/index.tsx b/app/src/views/AccountMyFormsDref/Filters/index.tsx similarity index 91% rename from src/views/AccountMyFormsDref/Filters/index.tsx rename to app/src/views/AccountMyFormsDref/Filters/index.tsx index 7901e6e8ab..75718f7983 100644 --- a/src/views/AccountMyFormsDref/Filters/index.tsx +++ b/app/src/views/AccountMyFormsDref/Filters/index.tsx @@ -1,13 +1,15 @@ +import { + SelectInput, + TextInput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { stringValueSelector } from '@ifrc-go/ui/utils'; import { EntriesAsList } from '@togglecorp/toggle-form'; -import TextInput from '#components/TextInput'; import CountrySelectInput from '#components/domain/CountrySelectInput'; -import SelectInput from '#components/SelectInput'; import DisasterTypeSelectInput from '#components/domain/DisasterTypeSelectInput'; -import useTranslation from '#hooks/useTranslation'; -import useGlobalEnums from '#hooks/domain/useGlobalEnums'; -import { stringValueSelector } from '#utils/selectors'; import { type components } from '#generated/types'; +import useGlobalEnums from '#hooks/domain/useGlobalEnums'; import i18n from './i18n.json'; diff --git a/src/views/AccountMyFormsDref/i18n.json b/app/src/views/AccountMyFormsDref/i18n.json similarity index 100% rename from src/views/AccountMyFormsDref/i18n.json rename to app/src/views/AccountMyFormsDref/i18n.json diff --git a/src/views/AccountMyFormsDref/index.tsx b/app/src/views/AccountMyFormsDref/index.tsx similarity index 90% rename from src/views/AccountMyFormsDref/index.tsx rename to app/src/views/AccountMyFormsDref/index.tsx index 9405505b80..5f14110f16 100644 --- a/src/views/AccountMyFormsDref/index.tsx +++ b/app/src/views/AccountMyFormsDref/index.tsx @@ -1,11 +1,14 @@ import { useState } from 'react'; -import { ChevronLeftLineIcon, ChevronRightLineIcon } from '@ifrc-go/icons'; - -import Button from '#components/Button'; -import useTranslation from '#hooks/useTranslation'; +import { + ChevronLeftLineIcon, + ChevronRightLineIcon, +} from '@ifrc-go/icons'; +import { Button } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import ActiveDrefTable from './ActiveDrefTable'; import CompletedDrefTable from './CompletedDrefTable'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/AccountMyFormsDref/styles.module.css b/app/src/views/AccountMyFormsDref/styles.module.css similarity index 100% rename from src/views/AccountMyFormsDref/styles.module.css rename to app/src/views/AccountMyFormsDref/styles.module.css diff --git a/src/views/AccountMyFormsFieldReport/i18n.json b/app/src/views/AccountMyFormsFieldReport/i18n.json similarity index 100% rename from src/views/AccountMyFormsFieldReport/i18n.json rename to app/src/views/AccountMyFormsFieldReport/i18n.json diff --git a/src/views/AccountMyFormsFieldReport/index.tsx b/app/src/views/AccountMyFormsFieldReport/index.tsx similarity index 90% rename from src/views/AccountMyFormsFieldReport/index.tsx rename to app/src/views/AccountMyFormsFieldReport/index.tsx index 576a368cbd..518874da1a 100644 --- a/src/views/AccountMyFormsFieldReport/index.tsx +++ b/app/src/views/AccountMyFormsFieldReport/index.tsx @@ -1,24 +1,31 @@ import { useMemo } from 'react'; +import { + Container, + NumberOutput, + Pager, + Table, +} from '@ifrc-go/ui'; +import { SortContext } from '@ifrc-go/ui/contexts'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + createDateColumn, + createStringColumn, + numericIdSelector, + resolveToComponent, +} from '@ifrc-go/ui/utils'; import { isNotDefined } from '@togglecorp/fujs'; -import { SortContext } from '#components/Table/useSorting'; -import Table from '#components/Table'; import Link from '#components/Link'; -import Container from '#components/Container'; +import useUserMe from '#hooks/domain/useUserMe'; +import useFilterState from '#hooks/useFilterState'; import { - createStringColumn, - createDateColumn, - createLinkColumn, createCountryListColumn, -} from '#components/Table/ColumnShortcuts'; -import Pager from '#components/Pager'; -import NumberOutput from '#components/NumberOutput'; -import useTranslation from '#hooks/useTranslation'; -import useFilterState from '#hooks/useFilterState'; -import { GoApiResponse, useRequest } from '#utils/restRequest'; -import { resolveToComponent } from '#utils/translation'; -import useUserMe from '#hooks/domain/useUserMe'; -import { numericIdSelector } from '#utils/selectors'; + createLinkColumn, +} from '#utils/domain/tableHelpers'; +import { + GoApiResponse, + useRequest, +} from '#utils/restRequest'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/AccountMyFormsFieldReport/styles.module.css b/app/src/views/AccountMyFormsFieldReport/styles.module.css similarity index 100% rename from src/views/AccountMyFormsFieldReport/styles.module.css rename to app/src/views/AccountMyFormsFieldReport/styles.module.css diff --git a/src/views/AccountMyFormsLayout/i18n.json b/app/src/views/AccountMyFormsLayout/i18n.json similarity index 100% rename from src/views/AccountMyFormsLayout/i18n.json rename to app/src/views/AccountMyFormsLayout/i18n.json diff --git a/src/views/AccountMyFormsLayout/index.tsx b/app/src/views/AccountMyFormsLayout/index.tsx similarity index 91% rename from src/views/AccountMyFormsLayout/index.tsx rename to app/src/views/AccountMyFormsLayout/index.tsx index 252a92ca5c..ac2a7b65b1 100644 --- a/src/views/AccountMyFormsLayout/index.tsx +++ b/app/src/views/AccountMyFormsLayout/index.tsx @@ -1,8 +1,8 @@ import { Outlet } from 'react-router-dom'; +import { NavigationTabList } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; -import NavigationTabList from '#components/NavigationTabList'; import NavigationTab from '#components/NavigationTab'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/AccountMyFormsLayout/styles.module.css b/app/src/views/AccountMyFormsLayout/styles.module.css similarity index 100% rename from src/views/AccountMyFormsLayout/styles.module.css rename to app/src/views/AccountMyFormsLayout/styles.module.css diff --git a/src/views/AccountMyFormsPer/PerTableActions/i18n.json b/app/src/views/AccountMyFormsPer/PerTableActions/i18n.json similarity index 100% rename from src/views/AccountMyFormsPer/PerTableActions/i18n.json rename to app/src/views/AccountMyFormsPer/PerTableActions/i18n.json diff --git a/src/views/AccountMyFormsPer/PerTableActions/index.tsx b/app/src/views/AccountMyFormsPer/PerTableActions/index.tsx similarity index 94% rename from src/views/AccountMyFormsPer/PerTableActions/index.tsx rename to app/src/views/AccountMyFormsPer/PerTableActions/index.tsx index 8ee22b8684..3d8a41dfb5 100644 --- a/src/views/AccountMyFormsPer/PerTableActions/index.tsx +++ b/app/src/views/AccountMyFormsPer/PerTableActions/index.tsx @@ -1,22 +1,23 @@ -import { - useCallback, -} from 'react'; -import { isDefined, listToMap } from '@togglecorp/fujs'; +import { useCallback } from 'react'; import { SearchLineIcon } from '@ifrc-go/icons'; +import { TableActions } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToString } from '@ifrc-go/ui/utils'; +import { + isDefined, + listToMap, +} from '@togglecorp/fujs'; import DropdownMenuItem from '#components/DropdownMenuItem'; import Link from '#components/Link'; -import TableActions from '#components/Table/TableActions'; +import useGlobalEnums from '#hooks/domain/useGlobalEnums'; import { - PER_PHASE_OVERVIEW, + PER_PHASE_ACTION, PER_PHASE_ASSESSMENT, + PER_PHASE_OVERVIEW, PER_PHASE_PRIORITIZATION, PER_PHASE_WORKPLAN, - PER_PHASE_ACTION, } from '#utils/domain/per'; -import useTranslation from '#hooks/useTranslation'; -import { resolveToString } from '#utils/translation'; -import useGlobalEnums from '#hooks/domain/useGlobalEnums'; import { type GoApiResponse } from '#utils/restRequest'; import i18n from './i18n.json'; diff --git a/src/views/AccountMyFormsPer/i18n.json b/app/src/views/AccountMyFormsPer/i18n.json similarity index 100% rename from src/views/AccountMyFormsPer/i18n.json rename to app/src/views/AccountMyFormsPer/i18n.json diff --git a/src/views/AccountMyFormsPer/index.tsx b/app/src/views/AccountMyFormsPer/index.tsx similarity index 93% rename from src/views/AccountMyFormsPer/index.tsx rename to app/src/views/AccountMyFormsPer/index.tsx index 1f21e22d2f..90ba965ef8 100644 --- a/src/views/AccountMyFormsPer/index.tsx +++ b/app/src/views/AccountMyFormsPer/index.tsx @@ -1,38 +1,44 @@ import { - useMemo, useCallback, + useMemo, useState, } from 'react'; import { - isNotDefined, - isDefined, -} from '@togglecorp/fujs'; - -import Pager from '#components/Pager'; -import Table from '#components/Table'; + Container, + Pager, + Table, + TableBodyContent, +} from '@ifrc-go/ui'; +import { type RowOptions } from '@ifrc-go/ui'; +import { SortContext } from '@ifrc-go/ui/contexts'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { - createNumberColumn, createDateColumn, - createLinkColumn, - createStringColumn, - createExpandColumn, + createElementColumn, createEmptyColumn, + createExpandColumn, createExpansionIndicatorColumn, - createElementColumn, -} from '#components/Table/ColumnShortcuts'; -import { SortContext } from '#components/Table/useSorting'; -import TableBodyContent from '#components/Table/TableBodyContent'; -import { type RowOptions } from '#components/Table/types'; + createNumberColumn, + createStringColumn, + numericIdSelector, +} from '@ifrc-go/ui/utils'; +import { + isDefined, + isNotDefined, +} from '@togglecorp/fujs'; + import CountrySelectInput from '#components/domain/CountrySelectInput'; import RegionSelectInput, { type RegionOption } from '#components/domain/RegionSelectInput'; import Link from '#components/Link'; -import Container from '#components/Container'; -import useTranslation from '#hooks/useTranslation'; import useFilterState from '#hooks/useFilterState'; -import { useRequest, type GoApiResponse } from '#utils/restRequest'; -import { numericIdSelector } from '#utils/selectors'; +import { createLinkColumn } from '#utils/domain/tableHelpers'; +import { + type GoApiResponse, + useRequest, +} from '#utils/restRequest'; import PerTableActions, { type Props as PerTableActionsProps } from './PerTableActions'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/AccountMyFormsPer/styles.module.css b/app/src/views/AccountMyFormsPer/styles.module.css similarity index 100% rename from src/views/AccountMyFormsPer/styles.module.css rename to app/src/views/AccountMyFormsPer/styles.module.css diff --git a/src/views/AccountMyFormsThreeW/ThreeWTableActions/i18n.json b/app/src/views/AccountMyFormsThreeW/ThreeWTableActions/i18n.json similarity index 100% rename from src/views/AccountMyFormsThreeW/ThreeWTableActions/i18n.json rename to app/src/views/AccountMyFormsThreeW/ThreeWTableActions/i18n.json diff --git a/src/views/AccountMyFormsThreeW/ThreeWTableActions/index.tsx b/app/src/views/AccountMyFormsThreeW/ThreeWTableActions/index.tsx similarity index 96% rename from src/views/AccountMyFormsThreeW/ThreeWTableActions/index.tsx rename to app/src/views/AccountMyFormsThreeW/ThreeWTableActions/index.tsx index 1f83a0eea7..d6f318dd3d 100644 --- a/src/views/AccountMyFormsThreeW/ThreeWTableActions/index.tsx +++ b/app/src/views/AccountMyFormsThreeW/ThreeWTableActions/index.tsx @@ -3,10 +3,10 @@ import { PencilFillIcon, ShareBoxLineIcon, } from '@ifrc-go/icons'; +import { TableActions } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; -import TableActions from '#components/Table/TableActions'; import DropdownMenuItem from '#components/DropdownMenuItem'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/AccountMyFormsThreeW/i18n.json b/app/src/views/AccountMyFormsThreeW/i18n.json similarity index 100% rename from src/views/AccountMyFormsThreeW/i18n.json rename to app/src/views/AccountMyFormsThreeW/i18n.json diff --git a/src/views/AccountMyFormsThreeW/index.tsx b/app/src/views/AccountMyFormsThreeW/index.tsx similarity index 95% rename from src/views/AccountMyFormsThreeW/index.tsx rename to app/src/views/AccountMyFormsThreeW/index.tsx index f3d1712e9d..bb0d13de9c 100644 --- a/src/views/AccountMyFormsThreeW/index.tsx +++ b/app/src/views/AccountMyFormsThreeW/index.tsx @@ -1,28 +1,35 @@ -import { useMemo, useContext } from 'react'; -import { _cs } from '@togglecorp/fujs'; - -import useTranslation from '#hooks/useTranslation'; -import Container from '#components/Container'; -import Pager from '#components/Pager'; -import Table from '#components/Table'; import { - createStringColumn, + useContext, + useMemo, +} from 'react'; +import { + Container, + Pager, + Table, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { createDateColumn, - createNumberColumn, - createListDisplayColumn, createElementColumn, - createLinkColumn, -} from '#components/Table/ColumnShortcuts'; + createListDisplayColumn, + createNumberColumn, + createStringColumn, + numericIdSelector, + sumSafe, +} from '@ifrc-go/ui/utils'; +import { _cs } from '@togglecorp/fujs'; + import Link from '#components/Link'; -import useFilterState from '#hooks/useFilterState'; -import { useRequest, type GoApiResponse } from '#utils/restRequest'; -import { sumSafe } from '#utils/common'; -import { numericIdSelector } from '#utils/selectors'; import UserContext from '#contexts/user'; +import useFilterState from '#hooks/useFilterState'; +import { createLinkColumn } from '#utils/domain/tableHelpers'; +import { + type GoApiResponse, + useRequest, +} from '#utils/restRequest'; + +import ThreeWTableActions, { type Props as ThreeWTableActionsProps } from './ThreeWTableActions'; -import ThreeWTableActions, { - type Props as ThreeWTableActionsProps, -} from './ThreeWTableActions'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/AccountMyFormsThreeW/styles.module.css b/app/src/views/AccountMyFormsThreeW/styles.module.css similarity index 100% rename from src/views/AccountMyFormsThreeW/styles.module.css rename to app/src/views/AccountMyFormsThreeW/styles.module.css diff --git a/src/views/AccountNotifications/SubscriptionPreferences/i18n.json b/app/src/views/AccountNotifications/SubscriptionPreferences/i18n.json similarity index 100% rename from src/views/AccountNotifications/SubscriptionPreferences/i18n.json rename to app/src/views/AccountNotifications/SubscriptionPreferences/i18n.json diff --git a/src/views/AccountNotifications/SubscriptionPreferences/index.tsx b/app/src/views/AccountNotifications/SubscriptionPreferences/index.tsx similarity index 95% rename from src/views/AccountNotifications/SubscriptionPreferences/index.tsx rename to app/src/views/AccountNotifications/SubscriptionPreferences/index.tsx index 421f7d266b..d0a859ae88 100644 --- a/src/views/AccountNotifications/SubscriptionPreferences/index.tsx +++ b/app/src/views/AccountNotifications/SubscriptionPreferences/index.tsx @@ -1,22 +1,33 @@ import { useCallback, + useContext, useEffect, useState, - useContext, } from 'react'; +import { + Button, + Checkbox, + Checklist, + Container, + MultiSelectInput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + numericIdSelector, + stringNameSelector, + stringValueSelector, +} from '@ifrc-go/ui/utils'; +import { + isDefined, + listToGroupList, +} from '@togglecorp/fujs'; import { type EntriesAsList } from '@togglecorp/toggle-form'; -import { isDefined, listToGroupList } from '@togglecorp/fujs'; -import MultiSelectInput from '#components/MultiSelectInput'; -import Container from '#components/Container'; -import CheckList from '#components/Checklist'; +import DomainContext from '#contexts/domain'; +import { type components } from '#generated/types'; import useCountry from '#hooks/domain/useCountry'; import useDisasterTypes from '#hooks/domain/useDisasterType'; import useGlobalEnums from '#hooks/domain/useGlobalEnums'; -import { numericIdSelector, stringNameSelector, stringValueSelector } from '#utils/selectors'; -import { type components } from '#generated/types'; -import Checkbox from '#components/Checkbox'; -import Button from '#components/Button'; import useUserMe from '#hooks/domain/useUserMe'; import useAlert from '#hooks/useAlert'; import { @@ -32,9 +43,10 @@ import { SUBSCRIPTION_SURGE_DEPLOYMENT_MESSAGES, SUBSCRIPTION_WEEKLY_DIGEST, } from '#utils/constants'; -import DomainContext from '#contexts/domain'; -import { type GoApiBody, useLazyRequest } from '#utils/restRequest'; -import useTranslation from '#hooks/useTranslation'; +import { + type GoApiBody, + useLazyRequest, +} from '#utils/restRequest'; import i18n from './i18n.json'; import styles from './styles.module.css'; @@ -254,7 +266,7 @@ function SubscriptionPreferences() { headerDescription={strings.subscriptionRegionalNotificationsDescription} headingLevel={5} > - - ['capacity']>[number]; +type AssessmentTypeEnum = components<'read'>['schemas']['AssessmentTypeEnum']; + +const TYPE_OCAC = 0 satisfies AssessmentTypeEnum; +const TYPE_BOCA = 1 satisfies AssessmentTypeEnum; + +interface Props { + capacity: CapacityItem; +} + +function CapacityListItem(props: Props) { + const { + capacity, + } = props; + + const strings = useTranslation(i18n); + + return ( + } + external + > + {strings.capacityListItemViewDetails} + + )} + > + {capacity?.assessment_type === TYPE_OCAC && ( + + )} + {capacity?.assessment_type === TYPE_BOCA && ( + + )} + + ); +} + +export default CapacityListItem; diff --git a/app/src/views/CountryNsOverviewCapacity/CountryNsCapacityStrengthening/CapacityListItem/styles.module.css b/app/src/views/CountryNsOverviewCapacity/CountryNsCapacityStrengthening/CapacityListItem/styles.module.css new file mode 100644 index 0000000000..1a21e6168d --- /dev/null +++ b/app/src/views/CountryNsOverviewCapacity/CountryNsCapacityStrengthening/CapacityListItem/styles.module.css @@ -0,0 +1,4 @@ +.capacity-item { + border-radius: var(--go-ui-border-radius-md); + box-shadow: var(--go-ui-box-shadow-md); +} diff --git a/app/src/views/CountryNsOverviewCapacity/CountryNsCapacityStrengthening/i18n.json b/app/src/views/CountryNsOverviewCapacity/CountryNsCapacityStrengthening/i18n.json new file mode 100644 index 0000000000..3ef02da9cb --- /dev/null +++ b/app/src/views/CountryNsOverviewCapacity/CountryNsCapacityStrengthening/i18n.json @@ -0,0 +1,7 @@ +{ + "namespace": "countryNsCapacityStrengthening", + "strings": { + "countryNsCapacityStrengtheningHeading": "Capacity and Strengthening and Development Processes", + "countryNsCapacityStrengtheningDescription": "Various assessment and processes that the NS has undergone through IFRC." + } +} diff --git a/app/src/views/CountryNsOverviewCapacity/CountryNsCapacityStrengthening/index.tsx b/app/src/views/CountryNsOverviewCapacity/CountryNsCapacityStrengthening/index.tsx new file mode 100644 index 0000000000..c83e39f433 --- /dev/null +++ b/app/src/views/CountryNsOverviewCapacity/CountryNsCapacityStrengthening/index.tsx @@ -0,0 +1,56 @@ +import { useCallback } from 'react'; +import { useOutletContext } from 'react-router-dom'; +import { + Container, + List, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + +import { CountryOutletContext } from '#utils/outletContext'; + +import CapacityListItem from './CapacityListItem'; + +import i18n from './i18n.json'; +import styles from './styles.module.css'; + +type CapacityItem = NonNullable['capacity']>[number]; + +function capacityKeySelector(option: CapacityItem) { + return option.id; +} + +function CountryNsCapacityStrengthening() { + const strings = useTranslation(i18n); + + const { countryResponse } = useOutletContext(); + + const rendererParams = useCallback( + (_: number, capacity: CapacityItem) => ({ + capacity, + }), + [], + ); + + return ( + + + + ); +} + +export default CountryNsCapacityStrengthening; diff --git a/app/src/views/CountryNsOverviewCapacity/CountryNsCapacityStrengthening/styles.module.css b/app/src/views/CountryNsOverviewCapacity/CountryNsCapacityStrengthening/styles.module.css new file mode 100644 index 0000000000..61067229b2 --- /dev/null +++ b/app/src/views/CountryNsOverviewCapacity/CountryNsCapacityStrengthening/styles.module.css @@ -0,0 +1,12 @@ +.country-ns-capacity-strengthening { + + .empty-message { + grid-column: -1 / 1; + } + + .capacity-list-container { + display: grid; + grid-gap: var(--go-ui-spacing-lg); + grid-template-columns: repeat(auto-fill, minmax(22rem, 1fr)); + } +} diff --git a/src/views/CountryNsOverviewCapacity/CountryNsOrganisationalCapacity/i18n.json b/app/src/views/CountryNsOverviewCapacity/CountryNsOrganisationalCapacity/i18n.json similarity index 100% rename from src/views/CountryNsOverviewCapacity/CountryNsOrganisationalCapacity/i18n.json rename to app/src/views/CountryNsOverviewCapacity/CountryNsOrganisationalCapacity/i18n.json diff --git a/src/views/CountryNsOverviewCapacity/CountryNsOrganisationalCapacity/index.tsx b/app/src/views/CountryNsOverviewCapacity/CountryNsOrganisationalCapacity/index.tsx similarity index 96% rename from src/views/CountryNsOverviewCapacity/CountryNsOrganisationalCapacity/index.tsx rename to app/src/views/CountryNsOverviewCapacity/CountryNsOrganisationalCapacity/index.tsx index 23eff4cadd..943ede4a74 100644 --- a/src/views/CountryNsOverviewCapacity/CountryNsOrganisationalCapacity/index.tsx +++ b/app/src/views/CountryNsOverviewCapacity/CountryNsOrganisationalCapacity/index.tsx @@ -1,8 +1,8 @@ -import { isDefined } from '@togglecorp/fujs'; import { useOutletContext } from 'react-router-dom'; +import { Container } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { isDefined } from '@togglecorp/fujs'; -import Container from '#components/Container'; -import useTranslation from '#hooks/useTranslation'; import { type CountryOutletContext } from '#utils/outletContext'; import i18n from './i18n.json'; diff --git a/src/views/CountryNsOverviewCapacity/CountryNsOrganisationalCapacity/styles.module.css b/app/src/views/CountryNsOverviewCapacity/CountryNsOrganisationalCapacity/styles.module.css similarity index 100% rename from src/views/CountryNsOverviewCapacity/CountryNsOrganisationalCapacity/styles.module.css rename to app/src/views/CountryNsOverviewCapacity/CountryNsOrganisationalCapacity/styles.module.css diff --git a/src/views/CountryNsOverviewCapacity/i18n.json b/app/src/views/CountryNsOverviewCapacity/i18n.json similarity index 100% rename from src/views/CountryNsOverviewCapacity/i18n.json rename to app/src/views/CountryNsOverviewCapacity/i18n.json diff --git a/src/views/CountryNsOverviewCapacity/index.tsx b/app/src/views/CountryNsOverviewCapacity/index.tsx similarity index 93% rename from src/views/CountryNsOverviewCapacity/index.tsx rename to app/src/views/CountryNsOverviewCapacity/index.tsx index 094735bcbf..14ca0e13b8 100644 --- a/src/views/CountryNsOverviewCapacity/index.tsx +++ b/app/src/views/CountryNsOverviewCapacity/index.tsx @@ -1,16 +1,21 @@ import { useOutletContext } from 'react-router-dom'; -import { isDefined, isNotDefined } from '@togglecorp/fujs'; +import { + BlockLoading, + Container, + Message, + TextOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToString } from '@ifrc-go/ui/utils'; +import { + isDefined, + isNotDefined, +} from '@togglecorp/fujs'; -import BlockLoading from '#components/BlockLoading'; -import Container from '#components/Container'; -import TextOutput from '#components/TextOutput'; import Link from '#components/Link'; -import Message from '#components/Message'; -import useTranslation from '#hooks/useTranslation'; import { REGION_ASIA } from '#utils/constants'; -import { useRequest } from '#utils/restRequest'; -import { resolveToString } from '#utils/translation'; import { type CountryOutletContext } from '#utils/outletContext'; +import { useRequest } from '#utils/restRequest'; import CountryNsCapacityStrengthening from './CountryNsCapacityStrengthening'; import CountryNsOrganisationalCapacity from './CountryNsOrganisationalCapacity'; diff --git a/src/views/CountryNsOverviewCapacity/styles.module.css b/app/src/views/CountryNsOverviewCapacity/styles.module.css similarity index 100% rename from src/views/CountryNsOverviewCapacity/styles.module.css rename to app/src/views/CountryNsOverviewCapacity/styles.module.css diff --git a/src/views/CountryNsOverviewContextAndStructure/NationalSocietyContacts/i18n.json b/app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyContacts/i18n.json similarity index 100% rename from src/views/CountryNsOverviewContextAndStructure/NationalSocietyContacts/i18n.json rename to app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyContacts/i18n.json diff --git a/src/views/CountryNsOverviewContextAndStructure/NationalSocietyContacts/index.tsx b/app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyContacts/index.tsx similarity index 87% rename from src/views/CountryNsOverviewContextAndStructure/NationalSocietyContacts/index.tsx rename to app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyContacts/index.tsx index f70110ef16..c2f9741258 100644 --- a/src/views/CountryNsOverviewContextAndStructure/NationalSocietyContacts/index.tsx +++ b/app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyContacts/index.tsx @@ -1,13 +1,18 @@ import { useMemo } from 'react'; import { useOutletContext } from 'react-router-dom'; +import { + Container, + Table, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + createStringColumn, + numericIdSelector, +} from '@ifrc-go/ui/utils'; import { _cs } from '@togglecorp/fujs'; -import Container from '#components/Container'; -import Table from '#components/Table'; -import { createLinkColumn, createStringColumn } from '#components/Table/ColumnShortcuts'; -import useTranslation from '#hooks/useTranslation'; +import { createLinkColumn } from '#utils/domain/tableHelpers'; import { type CountryOutletContext } from '#utils/outletContext'; -import { numericIdSelector } from '#utils/selectors'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/CountryNsOverviewContextAndStructure/NationalSocietyContacts/styles.module.css b/app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyContacts/styles.module.css similarity index 100% rename from src/views/CountryNsOverviewContextAndStructure/NationalSocietyContacts/styles.module.css rename to app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyContacts/styles.module.css diff --git a/src/views/CountryNsOverviewContextAndStructure/NationalSocietyDirectory/i18n.json b/app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyDirectory/i18n.json similarity index 100% rename from src/views/CountryNsOverviewContextAndStructure/NationalSocietyDirectory/i18n.json rename to app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyDirectory/i18n.json diff --git a/src/views/CountryNsOverviewContextAndStructure/NationalSocietyDirectory/index.tsx b/app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyDirectory/index.tsx similarity index 92% rename from src/views/CountryNsOverviewContextAndStructure/NationalSocietyDirectory/index.tsx rename to app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyDirectory/index.tsx index 56f1aac7e3..c7502361de 100644 --- a/src/views/CountryNsOverviewContextAndStructure/NationalSocietyDirectory/index.tsx +++ b/app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyDirectory/index.tsx @@ -1,14 +1,16 @@ import { useOutletContext } from 'react-router-dom'; +import { + Container, + TextOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { _cs } from '@togglecorp/fujs'; -import Container from '#components/Container'; import Link from '#components/Link'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; import { type CountryOutletContext } from '#utils/outletContext'; -import styles from './styles.module.css'; import i18n from './i18n.json'; +import styles from './styles.module.css'; interface Props { className?: string; diff --git a/src/views/CountryNsOverviewContextAndStructure/NationalSocietyDirectory/styles.module.css b/app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyDirectory/styles.module.css similarity index 100% rename from src/views/CountryNsOverviewContextAndStructure/NationalSocietyDirectory/styles.module.css rename to app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyDirectory/styles.module.css diff --git a/src/views/CountryNsOverviewContextAndStructure/NationalSocietyIndicators/i18n.json b/app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyIndicators/i18n.json similarity index 100% rename from src/views/CountryNsOverviewContextAndStructure/NationalSocietyIndicators/i18n.json rename to app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyIndicators/i18n.json diff --git a/src/views/CountryNsOverviewContextAndStructure/NationalSocietyIndicators/index.tsx b/app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyIndicators/index.tsx similarity index 91% rename from src/views/CountryNsOverviewContextAndStructure/NationalSocietyIndicators/index.tsx rename to app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyIndicators/index.tsx index 2993fff3fc..e1c251b124 100644 --- a/src/views/CountryNsOverviewContextAndStructure/NationalSocietyIndicators/index.tsx +++ b/app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyIndicators/index.tsx @@ -1,12 +1,17 @@ import { useOutletContext } from 'react-router-dom'; -import { isDefined, isNotDefined } from '@togglecorp/fujs'; +import { + BlockLoading, + Container, + TextOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { sumSafe } from '@ifrc-go/ui/utils'; +import { + isDefined, + isNotDefined, +} from '@togglecorp/fujs'; -import BlockLoading from '#components/BlockLoading'; -import Container from '#components/Container'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; import { type CountryOutletContext } from '#utils/outletContext'; -import { sumSafe } from '#utils/common'; import { useRequest } from '#utils/restRequest'; import i18n from './i18n.json'; diff --git a/src/views/CountryNsOverviewContextAndStructure/NationalSocietyIndicators/styles.module.css b/app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyIndicators/styles.module.css similarity index 100% rename from src/views/CountryNsOverviewContextAndStructure/NationalSocietyIndicators/styles.module.css rename to app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyIndicators/styles.module.css diff --git a/src/views/CountryNsOverviewContextAndStructure/NationalSocietyKeyDocuments/DocumentListCard/index.tsx b/app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyKeyDocuments/DocumentListCard/index.tsx similarity index 92% rename from src/views/CountryNsOverviewContextAndStructure/NationalSocietyKeyDocuments/DocumentListCard/index.tsx rename to app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyKeyDocuments/DocumentListCard/index.tsx index 0faa7c81bd..2bfe5efa57 100644 --- a/src/views/CountryNsOverviewContextAndStructure/NationalSocietyKeyDocuments/DocumentListCard/index.tsx +++ b/app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyKeyDocuments/DocumentListCard/index.tsx @@ -1,14 +1,16 @@ import { useMemo } from 'react'; - -import Container from '#components/Container'; -import Table from '#components/Table'; import { DownloadFillIcon } from '@ifrc-go/icons'; -import { GoApiResponse } from '#utils/restRequest'; import { - createLinkColumn, - createStringColumn, + Container, + Table, +} from '@ifrc-go/ui'; +import { createDateColumn, -} from '#components/Table/ColumnShortcuts'; + createStringColumn, +} from '@ifrc-go/ui/utils'; + +import { createLinkColumn } from '#utils/domain/tableHelpers'; +import { GoApiResponse } from '#utils/restRequest'; import styles from './styles.module.css'; diff --git a/src/views/CountryNsOverviewContextAndStructure/NationalSocietyKeyDocuments/DocumentListCard/styles.module.css b/app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyKeyDocuments/DocumentListCard/styles.module.css similarity index 100% rename from src/views/CountryNsOverviewContextAndStructure/NationalSocietyKeyDocuments/DocumentListCard/styles.module.css rename to app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyKeyDocuments/DocumentListCard/styles.module.css diff --git a/src/views/CountryNsOverviewContextAndStructure/NationalSocietyKeyDocuments/i18n.json b/app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyKeyDocuments/i18n.json similarity index 100% rename from src/views/CountryNsOverviewContextAndStructure/NationalSocietyKeyDocuments/i18n.json rename to app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyKeyDocuments/i18n.json diff --git a/src/views/CountryNsOverviewContextAndStructure/NationalSocietyKeyDocuments/index.tsx b/app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyKeyDocuments/index.tsx similarity index 92% rename from src/views/CountryNsOverviewContextAndStructure/NationalSocietyKeyDocuments/index.tsx rename to app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyKeyDocuments/index.tsx index e741365355..dac3e3ef82 100644 --- a/src/views/CountryNsOverviewContextAndStructure/NationalSocietyKeyDocuments/index.tsx +++ b/app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyKeyDocuments/index.tsx @@ -2,22 +2,28 @@ import { useCallback } from 'react'; import { useOutletContext } from 'react-router-dom'; import { SearchLineIcon } from '@ifrc-go/icons'; import { + Container, + DateInput, + Grid, + TextInput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + isDefined, isNotDefined, listToGroupList, mapToList, - isDefined, } from '@togglecorp/fujs'; -import Container from '#components/Container'; -import DateInput from '#components/DateInput'; -import Grid from '#components/Grid'; -import TextInput from '#components/TextInput'; import useFilterState from '#hooks/useFilterState'; -import useTranslation from '#hooks/useTranslation'; -import { GoApiResponse, useRequest } from '#utils/restRequest'; import { CountryOutletContext } from '#utils/outletContext'; +import { + GoApiResponse, + useRequest, +} from '#utils/restRequest'; import DocumentListCard from './DocumentListCard'; + import i18n from './i18n.json'; type GetKeyDocumentResponse = GoApiResponse<'/api/v2/country-document/'>; diff --git a/src/views/CountryNsOverviewContextAndStructure/NationalSocietyLocalUnitsMap/i18n.json b/app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyLocalUnitsMap/i18n.json similarity index 100% rename from src/views/CountryNsOverviewContextAndStructure/NationalSocietyLocalUnitsMap/i18n.json rename to app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyLocalUnitsMap/i18n.json diff --git a/src/views/CountryNsOverviewContextAndStructure/NationalSocietyLocalUnitsMap/index.tsx b/app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyLocalUnitsMap/index.tsx similarity index 96% rename from src/views/CountryNsOverviewContextAndStructure/NationalSocietyLocalUnitsMap/index.tsx rename to app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyLocalUnitsMap/index.tsx index f6a39baf75..93f6f77c8f 100644 --- a/src/views/CountryNsOverviewContextAndStructure/NationalSocietyLocalUnitsMap/index.tsx +++ b/app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyLocalUnitsMap/index.tsx @@ -1,45 +1,51 @@ -import { useMemo, useState, useCallback } from 'react'; +import { + useCallback, + useMemo, + useState, +} from 'react'; import { useOutletContext } from 'react-router-dom'; -import getBbox from '@turf/bbox'; +import { SearchLineIcon } from '@ifrc-go/icons'; +import { + Button, + Container, + SelectInput, + TextInput, + TextOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + stringLabelSelector, + stringNameSelector, +} from '@ifrc-go/ui/utils'; import { _cs, isDefined, isNotDefined, } from '@togglecorp/fujs'; +import { + MapBounds, + MapLayer, + MapSource, +} from '@togglecorp/re-map'; +import getBbox from '@turf/bbox'; import type { - CirclePaint, CircleLayer, + CirclePaint, FillLayer, } from 'mapbox-gl'; -import { - MapSource, - MapLayer, - MapBounds, -} from '@togglecorp/re-map'; -import { SearchLineIcon } from '@ifrc-go/icons'; import BaseMap from '#components/domain/BaseMap'; -import Button from '#components/Button'; -import Container from '#components/Container'; import Link from '#components/Link'; import MapContainerWithDisclaimer from '#components/MapContainerWithDisclaimer'; import MapPopup from '#components/MapPopup'; -import SelectInput from '#components/SelectInput'; -import TextInput from '#components/TextInput'; -import TextOutput from '#components/TextOutput'; +import { type components } from '#generated/types'; import useFilterState from '#hooks/useFilterState'; -import useTranslation from '#hooks/useTranslation'; import { COLOR_RED, - DURATION_MAP_ZOOM, DEFAULT_MAP_PADDING, + DURATION_MAP_ZOOM, } from '#utils/constants'; -import { - stringLabelSelector, - stringNameSelector, -} from '#utils/selectors'; import { type CountryOutletContext } from '#utils/outletContext'; -import { type components } from '#generated/types'; import { useRequest } from '#utils/restRequest'; import i18n from './i18n.json'; diff --git a/src/views/CountryNsOverviewContextAndStructure/NationalSocietyLocalUnitsMap/styles.module.css b/app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyLocalUnitsMap/styles.module.css similarity index 100% rename from src/views/CountryNsOverviewContextAndStructure/NationalSocietyLocalUnitsMap/styles.module.css rename to app/src/views/CountryNsOverviewContextAndStructure/NationalSocietyLocalUnitsMap/styles.module.css diff --git a/src/views/CountryNsOverviewContextAndStructure/NsDirectoryInitiatives/InitiativeCard/i18n.json b/app/src/views/CountryNsOverviewContextAndStructure/NsDirectoryInitiatives/InitiativeCard/i18n.json similarity index 100% rename from src/views/CountryNsOverviewContextAndStructure/NsDirectoryInitiatives/InitiativeCard/i18n.json rename to app/src/views/CountryNsOverviewContextAndStructure/NsDirectoryInitiatives/InitiativeCard/i18n.json diff --git a/src/views/CountryNsOverviewContextAndStructure/NsDirectoryInitiatives/InitiativeCard/index.tsx b/app/src/views/CountryNsOverviewContextAndStructure/NsDirectoryInitiatives/InitiativeCard/index.tsx similarity index 94% rename from src/views/CountryNsOverviewContextAndStructure/NsDirectoryInitiatives/InitiativeCard/index.tsx rename to app/src/views/CountryNsOverviewContextAndStructure/NsDirectoryInitiatives/InitiativeCard/index.tsx index 34d7ffc85f..d594c18804 100644 --- a/src/views/CountryNsOverviewContextAndStructure/NsDirectoryInitiatives/InitiativeCard/index.tsx +++ b/app/src/views/CountryNsOverviewContextAndStructure/NsDirectoryInitiatives/InitiativeCard/index.tsx @@ -1,12 +1,14 @@ +import { + Container, + TextOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { _cs } from '@togglecorp/fujs'; -import Container from '#components/Container'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; import { GoApiResponse } from '#utils/restRequest'; -import styles from './styles.module.css'; import i18n from './i18n.json'; +import styles from './styles.module.css'; type CountryResponse = NonNullable> interface Props { diff --git a/src/views/CountryNsOverviewContextAndStructure/NsDirectoryInitiatives/InitiativeCard/styles.module.css b/app/src/views/CountryNsOverviewContextAndStructure/NsDirectoryInitiatives/InitiativeCard/styles.module.css similarity index 100% rename from src/views/CountryNsOverviewContextAndStructure/NsDirectoryInitiatives/InitiativeCard/styles.module.css rename to app/src/views/CountryNsOverviewContextAndStructure/NsDirectoryInitiatives/InitiativeCard/styles.module.css diff --git a/src/views/CountryNsOverviewContextAndStructure/NsDirectoryInitiatives/i18n.json b/app/src/views/CountryNsOverviewContextAndStructure/NsDirectoryInitiatives/i18n.json similarity index 100% rename from src/views/CountryNsOverviewContextAndStructure/NsDirectoryInitiatives/i18n.json rename to app/src/views/CountryNsOverviewContextAndStructure/NsDirectoryInitiatives/i18n.json diff --git a/src/views/CountryNsOverviewContextAndStructure/NsDirectoryInitiatives/index.tsx b/app/src/views/CountryNsOverviewContextAndStructure/NsDirectoryInitiatives/index.tsx similarity index 92% rename from src/views/CountryNsOverviewContextAndStructure/NsDirectoryInitiatives/index.tsx rename to app/src/views/CountryNsOverviewContextAndStructure/NsDirectoryInitiatives/index.tsx index ff7f58d01e..0e1aea0e98 100644 --- a/src/views/CountryNsOverviewContextAndStructure/NsDirectoryInitiatives/index.tsx +++ b/app/src/views/CountryNsOverviewContextAndStructure/NsDirectoryInitiatives/index.tsx @@ -1,12 +1,15 @@ import { useCallback } from 'react'; import { useOutletContext } from 'react-router-dom'; +import { + Container, + Grid, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; -import Container from '#components/Container'; -import Grid from '#components/Grid'; -import useTranslation from '#hooks/useTranslation'; import { type CountryOutletContext } from '#utils/outletContext'; import InitiativeCard from './InitiativeCard'; + import i18n from './i18n.json'; interface Props { diff --git a/src/views/CountryNsOverviewContextAndStructure/i18n.json b/app/src/views/CountryNsOverviewContextAndStructure/i18n.json similarity index 100% rename from src/views/CountryNsOverviewContextAndStructure/i18n.json rename to app/src/views/CountryNsOverviewContextAndStructure/i18n.json diff --git a/src/views/CountryNsOverviewContextAndStructure/index.tsx b/app/src/views/CountryNsOverviewContextAndStructure/index.tsx similarity index 94% rename from src/views/CountryNsOverviewContextAndStructure/index.tsx rename to app/src/views/CountryNsOverviewContextAndStructure/index.tsx index cd01c123b7..e18125baa0 100644 --- a/src/views/CountryNsOverviewContextAndStructure/index.tsx +++ b/app/src/views/CountryNsOverviewContextAndStructure/index.tsx @@ -1,18 +1,21 @@ import { useOutletContext } from 'react-router-dom'; -import { isDefined, isTruthyString } from '@togglecorp/fujs'; +import { Container } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToString } from '@ifrc-go/ui/utils'; +import { + isDefined, + isTruthyString, +} from '@togglecorp/fujs'; import Link from '#components/Link'; -import Container from '#components/Container'; -import useTranslation from '#hooks/useTranslation'; import { type CountryOutletContext } from '#utils/outletContext'; -import { resolveToString } from '#utils/translation'; -import NationalSocietyIndicators from './NationalSocietyIndicators'; import NationalSocietyContacts from './NationalSocietyContacts'; import NationalSocietyDirectory from './NationalSocietyDirectory'; -import NationalSocietyDirectoryInitiatives from './NsDirectoryInitiatives'; +import NationalSocietyIndicators from './NationalSocietyIndicators'; import NationalSocietyKeyDocuments from './NationalSocietyKeyDocuments'; import NationalSocietyLocalUnitsMap from './NationalSocietyLocalUnitsMap'; +import NationalSocietyDirectoryInitiatives from './NsDirectoryInitiatives'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/CountryNsOverviewContextAndStructure/styles.module.css b/app/src/views/CountryNsOverviewContextAndStructure/styles.module.css similarity index 100% rename from src/views/CountryNsOverviewContextAndStructure/styles.module.css rename to app/src/views/CountryNsOverviewContextAndStructure/styles.module.css diff --git a/src/views/CountryNsOverviewStrategicPriorities/StrategicPrioritiesTable/i18n.json b/app/src/views/CountryNsOverviewStrategicPriorities/StrategicPrioritiesTable/i18n.json similarity index 100% rename from src/views/CountryNsOverviewStrategicPriorities/StrategicPrioritiesTable/i18n.json rename to app/src/views/CountryNsOverviewStrategicPriorities/StrategicPrioritiesTable/i18n.json diff --git a/src/views/CountryNsOverviewStrategicPriorities/StrategicPrioritiesTable/index.tsx b/app/src/views/CountryNsOverviewStrategicPriorities/StrategicPrioritiesTable/index.tsx similarity index 86% rename from src/views/CountryNsOverviewStrategicPriorities/StrategicPrioritiesTable/index.tsx rename to app/src/views/CountryNsOverviewStrategicPriorities/StrategicPrioritiesTable/index.tsx index 17f1c2362b..840e42a2a8 100644 --- a/src/views/CountryNsOverviewStrategicPriorities/StrategicPrioritiesTable/index.tsx +++ b/app/src/views/CountryNsOverviewStrategicPriorities/StrategicPrioritiesTable/index.tsx @@ -1,9 +1,12 @@ import { useMemo } from 'react'; +import { Table } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + createNumberColumn, + createStringColumn, + numericIdSelector, +} from '@ifrc-go/ui/utils'; -import useTranslation from '#hooks/useTranslation'; -import Table from '#components/Table'; -import { createNumberColumn, createStringColumn } from '#components/Table/ColumnShortcuts'; -import { numericIdSelector } from '#utils/selectors'; import { type GoApiResponse } from '#utils/restRequest'; import i18n from './i18n.json'; diff --git a/src/views/CountryNsOverviewStrategicPriorities/i18n.json b/app/src/views/CountryNsOverviewStrategicPriorities/i18n.json similarity index 100% rename from src/views/CountryNsOverviewStrategicPriorities/i18n.json rename to app/src/views/CountryNsOverviewStrategicPriorities/i18n.json diff --git a/src/views/CountryNsOverviewStrategicPriorities/index.tsx b/app/src/views/CountryNsOverviewStrategicPriorities/index.tsx similarity index 97% rename from src/views/CountryNsOverviewStrategicPriorities/index.tsx rename to app/src/views/CountryNsOverviewStrategicPriorities/index.tsx index 5ba8f676d7..4419edc413 100644 --- a/src/views/CountryNsOverviewStrategicPriorities/index.tsx +++ b/app/src/views/CountryNsOverviewStrategicPriorities/index.tsx @@ -1,26 +1,27 @@ import { useMemo } from 'react'; import { useOutletContext } from 'react-router-dom'; import { - DownloadLineIcon, CheckboxFillIcon, + DownloadLineIcon, } from '@ifrc-go/icons'; import { + BlockLoading, + Container, + KeyFigure, + Message, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToString } from '@ifrc-go/ui/utils'; +import { + compareNumber, isDefined, isNotDefined, - // listToMap, isTruthyString, - compareNumber, } from '@togglecorp/fujs'; -import KeyFigure from '#components/KeyFigure'; import Link from '#components/Link'; -import BlockLoading from '#components/BlockLoading'; -import Message from '#components/Message'; -import Container from '#components/Container'; -import useTranslation from '#hooks/useTranslation'; -import { resolveToString } from '#utils/translation'; -import { useRequest } from '#utils/restRequest'; import { type CountryOutletContext } from '#utils/outletContext'; +import { useRequest } from '#utils/restRequest'; import StrategicPrioritiesTable from './StrategicPrioritiesTable'; diff --git a/src/views/CountryNsOverviewStrategicPriorities/styles.module.css b/app/src/views/CountryNsOverviewStrategicPriorities/styles.module.css similarity index 100% rename from src/views/CountryNsOverviewStrategicPriorities/styles.module.css rename to app/src/views/CountryNsOverviewStrategicPriorities/styles.module.css diff --git a/src/views/CountryOngoingActivities/i18n.json b/app/src/views/CountryOngoingActivities/i18n.json similarity index 100% rename from src/views/CountryOngoingActivities/i18n.json rename to app/src/views/CountryOngoingActivities/i18n.json diff --git a/src/views/CountryOngoingActivities/index.tsx b/app/src/views/CountryOngoingActivities/index.tsx similarity index 89% rename from src/views/CountryOngoingActivities/index.tsx rename to app/src/views/CountryOngoingActivities/index.tsx index 6a6e67e346..94cfcefc1e 100644 --- a/src/views/CountryOngoingActivities/index.tsx +++ b/app/src/views/CountryOngoingActivities/index.tsx @@ -1,8 +1,11 @@ -import { Outlet, useOutletContext } from 'react-router-dom'; +import { + Outlet, + useOutletContext, +} from 'react-router-dom'; +import { NavigationTabList } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import NavigationTab from '#components/NavigationTab'; -import NavigationTabList from '#components/NavigationTabList'; -import useTranslation from '#hooks/useTranslation'; import { CountryOutletContext } from '#utils/outletContext'; import i18n from './i18n.json'; diff --git a/src/views/CountryOngoingActivities/styles.module.css b/app/src/views/CountryOngoingActivities/styles.module.css similarity index 100% rename from src/views/CountryOngoingActivities/styles.module.css rename to app/src/views/CountryOngoingActivities/styles.module.css diff --git a/src/views/CountryOngoingActivitiesEmergencies/EmergencyAlerts/i18n.json b/app/src/views/CountryOngoingActivitiesEmergencies/EmergencyAlerts/i18n.json similarity index 100% rename from src/views/CountryOngoingActivitiesEmergencies/EmergencyAlerts/i18n.json rename to app/src/views/CountryOngoingActivitiesEmergencies/EmergencyAlerts/i18n.json diff --git a/src/views/CountryOngoingActivitiesEmergencies/EmergencyAlerts/index.tsx b/app/src/views/CountryOngoingActivitiesEmergencies/EmergencyAlerts/index.tsx similarity index 92% rename from src/views/CountryOngoingActivitiesEmergencies/EmergencyAlerts/index.tsx rename to app/src/views/CountryOngoingActivitiesEmergencies/EmergencyAlerts/index.tsx index f07a48a6ff..7e399cdeaa 100644 --- a/src/views/CountryOngoingActivitiesEmergencies/EmergencyAlerts/index.tsx +++ b/app/src/views/CountryOngoingActivitiesEmergencies/EmergencyAlerts/index.tsx @@ -1,20 +1,26 @@ import { useMemo } from 'react'; -import { _cs, encodeDate, isNotDefined } from '@togglecorp/fujs'; +import { + Container, + Pager, + Table, + TextOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + createDateColumn, + createStringColumn, +} from '@ifrc-go/ui/utils'; +import { + _cs, + encodeDate, + isNotDefined, +} from '@togglecorp/fujs'; -import Container from '#components/Container'; import Link from '#components/Link'; -import Pager from '#components/Pager'; -import Table from '#components/Table'; import useFilterState from '#hooks/useFilterState'; -import useTranslation from '#hooks/useTranslation'; -import TextOutput from '#components/TextOutput'; -import { - createStringColumn, - createDateColumn, - createCountryListColumn, -} from '#components/Table/ColumnShortcuts'; -import { useRequest } from '#utils/restRequest'; +import { createCountryListColumn } from '#utils/domain/tableHelpers'; import type { GoApiResponse } from '#utils/restRequest'; +import { useRequest } from '#utils/restRequest'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/CountryOngoingActivitiesEmergencies/EmergencyAlerts/styles.module.css b/app/src/views/CountryOngoingActivitiesEmergencies/EmergencyAlerts/styles.module.css similarity index 100% rename from src/views/CountryOngoingActivitiesEmergencies/EmergencyAlerts/styles.module.css rename to app/src/views/CountryOngoingActivitiesEmergencies/EmergencyAlerts/styles.module.css diff --git a/src/views/CountryOngoingActivitiesEmergencies/i18n.json b/app/src/views/CountryOngoingActivitiesEmergencies/i18n.json similarity index 100% rename from src/views/CountryOngoingActivitiesEmergencies/i18n.json rename to app/src/views/CountryOngoingActivitiesEmergencies/i18n.json diff --git a/src/views/CountryOngoingActivitiesEmergencies/index.tsx b/app/src/views/CountryOngoingActivitiesEmergencies/index.tsx similarity index 95% rename from src/views/CountryOngoingActivitiesEmergencies/index.tsx rename to app/src/views/CountryOngoingActivitiesEmergencies/index.tsx index 2697f51ff2..e42c046eeb 100644 --- a/src/views/CountryOngoingActivitiesEmergencies/index.tsx +++ b/app/src/views/CountryOngoingActivitiesEmergencies/index.tsx @@ -1,30 +1,32 @@ import { useOutletContext } from 'react-router-dom'; import { - DrefIcon, AppealsIcon, - FundingIcon, + DrefIcon, FundingCoverageIcon, - TargetedPopulationIcon, + FundingIcon, PencilFillIcon, + TargetedPopulationIcon, } from '@ifrc-go/icons'; +import { + BlockLoading, + Container, + InfoPopup, + KeyFigure, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { getPercentage } from '@ifrc-go/ui/utils'; import { isDefined, isNotDefined, } from '@togglecorp/fujs'; import getBbox from '@turf/bbox'; -import BlockLoading from '#components/BlockLoading'; -import InfoPopup from '#components/InfoPopup'; -import HighlightedOperations from '#components/domain/HighlightedOperations'; import ActiveOperationMap from '#components/domain/ActiveOperationMap'; import AppealsTable from '#components/domain/AppealsTable'; -import Container from '#components/Container'; -import KeyFigure from '#components/KeyFigure'; +import HighlightedOperations from '#components/domain/HighlightedOperations'; import Link from '#components/Link'; import { adminUrl } from '#config'; -import useTranslation from '#hooks/useTranslation'; import useAuth from '#hooks/domain/useAuth'; -import { getPercentage } from '#utils/common'; import { type CountryOutletContext } from '#utils/outletContext'; import { resolveUrl } from '#utils/resolveUrl'; import { useRequest } from '#utils/restRequest'; diff --git a/src/views/CountryOngoingActivitiesEmergencies/styles.module.css b/app/src/views/CountryOngoingActivitiesEmergencies/styles.module.css similarity index 100% rename from src/views/CountryOngoingActivitiesEmergencies/styles.module.css rename to app/src/views/CountryOngoingActivitiesEmergencies/styles.module.css diff --git a/src/views/CountryOngoingActivitiesThreeWActivities/Filters/i18n.json b/app/src/views/CountryOngoingActivitiesThreeWActivities/Filters/i18n.json similarity index 100% rename from src/views/CountryOngoingActivitiesThreeWActivities/Filters/i18n.json rename to app/src/views/CountryOngoingActivitiesThreeWActivities/Filters/i18n.json diff --git a/src/views/CountryOngoingActivitiesThreeWActivities/Filters/index.tsx b/app/src/views/CountryOngoingActivitiesThreeWActivities/Filters/index.tsx similarity index 92% rename from src/views/CountryOngoingActivitiesThreeWActivities/Filters/index.tsx rename to app/src/views/CountryOngoingActivitiesThreeWActivities/Filters/index.tsx index 02ae6ebdb4..916bace994 100644 --- a/src/views/CountryOngoingActivitiesThreeWActivities/Filters/index.tsx +++ b/app/src/views/CountryOngoingActivitiesThreeWActivities/Filters/index.tsx @@ -1,14 +1,24 @@ -import { useCallback, useState } from 'react'; +import { + useCallback, + useState, +} from 'react'; +import { MultiSelectInput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + numericIdSelector, + stringTitleSelector, + stringValueSelector, +} from '@ifrc-go/ui/utils'; import { isNotDefined } from '@togglecorp/fujs'; -import { EntriesAsList, type SetValueArg } from '@togglecorp/toggle-form'; +import { + EntriesAsList, + type SetValueArg, +} from '@togglecorp/toggle-form'; import DistrictMultiCountrySearchMultiSelectInput, { type DistrictItem } from '#components/domain/DistrictMultiCountrySearchMultiSelectInput'; -import MultiSelectInput from '#components/MultiSelectInput'; import NationalSocietyMultiSelectInput from '#components/domain/NationalSocietyMultiSelectInput'; -import type { GoApiResponse } from '#utils/restRequest'; import useGlobalEnums from '#hooks/domain/useGlobalEnums'; -import useTranslation from '#hooks/useTranslation'; -import { numericIdSelector, stringTitleSelector, stringValueSelector } from '#utils/selectors'; +import type { GoApiResponse } from '#utils/restRequest'; import { useRequest } from '#utils/restRequest'; import i18n from './i18n.json'; diff --git a/src/views/CountryOngoingActivitiesThreeWActivities/ResponseActivitiesMap/i18n.json b/app/src/views/CountryOngoingActivitiesThreeWActivities/ResponseActivitiesMap/i18n.json similarity index 100% rename from src/views/CountryOngoingActivitiesThreeWActivities/ResponseActivitiesMap/i18n.json rename to app/src/views/CountryOngoingActivitiesThreeWActivities/ResponseActivitiesMap/i18n.json diff --git a/src/views/CountryOngoingActivitiesThreeWActivities/ResponseActivitiesMap/index.tsx b/app/src/views/CountryOngoingActivitiesThreeWActivities/ResponseActivitiesMap/index.tsx similarity index 97% rename from src/views/CountryOngoingActivitiesThreeWActivities/ResponseActivitiesMap/index.tsx rename to app/src/views/CountryOngoingActivitiesThreeWActivities/ResponseActivitiesMap/index.tsx index 549a1b4a18..9b577aeedf 100644 --- a/src/views/CountryOngoingActivitiesThreeWActivities/ResponseActivitiesMap/index.tsx +++ b/app/src/views/CountryOngoingActivitiesThreeWActivities/ResponseActivitiesMap/index.tsx @@ -1,4 +1,7 @@ import { useMemo } from 'react'; +import { useOutletContext } from 'react-router-dom'; +import { LegendItem } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { _cs, isDefined, @@ -6,25 +9,20 @@ import { mapToList, } from '@togglecorp/fujs'; import { - useOutletContext, -} from 'react-router-dom'; -import type { FillLayer } from 'mapbox-gl'; -import { - MapLayer, MapBounds, + MapLayer, } from '@togglecorp/re-map'; import getBbox from '@turf/bbox'; +import type { FillLayer } from 'mapbox-gl'; -import LegendItem from '#components/LegendItem'; +import BaseMap from '#components/domain/BaseMap'; import MapContainerWithDisclaimer from '#components/MapContainerWithDisclaimer'; -import useTranslation from '#hooks/useTranslation'; -import type { CountryOutletContext } from '#utils/outletContext'; import { - DURATION_MAP_ZOOM, - DEFAULT_MAP_PADDING, COLOR_LIGHT_GREY, + DEFAULT_MAP_PADDING, + DURATION_MAP_ZOOM, } from '#utils/constants'; -import BaseMap from '#components/domain/BaseMap'; +import type { CountryOutletContext } from '#utils/outletContext'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/CountryOngoingActivitiesThreeWActivities/ResponseActivitiesMap/styles.module.css b/app/src/views/CountryOngoingActivitiesThreeWActivities/ResponseActivitiesMap/styles.module.css similarity index 100% rename from src/views/CountryOngoingActivitiesThreeWActivities/ResponseActivitiesMap/styles.module.css rename to app/src/views/CountryOngoingActivitiesThreeWActivities/ResponseActivitiesMap/styles.module.css diff --git a/src/views/CountryOngoingActivitiesThreeWActivities/i18n.json b/app/src/views/CountryOngoingActivitiesThreeWActivities/i18n.json similarity index 100% rename from src/views/CountryOngoingActivitiesThreeWActivities/i18n.json rename to app/src/views/CountryOngoingActivitiesThreeWActivities/i18n.json diff --git a/src/views/CountryOngoingActivitiesThreeWActivities/index.tsx b/app/src/views/CountryOngoingActivitiesThreeWActivities/index.tsx similarity index 95% rename from src/views/CountryOngoingActivitiesThreeWActivities/index.tsx rename to app/src/views/CountryOngoingActivitiesThreeWActivities/index.tsx index 5090466634..9202ecb3db 100644 --- a/src/views/CountryOngoingActivitiesThreeWActivities/index.tsx +++ b/app/src/views/CountryOngoingActivitiesThreeWActivities/index.tsx @@ -1,57 +1,55 @@ -import { useMemo, useCallback } from 'react'; +import { + useCallback, + useMemo, +} from 'react'; import { useOutletContext } from 'react-router-dom'; +import { InformationLineIcon } from '@ifrc-go/icons'; +import { + BlockLoading, + Container, + InfoPopup, + KeyFigure, + Message, + Pager, + PieChart, + Table, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + createDateColumn, + createElementColumn, + createListDisplayColumn, + createNumberColumn, + createStringColumn, + numericCountSelector, + numericIdSelector, + stringTitleSelector, + sumSafe, +} from '@ifrc-go/ui/utils'; import { compareNumber, isDefined, isNotDefined, mapToList, } from '@togglecorp/fujs'; -import Papa from 'papaparse'; import { saveAs } from 'file-saver'; -import { InformationLineIcon } from '@ifrc-go/icons'; +import Papa from 'papaparse'; -import PieChart from '#components/PieChart'; -import BlockLoading from '#components/BlockLoading'; -import Container from '#components/Container'; -import KeyFigure from '#components/KeyFigure'; -import InfoPopup from '#components/InfoPopup'; -import Pager from '#components/Pager'; -import Message from '#components/Message'; import ExportButton from '#components/domain/ExportButton'; -import Table from '#components/Table'; import Link from '#components/Link'; -import { - createDateColumn, - createElementColumn, - createListDisplayColumn, - createNumberColumn, - createStringColumn, -} from '#components/Table/ColumnShortcuts'; - -import useTranslation from '#hooks/useTranslation'; +import useAlert from '#hooks/useAlert'; import useFilterState from '#hooks/useFilterState'; +import useRecursiveCsvExport from '#hooks/useRecursiveCsvRequest'; +import { CountryOutletContext } from '#utils/outletContext'; import { useRequest } from '#utils/restRequest'; import { type GoApiResponse } from '#utils/restRequest'; -import { CountryOutletContext } from '#utils/outletContext'; -import { sumSafe } from '#utils/common'; -import useAlert from '#hooks/useAlert'; -import useRecursiveCsvExport from '#hooks/useRecursiveCsvRequest'; -import { - numericCountSelector, - numericIdSelector, - stringTitleSelector, -} from '#utils/selectors'; - -import useEmergencyProjectStats, { - getPeopleReached, -} from '#views/EmergencyActivities/useEmergencyProjectStats'; +import ActivityActions, { type Props as ActivityActionsProps } from '#views/EmergencyActivities/ActivityActions'; import ActivityDetail from '#views/EmergencyActivities/ActivityDetail'; -import ActivityActions, { - type Props as ActivityActionsProps, -} from '#views/EmergencyActivities/ActivityActions'; +import useEmergencyProjectStats, { getPeopleReached } from '#views/EmergencyActivities/useEmergencyProjectStats'; -import ResponseActivitiesMap from './ResponseActivitiesMap'; import Filters, { type FilterValue } from './Filters'; +import ResponseActivitiesMap from './ResponseActivitiesMap'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/CountryOngoingActivitiesThreeWActivities/styles.module.css b/app/src/views/CountryOngoingActivitiesThreeWActivities/styles.module.css similarity index 100% rename from src/views/CountryOngoingActivitiesThreeWActivities/styles.module.css rename to app/src/views/CountryOngoingActivitiesThreeWActivities/styles.module.css diff --git a/src/views/CountryOngoingActivitiesThreeWProjects/Filters/i18n.json b/app/src/views/CountryOngoingActivitiesThreeWProjects/Filters/i18n.json similarity index 100% rename from src/views/CountryOngoingActivitiesThreeWProjects/Filters/i18n.json rename to app/src/views/CountryOngoingActivitiesThreeWProjects/Filters/i18n.json diff --git a/src/views/CountryOngoingActivitiesThreeWProjects/Filters/index.tsx b/app/src/views/CountryOngoingActivitiesThreeWProjects/Filters/index.tsx similarity index 97% rename from src/views/CountryOngoingActivitiesThreeWProjects/Filters/index.tsx rename to app/src/views/CountryOngoingActivitiesThreeWProjects/Filters/index.tsx index 3b3299b1f0..62f62bce58 100644 --- a/src/views/CountryOngoingActivitiesThreeWProjects/Filters/index.tsx +++ b/app/src/views/CountryOngoingActivitiesThreeWProjects/Filters/index.tsx @@ -1,20 +1,20 @@ import { useCallback } from 'react'; -import { _cs } from '@togglecorp/fujs'; -import { EntriesAsList } from '@togglecorp/toggle-form'; - -import MultiSelectInput from '#components/MultiSelectInput'; -import useTranslation from '#hooks/useTranslation'; -import { useRequest } from '#utils/restRequest'; -import type { GoApiResponse } from '#utils/restRequest'; -import useNationalSociety, { NationalSociety } from '#hooks/domain/useNationalSociety'; +import { MultiSelectInput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { numericIdSelector, numericKeySelector, stringLabelSelector, - stringValueSelector, stringNameSelector, -} from '#utils/selectors'; + stringValueSelector, +} from '@ifrc-go/ui/utils'; +import { _cs } from '@togglecorp/fujs'; +import { EntriesAsList } from '@togglecorp/toggle-form'; + import useGlobalEnums from '#hooks/domain/useGlobalEnums'; +import useNationalSociety, { NationalSociety } from '#hooks/domain/useNationalSociety'; +import type { GoApiResponse } from '#utils/restRequest'; +import { useRequest } from '#utils/restRequest'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/CountryOngoingActivitiesThreeWProjects/Filters/styles.module.css b/app/src/views/CountryOngoingActivitiesThreeWProjects/Filters/styles.module.css similarity index 100% rename from src/views/CountryOngoingActivitiesThreeWProjects/Filters/styles.module.css rename to app/src/views/CountryOngoingActivitiesThreeWProjects/Filters/styles.module.css diff --git a/src/views/CountryOngoingActivitiesThreeWProjects/Map/i18n.json b/app/src/views/CountryOngoingActivitiesThreeWProjects/Map/i18n.json similarity index 100% rename from src/views/CountryOngoingActivitiesThreeWProjects/Map/i18n.json rename to app/src/views/CountryOngoingActivitiesThreeWProjects/Map/i18n.json diff --git a/src/views/CountryOngoingActivitiesThreeWProjects/Map/index.tsx b/app/src/views/CountryOngoingActivitiesThreeWProjects/Map/index.tsx similarity index 98% rename from src/views/CountryOngoingActivitiesThreeWProjects/Map/index.tsx rename to app/src/views/CountryOngoingActivitiesThreeWProjects/Map/index.tsx index e18002a12f..88d019c7d5 100644 --- a/src/views/CountryOngoingActivitiesThreeWProjects/Map/index.tsx +++ b/app/src/views/CountryOngoingActivitiesThreeWProjects/Map/index.tsx @@ -1,53 +1,56 @@ import { - useState, - useMemo, useCallback, + useMemo, + useState, } from 'react'; import { useOutletContext } from 'react-router-dom'; -import type { FillLayer } from 'mapbox-gl'; +import { + Container, + LegendItem, + TextOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + denormalizeList, + resolveToString, +} from '@ifrc-go/ui/utils'; import { _cs, isDefined, - unique, - listToGroupList, isNotDefined, + listToGroupList, + unique, } from '@togglecorp/fujs'; import { - MapSource, - MapLayer, MapBounds, + MapLayer, + MapSource, } from '@togglecorp/re-map'; import getBbox from '@turf/bbox'; +import type { FillLayer } from 'mapbox-gl'; import BaseMap from '#components/domain/BaseMap'; -import MapPopup from '#components/MapPopup'; -import Container from '#components/Container'; -import TextOutput from '#components/TextOutput'; import MapContainerWithDisclaimer from '#components/MapContainerWithDisclaimer'; -import LegendItem from '#components/LegendItem'; -import { denormalizeList } from '#utils/common'; -import { type GoApiResponse } from '#utils/restRequest'; -import { type CountryOutletContext } from '#utils/outletContext'; +import MapPopup from '#components/MapPopup'; import useGlobalEnums from '#hooks/domain/useGlobalEnums'; -import useTranslation from '#hooks/useTranslation'; -import { resolveToString } from '#utils/translation'; - import { - getPointCirclePaint, - getPointCircleHaloPaint, - pointColorMap, - adminFillLayerOptions, -} from '#utils/map'; -import { - COLOR_RED, COLOR_BLUE, COLOR_ORANGE, + COLOR_RED, + DEFAULT_MAP_PADDING, + DURATION_MAP_ZOOM, OPERATION_TYPE_EMERGENCY, OPERATION_TYPE_MULTI, OPERATION_TYPE_PROGRAMME, - DURATION_MAP_ZOOM, - DEFAULT_MAP_PADDING, } from '#utils/constants'; +import { + adminFillLayerOptions, + getPointCircleHaloPaint, + getPointCirclePaint, + pointColorMap, +} from '#utils/map'; +import { type CountryOutletContext } from '#utils/outletContext'; +import { type GoApiResponse } from '#utils/restRequest'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/CountryOngoingActivitiesThreeWProjects/Map/styles.module.css b/app/src/views/CountryOngoingActivitiesThreeWProjects/Map/styles.module.css similarity index 100% rename from src/views/CountryOngoingActivitiesThreeWProjects/Map/styles.module.css rename to app/src/views/CountryOngoingActivitiesThreeWProjects/Map/styles.module.css diff --git a/src/views/CountryOngoingActivitiesThreeWProjects/i18n.json b/app/src/views/CountryOngoingActivitiesThreeWProjects/i18n.json similarity index 100% rename from src/views/CountryOngoingActivitiesThreeWProjects/i18n.json rename to app/src/views/CountryOngoingActivitiesThreeWProjects/i18n.json diff --git a/src/views/CountryOngoingActivitiesThreeWProjects/index.tsx b/app/src/views/CountryOngoingActivitiesThreeWProjects/index.tsx similarity index 97% rename from src/views/CountryOngoingActivitiesThreeWProjects/index.tsx rename to app/src/views/CountryOngoingActivitiesThreeWProjects/index.tsx index 53cb7dbf26..3afdb256b6 100644 --- a/src/views/CountryOngoingActivitiesThreeWProjects/index.tsx +++ b/app/src/views/CountryOngoingActivitiesThreeWProjects/index.tsx @@ -1,5 +1,32 @@ -import { useCallback, useMemo, useState } from 'react'; +import { + useCallback, + useMemo, + useState, +} from 'react'; import { useOutletContext } from 'react-router-dom'; +import { PencilFillIcon } from '@ifrc-go/icons'; +import { + BlockLoading, + Container, + ExpandableContainer, + KeyFigure, + Message, + PieChart, + Table, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + createElementColumn, + createNumberColumn, + createStringColumn, + denormalizeList, + hasSomeDefinedValue, + numericIdSelector, + numericValueSelector, + resolveToString, + stringLabelSelector, + sumSafe, +} from '@ifrc-go/ui/utils'; import { isDefined, isNotDefined, @@ -8,43 +35,25 @@ import { mapToList, unique, } from '@togglecorp/fujs'; -import { PencilFillIcon } from '@ifrc-go/icons'; -import Papa from 'papaparse'; import { saveAs } from 'file-saver'; +import Papa from 'papaparse'; -import Container from '#components/Container'; -import BlockLoading from '#components/BlockLoading'; -import { PROJECT_STATUS_ONGOING } from '#utils/constants'; -import KeyFigure from '#components/KeyFigure'; -import PieChart from '#components/PieChart'; import ExportButton from '#components/domain/ExportButton'; -import Link from '#components/Link'; import ProjectActions, { Props as ProjectActionsProps } from '#components/domain/ProjectActions'; -import { - createElementColumn, - createNumberColumn, - createStringColumn, -} from '#components/Table/ColumnShortcuts'; -import ExpandableContainer from '#components/ExpandableContainer'; -import Message from '#components/Message'; -import Table from '#components/Table'; - -import { GoApiResponse, useRequest } from '#utils/restRequest'; -import { denormalizeList, hasSomeDefinedValue, sumSafe } from '#utils/common'; -import type { CountryOutletContext } from '#utils/outletContext'; +import Link from '#components/Link'; +import useUserMe from '#hooks/domain/useUserMe'; import useAlert from '#hooks/useAlert'; -import useTranslation from '#hooks/useTranslation'; import useRecursiveCsvExport from '#hooks/useRecursiveCsvRequest'; -import useUserMe from '#hooks/domain/useUserMe'; -import { resolveToString } from '#utils/translation'; +import { PROJECT_STATUS_ONGOING } from '#utils/constants'; +import type { CountryOutletContext } from '#utils/outletContext'; import { - numericIdSelector, - numericValueSelector, - stringLabelSelector, -} from '#utils/selectors'; + GoApiResponse, + useRequest, +} from '#utils/restRequest'; import Filter, { FilterValue } from './Filters'; import Map from './Map'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/CountryOngoingActivitiesThreeWProjects/styles.module.css b/app/src/views/CountryOngoingActivitiesThreeWProjects/styles.module.css similarity index 100% rename from src/views/CountryOngoingActivitiesThreeWProjects/styles.module.css rename to app/src/views/CountryOngoingActivitiesThreeWProjects/styles.module.css diff --git a/src/views/CountryOperations/AppealOperationTable/i18n.json b/app/src/views/CountryOperations/AppealOperationTable/i18n.json similarity index 100% rename from src/views/CountryOperations/AppealOperationTable/i18n.json rename to app/src/views/CountryOperations/AppealOperationTable/i18n.json diff --git a/src/views/CountryOperations/AppealOperationTable/index.tsx b/app/src/views/CountryOperations/AppealOperationTable/index.tsx similarity index 93% rename from src/views/CountryOperations/AppealOperationTable/index.tsx rename to app/src/views/CountryOperations/AppealOperationTable/index.tsx index 0833940419..101a0ab037 100644 --- a/src/views/CountryOperations/AppealOperationTable/index.tsx +++ b/app/src/views/CountryOperations/AppealOperationTable/index.tsx @@ -1,31 +1,34 @@ import { useMemo } from 'react'; +import { + Container, + DateInput, + Pager, + Table, +} from '@ifrc-go/ui'; +import { SortContext } from '@ifrc-go/ui/contexts'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + createDateColumn, + createNumberColumn, + createStringColumn, + formatNumber, + resolveToComponent, + resolveToString, +} from '@ifrc-go/ui/utils'; import { isDefined, isNotDefined, } from '@togglecorp/fujs'; -import Container from '#components/Container'; -import { SortContext } from '#components/Table/useSorting'; -import Pager from '#components/Pager'; -import Link from '#components/Link'; -import Table from '#components/Table'; -import DateInput from '#components/DateInput'; -import { - createStringColumn, - createNumberColumn, - createDateColumn, - createLinkColumn, -} from '#components/Table/ColumnShortcuts'; import DisasterTypeSelectInput from '#components/domain/DisasterTypeSelectInput'; -import useTranslation from '#hooks/useTranslation'; +import Link from '#components/Link'; import useFilterState from '#hooks/useFilterState'; +import { createLinkColumn } from '#utils/domain/tableHelpers'; import { type GoApiResponse, type ListResponseItem, useRequest, } from '#utils/restRequest'; -import { resolveToComponent, resolveToString } from '#utils/translation'; -import { formatNumber } from '#utils/common'; import i18n from './i18n.json'; diff --git a/src/views/CountryOperations/EmergenciesOperationTable/i18n.json b/app/src/views/CountryOperations/EmergenciesOperationTable/i18n.json similarity index 100% rename from src/views/CountryOperations/EmergenciesOperationTable/i18n.json rename to app/src/views/CountryOperations/EmergenciesOperationTable/i18n.json diff --git a/src/views/CountryOperations/EmergenciesOperationTable/index.tsx b/app/src/views/CountryOperations/EmergenciesOperationTable/index.tsx similarity index 91% rename from src/views/CountryOperations/EmergenciesOperationTable/index.tsx rename to app/src/views/CountryOperations/EmergenciesOperationTable/index.tsx index 60d36b6a86..76ab78428e 100644 --- a/src/views/CountryOperations/EmergenciesOperationTable/index.tsx +++ b/app/src/views/CountryOperations/EmergenciesOperationTable/index.tsx @@ -1,24 +1,32 @@ import { useMemo } from 'react'; -import { max, encodeDate } from '@togglecorp/fujs'; - -import useTranslation from '#hooks/useTranslation'; -import Link from '#components/Link'; -import { SortContext } from '#components/Table/useSorting'; import { - createStringColumn, - createNumberColumn, + Container, + DateInput, + Pager, + Table, +} from '@ifrc-go/ui'; +import { SortContext } from '@ifrc-go/ui/contexts'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { createDateColumn, - createLinkColumn, -} from '#components/Table/ColumnShortcuts'; -import Table from '#components/Table'; -import Container from '#components/Container'; -import Pager from '#components/Pager'; -import DateInput from '#components/DateInput'; + createNumberColumn, + createStringColumn, + formatNumber, + resolveToComponent, +} from '@ifrc-go/ui/utils'; +import { + encodeDate, + max, +} from '@togglecorp/fujs'; + import DisasterTypeSelectInput from '#components/domain/DisasterTypeSelectInput'; +import Link from '#components/Link'; import useFilterState from '#hooks/useFilterState'; -import { useRequest, type GoApiResponse } from '#utils/restRequest'; -import { resolveToComponent } from '#utils/translation'; -import { formatNumber } from '#utils/common'; +import { createLinkColumn } from '#utils/domain/tableHelpers'; +import { + type GoApiResponse, + useRequest, +} from '#utils/restRequest'; import i18n from './i18n.json'; diff --git a/src/views/CountryOperations/index.tsx b/app/src/views/CountryOperations/index.tsx similarity index 99% rename from src/views/CountryOperations/index.tsx rename to app/src/views/CountryOperations/index.tsx index ac82be95f3..1468328af9 100644 --- a/src/views/CountryOperations/index.tsx +++ b/app/src/views/CountryOperations/index.tsx @@ -1,12 +1,14 @@ import { - useParams, useOutletContext, + useParams, } from 'react-router-dom'; -import { type CountryOutletContext } from '#utils/outletContext'; import { isFalsyString } from '@togglecorp/fujs'; +import { type CountryOutletContext } from '#utils/outletContext'; + import AppealOperationTable from './AppealOperationTable'; import EmergenciesOperationTable from './EmergenciesOperationTable'; + import styles from './styles.module.css'; // eslint-disable-next-line import/prefer-default-export diff --git a/src/views/CountryOperations/styles.module.css b/app/src/views/CountryOperations/styles.module.css similarity index 100% rename from src/views/CountryOperations/styles.module.css rename to app/src/views/CountryOperations/styles.module.css diff --git a/src/views/CountryPreparedness/PreviousAssessmentChart/i18n.json b/app/src/views/CountryPreparedness/PreviousAssessmentChart/i18n.json similarity index 100% rename from src/views/CountryPreparedness/PreviousAssessmentChart/i18n.json rename to app/src/views/CountryPreparedness/PreviousAssessmentChart/i18n.json diff --git a/src/views/CountryPreparedness/PreviousAssessmentChart/index.tsx b/app/src/views/CountryPreparedness/PreviousAssessmentChart/index.tsx similarity index 93% rename from src/views/CountryPreparedness/PreviousAssessmentChart/index.tsx rename to app/src/views/CountryPreparedness/PreviousAssessmentChart/index.tsx index 3e427088e1..52ebc1c2ee 100644 --- a/src/views/CountryPreparedness/PreviousAssessmentChart/index.tsx +++ b/app/src/views/CountryPreparedness/PreviousAssessmentChart/index.tsx @@ -1,12 +1,17 @@ -import { ElementRef, useRef } from 'react'; +import { + ElementRef, + useRef, +} from 'react'; +import { ChartAxes } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + formatDate, + getDiscretePathDataList, + resolveToString, +} from '@ifrc-go/ui/utils'; import useChartData from '#hooks/useChartData'; -import ChartAxes from '#components/ChartAxes'; -import useTranslation from '#hooks/useTranslation'; -import { formatDate } from '#utils/common'; import { type GoApiResponse } from '#utils/restRequest'; -import { getDiscretePathDataList } from '#utils/chart'; -import { resolveToString } from '#utils/translation'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/CountryPreparedness/PreviousAssessmentChart/styles.module.css b/app/src/views/CountryPreparedness/PreviousAssessmentChart/styles.module.css similarity index 100% rename from src/views/CountryPreparedness/PreviousAssessmentChart/styles.module.css rename to app/src/views/CountryPreparedness/PreviousAssessmentChart/styles.module.css diff --git a/src/views/CountryPreparedness/PublicCountryPreparedness/i18n.json b/app/src/views/CountryPreparedness/PublicCountryPreparedness/i18n.json similarity index 100% rename from src/views/CountryPreparedness/PublicCountryPreparedness/i18n.json rename to app/src/views/CountryPreparedness/PublicCountryPreparedness/i18n.json diff --git a/src/views/CountryPreparedness/PublicCountryPreparedness/index.tsx b/app/src/views/CountryPreparedness/PublicCountryPreparedness/index.tsx similarity index 95% rename from src/views/CountryPreparedness/PublicCountryPreparedness/index.tsx rename to app/src/views/CountryPreparedness/PublicCountryPreparedness/index.tsx index 231b40ca34..5c06f0f244 100644 --- a/src/views/CountryPreparedness/PublicCountryPreparedness/index.tsx +++ b/app/src/views/CountryPreparedness/PublicCountryPreparedness/index.tsx @@ -1,16 +1,21 @@ -import { useMemo, Fragment } from 'react'; import { + Fragment, + useMemo, +} from 'react'; +import { + Container, + Heading, + Message, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToString } from '@ifrc-go/ui/utils'; +import { + compareNumber, isDefined, isNotDefined, - compareNumber, } from '@togglecorp/fujs'; -import Container from '#components/Container'; -import Message from '#components/Message'; -import Heading from '#components/Heading'; import useAuth from '#hooks/domain/useAuth'; -import useTranslation from '#hooks/useTranslation'; -import { resolveToString } from '#utils/translation'; import { useRequest } from '#utils/restRequest'; import i18n from './i18n.json'; diff --git a/src/views/CountryPreparedness/PublicCountryPreparedness/styles.module.css b/app/src/views/CountryPreparedness/PublicCountryPreparedness/styles.module.css similarity index 100% rename from src/views/CountryPreparedness/PublicCountryPreparedness/styles.module.css rename to app/src/views/CountryPreparedness/PublicCountryPreparedness/styles.module.css diff --git a/src/views/CountryPreparedness/RatingByAreaChart/index.tsx b/app/src/views/CountryPreparedness/RatingByAreaChart/index.tsx similarity index 95% rename from src/views/CountryPreparedness/RatingByAreaChart/index.tsx rename to app/src/views/CountryPreparedness/RatingByAreaChart/index.tsx index ad2a4c349c..fe5de32b02 100644 --- a/src/views/CountryPreparedness/RatingByAreaChart/index.tsx +++ b/app/src/views/CountryPreparedness/RatingByAreaChart/index.tsx @@ -1,9 +1,15 @@ -import { ElementRef, useRef } from 'react'; +import { + ElementRef, + useRef, +} from 'react'; +import { ChartAxes } from '@ifrc-go/ui'; import { listToMap } from '@togglecorp/fujs'; -import ChartAxes from '#components/ChartAxes'; import useChartData from '#hooks/useChartData'; -import { defaultChartMargin, defaultChartPadding } from '#utils/constants'; +import { + defaultChartMargin, + defaultChartPadding, +} from '#utils/constants'; import { type GoApiResponse } from '#utils/restRequest'; import styles from './styles.module.css'; diff --git a/src/views/CountryPreparedness/RatingByAreaChart/styles.module.css b/app/src/views/CountryPreparedness/RatingByAreaChart/styles.module.css similarity index 100% rename from src/views/CountryPreparedness/RatingByAreaChart/styles.module.css rename to app/src/views/CountryPreparedness/RatingByAreaChart/styles.module.css diff --git a/src/views/CountryPreparedness/i18n.json b/app/src/views/CountryPreparedness/i18n.json similarity index 100% rename from src/views/CountryPreparedness/i18n.json rename to app/src/views/CountryPreparedness/i18n.json diff --git a/src/views/CountryPreparedness/index.tsx b/app/src/views/CountryPreparedness/index.tsx similarity index 97% rename from src/views/CountryPreparedness/index.tsx rename to app/src/views/CountryPreparedness/index.tsx index 7828f48446..c61bcca922 100644 --- a/src/views/CountryPreparedness/index.tsx +++ b/app/src/views/CountryPreparedness/index.tsx @@ -1,10 +1,35 @@ -import { Fragment, useCallback, useMemo } from 'react'; +import { + Fragment, + useCallback, + useMemo, +} from 'react'; import { useParams } from 'react-router-dom'; import { AnalyzingIcon, ArrowLeftLineIcon, CheckboxFillIcon, } from '@ifrc-go/icons'; +import { + BlockLoading, + Button, + Container, + Heading, + KeyFigure, + Message, + PieChart, + ProgressBar, + StackedProgressBar, + TextOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + numericCountSelector, + numericIdSelector, + resolveToString, + stringLabelSelector, + stringTitleSelector, + sumSafe, +} from '@ifrc-go/ui/utils'; import { compareNumber, isDefined, @@ -14,32 +39,14 @@ import { mapToList, } from '@togglecorp/fujs'; -import Button from '#components/Button'; -import BlockLoading from '#components/BlockLoading'; -import Container from '#components/Container'; -import Heading from '#components/Heading'; -import KeyFigure from '#components/KeyFigure'; import Link from '#components/Link'; -import Message from '#components/Message'; -import PieChart from '#components/PieChart'; -import ProgressBar from '#components/ProgressBar'; -import StackedProgressBar from '#components/StackedProgressBar'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; -import { resolveToString } from '#utils/translation'; -import { sumSafe } from '#utils/common'; -import { useRequest } from '#utils/restRequest'; -import { - numericCountSelector, - numericIdSelector, - stringLabelSelector, - stringTitleSelector, -} from '#utils/selectors'; import useRouting from '#hooks/useRouting'; +import { useRequest } from '#utils/restRequest'; import PreviousAssessmentCharts from './PreviousAssessmentChart'; import PublicCountryPreparedness from './PublicCountryPreparedness'; import RatingByAreaChart from './RatingByAreaChart'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/CountryPreparedness/styles.module.css b/app/src/views/CountryPreparedness/styles.module.css similarity index 100% rename from src/views/CountryPreparedness/styles.module.css rename to app/src/views/CountryPreparedness/styles.module.css diff --git a/src/views/CountryProfile/i18n.json b/app/src/views/CountryProfile/i18n.json similarity index 100% rename from src/views/CountryProfile/i18n.json rename to app/src/views/CountryProfile/i18n.json diff --git a/src/views/CountryProfile/index.tsx b/app/src/views/CountryProfile/index.tsx similarity index 90% rename from src/views/CountryProfile/index.tsx rename to app/src/views/CountryProfile/index.tsx index 7b5de00e4b..d3ea2e9a79 100644 --- a/src/views/CountryProfile/index.tsx +++ b/app/src/views/CountryProfile/index.tsx @@ -1,8 +1,11 @@ -import { Outlet, useOutletContext } from 'react-router-dom'; +import { + Outlet, + useOutletContext, +} from 'react-router-dom'; +import { NavigationTabList } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import NavigationTab from '#components/NavigationTab'; -import NavigationTabList from '#components/NavigationTabList'; -import useTranslation from '#hooks/useTranslation'; import { CountryOutletContext } from '#utils/outletContext'; import i18n from './i18n.json'; diff --git a/src/views/CountryProfile/styles.module.css b/app/src/views/CountryProfile/styles.module.css similarity index 100% rename from src/views/CountryProfile/styles.module.css rename to app/src/views/CountryProfile/styles.module.css diff --git a/src/views/CountryProfileOverview/i18n.json b/app/src/views/CountryProfileOverview/i18n.json similarity index 100% rename from src/views/CountryProfileOverview/i18n.json rename to app/src/views/CountryProfileOverview/i18n.json diff --git a/src/views/CountryProfileOverview/index.tsx b/app/src/views/CountryProfileOverview/index.tsx similarity index 91% rename from src/views/CountryProfileOverview/index.tsx rename to app/src/views/CountryProfileOverview/index.tsx index 03614f9fda..dfa0a386c2 100644 --- a/src/views/CountryProfileOverview/index.tsx +++ b/app/src/views/CountryProfileOverview/index.tsx @@ -1,12 +1,13 @@ -import { useOutletContext } from 'react-router-dom'; import { isDefined, isNotDefined } from '@togglecorp/fujs'; - -import BlockLoading from '#components/BlockLoading'; -import Container from '#components/Container'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; +import { + BlockLoading, + Container, + TextOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { type CountryOutletContext } from '#utils/outletContext'; import { useRequest } from '#utils/restRequest'; +import CountryPageEmptyMessage from '#components/domain/CountryPageEmptyMessage'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/CountryProfileOverview/styles.module.css b/app/src/views/CountryProfileOverview/styles.module.css similarity index 100% rename from src/views/CountryProfileOverview/styles.module.css rename to app/src/views/CountryProfileOverview/styles.module.css diff --git a/src/views/CountryProfilePreviousEvents/EmergenciesOverMonth/index.tsx b/app/src/views/CountryProfilePreviousEvents/EmergenciesOverMonth/index.tsx similarity index 91% rename from src/views/CountryProfilePreviousEvents/EmergenciesOverMonth/index.tsx rename to app/src/views/CountryProfilePreviousEvents/EmergenciesOverMonth/index.tsx index 9f7a1c2fc2..6ac18f6419 100644 --- a/src/views/CountryProfilePreviousEvents/EmergenciesOverMonth/index.tsx +++ b/app/src/views/CountryProfilePreviousEvents/EmergenciesOverMonth/index.tsx @@ -1,17 +1,25 @@ -import { type ElementRef, useRef } from 'react'; +import { + type ElementRef, + useRef, +} from 'react'; +import { + ChartAxes, + ChartPoint, + DateOutput, + TextOutput, + Tooltip, +} from '@ifrc-go/ui'; import { isDefined, isNotDefined, } from '@togglecorp/fujs'; -import ChartAxes from '#components/ChartAxes'; import useChartData from '#hooks/useChartData'; +import { + defaultChartMargin, + defaultChartPadding, +} from '#utils/constants'; import { useRequest } from '#utils/restRequest'; -import ChartPoint from '#components/TimeSeriesChart/ChartPoint'; -import Tooltip from '#components/Tooltip'; -import TextOutput from '#components/TextOutput'; -import DateOutput from '#components/DateOutput'; -import { defaultChartMargin, defaultChartPadding } from '#utils/constants'; import styles from './styles.module.css'; diff --git a/src/views/CountryProfilePreviousEvents/EmergenciesOverMonth/styles.module.css b/app/src/views/CountryProfilePreviousEvents/EmergenciesOverMonth/styles.module.css similarity index 100% rename from src/views/CountryProfilePreviousEvents/EmergenciesOverMonth/styles.module.css rename to app/src/views/CountryProfilePreviousEvents/EmergenciesOverMonth/styles.module.css diff --git a/src/views/CountryProfilePreviousEvents/PastEventsChart/index.tsx b/app/src/views/CountryProfilePreviousEvents/PastEventsChart/index.tsx similarity index 91% rename from src/views/CountryProfilePreviousEvents/PastEventsChart/index.tsx rename to app/src/views/CountryProfilePreviousEvents/PastEventsChart/index.tsx index 928a88ae45..40c51b17cf 100644 --- a/src/views/CountryProfilePreviousEvents/PastEventsChart/index.tsx +++ b/app/src/views/CountryProfilePreviousEvents/PastEventsChart/index.tsx @@ -1,19 +1,28 @@ -import { type ElementRef, useRef, useMemo } from 'react'; +import { + type ElementRef, + useMemo, + useRef, +} from 'react'; +import { + ChartAxes, + ChartPoint, + Container, + DateOutput, + TextOutput, + Tooltip, +} from '@ifrc-go/ui'; import { encodeDate, isDefined, isNotDefined, } from '@togglecorp/fujs'; -import ChartAxes from '#components/ChartAxes'; import useChartData from '#hooks/useChartData'; +import { + defaultChartMargin, + defaultChartPadding, +} from '#utils/constants'; import { useRequest } from '#utils/restRequest'; -import ChartPoint from '#components/TimeSeriesChart/ChartPoint'; -import Tooltip from '#components/Tooltip'; -import TextOutput from '#components/TextOutput'; -import DateOutput from '#components/DateOutput'; -import Container from '#components/Container'; -import { defaultChartMargin, defaultChartPadding } from '#utils/constants'; import styles from './styles.module.css'; diff --git a/src/views/CountryProfilePreviousEvents/PastEventsChart/styles.module.css b/app/src/views/CountryProfilePreviousEvents/PastEventsChart/styles.module.css similarity index 100% rename from src/views/CountryProfilePreviousEvents/PastEventsChart/styles.module.css rename to app/src/views/CountryProfilePreviousEvents/PastEventsChart/styles.module.css diff --git a/src/views/CountryProfilePreviousEvents/i18n.json b/app/src/views/CountryProfilePreviousEvents/i18n.json similarity index 100% rename from src/views/CountryProfilePreviousEvents/i18n.json rename to app/src/views/CountryProfilePreviousEvents/i18n.json diff --git a/src/views/CountryProfilePreviousEvents/index.tsx b/app/src/views/CountryProfilePreviousEvents/index.tsx similarity index 92% rename from src/views/CountryProfilePreviousEvents/index.tsx rename to app/src/views/CountryProfilePreviousEvents/index.tsx index 1344d46483..104df50ad6 100644 --- a/src/views/CountryProfilePreviousEvents/index.tsx +++ b/app/src/views/CountryProfilePreviousEvents/index.tsx @@ -1,19 +1,26 @@ import { useMemo } from 'react'; import { useOutletContext } from 'react-router-dom'; -import { encodeDate, isDefined, isNotDefined } from '@togglecorp/fujs'; +import { + BarChart, + Container, + Message, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + encodeDate, + isDefined, + isNotDefined, +} from '@togglecorp/fujs'; -import Container from '#components/Container'; -import Message from '#components/Message'; -import BarChart from '#components/BarChart'; -import useTranslation from '#hooks/useTranslation'; -import { useRequest } from '#utils/restRequest'; import { type CountryOutletContext } from '#utils/outletContext'; +import { useRequest } from '#utils/restRequest'; -import i18n from './i18n.json'; -import styles from './styles.module.css'; import EmergenciesOverMonth from './EmergenciesOverMonth'; import PastEventsChart from './PastEventsChart'; +import i18n from './i18n.json'; +import styles from './styles.module.css'; + // eslint-disable-next-line import/prefer-default-export export function Component() { const strings = useTranslation(i18n); diff --git a/src/views/CountryProfilePreviousEvents/styles.module.css b/app/src/views/CountryProfilePreviousEvents/styles.module.css similarity index 100% rename from src/views/CountryProfilePreviousEvents/styles.module.css rename to app/src/views/CountryProfilePreviousEvents/styles.module.css diff --git a/src/views/CountryProfileRiskWatch/MultiMonthSelectInput/i18n.json b/app/src/views/CountryProfileRiskWatch/MultiMonthSelectInput/i18n.json similarity index 100% rename from src/views/CountryProfileRiskWatch/MultiMonthSelectInput/i18n.json rename to app/src/views/CountryProfileRiskWatch/MultiMonthSelectInput/i18n.json diff --git a/src/views/CountryProfileRiskWatch/MultiMonthSelectInput/index.tsx b/app/src/views/CountryProfileRiskWatch/MultiMonthSelectInput/index.tsx similarity index 95% rename from src/views/CountryProfileRiskWatch/MultiMonthSelectInput/index.tsx rename to app/src/views/CountryProfileRiskWatch/MultiMonthSelectInput/index.tsx index 514c2d0bbd..38cc91c5a9 100644 --- a/src/views/CountryProfileRiskWatch/MultiMonthSelectInput/index.tsx +++ b/app/src/views/CountryProfileRiskWatch/MultiMonthSelectInput/index.tsx @@ -1,10 +1,17 @@ -import { useCallback, useEffect, useRef } from 'react'; -import { _cs, listToMap, isNotDefined } from '@togglecorp/fujs'; +import { + useCallback, + useEffect, + useRef, +} from 'react'; +import { RawButton } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + _cs, + isNotDefined, + listToMap, +} from '@togglecorp/fujs'; import type { SetValueArg } from '@togglecorp/toggle-form'; -import RawButton from '#components/RawButton'; -import useTranslation from '#hooks/useTranslation'; - import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/CountryProfileRiskWatch/MultiMonthSelectInput/styles.module.css b/app/src/views/CountryProfileRiskWatch/MultiMonthSelectInput/styles.module.css similarity index 100% rename from src/views/CountryProfileRiskWatch/MultiMonthSelectInput/styles.module.css rename to app/src/views/CountryProfileRiskWatch/MultiMonthSelectInput/styles.module.css diff --git a/src/views/CountryProfileRiskWatch/PossibleEarlyActionTable/i18n.json b/app/src/views/CountryProfileRiskWatch/PossibleEarlyActionTable/i18n.json similarity index 100% rename from src/views/CountryProfileRiskWatch/PossibleEarlyActionTable/i18n.json rename to app/src/views/CountryProfileRiskWatch/PossibleEarlyActionTable/i18n.json diff --git a/src/views/CountryProfileRiskWatch/PossibleEarlyActionTable/index.tsx b/app/src/views/CountryProfileRiskWatch/PossibleEarlyActionTable/index.tsx similarity index 93% rename from src/views/CountryProfileRiskWatch/PossibleEarlyActionTable/index.tsx rename to app/src/views/CountryProfileRiskWatch/PossibleEarlyActionTable/index.tsx index 644faa503e..6b6da7e502 100644 --- a/src/views/CountryProfileRiskWatch/PossibleEarlyActionTable/index.tsx +++ b/app/src/views/CountryProfileRiskWatch/PossibleEarlyActionTable/index.tsx @@ -1,22 +1,30 @@ import { useMemo } from 'react'; -import { isDefined, isNotDefined } from '@togglecorp/fujs'; - -import Table from '#components/Table'; -import { createStringColumn } from '#components/Table/ColumnShortcuts'; -import Container from '#components/Container'; -import Pager from '#components/Pager'; -import SelectInput from '#components/SelectInput'; -import useTranslation from '#hooks/useTranslation'; -import useFilterState from '#hooks/useFilterState'; -import { useRiskRequest } from '#utils/restRequest'; -import type { GoApiResponse, RiskApiResponse } from '#utils/restRequest'; import { + Container, + Pager, + SelectInput, + Table, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + createStringColumn, numericIdSelector, stringKeySelector, stringNameSelector, stringValueSelector, -} from '#utils/selectors'; +} from '@ifrc-go/ui/utils'; +import { + isDefined, + isNotDefined, +} from '@togglecorp/fujs'; + import type { components as riskApiComponents } from '#generated/riskTypes'; +import useFilterState from '#hooks/useFilterState'; +import type { + GoApiResponse, + RiskApiResponse, +} from '#utils/restRequest'; +import { useRiskRequest } from '#utils/restRequest'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/CountryProfileRiskWatch/PossibleEarlyActionTable/styles.module.css b/app/src/views/CountryProfileRiskWatch/PossibleEarlyActionTable/styles.module.css similarity index 100% rename from src/views/CountryProfileRiskWatch/PossibleEarlyActionTable/styles.module.css rename to app/src/views/CountryProfileRiskWatch/PossibleEarlyActionTable/styles.module.css diff --git a/src/views/CountryProfileRiskWatch/ReturnPeriodTable/i18n.json b/app/src/views/CountryProfileRiskWatch/ReturnPeriodTable/i18n.json similarity index 100% rename from src/views/CountryProfileRiskWatch/ReturnPeriodTable/i18n.json rename to app/src/views/CountryProfileRiskWatch/ReturnPeriodTable/i18n.json diff --git a/src/views/CountryProfileRiskWatch/ReturnPeriodTable/index.tsx b/app/src/views/CountryProfileRiskWatch/ReturnPeriodTable/index.tsx similarity index 94% rename from src/views/CountryProfileRiskWatch/ReturnPeriodTable/index.tsx rename to app/src/views/CountryProfileRiskWatch/ReturnPeriodTable/index.tsx index 7ab6e8dc4d..df258f7abd 100644 --- a/src/views/CountryProfileRiskWatch/ReturnPeriodTable/index.tsx +++ b/app/src/views/CountryProfileRiskWatch/ReturnPeriodTable/index.tsx @@ -1,18 +1,27 @@ import { useMemo } from 'react'; -import { isDefined, isFalsyString, unique } from '@togglecorp/fujs'; - -import Container from '#components/Container'; -import Table from '#components/Table'; -import SelectInput from '#components/SelectInput'; -import Link from '#components/Link'; import { - createStringColumn, + Container, + SelectInput, + Table, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { createNumberColumn, -} from '#components/Table/ColumnShortcuts'; -import useTranslation from '#hooks/useTranslation'; + createStringColumn, + resolveToComponent, +} from '@ifrc-go/ui/utils'; +import { + isDefined, + isFalsyString, + unique, +} from '@togglecorp/fujs'; + +import Link from '#components/Link'; +import type { + components, + paths, +} from '#generated/riskTypes'; import useInputState from '#hooks/useInputState'; -import type { paths, components } from '#generated/riskTypes'; -import { resolveToComponent } from '#utils/translation'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/CountryProfileRiskWatch/ReturnPeriodTable/styles.module.css b/app/src/views/CountryProfileRiskWatch/ReturnPeriodTable/styles.module.css similarity index 100% rename from src/views/CountryProfileRiskWatch/ReturnPeriodTable/styles.module.css rename to app/src/views/CountryProfileRiskWatch/ReturnPeriodTable/styles.module.css diff --git a/src/views/CountryProfileRiskWatch/RiskBarChart/CombinedChart/i18n.json b/app/src/views/CountryProfileRiskWatch/RiskBarChart/CombinedChart/i18n.json similarity index 100% rename from src/views/CountryProfileRiskWatch/RiskBarChart/CombinedChart/i18n.json rename to app/src/views/CountryProfileRiskWatch/RiskBarChart/CombinedChart/i18n.json diff --git a/src/views/CountryProfileRiskWatch/RiskBarChart/CombinedChart/index.tsx b/app/src/views/CountryProfileRiskWatch/RiskBarChart/CombinedChart/index.tsx similarity index 97% rename from src/views/CountryProfileRiskWatch/RiskBarChart/CombinedChart/index.tsx rename to app/src/views/CountryProfileRiskWatch/RiskBarChart/CombinedChart/index.tsx index 93935d0f5a..66ea6ac595 100644 --- a/src/views/CountryProfileRiskWatch/RiskBarChart/CombinedChart/index.tsx +++ b/app/src/views/CountryProfileRiskWatch/RiskBarChart/CombinedChart/index.tsx @@ -4,6 +4,14 @@ import { useMemo, useRef, } from 'react'; +import { + ChartAxes, + DateOutput, + NumberOutput, + TextOutput, + Tooltip, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { isDefined, isNotDefined, @@ -11,23 +19,8 @@ import { mapToMap, } from '@togglecorp/fujs'; -import ChartAxes from '#components/ChartAxes'; -import Tooltip from '#components/Tooltip'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; -import DateOutput from '#components/DateOutput'; -import NumberOutput from '#components/NumberOutput'; -import useChartData, { ChartOptions } from '#hooks/useChartData'; -import { - getDataWithTruthyHazardType, - monthNumberToNameMap, - getFiRiskDataItem, - getWfRiskDataItem, - hazardTypeToColorMap, - riskScoreToCategory, - RiskMetricOption, -} from '#utils/domain/risk'; import { type components } from '#generated/riskTypes'; +import useChartData, { ChartOptions } from '#hooks/useChartData'; import { CATEGORY_RISK_HIGH, CATEGORY_RISK_LOW, @@ -37,6 +30,15 @@ import { defaultChartMargin, defaultChartPadding, } from '#utils/constants'; +import { + getDataWithTruthyHazardType, + getFiRiskDataItem, + getWfRiskDataItem, + hazardTypeToColorMap, + monthNumberToNameMap, + RiskMetricOption, + riskScoreToCategory, +} from '#utils/domain/risk'; import { type RiskApiResponse } from '#utils/restRequest'; import i18n from './i18n.json'; diff --git a/src/views/CountryProfileRiskWatch/RiskBarChart/CombinedChart/styles.module.css b/app/src/views/CountryProfileRiskWatch/RiskBarChart/CombinedChart/styles.module.css similarity index 100% rename from src/views/CountryProfileRiskWatch/RiskBarChart/CombinedChart/styles.module.css rename to app/src/views/CountryProfileRiskWatch/RiskBarChart/CombinedChart/styles.module.css diff --git a/src/views/CountryProfileRiskWatch/RiskBarChart/FoodInsecurityChart/index.tsx b/app/src/views/CountryProfileRiskWatch/RiskBarChart/FoodInsecurityChart/index.tsx similarity index 97% rename from src/views/CountryProfileRiskWatch/RiskBarChart/FoodInsecurityChart/index.tsx rename to app/src/views/CountryProfileRiskWatch/RiskBarChart/FoodInsecurityChart/index.tsx index 6be99a5067..2913327986 100644 --- a/src/views/CountryProfileRiskWatch/RiskBarChart/FoodInsecurityChart/index.tsx +++ b/app/src/views/CountryProfileRiskWatch/RiskBarChart/FoodInsecurityChart/index.tsx @@ -2,6 +2,16 @@ import { useMemo, useRef, } from 'react'; +import { + ChartAxes, + ChartPoint, + TextOutput, + Tooltip, +} from '@ifrc-go/ui'; +import { + avgSafe, + getDiscretePathDataList, +} from '@ifrc-go/ui/utils'; import { isDefined, isNotDefined, @@ -9,21 +19,14 @@ import { mapToList, } from '@togglecorp/fujs'; -import ChartAxes from '#components/ChartAxes'; import useChartData from '#hooks/useChartData'; -import { avgSafe } from '#utils/common'; -import { getPrioritizedIpcData } from '#utils/domain/risk'; -import { getDiscretePathDataList } from '#utils/chart'; import { defaultChartMargin, defaultChartPadding, } from '#utils/constants'; +import { getPrioritizedIpcData } from '#utils/domain/risk'; import { type RiskApiResponse } from '#utils/restRequest'; -import ChartPoint from '#components/TimeSeriesChart/ChartPoint'; -import Tooltip from '#components/Tooltip'; -import TextOutput from '#components/TextOutput'; - import styles from './styles.module.css'; type CountryRiskResponse = RiskApiResponse<'/api/v1/country-seasonal/'>; diff --git a/src/views/CountryProfileRiskWatch/RiskBarChart/FoodInsecurityChart/styles.module.css b/app/src/views/CountryProfileRiskWatch/RiskBarChart/FoodInsecurityChart/styles.module.css similarity index 100% rename from src/views/CountryProfileRiskWatch/RiskBarChart/FoodInsecurityChart/styles.module.css rename to app/src/views/CountryProfileRiskWatch/RiskBarChart/FoodInsecurityChart/styles.module.css diff --git a/src/views/CountryProfileRiskWatch/RiskBarChart/WildfireChart/i18n.json b/app/src/views/CountryProfileRiskWatch/RiskBarChart/WildfireChart/i18n.json similarity index 100% rename from src/views/CountryProfileRiskWatch/RiskBarChart/WildfireChart/i18n.json rename to app/src/views/CountryProfileRiskWatch/RiskBarChart/WildfireChart/i18n.json diff --git a/src/views/CountryProfileRiskWatch/RiskBarChart/WildfireChart/index.tsx b/app/src/views/CountryProfileRiskWatch/RiskBarChart/WildfireChart/index.tsx similarity index 95% rename from src/views/CountryProfileRiskWatch/RiskBarChart/WildfireChart/index.tsx rename to app/src/views/CountryProfileRiskWatch/RiskBarChart/WildfireChart/index.tsx index d02e6420f3..e4f53cdd66 100644 --- a/src/views/CountryProfileRiskWatch/RiskBarChart/WildfireChart/index.tsx +++ b/app/src/views/CountryProfileRiskWatch/RiskBarChart/WildfireChart/index.tsx @@ -4,31 +4,34 @@ import { useRef, useState, } from 'react'; +import { + ChartAxes, + ChartPoint, + TextOutput, + Tooltip, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + avgSafe, + formatNumber, + getDiscretePathDataList, + getPathData, + resolveToString, +} from '@ifrc-go/ui/utils'; import { isDefined, + isNotDefined, listToGroupList, mapToList, - isNotDefined, } from '@togglecorp/fujs'; -import { resolveToString } from '#utils/translation'; -import ChartAxes from '#components/ChartAxes'; -import ChartPoint from '#components/TimeSeriesChart/ChartPoint'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; -import { avgSafe, formatNumber } from '#utils/common'; -import { - getDiscretePathDataList, - getPathData, -} from '#utils/chart'; +import { paths } from '#generated/riskTypes'; +import useChartData from '#hooks/useChartData'; import { COLOR_PRIMARY_BLUE, defaultChartMargin, defaultChartPadding, } from '#utils/constants'; -import { paths } from '#generated/riskTypes'; -import useChartData from '#hooks/useChartData'; -import Tooltip from '#components/Tooltip'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/CountryProfileRiskWatch/RiskBarChart/WildfireChart/styles.module.css b/app/src/views/CountryProfileRiskWatch/RiskBarChart/WildfireChart/styles.module.css similarity index 100% rename from src/views/CountryProfileRiskWatch/RiskBarChart/WildfireChart/styles.module.css rename to app/src/views/CountryProfileRiskWatch/RiskBarChart/WildfireChart/styles.module.css diff --git a/src/views/CountryProfileRiskWatch/RiskBarChart/i18n.json b/app/src/views/CountryProfileRiskWatch/RiskBarChart/i18n.json similarity index 100% rename from src/views/CountryProfileRiskWatch/RiskBarChart/i18n.json rename to app/src/views/CountryProfileRiskWatch/RiskBarChart/i18n.json diff --git a/src/views/CountryProfileRiskWatch/RiskBarChart/index.tsx b/app/src/views/CountryProfileRiskWatch/RiskBarChart/index.tsx similarity index 96% rename from src/views/CountryProfileRiskWatch/RiskBarChart/index.tsx rename to app/src/views/CountryProfileRiskWatch/RiskBarChart/index.tsx index 68924694ad..8efd3f6a06 100644 --- a/src/views/CountryProfileRiskWatch/RiskBarChart/index.tsx +++ b/app/src/views/CountryProfileRiskWatch/RiskBarChart/index.tsx @@ -2,6 +2,18 @@ import { useCallback, useMemo, } from 'react'; +import { + BlockLoading, + Checkbox, + Container, + LegendItem, + SelectInput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + resolveToString, + stringLabelSelector, +} from '@ifrc-go/ui/utils'; import { isDefined, isFalsyString, @@ -11,42 +23,35 @@ import { unique, } from '@togglecorp/fujs'; -import Container from '#components/Container'; -import SelectInput from '#components/SelectInput'; -import BlockLoading from '#components/BlockLoading'; -import LegendItem from '#components/LegendItem'; -import Checkbox from '#components/Checkbox'; import useInputState from '#hooks/useInputState'; -import useTranslation from '#hooks/useTranslation'; -import { stringLabelSelector } from '#utils/selectors'; import { - getDataWithTruthyHazardType, - getFiRiskDataItem, - hasSomeDefinedValue, - hazardTypeToColorMap, - riskMetricKeySelector, - hazardTypeKeySelector, - hazardTypeLabelSelector, - applicableHazardsByRiskMetric, -} from '#utils/domain/risk'; + COLOR_LIGHT_GREY, + COLOR_PRIMARY_BLUE, + COLOR_PRIMARY_RED, +} from '#utils/constants'; import type { HazardType, RiskMetric, RiskMetricOption, } from '#utils/domain/risk'; import { - COLOR_LIGHT_GREY, - COLOR_PRIMARY_BLUE, - COLOR_PRIMARY_RED, -} from '#utils/constants'; + applicableHazardsByRiskMetric, + getDataWithTruthyHazardType, + getFiRiskDataItem, + hasSomeDefinedValue, + hazardTypeKeySelector, + hazardTypeLabelSelector, + hazardTypeToColorMap, + riskMetricKeySelector, +} from '#utils/domain/risk'; import { type RiskApiResponse } from '#utils/restRequest'; -import { resolveToString } from '#utils/translation'; -import i18n from './i18n.json'; -import styles from './styles.module.css'; +import CombinedChart from './CombinedChart'; import FoodInsecurityChart from './FoodInsecurityChart'; import WildfireChart from './WildfireChart'; -import CombinedChart from './CombinedChart'; + +import i18n from './i18n.json'; +import styles from './styles.module.css'; type CountryRiskResponse = RiskApiResponse<'/api/v1/country-seasonal/'>; type RiskData = CountryRiskResponse[number]; diff --git a/src/views/CountryProfileRiskWatch/RiskBarChart/styles.module.css b/app/src/views/CountryProfileRiskWatch/RiskBarChart/styles.module.css similarity index 100% rename from src/views/CountryProfileRiskWatch/RiskBarChart/styles.module.css rename to app/src/views/CountryProfileRiskWatch/RiskBarChart/styles.module.css diff --git a/src/views/CountryProfileRiskWatch/RiskTable/i18n.json b/app/src/views/CountryProfileRiskWatch/RiskTable/i18n.json similarity index 100% rename from src/views/CountryProfileRiskWatch/RiskTable/i18n.json rename to app/src/views/CountryProfileRiskWatch/RiskTable/i18n.json diff --git a/src/views/CountryProfileRiskWatch/RiskTable/index.tsx b/app/src/views/CountryProfileRiskWatch/RiskTable/index.tsx similarity index 97% rename from src/views/CountryProfileRiskWatch/RiskTable/index.tsx rename to app/src/views/CountryProfileRiskWatch/RiskTable/index.tsx index f931c2f794..207383697c 100644 --- a/src/views/CountryProfileRiskWatch/RiskTable/index.tsx +++ b/app/src/views/CountryProfileRiskWatch/RiskTable/index.tsx @@ -1,4 +1,15 @@ -import { useCallback, useMemo } from 'react'; +import { + useCallback, + useMemo, +} from 'react'; +import { Table } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + createNumberColumn, + createStringColumn, + minSafe, + resolveToComponent, +} from '@ifrc-go/ui/utils'; import { _cs, isDefined, @@ -7,22 +18,7 @@ import { unique, } from '@togglecorp/fujs'; -import Table from '#components/Table'; -import { - createStringColumn, - createNumberColumn, -} from '#components/Table/ColumnShortcuts'; import Link from '#components/Link'; -import useTranslation from '#hooks/useTranslation'; -import { minSafe } from '#utils/common'; -import { - getDataWithTruthyHazardType, - getValueForSelectedMonths, - getFiRiskDataItem, - getWfRiskDataItem, - hasSomeDefinedValue, - riskScoreToCategory, -} from '#utils/domain/risk'; import { CATEGORY_RISK_HIGH, CATEGORY_RISK_LOW, @@ -30,7 +26,14 @@ import { CATEGORY_RISK_VERY_HIGH, CATEGORY_RISK_VERY_LOW, } from '#utils/constants'; -import { resolveToComponent } from '#utils/translation'; +import { + getDataWithTruthyHazardType, + getFiRiskDataItem, + getValueForSelectedMonths, + getWfRiskDataItem, + hasSomeDefinedValue, + riskScoreToCategory, +} from '#utils/domain/risk'; import { type RiskApiResponse } from '#utils/restRequest'; import i18n from './i18n.json'; diff --git a/src/views/CountryProfileRiskWatch/RiskTable/styles.module.css b/app/src/views/CountryProfileRiskWatch/RiskTable/styles.module.css similarity index 100% rename from src/views/CountryProfileRiskWatch/RiskTable/styles.module.css rename to app/src/views/CountryProfileRiskWatch/RiskTable/styles.module.css diff --git a/src/views/CountryProfileRiskWatch/i18n.json b/app/src/views/CountryProfileRiskWatch/i18n.json similarity index 100% rename from src/views/CountryProfileRiskWatch/i18n.json rename to app/src/views/CountryProfileRiskWatch/i18n.json diff --git a/src/views/CountryProfileRiskWatch/index.tsx b/app/src/views/CountryProfileRiskWatch/index.tsx similarity index 95% rename from src/views/CountryProfileRiskWatch/index.tsx rename to app/src/views/CountryProfileRiskWatch/index.tsx index 5a1bf6a28e..0a293d90b3 100644 --- a/src/views/CountryProfileRiskWatch/index.tsx +++ b/app/src/views/CountryProfileRiskWatch/index.tsx @@ -1,22 +1,31 @@ import { useMemo } from 'react'; -import { useParams, useOutletContext } from 'react-router-dom'; -import { isDefined, isNotDefined, mapToList } from '@togglecorp/fujs'; +import { + useOutletContext, + useParams, +} from 'react-router-dom'; +import { + BlockLoading, + Container, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + isDefined, + isNotDefined, + mapToList, +} from '@togglecorp/fujs'; import getBbox from '@turf/bbox'; -import Container from '#components/Container'; -import Link from '#components/Link'; import RiskImminentEvents, { type ImminentEventSource } from '#components/domain/RiskImminentEvents'; -import BlockLoading from '#components/BlockLoading'; -import useTranslation from '#hooks/useTranslation'; +import Link from '#components/Link'; import useInputState from '#hooks/useInputState'; import type { CountryOutletContext } from '#utils/outletContext'; import { useRiskRequest } from '#utils/restRequest'; import MultiMonthSelectInput from './MultiMonthSelectInput'; -import RiskTable from './RiskTable'; -import RiskBarChart from './RiskBarChart'; import PossibleEarlyActionTable from './PossibleEarlyActionTable'; import ReturnPeriodTable from './ReturnPeriodTable'; +import RiskBarChart from './RiskBarChart'; +import RiskTable from './RiskTable'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/CountryProfileRiskWatch/styles.module.css b/app/src/views/CountryProfileRiskWatch/styles.module.css similarity index 100% rename from src/views/CountryProfileRiskWatch/styles.module.css rename to app/src/views/CountryProfileRiskWatch/styles.module.css diff --git a/src/views/CountryProfileSupportingPartners/MembershipCoordinationTable/i18n.json b/app/src/views/CountryProfileSupportingPartners/MembershipCoordinationTable/i18n.json similarity index 100% rename from src/views/CountryProfileSupportingPartners/MembershipCoordinationTable/i18n.json rename to app/src/views/CountryProfileSupportingPartners/MembershipCoordinationTable/i18n.json diff --git a/src/views/CountryProfileSupportingPartners/MembershipCoordinationTable/index.tsx b/app/src/views/CountryProfileSupportingPartners/MembershipCoordinationTable/index.tsx similarity index 93% rename from src/views/CountryProfileSupportingPartners/MembershipCoordinationTable/index.tsx rename to app/src/views/CountryProfileSupportingPartners/MembershipCoordinationTable/index.tsx index 196c39fedc..ba52ca19f0 100644 --- a/src/views/CountryProfileSupportingPartners/MembershipCoordinationTable/index.tsx +++ b/app/src/views/CountryProfileSupportingPartners/MembershipCoordinationTable/index.tsx @@ -1,5 +1,15 @@ import { useMemo } from 'react'; import { CheckboxCircleLineIcon } from '@ifrc-go/icons'; +import { + Container, + Table, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + createElementColumn, + createStringColumn, + numericKeySelector, +} from '@ifrc-go/ui/utils'; import { _cs, isDefined, @@ -10,11 +20,6 @@ import { unique, } from '@togglecorp/fujs'; -import useTranslation from '#hooks/useTranslation'; -import Container from '#components/Container'; -import Table from '#components/Table'; -import { createElementColumn, createStringColumn } from '#components/Table/ColumnShortcuts'; -import { numericKeySelector } from '#utils/selectors'; import { type GoApiResponse } from '#utils/restRequest'; import i18n from './i18n.json'; diff --git a/src/views/CountryProfileSupportingPartners/MembershipCoordinationTable/styles.module.css b/app/src/views/CountryProfileSupportingPartners/MembershipCoordinationTable/styles.module.css similarity index 100% rename from src/views/CountryProfileSupportingPartners/MembershipCoordinationTable/styles.module.css rename to app/src/views/CountryProfileSupportingPartners/MembershipCoordinationTable/styles.module.css diff --git a/src/views/CountryProfileSupportingPartners/SupportingPartnersContacts/i18n.json b/app/src/views/CountryProfileSupportingPartners/SupportingPartnersContacts/i18n.json similarity index 100% rename from src/views/CountryProfileSupportingPartners/SupportingPartnersContacts/i18n.json rename to app/src/views/CountryProfileSupportingPartners/SupportingPartnersContacts/i18n.json diff --git a/src/views/CountryProfileSupportingPartners/SupportingPartnersContacts/index.tsx b/app/src/views/CountryProfileSupportingPartners/SupportingPartnersContacts/index.tsx similarity index 90% rename from src/views/CountryProfileSupportingPartners/SupportingPartnersContacts/index.tsx rename to app/src/views/CountryProfileSupportingPartners/SupportingPartnersContacts/index.tsx index 94045a57b6..d9d8bf8766 100644 --- a/src/views/CountryProfileSupportingPartners/SupportingPartnersContacts/index.tsx +++ b/app/src/views/CountryProfileSupportingPartners/SupportingPartnersContacts/index.tsx @@ -1,5 +1,15 @@ import { useMemo } from 'react'; import { useOutletContext } from 'react-router-dom'; +import { + BlockLoading, + Container, + Table, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + createStringColumn, + numericIdSelector, +} from '@ifrc-go/ui/utils'; import { _cs, isDefined, @@ -8,14 +18,12 @@ import { mapToList, } from '@togglecorp/fujs'; -import BlockLoading from '#components/BlockLoading'; -import Container from '#components/Container'; -import Table from '#components/Table'; -import { createStringColumn, createLinkColumn } from '#components/Table/ColumnShortcuts'; -import useTranslation from '#hooks/useTranslation'; -import { numericIdSelector } from '#utils/selectors'; -import { GoApiResponse, useRequest } from '#utils/restRequest'; +import { createLinkColumn } from '#utils/domain/tableHelpers'; import { type CountryOutletContext } from '#utils/outletContext'; +import { + GoApiResponse, + useRequest, +} from '#utils/restRequest'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/CountryProfileSupportingPartners/SupportingPartnersContacts/styles.module.css b/app/src/views/CountryProfileSupportingPartners/SupportingPartnersContacts/styles.module.css similarity index 100% rename from src/views/CountryProfileSupportingPartners/SupportingPartnersContacts/styles.module.css rename to app/src/views/CountryProfileSupportingPartners/SupportingPartnersContacts/styles.module.css diff --git a/src/views/CountryProfileSupportingPartners/i18n.json b/app/src/views/CountryProfileSupportingPartners/i18n.json similarity index 100% rename from src/views/CountryProfileSupportingPartners/i18n.json rename to app/src/views/CountryProfileSupportingPartners/i18n.json diff --git a/src/views/CountryProfileSupportingPartners/index.tsx b/app/src/views/CountryProfileSupportingPartners/index.tsx similarity index 97% rename from src/views/CountryProfileSupportingPartners/index.tsx rename to app/src/views/CountryProfileSupportingPartners/index.tsx index 6e769a54f1..d669c476f8 100644 --- a/src/views/CountryProfileSupportingPartners/index.tsx +++ b/app/src/views/CountryProfileSupportingPartners/index.tsx @@ -1,10 +1,10 @@ import { useOutletContext } from 'react-router-dom'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { isNotDefined } from '@togglecorp/fujs'; -import Link from '#components/Link'; -import useTranslation from '#hooks/useTranslation'; -import { useRequest } from '#utils/restRequest'; +import Link from '#components/Link'; import { type CountryOutletContext } from '#utils/outletContext'; +import { useRequest } from '#utils/restRequest'; import MembershipCoordinationTable from './MembershipCoordinationTable'; import SupportingPartnersContacts from './SupportingPartnersContacts'; diff --git a/src/views/CountryProfileSupportingPartners/styles.module.css b/app/src/views/CountryProfileSupportingPartners/styles.module.css similarity index 100% rename from src/views/CountryProfileSupportingPartners/styles.module.css rename to app/src/views/CountryProfileSupportingPartners/styles.module.css diff --git a/src/views/CountryThreeW/i18n.json b/app/src/views/CountryThreeW/i18n.json similarity index 100% rename from src/views/CountryThreeW/i18n.json rename to app/src/views/CountryThreeW/i18n.json diff --git a/src/views/CountryThreeW/index.tsx b/app/src/views/CountryThreeW/index.tsx similarity index 90% rename from src/views/CountryThreeW/index.tsx rename to app/src/views/CountryThreeW/index.tsx index c849702c7d..cd4575dd41 100644 --- a/src/views/CountryThreeW/index.tsx +++ b/app/src/views/CountryThreeW/index.tsx @@ -1,17 +1,19 @@ import { Outlet, - useParams, useOutletContext, + useParams, } from 'react-router-dom'; +import { + Container, + NavigationTabList, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToString } from '@ifrc-go/ui/utils'; import { isDefined } from '@togglecorp/fujs'; import Link from '#components/Link'; -import NavigationTabList from '#components/NavigationTabList'; import NavigationTab from '#components/NavigationTab'; -import Container from '#components/Container'; -import useTranslation from '#hooks/useTranslation'; import useUserMe from '#hooks/domain/useUserMe'; -import { resolveToString } from '#utils/translation'; import type { CountryOutletContext } from '#utils/outletContext'; import i18n from './i18n.json'; diff --git a/src/views/CountryThreeW/styles.module.css b/app/src/views/CountryThreeW/styles.module.css similarity index 100% rename from src/views/CountryThreeW/styles.module.css rename to app/src/views/CountryThreeW/styles.module.css diff --git a/src/views/DrefApplicationExport/i18n.json b/app/src/views/DrefApplicationExport/i18n.json similarity index 100% rename from src/views/DrefApplicationExport/i18n.json rename to app/src/views/DrefApplicationExport/i18n.json diff --git a/src/views/DrefApplicationExport/index.tsx b/app/src/views/DrefApplicationExport/index.tsx similarity index 99% rename from src/views/DrefApplicationExport/index.tsx rename to app/src/views/DrefApplicationExport/index.tsx index 02d33aa811..29e8fb0ff6 100644 --- a/src/views/DrefApplicationExport/index.tsx +++ b/app/src/views/DrefApplicationExport/index.tsx @@ -1,5 +1,21 @@ -import { Fragment, useMemo, useState } from 'react'; +import { + Fragment, + useMemo, + useState, +} from 'react'; import { useParams } from 'react-router-dom'; +import { DateOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + Container, + DescriptionText, + Heading, + Image, +} from '@ifrc-go/ui/printable'; +import { + TextOutput, + type TextOutputProps, +} from '@ifrc-go/ui/printable'; import { _cs, isDefined, @@ -8,29 +24,22 @@ import { isTruthyString, } from '@togglecorp/fujs'; -import Container from '#components/printable/Container'; -import TextOutput, { type Props as TextOutputProps } from '#components/printable/TextOutput'; -import Image from '#components/printable/Image'; -import Heading from '#components/printable/Heading'; -import DescriptionText from '#components/printable/DescriptionText'; +import ifrcLogo from '#assets/icons/ifrc-square.png'; import Link from '#components/Link'; -import DateOutput from '#components/DateOutput'; -import useTranslation from '#hooks/useTranslation'; -import { useRequest } from '#utils/restRequest'; import { DISASTER_CATEGORY_ORANGE, DISASTER_CATEGORY_RED, DISASTER_CATEGORY_YELLOW, + DisasterCategory, DREF_TYPE_ASSESSMENT, DREF_TYPE_IMMINENT, - DisasterCategory, } from '#utils/constants'; import { identifiedNeedsAndGapsOrder, nsActionsOrder, plannedInterventionOrder, } from '#utils/domain/dref'; -import ifrcLogo from '#assets/icons/ifrc-square.png'; +import { useRequest } from '#utils/restRequest'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/DrefApplicationExport/styles.module.css b/app/src/views/DrefApplicationExport/styles.module.css similarity index 100% rename from src/views/DrefApplicationExport/styles.module.css rename to app/src/views/DrefApplicationExport/styles.module.css diff --git a/src/views/DrefApplicationForm/Actions/NSActionInput/i18n.json b/app/src/views/DrefApplicationForm/Actions/NSActionInput/i18n.json similarity index 100% rename from src/views/DrefApplicationForm/Actions/NSActionInput/i18n.json rename to app/src/views/DrefApplicationForm/Actions/NSActionInput/i18n.json diff --git a/src/views/DrefApplicationForm/Actions/NSActionInput/index.tsx b/app/src/views/DrefApplicationForm/Actions/NSActionInput/index.tsx similarity index 92% rename from src/views/DrefApplicationForm/Actions/NSActionInput/index.tsx rename to app/src/views/DrefApplicationForm/Actions/NSActionInput/index.tsx index a878fc8c7f..dcdbe53449 100644 --- a/src/views/DrefApplicationForm/Actions/NSActionInput/index.tsx +++ b/app/src/views/DrefApplicationForm/Actions/NSActionInput/index.tsx @@ -1,19 +1,22 @@ +import { DeleteBinTwoLineIcon } from '@ifrc-go/icons'; +import { + Button, + InputSection, + TextArea, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { isDefined } from '@togglecorp/fujs'; import { type ArrayError, - useFormObject, getErrorObject, type SetValueArg, + useFormObject, } from '@togglecorp/toggle-form'; -import { DeleteBinTwoLineIcon } from '@ifrc-go/icons'; import NonFieldError from '#components/NonFieldError'; -import TextArea from '#components/TextArea'; -import Button from '#components/Button'; -import InputSection from '#components/InputSection'; -import useTranslation from '#hooks/useTranslation'; import { type PartialDref } from '../../schema'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/DrefApplicationForm/Actions/NSActionInput/styles.module.css b/app/src/views/DrefApplicationForm/Actions/NSActionInput/styles.module.css similarity index 100% rename from src/views/DrefApplicationForm/Actions/NSActionInput/styles.module.css rename to app/src/views/DrefApplicationForm/Actions/NSActionInput/styles.module.css diff --git a/src/views/DrefApplicationForm/Actions/NeedInput/i18n.json b/app/src/views/DrefApplicationForm/Actions/NeedInput/i18n.json similarity index 100% rename from src/views/DrefApplicationForm/Actions/NeedInput/i18n.json rename to app/src/views/DrefApplicationForm/Actions/NeedInput/i18n.json diff --git a/src/views/DrefApplicationForm/Actions/NeedInput/index.tsx b/app/src/views/DrefApplicationForm/Actions/NeedInput/index.tsx similarity index 92% rename from src/views/DrefApplicationForm/Actions/NeedInput/index.tsx rename to app/src/views/DrefApplicationForm/Actions/NeedInput/index.tsx index 24e5663ea5..3f0df58dbf 100644 --- a/src/views/DrefApplicationForm/Actions/NeedInput/index.tsx +++ b/app/src/views/DrefApplicationForm/Actions/NeedInput/index.tsx @@ -1,18 +1,20 @@ +import { DeleteBinTwoLineIcon } from '@ifrc-go/icons'; +import { + Button, + InputSection, + TextArea, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { isDefined } from '@togglecorp/fujs'; import { - type PartialForm, type ArrayError, - useFormObject, getErrorObject, + type PartialForm, type SetValueArg, + useFormObject, } from '@togglecorp/toggle-form'; -import { DeleteBinTwoLineIcon } from '@ifrc-go/icons'; import NonFieldError from '#components/NonFieldError'; -import TextArea from '#components/TextArea'; -import Button from '#components/Button'; -import InputSection from '#components/InputSection'; -import useTranslation from '#hooks/useTranslation'; import { type PartialDref } from '../../schema'; diff --git a/src/views/DrefApplicationForm/Actions/NeedInput/styles.module.css b/app/src/views/DrefApplicationForm/Actions/NeedInput/styles.module.css similarity index 100% rename from src/views/DrefApplicationForm/Actions/NeedInput/styles.module.css rename to app/src/views/DrefApplicationForm/Actions/NeedInput/styles.module.css diff --git a/src/views/DrefApplicationForm/Actions/i18n.json b/app/src/views/DrefApplicationForm/Actions/i18n.json similarity index 100% rename from src/views/DrefApplicationForm/Actions/i18n.json rename to app/src/views/DrefApplicationForm/Actions/i18n.json diff --git a/src/views/DrefApplicationForm/Actions/index.tsx b/app/src/views/DrefApplicationForm/Actions/index.tsx similarity index 97% rename from src/views/DrefApplicationForm/Actions/index.tsx rename to app/src/views/DrefApplicationForm/Actions/index.tsx index 0ade5124c2..366ceed64b 100644 --- a/src/views/DrefApplicationForm/Actions/index.tsx +++ b/app/src/views/DrefApplicationForm/Actions/index.tsx @@ -1,44 +1,45 @@ import { - useMemo, useCallback, + useMemo, useState, } from 'react'; import { - randomString, + BooleanInput, + Button, + Container, + DateInput, + InputSection, + SelectInput, + TextArea, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { stringValueSelector } from '@ifrc-go/ui/utils'; +import { isNotDefined, listToMap, + randomString, } from '@togglecorp/fujs'; import { - type Error, type EntriesAsList, - useFormArray, + type Error, getErrorObject, + useFormArray, } from '@togglecorp/toggle-form'; -import NonFieldError from '#components/NonFieldError'; -import Button from '#components/Button'; -import Container from '#components/Container'; -import InputSection from '#components/InputSection'; -import SelectInput from '#components/SelectInput'; -import BooleanInput from '#components/BooleanInput'; -import TextArea from '#components/TextArea'; -import DateInput from '#components/DateInput'; import GoSingleFileInput from '#components/domain/GoSingleFileInput'; -import useTranslation from '#hooks/useTranslation'; -import { stringValueSelector } from '#utils/selectors'; +import NonFieldError from '#components/NonFieldError'; import useGlobalEnums from '#hooks/domain/useGlobalEnums'; import { type GoApiResponse } from '#utils/restRequest'; import { - TYPE_IMMINENT, TYPE_ASSESSMENT, + TYPE_IMMINENT, } from '../common'; import { type PartialDref } from '../schema'; - import NeedInput from './NeedInput'; import NsActionInput from './NSActionInput'; -import i18n from './i18n.json'; +import i18n from './i18n.json'; import styles from './styles.module.css'; type GlobalEnumsResponse = GoApiResponse<'/api/v2/global-enums/'>; diff --git a/src/views/DrefApplicationForm/Actions/styles.module.css b/app/src/views/DrefApplicationForm/Actions/styles.module.css similarity index 100% rename from src/views/DrefApplicationForm/Actions/styles.module.css rename to app/src/views/DrefApplicationForm/Actions/styles.module.css diff --git a/src/views/DrefApplicationForm/EventDetail/SourceInformationInput/i18n.json b/app/src/views/DrefApplicationForm/EventDetail/SourceInformationInput/i18n.json similarity index 100% rename from src/views/DrefApplicationForm/EventDetail/SourceInformationInput/i18n.json rename to app/src/views/DrefApplicationForm/EventDetail/SourceInformationInput/i18n.json diff --git a/src/views/DrefApplicationForm/EventDetail/SourceInformationInput/index.tsx b/app/src/views/DrefApplicationForm/EventDetail/SourceInformationInput/index.tsx similarity index 94% rename from src/views/DrefApplicationForm/EventDetail/SourceInformationInput/index.tsx rename to app/src/views/DrefApplicationForm/EventDetail/SourceInformationInput/index.tsx index 1243a4f228..3adaa2abc5 100644 --- a/src/views/DrefApplicationForm/EventDetail/SourceInformationInput/index.tsx +++ b/app/src/views/DrefApplicationForm/EventDetail/SourceInformationInput/index.tsx @@ -1,18 +1,21 @@ +import { DeleteBinTwoLineIcon } from '@ifrc-go/icons'; +import { + Button, + TextInput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { randomString } from '@togglecorp/fujs'; import { type ArrayError, - useFormObject, getErrorObject, type SetValueArg, + useFormObject, } from '@togglecorp/toggle-form'; -import { DeleteBinTwoLineIcon } from '@ifrc-go/icons'; -import { randomString } from '@togglecorp/fujs'; -import Button from '#components/Button'; import NonFieldError from '#components/NonFieldError'; -import TextInput from '#components/TextInput'; -import useTranslation from '#hooks/useTranslation'; import { type PartialDref } from '../../schema'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/DrefApplicationForm/EventDetail/SourceInformationInput/styles.module.css b/app/src/views/DrefApplicationForm/EventDetail/SourceInformationInput/styles.module.css similarity index 100% rename from src/views/DrefApplicationForm/EventDetail/SourceInformationInput/styles.module.css rename to app/src/views/DrefApplicationForm/EventDetail/SourceInformationInput/styles.module.css diff --git a/src/views/DrefApplicationForm/EventDetail/i18n.json b/app/src/views/DrefApplicationForm/EventDetail/i18n.json similarity index 100% rename from src/views/DrefApplicationForm/EventDetail/i18n.json rename to app/src/views/DrefApplicationForm/EventDetail/i18n.json diff --git a/src/views/DrefApplicationForm/EventDetail/index.tsx b/app/src/views/DrefApplicationForm/EventDetail/index.tsx similarity index 97% rename from src/views/DrefApplicationForm/EventDetail/index.tsx rename to app/src/views/DrefApplicationForm/EventDetail/index.tsx index d541a18dd8..0564390faf 100644 --- a/src/views/DrefApplicationForm/EventDetail/index.tsx +++ b/app/src/views/DrefApplicationForm/EventDetail/index.tsx @@ -1,37 +1,39 @@ import { useCallback } from 'react'; +import { WikiHelpSectionLineIcon } from '@ifrc-go/icons'; +import { + BooleanInput, + Button, + Container, + DateInput, + InputSection, + NumberInput, + TextArea, + TextInput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToComponent } from '@ifrc-go/ui/utils'; +import { randomString } from '@togglecorp/fujs'; import { - type Error, type EntriesAsList, + type Error, getErrorObject, useFormArray, } from '@togglecorp/toggle-form'; -import { WikiHelpSectionLineIcon } from '@ifrc-go/icons'; -import { randomString } from '@togglecorp/fujs'; -import Container from '#components/Container'; -import InputSection from '#components/InputSection'; -import TextInput from '#components/TextInput'; -import BooleanInput from '#components/BooleanInput'; -import TextArea from '#components/TextArea'; -import DateInput from '#components/DateInput'; -import NonFieldError from '#components/NonFieldError'; -import Button from '#components/Button'; import GoSingleFileInput from '#components/domain/GoSingleFileInput'; -import Link, { useLink } from '#components/Link'; import MultiImageWithCaptionInput from '#components/domain/MultiImageWithCaptionInput'; -import NumberInput from '#components/NumberInput'; -import useTranslation from '#hooks/useTranslation'; -import { resolveToComponent } from '#utils/translation'; +import Link, { useLink } from '#components/Link'; +import NonFieldError from '#components/NonFieldError'; import { - TYPE_IMMINENT, + ONSET_SUDDEN, TYPE_ASSESSMENT, + TYPE_IMMINENT, TYPE_LOAN, - ONSET_SUDDEN, } from '../common'; import { type PartialDref } from '../schema'; - import SourceInformationInput from './SourceInformationInput'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/DrefApplicationForm/EventDetail/styles.module.css b/app/src/views/DrefApplicationForm/EventDetail/styles.module.css similarity index 100% rename from src/views/DrefApplicationForm/EventDetail/styles.module.css rename to app/src/views/DrefApplicationForm/EventDetail/styles.module.css diff --git a/src/views/DrefApplicationForm/ObsoletePayloadModal/i18n.json b/app/src/views/DrefApplicationForm/ObsoletePayloadModal/i18n.json similarity index 100% rename from src/views/DrefApplicationForm/ObsoletePayloadModal/i18n.json rename to app/src/views/DrefApplicationForm/ObsoletePayloadModal/i18n.json diff --git a/src/views/DrefApplicationForm/ObsoletePayloadModal/index.tsx b/app/src/views/DrefApplicationForm/ObsoletePayloadModal/index.tsx similarity index 93% rename from src/views/DrefApplicationForm/ObsoletePayloadModal/index.tsx rename to app/src/views/DrefApplicationForm/ObsoletePayloadModal/index.tsx index 25d2b2e906..4442b40e27 100644 --- a/src/views/DrefApplicationForm/ObsoletePayloadModal/index.tsx +++ b/app/src/views/DrefApplicationForm/ObsoletePayloadModal/index.tsx @@ -1,14 +1,16 @@ +import { + BlockLoading, + Button, + Modal, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { isDefined, isNotDefined, } from '@togglecorp/fujs'; -import { useRequest } from '#utils/restRequest'; -import Button from '#components/Button'; -import Modal from '#components/Modal'; -import BlockLoading from '#components/BlockLoading'; -import useTranslation from '#hooks/useTranslation'; import { getUserName } from '#utils/domain/user'; +import { useRequest } from '#utils/restRequest'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/DrefApplicationForm/ObsoletePayloadModal/styles.module.css b/app/src/views/DrefApplicationForm/ObsoletePayloadModal/styles.module.css similarity index 100% rename from src/views/DrefApplicationForm/ObsoletePayloadModal/styles.module.css rename to app/src/views/DrefApplicationForm/ObsoletePayloadModal/styles.module.css diff --git a/src/views/DrefApplicationForm/Operation/InterventionInput/IndicatorInput/i18n.json b/app/src/views/DrefApplicationForm/Operation/InterventionInput/IndicatorInput/i18n.json similarity index 100% rename from src/views/DrefApplicationForm/Operation/InterventionInput/IndicatorInput/i18n.json rename to app/src/views/DrefApplicationForm/Operation/InterventionInput/IndicatorInput/i18n.json diff --git a/src/views/DrefApplicationForm/Operation/InterventionInput/IndicatorInput/index.tsx b/app/src/views/DrefApplicationForm/Operation/InterventionInput/IndicatorInput/index.tsx similarity index 92% rename from src/views/DrefApplicationForm/Operation/InterventionInput/IndicatorInput/index.tsx rename to app/src/views/DrefApplicationForm/Operation/InterventionInput/IndicatorInput/index.tsx index e6bcadddce..b3091f74e5 100644 --- a/src/views/DrefApplicationForm/Operation/InterventionInput/IndicatorInput/index.tsx +++ b/app/src/views/DrefApplicationForm/Operation/InterventionInput/IndicatorInput/index.tsx @@ -1,18 +1,21 @@ import { DeleteBinTwoLineIcon } from '@ifrc-go/icons'; +import { + Button, + NumberInput, + TextInput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { type ArrayError, getErrorObject, - useFormObject, type SetValueArg, + useFormObject, } from '@togglecorp/toggle-form'; import NonFieldError from '#components/NonFieldError'; -import Button from '#components/Button'; -import NumberInput from '#components/NumberInput'; -import TextInput from '#components/TextInput'; -import useTranslation from '#hooks/useTranslation'; import { PartialDref } from '../../../schema'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/DrefApplicationForm/Operation/InterventionInput/IndicatorInput/styles.module.css b/app/src/views/DrefApplicationForm/Operation/InterventionInput/IndicatorInput/styles.module.css similarity index 100% rename from src/views/DrefApplicationForm/Operation/InterventionInput/IndicatorInput/styles.module.css rename to app/src/views/DrefApplicationForm/Operation/InterventionInput/IndicatorInput/styles.module.css diff --git a/src/views/DrefApplicationForm/Operation/InterventionInput/i18n.json b/app/src/views/DrefApplicationForm/Operation/InterventionInput/i18n.json similarity index 100% rename from src/views/DrefApplicationForm/Operation/InterventionInput/i18n.json rename to app/src/views/DrefApplicationForm/Operation/InterventionInput/i18n.json diff --git a/src/views/DrefApplicationForm/Operation/InterventionInput/index.tsx b/app/src/views/DrefApplicationForm/Operation/InterventionInput/index.tsx similarity index 95% rename from src/views/DrefApplicationForm/Operation/InterventionInput/index.tsx rename to app/src/views/DrefApplicationForm/Operation/InterventionInput/index.tsx index a08ccff979..5f0b4b974c 100644 --- a/src/views/DrefApplicationForm/Operation/InterventionInput/index.tsx +++ b/app/src/views/DrefApplicationForm/Operation/InterventionInput/index.tsx @@ -1,25 +1,27 @@ import { useCallback } from 'react'; +import { DeleteBinTwoLineIcon } from '@ifrc-go/icons'; +import { + Button, + Container, + InputSection, + NumberInput, + TextArea, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { - randomString, isDefined, isNotDefined, + randomString, } from '@togglecorp/fujs'; import { type ArrayError, - useFormObject, getErrorObject, - useFormArray, type SetValueArg, + useFormArray, + useFormObject, } from '@togglecorp/toggle-form'; -import { DeleteBinTwoLineIcon } from '@ifrc-go/icons'; import NonFieldError from '#components/NonFieldError'; -import TextArea from '#components/TextArea'; -import Button from '#components/Button'; -import NumberInput from '#components/NumberInput'; -import InputSection from '#components/InputSection'; -import Container from '#components/Container'; -import useTranslation from '#hooks/useTranslation'; import { type PartialDref } from '../../schema'; import IndicatorInput from './IndicatorInput'; diff --git a/src/views/DrefApplicationForm/Operation/InterventionInput/styles.module.css b/app/src/views/DrefApplicationForm/Operation/InterventionInput/styles.module.css similarity index 100% rename from src/views/DrefApplicationForm/Operation/InterventionInput/styles.module.css rename to app/src/views/DrefApplicationForm/Operation/InterventionInput/styles.module.css diff --git a/src/views/DrefApplicationForm/Operation/RiskSecurityInput/i18n.json b/app/src/views/DrefApplicationForm/Operation/RiskSecurityInput/i18n.json similarity index 100% rename from src/views/DrefApplicationForm/Operation/RiskSecurityInput/i18n.json rename to app/src/views/DrefApplicationForm/Operation/RiskSecurityInput/i18n.json diff --git a/src/views/DrefApplicationForm/Operation/RiskSecurityInput/index.tsx b/app/src/views/DrefApplicationForm/Operation/RiskSecurityInput/index.tsx similarity index 94% rename from src/views/DrefApplicationForm/Operation/RiskSecurityInput/index.tsx rename to app/src/views/DrefApplicationForm/Operation/RiskSecurityInput/index.tsx index 3a2bd20741..ebf5fed3d5 100644 --- a/src/views/DrefApplicationForm/Operation/RiskSecurityInput/index.tsx +++ b/app/src/views/DrefApplicationForm/Operation/RiskSecurityInput/index.tsx @@ -1,19 +1,21 @@ +import { DeleteBinTwoLineIcon } from '@ifrc-go/icons'; +import { + Button, + TextArea, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { randomString } from '@togglecorp/fujs'; import { type ArrayError, - useFormObject, getErrorObject, type SetValueArg, + useFormObject, } from '@togglecorp/toggle-form'; -import { DeleteBinTwoLineIcon } from '@ifrc-go/icons'; - -import { randomString } from '@togglecorp/fujs'; import NonFieldError from '#components/NonFieldError'; -import Button from '#components/Button'; -import TextArea from '#components/TextArea'; -import useTranslation from '#hooks/useTranslation'; import { type PartialDref } from '../../schema'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/DrefApplicationForm/Operation/RiskSecurityInput/styles.module.css b/app/src/views/DrefApplicationForm/Operation/RiskSecurityInput/styles.module.css similarity index 100% rename from src/views/DrefApplicationForm/Operation/RiskSecurityInput/styles.module.css rename to app/src/views/DrefApplicationForm/Operation/RiskSecurityInput/styles.module.css diff --git a/src/views/DrefApplicationForm/Operation/i18n.json b/app/src/views/DrefApplicationForm/Operation/i18n.json similarity index 100% rename from src/views/DrefApplicationForm/Operation/i18n.json rename to app/src/views/DrefApplicationForm/Operation/i18n.json diff --git a/src/views/DrefApplicationForm/Operation/index.tsx b/app/src/views/DrefApplicationForm/Operation/index.tsx similarity index 97% rename from src/views/DrefApplicationForm/Operation/index.tsx rename to app/src/views/DrefApplicationForm/Operation/index.tsx index be7c76a28c..75d11843b5 100644 --- a/src/views/DrefApplicationForm/Operation/index.tsx +++ b/app/src/views/DrefApplicationForm/Operation/index.tsx @@ -1,44 +1,48 @@ import { - useMemo, useCallback, + useMemo, useState, } from 'react'; +import { ErrorWarningFillIcon } from '@ifrc-go/icons'; +import { + BooleanInput, + Button, + Container, + InputLabel, + InputSection, + NumberInput, + SelectInput, + TextArea, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + stringValueSelector, + sumSafe, +} from '@ifrc-go/ui/utils'; import { - randomString, isNotDefined, listToMap, + randomString, } from '@togglecorp/fujs'; import { - type Error, type EntriesAsList, - useFormArray, + type Error, getErrorObject, + useFormArray, } from '@togglecorp/toggle-form'; -import { ErrorWarningFillIcon } from '@ifrc-go/icons'; -import NonFieldError from '#components/NonFieldError'; -import Button from '#components/Button'; -import Container from '#components/Container'; -import InputSection from '#components/InputSection'; -import NumberInput from '#components/NumberInput'; -import SelectInput from '#components/SelectInput'; -import TextArea from '#components/TextArea'; -import InputLabel from '#components/InputLabel'; -import { sumSafe } from '#utils/common'; -import BooleanInput from '#components/BooleanInput'; import GoSingleFileInput from '#components/domain/GoSingleFileInput'; -import useTranslation from '#hooks/useTranslation'; -import { stringValueSelector } from '#utils/selectors'; +import NonFieldError from '#components/NonFieldError'; import useGlobalEnums from '#hooks/domain/useGlobalEnums'; import { type GoApiResponse } from '#utils/restRequest'; -import InterventionInput from './InterventionInput'; -import RiskSecurityInput from './RiskSecurityInput'; import { TYPE_ASSESSMENT, TYPE_IMMINENT, } from '../common'; import { type PartialDref } from '../schema'; +import InterventionInput from './InterventionInput'; +import RiskSecurityInput from './RiskSecurityInput'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/DrefApplicationForm/Operation/styles.module.css b/app/src/views/DrefApplicationForm/Operation/styles.module.css similarity index 100% rename from src/views/DrefApplicationForm/Operation/styles.module.css rename to app/src/views/DrefApplicationForm/Operation/styles.module.css diff --git a/src/views/DrefApplicationForm/Overview/CopyFieldReportSection/i18n.json b/app/src/views/DrefApplicationForm/Overview/CopyFieldReportSection/i18n.json similarity index 100% rename from src/views/DrefApplicationForm/Overview/CopyFieldReportSection/i18n.json rename to app/src/views/DrefApplicationForm/Overview/CopyFieldReportSection/i18n.json diff --git a/src/views/DrefApplicationForm/Overview/CopyFieldReportSection/index.tsx b/app/src/views/DrefApplicationForm/Overview/CopyFieldReportSection/index.tsx similarity index 96% rename from src/views/DrefApplicationForm/Overview/CopyFieldReportSection/index.tsx rename to app/src/views/DrefApplicationForm/Overview/CopyFieldReportSection/index.tsx index 08d0dcfc15..00a298acbf 100644 --- a/src/views/DrefApplicationForm/Overview/CopyFieldReportSection/index.tsx +++ b/app/src/views/DrefApplicationForm/Overview/CopyFieldReportSection/index.tsx @@ -1,30 +1,33 @@ import { - useCallback, - type SetStateAction, type Dispatch, + type SetStateAction, + useCallback, } from 'react'; import { - unique, - isNotDefined, + Button, + InputSection, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { isDefined, isFalsyString, + isNotDefined, + unique, } from '@togglecorp/fujs'; -import { type EntriesAsList, removeNull } from '@togglecorp/toggle-form'; +import { + type EntriesAsList, + removeNull, +} from '@togglecorp/toggle-form'; import sanitizeHtml from 'sanitize-html'; -import Button from '#components/Button'; -import InputSection from '#components/InputSection'; -import FieldReportSearchSelectInput, { - type FieldReportItem as FieldReportSearchItem, -} from '#components/domain/FieldReportSearchSelectInput'; -import useInputState from '#hooks/useInputState'; +import { type DistrictItem } from '#components/domain/DistrictSearchMultiSelectInput'; +import FieldReportSearchSelectInput, { type FieldReportItem as FieldReportSearchItem } from '#components/domain/FieldReportSearchSelectInput'; import useAlert from '#hooks/useAlert'; +import useInputState from '#hooks/useInputState'; import { - useRequest, useLazyRequest, + useRequest, } from '#utils/restRequest'; -import useTranslation from '#hooks/useTranslation'; -import { type DistrictItem } from '#components/domain/DistrictSearchMultiSelectInput'; import { type PartialDref } from '../../schema'; diff --git a/src/views/DrefApplicationForm/Overview/CopyFieldReportSection/styles.module.css b/app/src/views/DrefApplicationForm/Overview/CopyFieldReportSection/styles.module.css similarity index 100% rename from src/views/DrefApplicationForm/Overview/CopyFieldReportSection/styles.module.css rename to app/src/views/DrefApplicationForm/Overview/CopyFieldReportSection/styles.module.css diff --git a/src/views/DrefApplicationForm/Overview/i18n.json b/app/src/views/DrefApplicationForm/Overview/i18n.json similarity index 100% rename from src/views/DrefApplicationForm/Overview/i18n.json rename to app/src/views/DrefApplicationForm/Overview/i18n.json diff --git a/src/views/DrefApplicationForm/Overview/index.tsx b/app/src/views/DrefApplicationForm/Overview/index.tsx similarity index 96% rename from src/views/DrefApplicationForm/Overview/index.tsx rename to app/src/views/DrefApplicationForm/Overview/index.tsx index 2b1a96bb5a..2f1ec6c890 100644 --- a/src/views/DrefApplicationForm/Overview/index.tsx +++ b/app/src/views/DrefApplicationForm/Overview/index.tsx @@ -1,59 +1,56 @@ import { - useCallback, - type SetStateAction, type Dispatch, + type SetStateAction, + useCallback, } from 'react'; +import { WikiHelpSectionLineIcon } from '@ifrc-go/icons'; +import { + BooleanInput, + Button, + Container, + InputSection, + List, + NumberInput, + SelectInput, + TextInput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { stringValueSelector } from '@ifrc-go/ui/utils'; +import { isNotDefined } from '@togglecorp/fujs'; import { + type EntriesAsList, type Error, getErrorObject, getErrorString, - type EntriesAsList, } from '@togglecorp/toggle-form'; -import { WikiHelpSectionLineIcon } from '@ifrc-go/icons'; -import { - isNotDefined, -} from '@togglecorp/fujs'; -import { type FieldReportItem as FieldReportSearchItem } from '#components/domain/FieldReportSearchSelectInput'; -import Container from '#components/Container'; -import InputSection from '#components/InputSection'; -import Button from '#components/Button'; -import TextInput from '#components/TextInput'; -import SelectInput from '#components/SelectInput'; -import NumberInput from '#components/NumberInput'; -import Link from '#components/Link'; -import BooleanInput from '#components/BooleanInput'; -import useTranslation from '#hooks/useTranslation'; -import { type GoApiResponse } from '#utils/restRequest'; -import { - stringValueSelector, -} from '#utils/selectors'; -import List from '#components/List'; -import useGlobalEnums from '#hooks/domain/useGlobalEnums'; -import useCountry from '#hooks/domain/useCountry'; import CountrySelectInput from '#components/domain/CountrySelectInput'; import DisasterTypeSelectInput from '#components/domain/DisasterTypeSelectInput'; -import NationalSocietySelectInput from '#components/domain/NationalSocietySelectInput'; -import { type User } from '#components/domain/UserSearchMultiSelectInput'; -import ImageWithCaptionInput from '#components/domain/ImageWithCaptionInput'; -import DistrictSearchMultiSelectInput, { - type DistrictItem, -} from '#components/domain/DistrictSearchMultiSelectInput'; +import DistrictSearchMultiSelectInput, { type DistrictItem } from '#components/domain/DistrictSearchMultiSelectInput'; import UserItem from '#components/domain/DrefShareModal/UserItem'; +import { type FieldReportItem as FieldReportSearchItem } from '#components/domain/FieldReportSearchSelectInput'; import GoSingleFileInput from '#components/domain/GoSingleFileInput'; +import ImageWithCaptionInput from '#components/domain/ImageWithCaptionInput'; +import NationalSocietySelectInput from '#components/domain/NationalSocietySelectInput'; +import { type User } from '#components/domain/UserSearchMultiSelectInput'; +import Link from '#components/Link'; +import useCountry from '#hooks/domain/useCountry'; import useDisasterType from '#hooks/domain/useDisasterType'; +import useGlobalEnums from '#hooks/domain/useGlobalEnums'; +import { type GoApiResponse } from '#utils/restRequest'; import { DISASTER_FIRE, - DISASTER_FLOOD, DISASTER_FLASH_FLOOD, + DISASTER_FLOOD, TYPE_IMMINENT, TYPE_LOAN, } from '../common'; import { type PartialDref } from '../schema'; import CopyFieldReportSection from './CopyFieldReportSection'; -import styles from './styles.module.css'; + import i18n from './i18n.json'; +import styles from './styles.module.css'; const disasterCategoryLink = 'https://www.ifrc.org/sites/default/files/2021-07/IFRC%20Emergency%20Response%20Framework%20-%202017.pdf'; diff --git a/src/views/DrefApplicationForm/Overview/styles.module.css b/app/src/views/DrefApplicationForm/Overview/styles.module.css similarity index 100% rename from src/views/DrefApplicationForm/Overview/styles.module.css rename to app/src/views/DrefApplicationForm/Overview/styles.module.css diff --git a/src/views/DrefApplicationForm/Submission/i18n.json b/app/src/views/DrefApplicationForm/Submission/i18n.json similarity index 100% rename from src/views/DrefApplicationForm/Submission/i18n.json rename to app/src/views/DrefApplicationForm/Submission/i18n.json diff --git a/src/views/DrefApplicationForm/Submission/index.tsx b/app/src/views/DrefApplicationForm/Submission/index.tsx similarity index 98% rename from src/views/DrefApplicationForm/Submission/index.tsx rename to app/src/views/DrefApplicationForm/Submission/index.tsx index 88d702bd04..9af463c83b 100644 --- a/src/views/DrefApplicationForm/Submission/index.tsx +++ b/app/src/views/DrefApplicationForm/Submission/index.tsx @@ -1,19 +1,23 @@ import { useCallback } from 'react'; +import { + Container, + DateInput, + InputSection, + NumberInput, + TextInput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + addNumMonthsToDate, + encodeDate, +} from '@ifrc-go/ui/utils'; import { isDefined } from '@togglecorp/fujs'; import { - type Error, type EntriesAsList, + type Error, getErrorObject, } from '@togglecorp/toggle-form'; -import Container from '#components/Container'; -import InputSection from '#components/InputSection'; -import TextInput from '#components/TextInput'; -import DateInput from '#components/DateInput'; -import NumberInput from '#components/NumberInput'; -import useTranslation from '#hooks/useTranslation'; -import { addNumMonthsToDate, encodeDate } from '#utils/common'; - import { TYPE_LOAN } from '../common'; import { type PartialDref } from '../schema'; diff --git a/src/views/DrefApplicationForm/Submission/styles.module.css b/app/src/views/DrefApplicationForm/Submission/styles.module.css similarity index 100% rename from src/views/DrefApplicationForm/Submission/styles.module.css rename to app/src/views/DrefApplicationForm/Submission/styles.module.css diff --git a/src/views/DrefApplicationForm/common.tsx b/app/src/views/DrefApplicationForm/common.tsx similarity index 98% rename from src/views/DrefApplicationForm/common.tsx rename to app/src/views/DrefApplicationForm/common.tsx index 01aa95be10..9e8be39b62 100644 --- a/src/views/DrefApplicationForm/common.tsx +++ b/app/src/views/DrefApplicationForm/common.tsx @@ -1,9 +1,13 @@ -import { isNotDefined, bound } from '@togglecorp/fujs'; import { - type Error, + bound, + isNotDefined, +} from '@togglecorp/fujs'; +import { analyzeErrors, + type Error, getErrorObject, } from '@togglecorp/toggle-form'; + import { type components } from '#generated/types'; import { type PartialDref } from './schema'; diff --git a/src/views/DrefApplicationForm/i18n.json b/app/src/views/DrefApplicationForm/i18n.json similarity index 100% rename from src/views/DrefApplicationForm/i18n.json rename to app/src/views/DrefApplicationForm/i18n.json diff --git a/src/views/DrefApplicationForm/index.tsx b/app/src/views/DrefApplicationForm/index.tsx similarity index 98% rename from src/views/DrefApplicationForm/index.tsx rename to app/src/views/DrefApplicationForm/index.tsx index a45ff4ca0a..caa672b51c 100644 --- a/src/views/DrefApplicationForm/index.tsx +++ b/app/src/views/DrefApplicationForm/index.tsx @@ -1,75 +1,79 @@ import { - useState, + type ElementRef, useCallback, useRef, - type ElementRef, + useState, } from 'react'; +import { useParams } from 'react-router-dom'; import { - useParams, -} from 'react-router-dom'; + DownloadTwoLineIcon, + ShareLineIcon, +} from '@ifrc-go/icons'; import { - useForm, - removeNull, -} from '@togglecorp/toggle-form'; + Button, + Message, + Tab, + TabList, + TabPanel, + Tabs, +} from '@ifrc-go/ui'; +import { + useBooleanState, + useTranslation, +} from '@ifrc-go/ui/hooks'; +import { injectClientId } from '@ifrc-go/ui/utils'; import { - isFalsyString, isDefined, + isFalsyString, isNotDefined, isTruthyString, } from '@togglecorp/fujs'; import { - DownloadTwoLineIcon, ShareLineIcon, -} from '@ifrc-go/icons'; + removeNull, + useForm, +} from '@togglecorp/toggle-form'; +import { type DistrictItem } from '#components/domain/DistrictSearchMultiSelectInput'; +import DrefExportModal from '#components/domain/DrefExportModal'; +import DrefShareModal from '#components/domain/DrefShareModal'; import { type FieldReportItem as FieldReportSearchItem } from '#components/domain/FieldReportSearchSelectInput'; -import useRouting from '#hooks/useRouting'; -import Page from '#components/Page'; -import Tab from '#components/Tabs/Tab'; -import Tabs from '#components/Tabs'; -import TabList from '#components/Tabs/TabList'; -import TabPanel from '#components/Tabs/TabPanel'; -import Button from '#components/Button'; -import NonFieldError from '#components/NonFieldError'; -import Message from '#components/Message'; -import LanguageMismatchMessage from '#components/domain/LanguageMismatchMessage'; import FormFailedToLoadMessage from '#components/domain/FormFailedToLoadMessage'; +import LanguageMismatchMessage from '#components/domain/LanguageMismatchMessage'; import NonEnglishFormCreationMessage from '#components/domain/NonEnglishFormCreationMessage'; -import { type DistrictItem } from '#components/domain/DistrictSearchMultiSelectInput'; -import DrefShareModal from '#components/domain/DrefShareModal'; -import DrefExportModal from '#components/domain/DrefExportModal'; import { type User } from '#components/domain/UserSearchMultiSelectInput'; +import NonFieldError from '#components/NonFieldError'; +import Page from '#components/Page'; +import useCurrentLanguage from '#hooks/domain/useCurrentLanguage'; +import useAlert from '#hooks/useAlert'; +import useInputState from '#hooks/useInputState'; +import useRouting from '#hooks/useRouting'; import { - useRequest, - useLazyRequest, type GoApiResponse, + useLazyRequest, + useRequest, } from '#utils/restRequest'; -import useTranslation from '#hooks/useTranslation'; -import useInputState from '#hooks/useInputState'; -import useAlert from '#hooks/useAlert'; -import useCurrentLanguage from '#hooks/domain/useCurrentLanguage'; -import useBooleanState from '#hooks/useBooleanState'; -import { injectClientId } from '#utils/common'; import { - transformObjectError, matchArray, NUM, + transformObjectError, } from '#utils/restRequest/error'; -import drefSchema, { - type DrefRequestPostBody, - type DrefRequestBody, -} from './schema'; +import Actions from './Actions'; import { checkTabErrors, TYPE_LOAN, type TypeOfDrefEnum, } from './common'; -import Overview from './Overview'; import EventDetail from './EventDetail'; -import Actions from './Actions'; +import ObsoletePayloadModal from './ObsoletePayloadModal'; import Operation from './Operation'; +import Overview from './Overview'; +import drefSchema, { + type DrefRequestBody, + type DrefRequestPostBody, +} from './schema'; import Submission from './Submission'; -import ObsoletePayloadModal from './ObsoletePayloadModal'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/DrefApplicationForm/schema.ts b/app/src/views/DrefApplicationForm/schema.ts similarity index 99% rename from src/views/DrefApplicationForm/schema.ts rename to app/src/views/DrefApplicationForm/schema.ts index a5c18397ca..c8bf172618 100644 --- a/src/views/DrefApplicationForm/schema.ts +++ b/app/src/views/DrefApplicationForm/schema.ts @@ -1,29 +1,32 @@ +import { type DeepReplace } from '@ifrc-go/ui/utils'; +import { isDefined } from '@togglecorp/fujs'; import { - type PartialForm, - type ObjectSchema, - type PurgeNull, addCondition, - undefinedValue, + emailCondition, greaterThanOrEqualToCondition, - requiredStringCondition, - nullValue, lessThanOrEqualToCondition, - emailCondition, + nullValue, + type ObjectSchema, + type PartialForm, + type PurgeNull, + requiredStringCondition, + undefinedValue, urlCondition, } from '@togglecorp/toggle-form'; -import { isDefined } from '@togglecorp/fujs'; -import { type DeepReplace } from '#utils/common'; import { - positiveNumberCondition, positiveIntegerCondition, + positiveNumberCondition, } from '#utils/form'; -import { type GoApiResponse, type GoApiBody } from '#utils/restRequest'; +import { + type GoApiBody, + type GoApiResponse, +} from '#utils/restRequest'; import { DISASTER_FIRE, - DISASTER_FLOOD, DISASTER_FLASH_FLOOD, + DISASTER_FLOOD, TYPE_ASSESSMENT, TYPE_IMMINENT, TYPE_LOAN, diff --git a/src/views/DrefApplicationForm/styles.module.css b/app/src/views/DrefApplicationForm/styles.module.css similarity index 100% rename from src/views/DrefApplicationForm/styles.module.css rename to app/src/views/DrefApplicationForm/styles.module.css diff --git a/src/views/DrefFinalReportExport/i18n.json b/app/src/views/DrefFinalReportExport/i18n.json similarity index 100% rename from src/views/DrefFinalReportExport/i18n.json rename to app/src/views/DrefFinalReportExport/i18n.json diff --git a/src/views/DrefFinalReportExport/index.tsx b/app/src/views/DrefFinalReportExport/index.tsx similarity index 98% rename from src/views/DrefFinalReportExport/index.tsx rename to app/src/views/DrefFinalReportExport/index.tsx index 94b01e3f04..ccece337f4 100644 --- a/src/views/DrefFinalReportExport/index.tsx +++ b/app/src/views/DrefFinalReportExport/index.tsx @@ -1,5 +1,21 @@ -import { Fragment, useMemo, useState } from 'react'; +import { + Fragment, + useMemo, + useState, +} from 'react'; import { useParams } from 'react-router-dom'; +import { NumberOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + Container, + DescriptionText, + Heading, + Image, +} from '@ifrc-go/ui/printable'; +import { + TextOutput, + type TextOutputProps, +} from '@ifrc-go/ui/printable'; import { _cs, isDefined, @@ -8,30 +24,21 @@ import { isTruthyString, } from '@togglecorp/fujs'; -import Container from '#components/printable/Container'; -import TextOutput, { type Props as TextOutputProps } from '#components/printable/TextOutput'; -import Image from '#components/printable/Image'; -import Heading from '#components/printable/Heading'; - -import DescriptionText from '#components/printable/DescriptionText'; -import NumberOutput from '#components/NumberOutput'; -import useTranslation from '#hooks/useTranslation'; +import ifrcLogo from '#assets/icons/ifrc-square.png'; import Link from '#components/Link'; -import { useRequest } from '#utils/restRequest'; import { DISASTER_CATEGORY_ORANGE, DISASTER_CATEGORY_RED, DISASTER_CATEGORY_YELLOW, + DisasterCategory, DREF_TYPE_ASSESSMENT, DREF_TYPE_IMMINENT, - DisasterCategory, } from '#utils/constants'; import { identifiedNeedsAndGapsOrder, plannedInterventionOrder, } from '#utils/domain/dref'; - -import ifrcLogo from '#assets/icons/ifrc-square.png'; +import { useRequest } from '#utils/restRequest'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/DrefFinalReportExport/styles.module.css b/app/src/views/DrefFinalReportExport/styles.module.css similarity index 100% rename from src/views/DrefFinalReportExport/styles.module.css rename to app/src/views/DrefFinalReportExport/styles.module.css diff --git a/src/views/DrefFinalReportForm/Actions/NeedInput/i18n.json b/app/src/views/DrefFinalReportForm/Actions/NeedInput/i18n.json similarity index 100% rename from src/views/DrefFinalReportForm/Actions/NeedInput/i18n.json rename to app/src/views/DrefFinalReportForm/Actions/NeedInput/i18n.json diff --git a/src/views/DrefFinalReportForm/Actions/NeedInput/index.tsx b/app/src/views/DrefFinalReportForm/Actions/NeedInput/index.tsx similarity index 92% rename from src/views/DrefFinalReportForm/Actions/NeedInput/index.tsx rename to app/src/views/DrefFinalReportForm/Actions/NeedInput/index.tsx index 77bd35a37f..1576ff107f 100644 --- a/src/views/DrefFinalReportForm/Actions/NeedInput/index.tsx +++ b/app/src/views/DrefFinalReportForm/Actions/NeedInput/index.tsx @@ -1,20 +1,23 @@ +import { DeleteBinTwoLineIcon } from '@ifrc-go/icons'; +import { + Button, + InputSection, + TextArea, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { isDefined } from '@togglecorp/fujs'; import { - type PartialForm, type ArrayError, - useFormObject, getErrorObject, + type PartialForm, type SetValueArg, + useFormObject, } from '@togglecorp/toggle-form'; -import { DeleteBinTwoLineIcon } from '@ifrc-go/icons'; import NonFieldError from '#components/NonFieldError'; -import TextArea from '#components/TextArea'; -import Button from '#components/Button'; -import InputSection from '#components/InputSection'; -import useTranslation from '#hooks/useTranslation'; import { type PartialFinalReport } from '../../schema'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/DrefFinalReportForm/Actions/NeedInput/styles.module.css b/app/src/views/DrefFinalReportForm/Actions/NeedInput/styles.module.css similarity index 100% rename from src/views/DrefFinalReportForm/Actions/NeedInput/styles.module.css rename to app/src/views/DrefFinalReportForm/Actions/NeedInput/styles.module.css diff --git a/src/views/DrefFinalReportForm/Actions/i18n.json b/app/src/views/DrefFinalReportForm/Actions/i18n.json similarity index 100% rename from src/views/DrefFinalReportForm/Actions/i18n.json rename to app/src/views/DrefFinalReportForm/Actions/i18n.json diff --git a/src/views/DrefFinalReportForm/Actions/index.tsx b/app/src/views/DrefFinalReportForm/Actions/index.tsx similarity index 96% rename from src/views/DrefFinalReportForm/Actions/index.tsx rename to app/src/views/DrefFinalReportForm/Actions/index.tsx index ca4a3a0d23..9e5cbe6c9c 100644 --- a/src/views/DrefFinalReportForm/Actions/index.tsx +++ b/app/src/views/DrefFinalReportForm/Actions/index.tsx @@ -1,41 +1,42 @@ import { - useMemo, useCallback, + useMemo, useState, } from 'react'; import { - randomString, + BooleanInput, + Button, + Container, + InputSection, + SelectInput, + TextArea, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { stringValueSelector } from '@ifrc-go/ui/utils'; +import { isNotDefined, listToMap, + randomString, } from '@togglecorp/fujs'; import { - type Error, type EntriesAsList, - useFormArray, + type Error, getErrorObject, + useFormArray, } from '@togglecorp/toggle-form'; import NonFieldError from '#components/NonFieldError'; -import Button from '#components/Button'; -import Container from '#components/Container'; -import InputSection from '#components/InputSection'; -import SelectInput from '#components/SelectInput'; -import BooleanInput from '#components/BooleanInput'; -import TextArea from '#components/TextArea'; -import useTranslation from '#hooks/useTranslation'; -import { stringValueSelector } from '#utils/selectors'; import useGlobalEnums from '#hooks/domain/useGlobalEnums'; import { type GoApiResponse } from '#utils/restRequest'; import { - TYPE_IMMINENT, TYPE_ASSESSMENT, + TYPE_IMMINENT, } from '../common'; import { type PartialFinalReport } from '../schema'; - import NeedInput from './NeedInput'; -import i18n from './i18n.json'; +import i18n from './i18n.json'; import styles from './styles.module.css'; type GlobalEnumsResponse = GoApiResponse<'/api/v2/global-enums/'>; diff --git a/src/views/DrefFinalReportForm/Actions/styles.module.css b/app/src/views/DrefFinalReportForm/Actions/styles.module.css similarity index 100% rename from src/views/DrefFinalReportForm/Actions/styles.module.css rename to app/src/views/DrefFinalReportForm/Actions/styles.module.css diff --git a/src/views/DrefFinalReportForm/EventDetail/i18n.json b/app/src/views/DrefFinalReportForm/EventDetail/i18n.json similarity index 100% rename from src/views/DrefFinalReportForm/EventDetail/i18n.json rename to app/src/views/DrefFinalReportForm/EventDetail/i18n.json diff --git a/src/views/DrefFinalReportForm/EventDetail/index.tsx b/app/src/views/DrefFinalReportForm/EventDetail/index.tsx similarity index 97% rename from src/views/DrefFinalReportForm/EventDetail/index.tsx rename to app/src/views/DrefFinalReportForm/EventDetail/index.tsx index 1282025219..0d68e0c343 100644 --- a/src/views/DrefFinalReportForm/EventDetail/index.tsx +++ b/app/src/views/DrefFinalReportForm/EventDetail/index.tsx @@ -1,23 +1,25 @@ +import { WikiHelpSectionLineIcon } from '@ifrc-go/icons'; +import { + Container, + DateInput, + InputSection, + NumberInput, + TextArea, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { - type Error, type EntriesAsList, + type Error, getErrorObject, } from '@togglecorp/toggle-form'; -import { WikiHelpSectionLineIcon } from '@ifrc-go/icons'; -import Container from '#components/Container'; -import InputSection from '#components/InputSection'; -import TextArea from '#components/TextArea'; -import DateInput from '#components/DateInput'; -import NumberInput from '#components/NumberInput'; -import Link from '#components/Link'; -import useTranslation from '#hooks/useTranslation'; import MultiImageWithCaptionInput from '#components/domain/MultiImageWithCaptionInput'; +import Link from '#components/Link'; import { - TYPE_IMMINENT, - TYPE_ASSESSMENT, ONSET_SUDDEN, + TYPE_ASSESSMENT, + TYPE_IMMINENT, } from '../common'; import { type PartialFinalReport } from '../schema'; diff --git a/src/views/DrefFinalReportForm/EventDetail/styles.module.css b/app/src/views/DrefFinalReportForm/EventDetail/styles.module.css similarity index 100% rename from src/views/DrefFinalReportForm/EventDetail/styles.module.css rename to app/src/views/DrefFinalReportForm/EventDetail/styles.module.css diff --git a/src/views/DrefFinalReportForm/ObsoletePayloadModal/i18n.json b/app/src/views/DrefFinalReportForm/ObsoletePayloadModal/i18n.json similarity index 100% rename from src/views/DrefFinalReportForm/ObsoletePayloadModal/i18n.json rename to app/src/views/DrefFinalReportForm/ObsoletePayloadModal/i18n.json diff --git a/src/views/DrefFinalReportForm/ObsoletePayloadModal/index.tsx b/app/src/views/DrefFinalReportForm/ObsoletePayloadModal/index.tsx similarity index 93% rename from src/views/DrefFinalReportForm/ObsoletePayloadModal/index.tsx rename to app/src/views/DrefFinalReportForm/ObsoletePayloadModal/index.tsx index c7b89595af..f2ff686fa6 100644 --- a/src/views/DrefFinalReportForm/ObsoletePayloadModal/index.tsx +++ b/app/src/views/DrefFinalReportForm/ObsoletePayloadModal/index.tsx @@ -1,14 +1,16 @@ +import { + BlockLoading, + Button, + Modal, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { isDefined, isNotDefined, } from '@togglecorp/fujs'; -import { useRequest } from '#utils/restRequest'; -import Button from '#components/Button'; -import Modal from '#components/Modal'; -import BlockLoading from '#components/BlockLoading'; -import useTranslation from '#hooks/useTranslation'; import { getUserName } from '#utils/domain/user'; +import { useRequest } from '#utils/restRequest'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/DrefFinalReportForm/ObsoletePayloadModal/styles.module.css b/app/src/views/DrefFinalReportForm/ObsoletePayloadModal/styles.module.css similarity index 100% rename from src/views/DrefFinalReportForm/ObsoletePayloadModal/styles.module.css rename to app/src/views/DrefFinalReportForm/ObsoletePayloadModal/styles.module.css diff --git a/src/views/DrefFinalReportForm/Operation/InterventionInput/IndicatorInput/i18n.json b/app/src/views/DrefFinalReportForm/Operation/InterventionInput/IndicatorInput/i18n.json similarity index 100% rename from src/views/DrefFinalReportForm/Operation/InterventionInput/IndicatorInput/i18n.json rename to app/src/views/DrefFinalReportForm/Operation/InterventionInput/IndicatorInput/i18n.json diff --git a/src/views/DrefFinalReportForm/Operation/InterventionInput/IndicatorInput/index.tsx b/app/src/views/DrefFinalReportForm/Operation/InterventionInput/IndicatorInput/index.tsx similarity index 93% rename from src/views/DrefFinalReportForm/Operation/InterventionInput/IndicatorInput/index.tsx rename to app/src/views/DrefFinalReportForm/Operation/InterventionInput/IndicatorInput/index.tsx index f9c0d199a2..b4b27f8619 100644 --- a/src/views/DrefFinalReportForm/Operation/InterventionInput/IndicatorInput/index.tsx +++ b/app/src/views/DrefFinalReportForm/Operation/InterventionInput/IndicatorInput/index.tsx @@ -1,18 +1,21 @@ import { DeleteBinTwoLineIcon } from '@ifrc-go/icons'; +import { + Button, + NumberInput, + TextInput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { type ArrayError, getErrorObject, - useFormObject, type SetValueArg, + useFormObject, } from '@togglecorp/toggle-form'; import NonFieldError from '#components/NonFieldError'; -import Button from '#components/Button'; -import NumberInput from '#components/NumberInput'; -import TextInput from '#components/TextInput'; -import useTranslation from '#hooks/useTranslation'; import { PartialFinalReport } from '../../../schema'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/DrefFinalReportForm/Operation/InterventionInput/IndicatorInput/styles.module.css b/app/src/views/DrefFinalReportForm/Operation/InterventionInput/IndicatorInput/styles.module.css similarity index 100% rename from src/views/DrefFinalReportForm/Operation/InterventionInput/IndicatorInput/styles.module.css rename to app/src/views/DrefFinalReportForm/Operation/InterventionInput/IndicatorInput/styles.module.css diff --git a/src/views/DrefFinalReportForm/Operation/InterventionInput/i18n.json b/app/src/views/DrefFinalReportForm/Operation/InterventionInput/i18n.json similarity index 100% rename from src/views/DrefFinalReportForm/Operation/InterventionInput/i18n.json rename to app/src/views/DrefFinalReportForm/Operation/InterventionInput/i18n.json diff --git a/src/views/DrefFinalReportForm/Operation/InterventionInput/index.tsx b/app/src/views/DrefFinalReportForm/Operation/InterventionInput/index.tsx similarity index 96% rename from src/views/DrefFinalReportForm/Operation/InterventionInput/index.tsx rename to app/src/views/DrefFinalReportForm/Operation/InterventionInput/index.tsx index e934f1f085..163b4073bd 100644 --- a/src/views/DrefFinalReportForm/Operation/InterventionInput/index.tsx +++ b/app/src/views/DrefFinalReportForm/Operation/InterventionInput/index.tsx @@ -1,25 +1,27 @@ import { useCallback } from 'react'; +import { DeleteBinTwoLineIcon } from '@ifrc-go/icons'; +import { + Button, + Container, + InputSection, + NumberInput, + TextArea, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { - randomString, isDefined, isNotDefined, + randomString, } from '@togglecorp/fujs'; import { type ArrayError, - useFormObject, getErrorObject, - useFormArray, type SetValueArg, + useFormArray, + useFormObject, } from '@togglecorp/toggle-form'; -import { DeleteBinTwoLineIcon } from '@ifrc-go/icons'; import NonFieldError from '#components/NonFieldError'; -import TextArea from '#components/TextArea'; -import Button from '#components/Button'; -import NumberInput from '#components/NumberInput'; -import InputSection from '#components/InputSection'; -import Container from '#components/Container'; -import useTranslation from '#hooks/useTranslation'; import { type PartialFinalReport } from '../../schema'; import IndicatorInput from './IndicatorInput'; diff --git a/src/views/DrefFinalReportForm/Operation/InterventionInput/styles.module.css b/app/src/views/DrefFinalReportForm/Operation/InterventionInput/styles.module.css similarity index 100% rename from src/views/DrefFinalReportForm/Operation/InterventionInput/styles.module.css rename to app/src/views/DrefFinalReportForm/Operation/InterventionInput/styles.module.css diff --git a/src/views/DrefFinalReportForm/Operation/RiskSecurityInput/i18n.json b/app/src/views/DrefFinalReportForm/Operation/RiskSecurityInput/i18n.json similarity index 100% rename from src/views/DrefFinalReportForm/Operation/RiskSecurityInput/i18n.json rename to app/src/views/DrefFinalReportForm/Operation/RiskSecurityInput/i18n.json diff --git a/src/views/DrefFinalReportForm/Operation/RiskSecurityInput/index.tsx b/app/src/views/DrefFinalReportForm/Operation/RiskSecurityInput/index.tsx similarity index 94% rename from src/views/DrefFinalReportForm/Operation/RiskSecurityInput/index.tsx rename to app/src/views/DrefFinalReportForm/Operation/RiskSecurityInput/index.tsx index 444cd5c15e..aa44b3bc81 100644 --- a/src/views/DrefFinalReportForm/Operation/RiskSecurityInput/index.tsx +++ b/app/src/views/DrefFinalReportForm/Operation/RiskSecurityInput/index.tsx @@ -1,19 +1,21 @@ +import { DeleteBinTwoLineIcon } from '@ifrc-go/icons'; +import { + Button, + TextArea, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { randomString } from '@togglecorp/fujs'; import { type ArrayError, - useFormObject, getErrorObject, type SetValueArg, + useFormObject, } from '@togglecorp/toggle-form'; -import { DeleteBinTwoLineIcon } from '@ifrc-go/icons'; - -import { randomString } from '@togglecorp/fujs'; import NonFieldError from '#components/NonFieldError'; -import Button from '#components/Button'; -import TextArea from '#components/TextArea'; -import useTranslation from '#hooks/useTranslation'; import { type PartialFinalReport } from '../../schema'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/DrefFinalReportForm/Operation/RiskSecurityInput/styles.module.css b/app/src/views/DrefFinalReportForm/Operation/RiskSecurityInput/styles.module.css similarity index 100% rename from src/views/DrefFinalReportForm/Operation/RiskSecurityInput/styles.module.css rename to app/src/views/DrefFinalReportForm/Operation/RiskSecurityInput/styles.module.css diff --git a/src/views/DrefFinalReportForm/Operation/i18n.json b/app/src/views/DrefFinalReportForm/Operation/i18n.json similarity index 100% rename from src/views/DrefFinalReportForm/Operation/i18n.json rename to app/src/views/DrefFinalReportForm/Operation/i18n.json diff --git a/src/views/DrefFinalReportForm/Operation/index.tsx b/app/src/views/DrefFinalReportForm/Operation/index.tsx similarity index 97% rename from src/views/DrefFinalReportForm/Operation/index.tsx rename to app/src/views/DrefFinalReportForm/Operation/index.tsx index 86275de9d9..295887a5f2 100644 --- a/src/views/DrefFinalReportForm/Operation/index.tsx +++ b/app/src/views/DrefFinalReportForm/Operation/index.tsx @@ -1,44 +1,48 @@ import { - useMemo, useCallback, + useMemo, useState, } from 'react'; +import { ErrorWarningFillIcon } from '@ifrc-go/icons'; +import { + BooleanInput, + Button, + Container, + InputLabel, + InputSection, + NumberInput, + SelectInput, + TextArea, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + stringValueSelector, + sumSafe, +} from '@ifrc-go/ui/utils'; import { - randomString, isNotDefined, listToMap, + randomString, } from '@togglecorp/fujs'; import { - type Error, type EntriesAsList, - useFormArray, + type Error, getErrorObject, + useFormArray, } from '@togglecorp/toggle-form'; -import { ErrorWarningFillIcon } from '@ifrc-go/icons'; -import NonFieldError from '#components/NonFieldError'; -import Button from '#components/Button'; -import Container from '#components/Container'; -import InputSection from '#components/InputSection'; -import NumberInput from '#components/NumberInput'; -import SelectInput from '#components/SelectInput'; -import TextArea from '#components/TextArea'; -import InputLabel from '#components/InputLabel'; -import { sumSafe } from '#utils/common'; -import BooleanInput from '#components/BooleanInput'; import GoSingleFileInput from '#components/domain/GoSingleFileInput'; -import useTranslation from '#hooks/useTranslation'; -import { stringValueSelector } from '#utils/selectors'; +import NonFieldError from '#components/NonFieldError'; import useGlobalEnums from '#hooks/domain/useGlobalEnums'; import { type GoApiResponse } from '#utils/restRequest'; -import InterventionInput from './InterventionInput'; -import RiskSecurityInput from './RiskSecurityInput'; import { TYPE_ASSESSMENT, TYPE_IMMINENT, } from '../common'; import { type PartialFinalReport } from '../schema'; +import InterventionInput from './InterventionInput'; +import RiskSecurityInput from './RiskSecurityInput'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/DrefFinalReportForm/Operation/styles.module.css b/app/src/views/DrefFinalReportForm/Operation/styles.module.css similarity index 100% rename from src/views/DrefFinalReportForm/Operation/styles.module.css rename to app/src/views/DrefFinalReportForm/Operation/styles.module.css diff --git a/src/views/DrefFinalReportForm/Overview/i18n.json b/app/src/views/DrefFinalReportForm/Overview/i18n.json similarity index 100% rename from src/views/DrefFinalReportForm/Overview/i18n.json rename to app/src/views/DrefFinalReportForm/Overview/i18n.json diff --git a/src/views/DrefFinalReportForm/Overview/index.tsx b/app/src/views/DrefFinalReportForm/Overview/index.tsx similarity index 95% rename from src/views/DrefFinalReportForm/Overview/index.tsx rename to app/src/views/DrefFinalReportForm/Overview/index.tsx index a898411cda..b15017abc7 100644 --- a/src/views/DrefFinalReportForm/Overview/index.tsx +++ b/app/src/views/DrefFinalReportForm/Overview/index.tsx @@ -1,52 +1,47 @@ import { - useCallback, - type SetStateAction, type Dispatch, + type SetStateAction, + useCallback, } from 'react'; import { WikiHelpSectionLineIcon } from '@ifrc-go/icons'; import { + Button, + Container, + InputSection, + List, + NumberInput, + SelectInput, + TextArea, + TextInput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { stringValueSelector } from '@ifrc-go/ui/utils'; +import { isNotDefined } from '@togglecorp/fujs'; +import { + type EntriesAsList, type Error, getErrorObject, getErrorString, - type EntriesAsList, } from '@togglecorp/toggle-form'; -import { - isNotDefined, -} from '@togglecorp/fujs'; -import Container from '#components/Container'; -import InputSection from '#components/InputSection'; -import Button from '#components/Button'; -import TextInput from '#components/TextInput'; -import TextArea from '#components/TextArea'; -import SelectInput from '#components/SelectInput'; -import Link from '#components/Link'; -import NumberInput from '#components/NumberInput'; -import useTranslation from '#hooks/useTranslation'; -import { type GoApiResponse } from '#utils/restRequest'; -import { - stringValueSelector, -} from '#utils/selectors'; -import useGlobalEnums from '#hooks/domain/useGlobalEnums'; -import useCountry from '#hooks/domain/useCountry'; -import NationalSocietySelectInput from '#components/domain/NationalSocietySelectInput'; import CountrySelectInput from '#components/domain/CountrySelectInput'; import DisasterTypeSelectInput from '#components/domain/DisasterTypeSelectInput'; -import DistrictSearchMultiSelectInput, { - type DistrictItem, -} from '#components/domain/DistrictSearchMultiSelectInput'; +import DistrictSearchMultiSelectInput, { type DistrictItem } from '#components/domain/DistrictSearchMultiSelectInput'; +import UserItem from '#components/domain/DrefShareModal/UserItem'; import ImageWithCaptionInput from '#components/domain/ImageWithCaptionInput'; -import List from '#components/List'; -import useDisasterType from '#hooks/domain/useDisasterType'; +import NationalSocietySelectInput from '#components/domain/NationalSocietySelectInput'; import { type User } from '#components/domain/UserSearchMultiSelectInput'; -import UserItem from '#components/domain/DrefShareModal/UserItem'; +import Link from '#components/Link'; +import useCountry from '#hooks/domain/useCountry'; +import useDisasterType from '#hooks/domain/useDisasterType'; +import useGlobalEnums from '#hooks/domain/useGlobalEnums'; +import { type GoApiResponse } from '#utils/restRequest'; -import { - TYPE_IMMINENT, -} from '../common'; +import { TYPE_IMMINENT } from '../common'; import { type PartialFinalReport } from '../schema'; -import styles from './styles.module.css'; + import i18n from './i18n.json'; +import styles from './styles.module.css'; const disasterCategoryLink = 'https://www.ifrc.org/sites/default/files/2021-07/IFRC%20Emergency%20Response%20Framework%20-%202017.pdf'; diff --git a/src/views/DrefFinalReportForm/Overview/styles.module.css b/app/src/views/DrefFinalReportForm/Overview/styles.module.css similarity index 100% rename from src/views/DrefFinalReportForm/Overview/styles.module.css rename to app/src/views/DrefFinalReportForm/Overview/styles.module.css diff --git a/src/views/DrefFinalReportForm/Submission/i18n.json b/app/src/views/DrefFinalReportForm/Submission/i18n.json similarity index 100% rename from src/views/DrefFinalReportForm/Submission/i18n.json rename to app/src/views/DrefFinalReportForm/Submission/i18n.json diff --git a/src/views/DrefFinalReportForm/Submission/index.tsx b/app/src/views/DrefFinalReportForm/Submission/index.tsx similarity index 97% rename from src/views/DrefFinalReportForm/Submission/index.tsx rename to app/src/views/DrefFinalReportForm/Submission/index.tsx index e63a9202ec..5c017ec114 100644 --- a/src/views/DrefFinalReportForm/Submission/index.tsx +++ b/app/src/views/DrefFinalReportForm/Submission/index.tsx @@ -1,19 +1,23 @@ import { useCallback } from 'react'; +import { + Container, + DateInput, + InputSection, + NumberInput, + TextInput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + addNumMonthsToDate, + encodeDate, +} from '@ifrc-go/ui/utils'; import { isDefined } from '@togglecorp/fujs'; import { - type Error, type EntriesAsList, + type Error, getErrorObject, } from '@togglecorp/toggle-form'; -import Container from '#components/Container'; -import InputSection from '#components/InputSection'; -import TextInput from '#components/TextInput'; -import DateInput from '#components/DateInput'; -import NumberInput from '#components/NumberInput'; -import useTranslation from '#hooks/useTranslation'; -import { addNumMonthsToDate, encodeDate } from '#utils/common'; - import { type PartialFinalReport } from '../schema'; import i18n from './i18n.json'; diff --git a/src/views/DrefFinalReportForm/Submission/styles.module.css b/app/src/views/DrefFinalReportForm/Submission/styles.module.css similarity index 100% rename from src/views/DrefFinalReportForm/Submission/styles.module.css rename to app/src/views/DrefFinalReportForm/Submission/styles.module.css diff --git a/src/views/DrefFinalReportForm/common.tsx b/app/src/views/DrefFinalReportForm/common.tsx similarity index 98% rename from src/views/DrefFinalReportForm/common.tsx rename to app/src/views/DrefFinalReportForm/common.tsx index 7320d9d3d6..ca50c840ac 100644 --- a/src/views/DrefFinalReportForm/common.tsx +++ b/app/src/views/DrefFinalReportForm/common.tsx @@ -1,9 +1,13 @@ -import { isNotDefined, bound } from '@togglecorp/fujs'; import { - type Error, + bound, + isNotDefined, +} from '@togglecorp/fujs'; +import { analyzeErrors, + type Error, getErrorObject, } from '@togglecorp/toggle-form'; + import { type components } from '#generated/types'; import { type PartialFinalReport } from './schema'; diff --git a/src/views/DrefFinalReportForm/i18n.json b/app/src/views/DrefFinalReportForm/i18n.json similarity index 100% rename from src/views/DrefFinalReportForm/i18n.json rename to app/src/views/DrefFinalReportForm/i18n.json diff --git a/src/views/DrefFinalReportForm/index.tsx b/app/src/views/DrefFinalReportForm/index.tsx similarity index 97% rename from src/views/DrefFinalReportForm/index.tsx rename to app/src/views/DrefFinalReportForm/index.tsx index d89f01f72e..158c955c1d 100644 --- a/src/views/DrefFinalReportForm/index.tsx +++ b/app/src/views/DrefFinalReportForm/index.tsx @@ -1,68 +1,68 @@ import { - useState, + type ElementRef, useCallback, useRef, - type ElementRef, + useState, } from 'react'; +import { useParams } from 'react-router-dom'; import { - useParams, -} from 'react-router-dom'; + DownloadTwoLineIcon, + ShareLineIcon, +} from '@ifrc-go/icons'; import { - useForm, - removeNull, -} from '@togglecorp/toggle-form'; + Button, + Message, + Tab, + TabList, + TabPanel, + Tabs, +} from '@ifrc-go/ui'; +import { + useBooleanState, + useTranslation, +} from '@ifrc-go/ui/hooks'; +import { injectClientId } from '@ifrc-go/ui/utils'; import { - isFalsyString, isDefined, + isFalsyString, isNotDefined, isTruthyString, } from '@togglecorp/fujs'; import { - DownloadTwoLineIcon, ShareLineIcon, -} from '@ifrc-go/icons'; + removeNull, + useForm, +} from '@togglecorp/toggle-form'; -import Page from '#components/Page'; -import Tab from '#components/Tabs/Tab'; -import Tabs from '#components/Tabs'; -import TabList from '#components/Tabs/TabList'; -import TabPanel from '#components/Tabs/TabPanel'; -import Button from '#components/Button'; -import NonFieldError from '#components/NonFieldError'; -import Message from '#components/Message'; -import LanguageMismatchMessage from '#components/domain/LanguageMismatchMessage'; import { type DistrictItem } from '#components/domain/DistrictSearchMultiSelectInput'; -import DrefShareModal from '#components/domain/DrefShareModal'; import DrefExportModal from '#components/domain/DrefExportModal'; +import DrefShareModal from '#components/domain/DrefShareModal'; +import LanguageMismatchMessage from '#components/domain/LanguageMismatchMessage'; import { type User } from '#components/domain/UserSearchMultiSelectInput'; +import NonFieldError from '#components/NonFieldError'; +import Page from '#components/Page'; +import useCurrentLanguage from '#hooks/domain/useCurrentLanguage'; +import useAlert from '#hooks/useAlert'; +import useInputState from '#hooks/useInputState'; import { - useRequest, - useLazyRequest, type GoApiResponse, + useLazyRequest, + useRequest, } from '#utils/restRequest'; -import useTranslation from '#hooks/useTranslation'; -import useAlert from '#hooks/useAlert'; -import useBooleanState from '#hooks/useBooleanState'; -import { injectClientId } from '#utils/common'; import { - transformObjectError, matchArray, NUM, + transformObjectError, } from '#utils/restRequest/error'; -import useCurrentLanguage from '#hooks/domain/useCurrentLanguage'; -import useInputState from '#hooks/useInputState'; -import finalReportSchema, { - type FinalReportRequestBody, -} from './schema'; -import { - checkTabErrors, -} from './common'; -import Overview from './Overview'; -import EventDetail from './EventDetail'; import Actions from './Actions'; +import { checkTabErrors } from './common'; +import EventDetail from './EventDetail'; +import ObsoletePayloadModal from './ObsoletePayloadModal'; import Operation from './Operation'; +import Overview from './Overview'; +import finalReportSchema, { type FinalReportRequestBody } from './schema'; import Submission from './Submission'; -import ObsoletePayloadModal from './ObsoletePayloadModal'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/DrefFinalReportForm/schema.ts b/app/src/views/DrefFinalReportForm/schema.ts similarity index 99% rename from src/views/DrefFinalReportForm/schema.ts rename to app/src/views/DrefFinalReportForm/schema.ts index af312ea03d..ff0f1960a7 100644 --- a/src/views/DrefFinalReportForm/schema.ts +++ b/app/src/views/DrefFinalReportForm/schema.ts @@ -1,24 +1,27 @@ +import { type DeepReplace } from '@ifrc-go/ui/utils'; +import { isDefined } from '@togglecorp/fujs'; import { - type PartialForm, - type ObjectSchema, - type PurgeNull, addCondition, - undefinedValue, + emailCondition, greaterThanOrEqualToCondition, - requiredStringCondition, - requiredListCondition, - nullValue, lessThanOrEqualToCondition, - emailCondition, + nullValue, + type ObjectSchema, + type PartialForm, + type PurgeNull, + requiredListCondition, + requiredStringCondition, + undefinedValue, } from '@togglecorp/toggle-form'; -import { isDefined } from '@togglecorp/fujs'; -import { type DeepReplace } from '#utils/common'; import { - positiveNumberCondition, positiveIntegerCondition, + positiveNumberCondition, } from '#utils/form'; -import { type GoApiResponse, type GoApiBody } from '#utils/restRequest'; +import { + type GoApiBody, + type GoApiResponse, +} from '#utils/restRequest'; import { TYPE_ASSESSMENT, diff --git a/src/views/DrefFinalReportForm/styles.module.css b/app/src/views/DrefFinalReportForm/styles.module.css similarity index 100% rename from src/views/DrefFinalReportForm/styles.module.css rename to app/src/views/DrefFinalReportForm/styles.module.css diff --git a/src/views/DrefOperationalUpdateExport/i18n.json b/app/src/views/DrefOperationalUpdateExport/i18n.json similarity index 100% rename from src/views/DrefOperationalUpdateExport/i18n.json rename to app/src/views/DrefOperationalUpdateExport/i18n.json diff --git a/src/views/DrefOperationalUpdateExport/index.tsx b/app/src/views/DrefOperationalUpdateExport/index.tsx similarity index 98% rename from src/views/DrefOperationalUpdateExport/index.tsx rename to app/src/views/DrefOperationalUpdateExport/index.tsx index b60d2e7f8e..b9c3e87de2 100644 --- a/src/views/DrefOperationalUpdateExport/index.tsx +++ b/app/src/views/DrefOperationalUpdateExport/index.tsx @@ -1,5 +1,27 @@ -import { Fragment, useState, useMemo } from 'react'; -import { useParams, ScrollRestoration } from 'react-router-dom'; +import { + Fragment, + useMemo, + useState, +} from 'react'; +import { + ScrollRestoration, + useParams, +} from 'react-router-dom'; +import { + DateOutput, + NumberOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + Container, + DescriptionText, + Heading, + Image, +} from '@ifrc-go/ui/printable'; +import { + TextOutput, + type TextOutputProps, +} from '@ifrc-go/ui/printable'; import { _cs, isDefined, @@ -8,32 +30,22 @@ import { isTruthyString, } from '@togglecorp/fujs'; -import Container from '#components/printable/Container'; -import TextOutput, { type Props as TextOutputProps } from '#components/printable/TextOutput'; -import Image from '#components/printable/Image'; -import Heading from '#components/printable/Heading'; -import DescriptionText from '#components/printable/DescriptionText'; -import DateOutput from '#components/DateOutput'; - +import ifrcLogo from '#assets/icons/ifrc-square.png'; import Link from '#components/Link'; -import NumberOutput from '#components/NumberOutput'; -import useTranslation from '#hooks/useTranslation'; -import { useRequest } from '#utils/restRequest'; import { DISASTER_CATEGORY_ORANGE, DISASTER_CATEGORY_RED, DISASTER_CATEGORY_YELLOW, + DisasterCategory, DREF_TYPE_ASSESSMENT, DREF_TYPE_IMMINENT, - DisasterCategory, } from '#utils/constants'; import { identifiedNeedsAndGapsOrder, nsActionsOrder, plannedInterventionOrder, } from '#utils/domain/dref'; - -import ifrcLogo from '#assets/icons/ifrc-square.png'; +import { useRequest } from '#utils/restRequest'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/DrefOperationalUpdateExport/styles.module.css b/app/src/views/DrefOperationalUpdateExport/styles.module.css similarity index 100% rename from src/views/DrefOperationalUpdateExport/styles.module.css rename to app/src/views/DrefOperationalUpdateExport/styles.module.css diff --git a/src/views/DrefOperationalUpdateForm/Actions/NSActionInput/i18n.json b/app/src/views/DrefOperationalUpdateForm/Actions/NSActionInput/i18n.json similarity index 100% rename from src/views/DrefOperationalUpdateForm/Actions/NSActionInput/i18n.json rename to app/src/views/DrefOperationalUpdateForm/Actions/NSActionInput/i18n.json diff --git a/src/views/DrefOperationalUpdateForm/Actions/NSActionInput/index.tsx b/app/src/views/DrefOperationalUpdateForm/Actions/NSActionInput/index.tsx similarity index 92% rename from src/views/DrefOperationalUpdateForm/Actions/NSActionInput/index.tsx rename to app/src/views/DrefOperationalUpdateForm/Actions/NSActionInput/index.tsx index 7f60dbad1f..8ae294ad83 100644 --- a/src/views/DrefOperationalUpdateForm/Actions/NSActionInput/index.tsx +++ b/app/src/views/DrefOperationalUpdateForm/Actions/NSActionInput/index.tsx @@ -1,19 +1,22 @@ +import { DeleteBinTwoLineIcon } from '@ifrc-go/icons'; +import { + Button, + InputSection, + TextArea, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { isDefined } from '@togglecorp/fujs'; import { type ArrayError, - useFormObject, getErrorObject, type SetValueArg, + useFormObject, } from '@togglecorp/toggle-form'; -import { DeleteBinTwoLineIcon } from '@ifrc-go/icons'; import NonFieldError from '#components/NonFieldError'; -import TextArea from '#components/TextArea'; -import Button from '#components/Button'; -import InputSection from '#components/InputSection'; -import useTranslation from '#hooks/useTranslation'; import { type PartialOpsUpdate } from '../../schema'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/DrefOperationalUpdateForm/Actions/NSActionInput/styles.module.css b/app/src/views/DrefOperationalUpdateForm/Actions/NSActionInput/styles.module.css similarity index 100% rename from src/views/DrefOperationalUpdateForm/Actions/NSActionInput/styles.module.css rename to app/src/views/DrefOperationalUpdateForm/Actions/NSActionInput/styles.module.css diff --git a/src/views/DrefOperationalUpdateForm/Actions/NeedInput/i18n.json b/app/src/views/DrefOperationalUpdateForm/Actions/NeedInput/i18n.json similarity index 100% rename from src/views/DrefOperationalUpdateForm/Actions/NeedInput/i18n.json rename to app/src/views/DrefOperationalUpdateForm/Actions/NeedInput/i18n.json diff --git a/src/views/DrefOperationalUpdateForm/Actions/NeedInput/index.tsx b/app/src/views/DrefOperationalUpdateForm/Actions/NeedInput/index.tsx similarity index 92% rename from src/views/DrefOperationalUpdateForm/Actions/NeedInput/index.tsx rename to app/src/views/DrefOperationalUpdateForm/Actions/NeedInput/index.tsx index 171221882f..8131174dc8 100644 --- a/src/views/DrefOperationalUpdateForm/Actions/NeedInput/index.tsx +++ b/app/src/views/DrefOperationalUpdateForm/Actions/NeedInput/index.tsx @@ -1,20 +1,23 @@ +import { DeleteBinTwoLineIcon } from '@ifrc-go/icons'; +import { + Button, + InputSection, + TextArea, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { isDefined } from '@togglecorp/fujs'; import { - type PartialForm, type ArrayError, - useFormObject, getErrorObject, + type PartialForm, type SetValueArg, + useFormObject, } from '@togglecorp/toggle-form'; -import { DeleteBinTwoLineIcon } from '@ifrc-go/icons'; import NonFieldError from '#components/NonFieldError'; -import TextArea from '#components/TextArea'; -import Button from '#components/Button'; -import InputSection from '#components/InputSection'; -import useTranslation from '#hooks/useTranslation'; import { type PartialOpsUpdate } from '../../schema'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/DrefOperationalUpdateForm/Actions/NeedInput/styles.module.css b/app/src/views/DrefOperationalUpdateForm/Actions/NeedInput/styles.module.css similarity index 100% rename from src/views/DrefOperationalUpdateForm/Actions/NeedInput/styles.module.css rename to app/src/views/DrefOperationalUpdateForm/Actions/NeedInput/styles.module.css diff --git a/src/views/DrefOperationalUpdateForm/Actions/i18n.json b/app/src/views/DrefOperationalUpdateForm/Actions/i18n.json similarity index 100% rename from src/views/DrefOperationalUpdateForm/Actions/i18n.json rename to app/src/views/DrefOperationalUpdateForm/Actions/i18n.json diff --git a/src/views/DrefOperationalUpdateForm/Actions/index.tsx b/app/src/views/DrefOperationalUpdateForm/Actions/index.tsx similarity index 97% rename from src/views/DrefOperationalUpdateForm/Actions/index.tsx rename to app/src/views/DrefOperationalUpdateForm/Actions/index.tsx index 496db27ca8..0e762d6388 100644 --- a/src/views/DrefOperationalUpdateForm/Actions/index.tsx +++ b/app/src/views/DrefOperationalUpdateForm/Actions/index.tsx @@ -1,46 +1,47 @@ import { - useMemo, useCallback, + useMemo, useState, } from 'react'; import { - randomString, + BooleanInput, + Button, + Container, + DateInput, + InputSection, + SelectInput, + TextArea, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { stringValueSelector } from '@ifrc-go/ui/utils'; +import { isNotDefined, listToMap, + randomString, } from '@togglecorp/fujs'; import { - type Error, type EntriesAsList, - useFormArray, + type Error, getErrorObject, + useFormArray, } from '@togglecorp/toggle-form'; -import NonFieldError from '#components/NonFieldError'; -import Button from '#components/Button'; -import Container from '#components/Container'; -import InputSection from '#components/InputSection'; -import SelectInput from '#components/SelectInput'; -import BooleanInput from '#components/BooleanInput'; -import TextArea from '#components/TextArea'; -import DateInput from '#components/DateInput'; import GoSingleFileInput from '#components/domain/GoSingleFileInput'; -import useTranslation from '#hooks/useTranslation'; -import { stringValueSelector } from '#utils/selectors'; +import MultiImageWithCaptionInput from '#components/domain/MultiImageWithCaptionInput'; +import NonFieldError from '#components/NonFieldError'; import useGlobalEnums from '#hooks/domain/useGlobalEnums'; import { type GoApiResponse } from '#utils/restRequest'; -import MultiImageWithCaptionInput from '#components/domain/MultiImageWithCaptionInput'; import { - TYPE_IMMINENT, TYPE_ASSESSMENT, + TYPE_IMMINENT, } from '../common'; // FIXME: move common components together import { type PartialOpsUpdate } from '../schema'; - import NeedInput from './NeedInput'; import NsActionInput from './NSActionInput'; -import i18n from './i18n.json'; +import i18n from './i18n.json'; import styles from './styles.module.css'; type GlobalEnumsResponse = GoApiResponse<'/api/v2/global-enums/'>; diff --git a/src/views/DrefOperationalUpdateForm/Actions/styles.module.css b/app/src/views/DrefOperationalUpdateForm/Actions/styles.module.css similarity index 100% rename from src/views/DrefOperationalUpdateForm/Actions/styles.module.css rename to app/src/views/DrefOperationalUpdateForm/Actions/styles.module.css diff --git a/src/views/DrefOperationalUpdateForm/EventDetail/i18n.json b/app/src/views/DrefOperationalUpdateForm/EventDetail/i18n.json similarity index 100% rename from src/views/DrefOperationalUpdateForm/EventDetail/i18n.json rename to app/src/views/DrefOperationalUpdateForm/EventDetail/i18n.json diff --git a/src/views/DrefOperationalUpdateForm/EventDetail/index.tsx b/app/src/views/DrefOperationalUpdateForm/EventDetail/index.tsx similarity index 98% rename from src/views/DrefOperationalUpdateForm/EventDetail/index.tsx rename to app/src/views/DrefOperationalUpdateForm/EventDetail/index.tsx index 0578109769..9fc180aeb8 100644 --- a/src/views/DrefOperationalUpdateForm/EventDetail/index.tsx +++ b/app/src/views/DrefOperationalUpdateForm/EventDetail/index.tsx @@ -1,25 +1,27 @@ +import { WikiHelpSectionLineIcon } from '@ifrc-go/icons'; +import { + BooleanInput, + Container, + DateInput, + InputSection, + NumberInput, + TextArea, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { - type Error, type EntriesAsList, + type Error, getErrorObject, } from '@togglecorp/toggle-form'; -import { WikiHelpSectionLineIcon } from '@ifrc-go/icons'; -import Container from '#components/Container'; -import InputSection from '#components/InputSection'; -import BooleanInput from '#components/BooleanInput'; -import TextArea from '#components/TextArea'; -import DateInput from '#components/DateInput'; -import NumberInput from '#components/NumberInput'; -import Link from '#components/Link'; -import useTranslation from '#hooks/useTranslation'; import MultiImageWithCaptionInput from '#components/domain/MultiImageWithCaptionInput'; +import Link from '#components/Link'; import { - TYPE_IMMINENT, + ONSET_SUDDEN, TYPE_ASSESSMENT, + TYPE_IMMINENT, TYPE_LOAN, - ONSET_SUDDEN, } from '../common'; import { type PartialOpsUpdate } from '../schema'; diff --git a/src/views/DrefOperationalUpdateForm/EventDetail/styles.module.css b/app/src/views/DrefOperationalUpdateForm/EventDetail/styles.module.css similarity index 100% rename from src/views/DrefOperationalUpdateForm/EventDetail/styles.module.css rename to app/src/views/DrefOperationalUpdateForm/EventDetail/styles.module.css diff --git a/src/views/DrefOperationalUpdateForm/ObsoletePayloadModal/i18n.json b/app/src/views/DrefOperationalUpdateForm/ObsoletePayloadModal/i18n.json similarity index 100% rename from src/views/DrefOperationalUpdateForm/ObsoletePayloadModal/i18n.json rename to app/src/views/DrefOperationalUpdateForm/ObsoletePayloadModal/i18n.json diff --git a/src/views/DrefOperationalUpdateForm/ObsoletePayloadModal/index.tsx b/app/src/views/DrefOperationalUpdateForm/ObsoletePayloadModal/index.tsx similarity index 93% rename from src/views/DrefOperationalUpdateForm/ObsoletePayloadModal/index.tsx rename to app/src/views/DrefOperationalUpdateForm/ObsoletePayloadModal/index.tsx index dd8a6f9443..c8550434bf 100644 --- a/src/views/DrefOperationalUpdateForm/ObsoletePayloadModal/index.tsx +++ b/app/src/views/DrefOperationalUpdateForm/ObsoletePayloadModal/index.tsx @@ -1,14 +1,16 @@ +import { + BlockLoading, + Button, + Modal, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { isDefined, isNotDefined, } from '@togglecorp/fujs'; -import { useRequest } from '#utils/restRequest'; -import Button from '#components/Button'; -import Modal from '#components/Modal'; -import BlockLoading from '#components/BlockLoading'; -import useTranslation from '#hooks/useTranslation'; import { getUserName } from '#utils/domain/user'; +import { useRequest } from '#utils/restRequest'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/DrefOperationalUpdateForm/ObsoletePayloadModal/styles.module.css b/app/src/views/DrefOperationalUpdateForm/ObsoletePayloadModal/styles.module.css similarity index 100% rename from src/views/DrefOperationalUpdateForm/ObsoletePayloadModal/styles.module.css rename to app/src/views/DrefOperationalUpdateForm/ObsoletePayloadModal/styles.module.css diff --git a/src/views/DrefOperationalUpdateForm/Operation/InterventionInput/IndicatorInput/i18n.json b/app/src/views/DrefOperationalUpdateForm/Operation/InterventionInput/IndicatorInput/i18n.json similarity index 100% rename from src/views/DrefOperationalUpdateForm/Operation/InterventionInput/IndicatorInput/i18n.json rename to app/src/views/DrefOperationalUpdateForm/Operation/InterventionInput/IndicatorInput/i18n.json diff --git a/src/views/DrefOperationalUpdateForm/Operation/InterventionInput/IndicatorInput/index.tsx b/app/src/views/DrefOperationalUpdateForm/Operation/InterventionInput/IndicatorInput/index.tsx similarity index 93% rename from src/views/DrefOperationalUpdateForm/Operation/InterventionInput/IndicatorInput/index.tsx rename to app/src/views/DrefOperationalUpdateForm/Operation/InterventionInput/IndicatorInput/index.tsx index f037a4f30c..d3c611b713 100644 --- a/src/views/DrefOperationalUpdateForm/Operation/InterventionInput/IndicatorInput/index.tsx +++ b/app/src/views/DrefOperationalUpdateForm/Operation/InterventionInput/IndicatorInput/index.tsx @@ -1,18 +1,21 @@ import { DeleteBinTwoLineIcon } from '@ifrc-go/icons'; +import { + Button, + NumberInput, + TextInput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { type ArrayError, getErrorObject, - useFormObject, type SetValueArg, + useFormObject, } from '@togglecorp/toggle-form'; import NonFieldError from '#components/NonFieldError'; -import Button from '#components/Button'; -import NumberInput from '#components/NumberInput'; -import TextInput from '#components/TextInput'; -import useTranslation from '#hooks/useTranslation'; import { PartialOpsUpdate } from '../../../schema'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/DrefOperationalUpdateForm/Operation/InterventionInput/IndicatorInput/styles.module.css b/app/src/views/DrefOperationalUpdateForm/Operation/InterventionInput/IndicatorInput/styles.module.css similarity index 100% rename from src/views/DrefOperationalUpdateForm/Operation/InterventionInput/IndicatorInput/styles.module.css rename to app/src/views/DrefOperationalUpdateForm/Operation/InterventionInput/IndicatorInput/styles.module.css diff --git a/src/views/DrefOperationalUpdateForm/Operation/InterventionInput/i18n.json b/app/src/views/DrefOperationalUpdateForm/Operation/InterventionInput/i18n.json similarity index 100% rename from src/views/DrefOperationalUpdateForm/Operation/InterventionInput/i18n.json rename to app/src/views/DrefOperationalUpdateForm/Operation/InterventionInput/i18n.json diff --git a/src/views/DrefOperationalUpdateForm/Operation/InterventionInput/index.tsx b/app/src/views/DrefOperationalUpdateForm/Operation/InterventionInput/index.tsx similarity index 96% rename from src/views/DrefOperationalUpdateForm/Operation/InterventionInput/index.tsx rename to app/src/views/DrefOperationalUpdateForm/Operation/InterventionInput/index.tsx index b2d9a70161..478c8826a8 100644 --- a/src/views/DrefOperationalUpdateForm/Operation/InterventionInput/index.tsx +++ b/app/src/views/DrefOperationalUpdateForm/Operation/InterventionInput/index.tsx @@ -1,25 +1,27 @@ import { useCallback } from 'react'; +import { DeleteBinTwoLineIcon } from '@ifrc-go/icons'; +import { + Button, + Container, + InputSection, + NumberInput, + TextArea, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { - randomString, isDefined, isNotDefined, + randomString, } from '@togglecorp/fujs'; import { type ArrayError, - useFormObject, getErrorObject, - useFormArray, type SetValueArg, + useFormArray, + useFormObject, } from '@togglecorp/toggle-form'; -import { DeleteBinTwoLineIcon } from '@ifrc-go/icons'; import NonFieldError from '#components/NonFieldError'; -import TextArea from '#components/TextArea'; -import Button from '#components/Button'; -import NumberInput from '#components/NumberInput'; -import InputSection from '#components/InputSection'; -import Container from '#components/Container'; -import useTranslation from '#hooks/useTranslation'; import { type PartialOpsUpdate } from '../../schema'; import IndicatorInput from './IndicatorInput'; diff --git a/src/views/DrefOperationalUpdateForm/Operation/InterventionInput/styles.module.css b/app/src/views/DrefOperationalUpdateForm/Operation/InterventionInput/styles.module.css similarity index 100% rename from src/views/DrefOperationalUpdateForm/Operation/InterventionInput/styles.module.css rename to app/src/views/DrefOperationalUpdateForm/Operation/InterventionInput/styles.module.css diff --git a/src/views/DrefOperationalUpdateForm/Operation/RiskSecurityInput/i18n.json b/app/src/views/DrefOperationalUpdateForm/Operation/RiskSecurityInput/i18n.json similarity index 100% rename from src/views/DrefOperationalUpdateForm/Operation/RiskSecurityInput/i18n.json rename to app/src/views/DrefOperationalUpdateForm/Operation/RiskSecurityInput/i18n.json diff --git a/src/views/DrefOperationalUpdateForm/Operation/RiskSecurityInput/index.tsx b/app/src/views/DrefOperationalUpdateForm/Operation/RiskSecurityInput/index.tsx similarity index 94% rename from src/views/DrefOperationalUpdateForm/Operation/RiskSecurityInput/index.tsx rename to app/src/views/DrefOperationalUpdateForm/Operation/RiskSecurityInput/index.tsx index 53a0d41625..141cfbe138 100644 --- a/src/views/DrefOperationalUpdateForm/Operation/RiskSecurityInput/index.tsx +++ b/app/src/views/DrefOperationalUpdateForm/Operation/RiskSecurityInput/index.tsx @@ -1,18 +1,21 @@ +import { DeleteBinTwoLineIcon } from '@ifrc-go/icons'; +import { + Button, + TextArea, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { randomString } from '@togglecorp/fujs'; import { type ArrayError, - useFormObject, getErrorObject, type SetValueArg, + useFormObject, } from '@togglecorp/toggle-form'; -import { DeleteBinTwoLineIcon } from '@ifrc-go/icons'; -import { randomString } from '@togglecorp/fujs'; import NonFieldError from '#components/NonFieldError'; -import Button from '#components/Button'; -import TextArea from '#components/TextArea'; -import useTranslation from '#hooks/useTranslation'; import { type PartialOpsUpdate } from '../../schema'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/DrefOperationalUpdateForm/Operation/RiskSecurityInput/styles.module.css b/app/src/views/DrefOperationalUpdateForm/Operation/RiskSecurityInput/styles.module.css similarity index 100% rename from src/views/DrefOperationalUpdateForm/Operation/RiskSecurityInput/styles.module.css rename to app/src/views/DrefOperationalUpdateForm/Operation/RiskSecurityInput/styles.module.css diff --git a/src/views/DrefOperationalUpdateForm/Operation/i18n.json b/app/src/views/DrefOperationalUpdateForm/Operation/i18n.json similarity index 100% rename from src/views/DrefOperationalUpdateForm/Operation/i18n.json rename to app/src/views/DrefOperationalUpdateForm/Operation/i18n.json diff --git a/src/views/DrefOperationalUpdateForm/Operation/index.tsx b/app/src/views/DrefOperationalUpdateForm/Operation/index.tsx similarity index 97% rename from src/views/DrefOperationalUpdateForm/Operation/index.tsx rename to app/src/views/DrefOperationalUpdateForm/Operation/index.tsx index 0d2377e5de..da5d694dcf 100644 --- a/src/views/DrefOperationalUpdateForm/Operation/index.tsx +++ b/app/src/views/DrefOperationalUpdateForm/Operation/index.tsx @@ -1,44 +1,48 @@ import { - useMemo, useCallback, + useMemo, useState, } from 'react'; +import { ErrorWarningFillIcon } from '@ifrc-go/icons'; +import { + BooleanInput, + Button, + Container, + InputLabel, + InputSection, + NumberInput, + SelectInput, + TextArea, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + stringValueSelector, + sumSafe, +} from '@ifrc-go/ui/utils'; import { - randomString, isNotDefined, listToMap, + randomString, } from '@togglecorp/fujs'; import { - type Error, type EntriesAsList, - useFormArray, + type Error, getErrorObject, + useFormArray, } from '@togglecorp/toggle-form'; -import { ErrorWarningFillIcon } from '@ifrc-go/icons'; -import NonFieldError from '#components/NonFieldError'; -import Button from '#components/Button'; -import Container from '#components/Container'; -import InputSection from '#components/InputSection'; -import NumberInput from '#components/NumberInput'; -import SelectInput from '#components/SelectInput'; -import TextArea from '#components/TextArea'; -import InputLabel from '#components/InputLabel'; -import { sumSafe } from '#utils/common'; -import BooleanInput from '#components/BooleanInput'; import GoSingleFileInput from '#components/domain/GoSingleFileInput'; -import useTranslation from '#hooks/useTranslation'; -import { stringValueSelector } from '#utils/selectors'; +import NonFieldError from '#components/NonFieldError'; import useGlobalEnums from '#hooks/domain/useGlobalEnums'; import { type GoApiResponse } from '#utils/restRequest'; -import InterventionInput from './InterventionInput'; -import RiskSecurityInput from './RiskSecurityInput'; import { TYPE_ASSESSMENT, TYPE_IMMINENT, } from '../common'; import { type PartialOpsUpdate } from '../schema'; +import InterventionInput from './InterventionInput'; +import RiskSecurityInput from './RiskSecurityInput'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/DrefOperationalUpdateForm/Operation/styles.module.css b/app/src/views/DrefOperationalUpdateForm/Operation/styles.module.css similarity index 100% rename from src/views/DrefOperationalUpdateForm/Operation/styles.module.css rename to app/src/views/DrefOperationalUpdateForm/Operation/styles.module.css diff --git a/src/views/DrefOperationalUpdateForm/Overview/i18n.json b/app/src/views/DrefOperationalUpdateForm/Overview/i18n.json similarity index 100% rename from src/views/DrefOperationalUpdateForm/Overview/i18n.json rename to app/src/views/DrefOperationalUpdateForm/Overview/i18n.json diff --git a/src/views/DrefOperationalUpdateForm/Overview/index.tsx b/app/src/views/DrefOperationalUpdateForm/Overview/index.tsx similarity index 96% rename from src/views/DrefOperationalUpdateForm/Overview/index.tsx rename to app/src/views/DrefOperationalUpdateForm/Overview/index.tsx index 53aeadc073..9769925988 100644 --- a/src/views/DrefOperationalUpdateForm/Overview/index.tsx +++ b/app/src/views/DrefOperationalUpdateForm/Overview/index.tsx @@ -1,65 +1,64 @@ import { - useCallback, - type SetStateAction, type Dispatch, + type SetStateAction, + useCallback, } from 'react'; +import { useLocation } from 'react-router-dom'; +import { WikiHelpSectionLineIcon } from '@ifrc-go/icons'; import { - useLocation, -} from 'react-router-dom'; + BooleanInput, + Button, + Container, + InputSection, + List, + Modal, + NumberInput, + SelectInput, + TextInput, +} from '@ifrc-go/ui'; import { + useBooleanState, + useTranslation, +} from '@ifrc-go/ui/hooks'; +import { + stringValueSelector, + sumSafe, +} from '@ifrc-go/ui/utils'; +import { isNotDefined } from '@togglecorp/fujs'; +import { + type EntriesAsList, type Error, getErrorObject, getErrorString, - type EntriesAsList, } from '@togglecorp/toggle-form'; -import { - isNotDefined, -} from '@togglecorp/fujs'; -import { WikiHelpSectionLineIcon } from '@ifrc-go/icons'; -import BooleanInput from '#components/BooleanInput'; -import Button from '#components/Button'; -import Container from '#components/Container'; -import InputSection from '#components/InputSection'; -import Link from '#components/Link'; -import Modal from '#components/Modal'; -import NumberInput from '#components/NumberInput'; -import SelectInput from '#components/SelectInput'; -import TextInput from '#components/TextInput'; -import useTranslation from '#hooks/useTranslation'; -import { type GoApiResponse } from '#utils/restRequest'; -import { - stringValueSelector, -} from '#utils/selectors'; -import { sumSafe } from '#utils/common'; -import useBooleanState from '#hooks/useBooleanState'; -import useGlobalEnums from '#hooks/domain/useGlobalEnums'; -import useCountry from '#hooks/domain/useCountry'; -import NationalSocietySelectInput from '#components/domain/NationalSocietySelectInput'; import CountrySelectInput from '#components/domain/CountrySelectInput'; import DisasterTypeSelectInput from '#components/domain/DisasterTypeSelectInput'; -import DistrictSearchMultiSelectInput, { - type DistrictItem, -} from '#components/domain/DistrictSearchMultiSelectInput'; +import DistrictSearchMultiSelectInput, { type DistrictItem } from '#components/domain/DistrictSearchMultiSelectInput'; import UserItem from '#components/domain/DrefShareModal/UserItem'; import ImageWithCaptionInput from '#components/domain/ImageWithCaptionInput'; -import List from '#components/List'; -import useDisasterType from '#hooks/domain/useDisasterType'; +import NationalSocietySelectInput from '#components/domain/NationalSocietySelectInput'; import { type User } from '#components/domain/UserSearchMultiSelectInput'; +import Link from '#components/Link'; +import useCountry from '#hooks/domain/useCountry'; +import useDisasterType from '#hooks/domain/useDisasterType'; +import useGlobalEnums from '#hooks/domain/useGlobalEnums'; +import { type GoApiResponse } from '#utils/restRequest'; import { DISASTER_FIRE, - DISASTER_FLOOD, DISASTER_FLASH_FLOOD, + DISASTER_FLOOD, + ONSET_SUDDEN, + TYPE_ASSESSMENT, TYPE_IMMINENT, TYPE_LOAN, TYPE_RESPONSE, - ONSET_SUDDEN, - TYPE_ASSESSMENT, } from '../common'; import { type PartialOpsUpdate } from '../schema'; -import styles from './styles.module.css'; + import i18n from './i18n.json'; +import styles from './styles.module.css'; const disasterCategoryLink = 'https://www.ifrc.org/sites/default/files/2021-07/IFRC%20Emergency%20Response%20Framework%20-%202017.pdf'; diff --git a/src/views/DrefOperationalUpdateForm/Overview/styles.module.css b/app/src/views/DrefOperationalUpdateForm/Overview/styles.module.css similarity index 100% rename from src/views/DrefOperationalUpdateForm/Overview/styles.module.css rename to app/src/views/DrefOperationalUpdateForm/Overview/styles.module.css diff --git a/src/views/DrefOperationalUpdateForm/Submission/i18n.json b/app/src/views/DrefOperationalUpdateForm/Submission/i18n.json similarity index 100% rename from src/views/DrefOperationalUpdateForm/Submission/i18n.json rename to app/src/views/DrefOperationalUpdateForm/Submission/i18n.json diff --git a/src/views/DrefOperationalUpdateForm/Submission/index.tsx b/app/src/views/DrefOperationalUpdateForm/Submission/index.tsx similarity index 98% rename from src/views/DrefOperationalUpdateForm/Submission/index.tsx rename to app/src/views/DrefOperationalUpdateForm/Submission/index.tsx index 7c68e0f36c..6b90a24d92 100644 --- a/src/views/DrefOperationalUpdateForm/Submission/index.tsx +++ b/app/src/views/DrefOperationalUpdateForm/Submission/index.tsx @@ -1,19 +1,23 @@ import { useCallback } from 'react'; +import { + Container, + DateInput, + InputSection, + NumberInput, + TextInput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + addNumMonthsToDate, + encodeDate, +} from '@ifrc-go/ui/utils'; import { isDefined } from '@togglecorp/fujs'; import { - type Error, type EntriesAsList, + type Error, getErrorObject, } from '@togglecorp/toggle-form'; -import Container from '#components/Container'; -import InputSection from '#components/InputSection'; -import TextInput from '#components/TextInput'; -import DateInput from '#components/DateInput'; -import NumberInput from '#components/NumberInput'; -import useTranslation from '#hooks/useTranslation'; -import { addNumMonthsToDate, encodeDate } from '#utils/common'; - import { TYPE_LOAN } from '../common'; import { type PartialOpsUpdate } from '../schema'; diff --git a/src/views/DrefOperationalUpdateForm/Submission/styles.module.css b/app/src/views/DrefOperationalUpdateForm/Submission/styles.module.css similarity index 100% rename from src/views/DrefOperationalUpdateForm/Submission/styles.module.css rename to app/src/views/DrefOperationalUpdateForm/Submission/styles.module.css diff --git a/src/views/DrefOperationalUpdateForm/common.tsx b/app/src/views/DrefOperationalUpdateForm/common.tsx similarity index 98% rename from src/views/DrefOperationalUpdateForm/common.tsx rename to app/src/views/DrefOperationalUpdateForm/common.tsx index 9a391ea311..7100626475 100644 --- a/src/views/DrefOperationalUpdateForm/common.tsx +++ b/app/src/views/DrefOperationalUpdateForm/common.tsx @@ -1,9 +1,13 @@ -import { isNotDefined, bound } from '@togglecorp/fujs'; import { - type Error, + bound, + isNotDefined, +} from '@togglecorp/fujs'; +import { analyzeErrors, + type Error, getErrorObject, } from '@togglecorp/toggle-form'; + import { type components } from '#generated/types'; import { type PartialOpsUpdate } from './schema'; diff --git a/src/views/DrefOperationalUpdateForm/i18n.json b/app/src/views/DrefOperationalUpdateForm/i18n.json similarity index 100% rename from src/views/DrefOperationalUpdateForm/i18n.json rename to app/src/views/DrefOperationalUpdateForm/i18n.json diff --git a/src/views/DrefOperationalUpdateForm/index.tsx b/app/src/views/DrefOperationalUpdateForm/index.tsx similarity index 98% rename from src/views/DrefOperationalUpdateForm/index.tsx rename to app/src/views/DrefOperationalUpdateForm/index.tsx index 0dbe711435..d00de34dee 100644 --- a/src/views/DrefOperationalUpdateForm/index.tsx +++ b/app/src/views/DrefOperationalUpdateForm/index.tsx @@ -1,74 +1,78 @@ import { - useState, + type ElementRef, useCallback, - useRef, useMemo, - type ElementRef, + useRef, + useState, } from 'react'; +import { useParams } from 'react-router-dom'; import { - useParams, -} from 'react-router-dom'; -import { - ErrorWarningFillIcon, DownloadTwoLineIcon, + ErrorWarningFillIcon, ShareLineIcon, } from '@ifrc-go/icons'; +import type { ButtonProps } from '@ifrc-go/ui'; import { - useForm, - removeNull, -} from '@togglecorp/toggle-form'; + Button, + Message, + Tab, + TabList, + TabPanel, + Tabs, +} from '@ifrc-go/ui'; +import { + useBooleanState, + useTranslation, +} from '@ifrc-go/ui/hooks'; +import { + injectClientId, + isSimilarArray, +} from '@ifrc-go/ui/utils'; import { - isFalsyString, isDefined, + isFalsyString, isNotDefined, isTruthyString, } from '@togglecorp/fujs'; +import { + removeNull, + useForm, +} from '@togglecorp/toggle-form'; -import Page from '#components/Page'; -import Tab from '#components/Tabs/Tab'; -import Tabs from '#components/Tabs'; -import TabList from '#components/Tabs/TabList'; -import TabPanel from '#components/Tabs/TabPanel'; -import Button from '#components/Button'; -import NonFieldError from '#components/NonFieldError'; -import Message from '#components/Message'; import { type DistrictItem } from '#components/domain/DistrictSearchMultiSelectInput'; +import DrefExportModal from '#components/domain/DrefExportModal'; +import DrefShareModal from '#components/domain/DrefShareModal'; import LanguageMismatchMessage from '#components/domain/LanguageMismatchMessage'; -import { type Props as ButtonProps } from '#components/Button'; import { type User } from '#components/domain/UserSearchMultiSelectInput'; -import DrefShareModal from '#components/domain/DrefShareModal'; -import DrefExportModal from '#components/domain/DrefExportModal'; +import NonFieldError from '#components/NonFieldError'; +import Page from '#components/Page'; +import useCurrentLanguage from '#hooks/domain/useCurrentLanguage'; +import useAlert from '#hooks/useAlert'; +import useInputState from '#hooks/useInputState'; import { - useRequest, - useLazyRequest, type GoApiResponse, + useLazyRequest, + useRequest, } from '#utils/restRequest'; -import useTranslation from '#hooks/useTranslation'; -import useAlert from '#hooks/useAlert'; -import useBooleanState from '#hooks/useBooleanState'; -import { injectClientId, isSimilarArray } from '#utils/common'; import { - transformObjectError, matchArray, NUM, + transformObjectError, } from '#utils/restRequest/error'; -import useCurrentLanguage from '#hooks/domain/useCurrentLanguage'; -import useInputState from '#hooks/useInputState'; -import opsUpdateSchema, { - type OpsUpdateRequestBody, -} from './schema'; +import Actions from './Actions'; import { checkTabErrors, TYPE_LOAN, type TypeOfDrefEnum, } from './common'; -import Overview from './Overview'; import EventDetail from './EventDetail'; -import Actions from './Actions'; +import ObsoletePayloadModal from './ObsoletePayloadModal'; import Operation from './Operation'; +import Overview from './Overview'; +import opsUpdateSchema, { type OpsUpdateRequestBody } from './schema'; import Submission from './Submission'; -import ObsoletePayloadModal from './ObsoletePayloadModal'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/DrefOperationalUpdateForm/schema.ts b/app/src/views/DrefOperationalUpdateForm/schema.ts similarity index 99% rename from src/views/DrefOperationalUpdateForm/schema.ts rename to app/src/views/DrefOperationalUpdateForm/schema.ts index 081d359ef8..33d3ccaa14 100644 --- a/src/views/DrefOperationalUpdateForm/schema.ts +++ b/app/src/views/DrefOperationalUpdateForm/schema.ts @@ -1,28 +1,31 @@ +import { type DeepReplace } from '@ifrc-go/ui/utils'; +import { isDefined } from '@togglecorp/fujs'; import { - type PartialForm, - type ObjectSchema, - type PurgeNull, addCondition, - undefinedValue, + emailCondition, greaterThanOrEqualToCondition, - requiredStringCondition, - nullValue, lessThanOrEqualToCondition, - emailCondition, + nullValue, + type ObjectSchema, + type PartialForm, + type PurgeNull, + requiredStringCondition, + undefinedValue, } from '@togglecorp/toggle-form'; -import { isDefined } from '@togglecorp/fujs'; -import { type DeepReplace } from '#utils/common'; import { - positiveNumberCondition, positiveIntegerCondition, + positiveNumberCondition, } from '#utils/form'; -import { type GoApiResponse, type GoApiBody } from '#utils/restRequest'; +import { + type GoApiBody, + type GoApiResponse, +} from '#utils/restRequest'; import { DISASTER_FIRE, - DISASTER_FLOOD, DISASTER_FLASH_FLOOD, + DISASTER_FLOOD, TYPE_ASSESSMENT, TYPE_IMMINENT, TYPE_LOAN, diff --git a/src/views/DrefOperationalUpdateForm/styles.module.css b/app/src/views/DrefOperationalUpdateForm/styles.module.css similarity index 100% rename from src/views/DrefOperationalUpdateForm/styles.module.css rename to app/src/views/DrefOperationalUpdateForm/styles.module.css diff --git a/src/views/Emergencies/EmergenciesTable/i18n.json b/app/src/views/Emergencies/EmergenciesTable/i18n.json similarity index 100% rename from src/views/Emergencies/EmergenciesTable/i18n.json rename to app/src/views/Emergencies/EmergenciesTable/i18n.json diff --git a/src/views/Emergencies/EmergenciesTable/index.tsx b/app/src/views/Emergencies/EmergenciesTable/index.tsx similarity index 92% rename from src/views/Emergencies/EmergenciesTable/index.tsx rename to app/src/views/Emergencies/EmergenciesTable/index.tsx index 69efbd03f7..931f5ef978 100644 --- a/src/views/Emergencies/EmergenciesTable/index.tsx +++ b/app/src/views/Emergencies/EmergenciesTable/index.tsx @@ -1,23 +1,34 @@ import { useMemo } from 'react'; -import { SortContext } from '#components/Table/useSorting'; -import { encodeDate, max } from '@togglecorp/fujs'; -import Table from '#components/Table'; -import Container from '#components/Container'; import { - createStringColumn, + Container, + DateInput, + Pager, + Table, +} from '@ifrc-go/ui'; +import { SortContext } from '@ifrc-go/ui/contexts'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { createDateColumn, createNumberColumn, - createLinkColumn, - createCountryListColumn, -} from '#components/Table/ColumnShortcuts'; -import Pager from '#components/Pager'; -import useTranslation from '#hooks/useTranslation'; -import useFilterState from '#hooks/useFilterState'; -import DateInput from '#components/DateInput'; + createStringColumn, + sumSafe, +} from '@ifrc-go/ui/utils'; +import { + encodeDate, + max, +} from '@togglecorp/fujs'; + import DisasterTypeSelectInput from '#components/domain/DisasterTypeSelectInput'; +import useFilterState from '#hooks/useFilterState'; +import { + createCountryListColumn, + createLinkColumn, +} from '#utils/domain/tableHelpers'; +import type { + GoApiResponse, + GoApiUrlQuery, +} from '#utils/restRequest'; import { useRequest } from '#utils/restRequest'; -import type { GoApiResponse, GoApiUrlQuery } from '#utils/restRequest'; -import { sumSafe } from '#utils/common'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/Emergencies/EmergenciesTable/styles.module.css b/app/src/views/Emergencies/EmergenciesTable/styles.module.css similarity index 100% rename from src/views/Emergencies/EmergenciesTable/styles.module.css rename to app/src/views/Emergencies/EmergenciesTable/styles.module.css diff --git a/src/views/Emergencies/FieldReportsTable/i18n.json b/app/src/views/Emergencies/FieldReportsTable/i18n.json similarity index 100% rename from src/views/Emergencies/FieldReportsTable/i18n.json rename to app/src/views/Emergencies/FieldReportsTable/i18n.json diff --git a/src/views/Emergencies/FieldReportsTable/index.tsx b/app/src/views/Emergencies/FieldReportsTable/index.tsx similarity index 93% rename from src/views/Emergencies/FieldReportsTable/index.tsx rename to app/src/views/Emergencies/FieldReportsTable/index.tsx index d44d0e915e..1cec62f94a 100644 --- a/src/views/Emergencies/FieldReportsTable/index.tsx +++ b/app/src/views/Emergencies/FieldReportsTable/index.tsx @@ -1,24 +1,28 @@ import { useMemo } from 'react'; +import { + Container, + DateInput, + NumberOutput, + Pager, + Table, +} from '@ifrc-go/ui'; +import { SortContext } from '@ifrc-go/ui/contexts'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + createDateColumn, + createStringColumn, + resolveToComponent, +} from '@ifrc-go/ui/utils'; import { encodeDate } from '@togglecorp/fujs'; -import { SortContext } from '#components/Table/useSorting'; -import Table from '#components/Table'; import Link from '#components/Link'; -import Container from '#components/Container'; +import useFilterState from '#hooks/useFilterState'; import { - createStringColumn, - createDateColumn, - createLinkColumn, createCountryListColumn, -} from '#components/Table/ColumnShortcuts'; -import Pager from '#components/Pager'; -import NumberOutput from '#components/NumberOutput'; -import DateInput from '#components/DateInput'; -import useTranslation from '#hooks/useTranslation'; -import useFilterState from '#hooks/useFilterState'; -import { useRequest } from '#utils/restRequest'; -import { resolveToComponent } from '#utils/translation'; + createLinkColumn, +} from '#utils/domain/tableHelpers'; import type { GoApiResponse } from '#utils/restRequest'; +import { useRequest } from '#utils/restRequest'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/Emergencies/FieldReportsTable/styles.module.css b/app/src/views/Emergencies/FieldReportsTable/styles.module.css similarity index 100% rename from src/views/Emergencies/FieldReportsTable/styles.module.css rename to app/src/views/Emergencies/FieldReportsTable/styles.module.css diff --git a/src/views/Emergencies/FlashUpdatesTable/FlashUpdatesTableActions/i18n.json b/app/src/views/Emergencies/FlashUpdatesTable/FlashUpdatesTableActions/i18n.json similarity index 100% rename from src/views/Emergencies/FlashUpdatesTable/FlashUpdatesTableActions/i18n.json rename to app/src/views/Emergencies/FlashUpdatesTable/FlashUpdatesTableActions/i18n.json diff --git a/src/views/AllFlashUpdates/FlashUpdatesTableActions/index.tsx b/app/src/views/Emergencies/FlashUpdatesTable/FlashUpdatesTableActions/index.tsx similarity index 91% rename from src/views/AllFlashUpdates/FlashUpdatesTableActions/index.tsx rename to app/src/views/Emergencies/FlashUpdatesTable/FlashUpdatesTableActions/index.tsx index fbeb9736d8..743d37727d 100644 --- a/src/views/AllFlashUpdates/FlashUpdatesTableActions/index.tsx +++ b/app/src/views/Emergencies/FlashUpdatesTable/FlashUpdatesTableActions/index.tsx @@ -2,10 +2,10 @@ import { PencilFillIcon, ShareBoxLineIcon, } from '@ifrc-go/icons'; +import { TableActions } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; -import TableActions from '#components/Table/TableActions'; import DropdownMenuItem from '#components/DropdownMenuItem'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/Emergencies/FlashUpdatesTable/i18n.json b/app/src/views/Emergencies/FlashUpdatesTable/i18n.json similarity index 100% rename from src/views/Emergencies/FlashUpdatesTable/i18n.json rename to app/src/views/Emergencies/FlashUpdatesTable/i18n.json diff --git a/src/views/Emergencies/FlashUpdatesTable/index.tsx b/app/src/views/Emergencies/FlashUpdatesTable/index.tsx similarity index 90% rename from src/views/Emergencies/FlashUpdatesTable/index.tsx rename to app/src/views/Emergencies/FlashUpdatesTable/index.tsx index 62312d713b..867b0a2763 100644 --- a/src/views/Emergencies/FlashUpdatesTable/index.tsx +++ b/app/src/views/Emergencies/FlashUpdatesTable/index.tsx @@ -1,29 +1,30 @@ +import { useMemo } from 'react'; import { - useMemo, -} from 'react'; + Container, + NumberOutput, + Pager, + Table, +} from '@ifrc-go/ui'; +import { SortContext } from '@ifrc-go/ui/contexts'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + createDateColumn, + createElementColumn, + createStringColumn, + resolveToComponent, +} from '@ifrc-go/ui/utils'; -import { SortContext } from '#components/Table/useSorting'; -import Table from '#components/Table'; -import NumberOutput from '#components/NumberOutput'; import Link from '#components/Link'; -import Container from '#components/Container'; +import useFilterState from '#hooks/useFilterState'; import { - createStringColumn, - createDateColumn, createCountryListColumn, - createElementColumn, createLinkColumn, -} from '#components/Table/ColumnShortcuts'; -import Pager from '#components/Pager'; -import useTranslation from '#hooks/useTranslation'; -import useFilterState from '#hooks/useFilterState'; -import { useRequest } from '#utils/restRequest'; +} from '#utils/domain/tableHelpers'; import type { GoApiResponse } from '#utils/restRequest'; -import { resolveToComponent } from '#utils/translation'; +import { useRequest } from '#utils/restRequest'; + +import FlashUpdatesTableAction, { Props as FlashUpdatesTableActions } from './FlashUpdatesTableActions'; -import FlashUpdatesTableAction, { - Props as FlashUpdatesTableActions, -} from './FlashUpdatesTableActions'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/Emergencies/FlashUpdatesTable/styles.module.css b/app/src/views/Emergencies/FlashUpdatesTable/styles.module.css similarity index 100% rename from src/views/Emergencies/FlashUpdatesTable/styles.module.css rename to app/src/views/Emergencies/FlashUpdatesTable/styles.module.css diff --git a/src/views/Emergencies/Map/i18n.json b/app/src/views/Emergencies/Map/i18n.json similarity index 100% rename from src/views/Emergencies/Map/i18n.json rename to app/src/views/Emergencies/Map/i18n.json diff --git a/src/views/Emergencies/Map/index.tsx b/app/src/views/Emergencies/Map/index.tsx similarity index 97% rename from src/views/Emergencies/Map/index.tsx rename to app/src/views/Emergencies/Map/index.tsx index 667fbba4ac..fcef907d79 100644 --- a/src/views/Emergencies/Map/index.tsx +++ b/app/src/views/Emergencies/Map/index.tsx @@ -1,52 +1,59 @@ import { - useMemo, useCallback, useState, + useCallback, + useMemo, + useState, } from 'react'; +import { + Container, + LegendItem, + RadioInput, + TextOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + resolveToComponent, + sumSafe, +} from '@ifrc-go/ui/utils'; import { _cs, isDefined, + isNotDefined, + isTruthyString, listToGroupList, - unique, listToMap, - isTruthyString, - isNotDefined, + unique, } from '@togglecorp/fujs'; import { - MapSource, MapLayer, + MapSource, } from '@togglecorp/re-map'; -import MapContainerWithDisclaimer from '#components/MapContainerWithDisclaimer'; -import RadioInput from '#components/RadioInput'; -import Container from '#components/Container'; +import BaseMap from '#components/domain/BaseMap'; import Link from '#components/Link'; +import MapContainerWithDisclaimer from '#components/MapContainerWithDisclaimer'; import MapPopup from '#components/MapPopup'; -import LegendItem from '#components/LegendItem'; -import TextOutput from '#components/TextOutput'; +import useCountryRaw from '#hooks/domain/useCountryRaw'; import useInputState from '#hooks/useInputState'; -import useTranslation from '#hooks/useTranslation'; -import type { GoApiResponse } from '#utils/restRequest'; -import { sumSafe } from '#utils/common'; -import { resolveToComponent } from '#utils/translation'; import { getNumAffected } from '#utils/domain/emergency'; -import useCountryRaw from '#hooks/domain/useCountryRaw'; -import BaseMap from '#components/domain/BaseMap'; +import type { GoApiResponse } from '#utils/restRequest'; -import i18n from './i18n.json'; import { - ScaleOption, + adminFillLayerOptions, + basePointLayerOptions, + COLOR_MIXED_RESPONSE, + COLOR_WITH_IFRC_RESPONSE, + COLOR_WITHOUT_IFRC_RESPONSE, optionKeySelector, optionLabelSelector, outerCircleLayerOptionsForNumEvents, outerCircleLayerOptionsForPeopleTargeted, - basePointLayerOptions, - adminFillLayerOptions, - RESPONSE_LEVEL_WITHOUT_IFRC_RESPONSE, RESPONSE_LEVEL_MIXED_RESPONSE, RESPONSE_LEVEL_WITH_IFRC_RESPONSE, - COLOR_WITHOUT_IFRC_RESPONSE, - COLOR_WITH_IFRC_RESPONSE, - COLOR_MIXED_RESPONSE, + RESPONSE_LEVEL_WITHOUT_IFRC_RESPONSE, + ScaleOption, } from './utils'; + +import i18n from './i18n.json'; import styles from './styles.module.css'; const sourceOptions: mapboxgl.GeoJSONSourceRaw = { diff --git a/src/views/Emergencies/Map/styles.module.css b/app/src/views/Emergencies/Map/styles.module.css similarity index 100% rename from src/views/Emergencies/Map/styles.module.css rename to app/src/views/Emergencies/Map/styles.module.css diff --git a/src/views/Emergencies/Map/utils.ts b/app/src/views/Emergencies/Map/utils.ts similarity index 100% rename from src/views/Emergencies/Map/utils.ts rename to app/src/views/Emergencies/Map/utils.ts index 83b4c89cbb..25ad522672 100644 --- a/src/views/Emergencies/Map/utils.ts +++ b/app/src/views/Emergencies/Map/utils.ts @@ -1,17 +1,17 @@ import type { - CirclePaint, CircleLayer, + CirclePaint, FillLayer, SymbolLayer, } from 'mapbox-gl'; import { COLOR_BLACK, - COLOR_RED, - COLOR_YELLOW, COLOR_BLUE, - COLOR_LIGHT_GREY, COLOR_DARK_GREY, + COLOR_LIGHT_GREY, + COLOR_RED, + COLOR_YELLOW, } from '#utils/constants'; export const COLOR_WITHOUT_IFRC_RESPONSE = COLOR_RED; diff --git a/src/views/Emergencies/i18n.json b/app/src/views/Emergencies/i18n.json similarity index 100% rename from src/views/Emergencies/i18n.json rename to app/src/views/Emergencies/i18n.json diff --git a/src/views/Emergencies/index.tsx b/app/src/views/Emergencies/index.tsx similarity index 95% rename from src/views/Emergencies/index.tsx rename to app/src/views/Emergencies/index.tsx index 6ab681d845..35831e6f65 100644 --- a/src/views/Emergencies/index.tsx +++ b/app/src/views/Emergencies/index.tsx @@ -1,37 +1,47 @@ -import { useMemo, useCallback, Fragment } from 'react'; import { - listToGroupList, - mapToList, - listToMap, - encodeDate, - isFalsyString, - isDefined, - isNotDefined, -} from '@togglecorp/fujs'; + Fragment, + useCallback, + useMemo, +} from 'react'; import { EmergenciesIcon, - TargetedPopulationIcon, - FundingIcon, FundingCoverageIcon, + FundingIcon, + TargetedPopulationIcon, } from '@ifrc-go/icons'; +import { + BarChart, + BlockLoading, + Container, + KeyFigure, + TimeSeriesChart, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + getDatesSeparatedByMonths, + getFormattedDateKey, + sumSafe, +} from '@ifrc-go/ui/utils'; +import { + encodeDate, + isDefined, + isFalsyString, + isNotDefined, + listToGroupList, + listToMap, + mapToList, +} from '@togglecorp/fujs'; -import Page from '#components/Page'; -import BlockLoading from '#components/BlockLoading'; -import KeyFigure from '#components/KeyFigure'; -import BarChart from '#components/BarChart'; -import Container from '#components/Container'; -import TimeSeriesChart from '#components/TimeSeriesChart'; import Link from '#components/Link'; +import Page from '#components/Page'; import usePermissions from '#hooks/domain/usePermissions'; -import useTranslation from '#hooks/useTranslation'; import { useRequest } from '#utils/restRequest'; -import { getDatesSeparatedByMonths } from '#utils/chart'; -import { sumSafe, getFormattedDateKey } from '#utils/common'; -import Map from './Map'; -import FieldReportTable from './FieldReportsTable'; import EmergenciesTable from './EmergenciesTable'; +import FieldReportTable from './FieldReportsTable'; import FlashUpdateTable from './FlashUpdatesTable'; +import Map from './Map'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/Emergencies/styles.module.css b/app/src/views/Emergencies/styles.module.css similarity index 100% rename from src/views/Emergencies/styles.module.css rename to app/src/views/Emergencies/styles.module.css diff --git a/src/views/Emergency/i18n.json b/app/src/views/Emergency/i18n.json similarity index 100% rename from src/views/Emergency/i18n.json rename to app/src/views/Emergency/i18n.json diff --git a/src/views/Emergency/index.tsx b/app/src/views/Emergency/index.tsx similarity index 96% rename from src/views/Emergency/index.tsx rename to app/src/views/Emergency/index.tsx index bee862fa92..130dd34fd2 100644 --- a/src/views/Emergency/index.tsx +++ b/app/src/views/Emergency/index.tsx @@ -1,37 +1,45 @@ -import { useMemo, useContext } from 'react'; -import { useParams, Outlet } from 'react-router-dom'; import { - FundingIcon, + useContext, + useMemo, +} from 'react'; +import { + Outlet, + useParams, +} from 'react-router-dom'; +import { FundingCoverageIcon, - TargetedPopulationIcon, + FundingIcon, PencilFillIcon, + TargetedPopulationIcon, } from '@ifrc-go/icons'; import { - isNotDefined, + Breadcrumbs, + Button, + KeyFigure, + NavigationTabList, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { sumSafe } from '@ifrc-go/ui/utils'; +import { isDefined, + isNotDefined, listToMap, } from '@togglecorp/fujs'; -import DomainContext from '#contexts/domain'; -import Breadcrumbs from '#components/Breadcrumbs'; -import Page from '#components/Page'; -import Button from '#components/Button'; -import NavigationTabList from '#components/NavigationTabList'; -import KeyFigure from '#components/KeyFigure'; import Link from '#components/Link'; import NavigationTab from '#components/NavigationTab'; -import useRegion from '#hooks/domain/useRegion'; +import Page from '#components/Page'; +import { adminUrl } from '#config'; +import DomainContext from '#contexts/domain'; import useAuth from '#hooks/domain/useAuth'; +import useRegion from '#hooks/domain/useRegion'; import useUserMe from '#hooks/domain/useUserMe'; -import useTranslation from '#hooks/useTranslation'; +import { type EmergencyOutletContext } from '#utils/outletContext'; +import { resolveUrl } from '#utils/resolveUrl'; import { - useRequest, useLazyRequest, + useRequest, } from '#utils/restRequest'; -import { sumSafe } from '#utils/common'; -import { resolveUrl } from '#utils/resolveUrl'; -import { type EmergencyOutletContext } from '#utils/outletContext'; -import { adminUrl } from '#config'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/Emergency/styles.module.css b/app/src/views/Emergency/styles.module.css similarity index 100% rename from src/views/Emergency/styles.module.css rename to app/src/views/Emergency/styles.module.css diff --git a/src/views/EmergencyActivities/ActivitesMap/i18n.json b/app/src/views/EmergencyActivities/ActivitesMap/i18n.json similarity index 100% rename from src/views/EmergencyActivities/ActivitesMap/i18n.json rename to app/src/views/EmergencyActivities/ActivitesMap/i18n.json diff --git a/src/views/EmergencyActivities/ActivitesMap/index.tsx b/app/src/views/EmergencyActivities/ActivitesMap/index.tsx similarity index 96% rename from src/views/EmergencyActivities/ActivitesMap/index.tsx rename to app/src/views/EmergencyActivities/ActivitesMap/index.tsx index a0d75899dd..a405cd38e5 100644 --- a/src/views/EmergencyActivities/ActivitesMap/index.tsx +++ b/app/src/views/EmergencyActivities/ActivitesMap/index.tsx @@ -1,4 +1,7 @@ import { useMemo } from 'react'; +import { useOutletContext } from 'react-router-dom'; +import { LegendItem } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { _cs, isDefined, @@ -7,28 +10,21 @@ import { unique, } from '@togglecorp/fujs'; import { - useOutletContext, -} from 'react-router-dom'; -import type { FillLayer } from 'mapbox-gl'; -import { - MapLayer, MapBounds, + MapLayer, } from '@togglecorp/re-map'; +import type { FillLayer } from 'mapbox-gl'; -import LegendItem from '#components/LegendItem'; +import BaseMap from '#components/domain/BaseMap'; import MapContainerWithDisclaimer from '#components/MapContainerWithDisclaimer'; import useCountryRaw from '#hooks/domain/useCountryRaw'; -import useTranslation from '#hooks/useTranslation'; -import type { EmergencyOutletContext } from '#utils/outletContext'; import { - getCountryListBoundingBox, -} from '#utils/map'; -import { - DURATION_MAP_ZOOM, - DEFAULT_MAP_PADDING, COLOR_LIGHT_GREY, + DEFAULT_MAP_PADDING, + DURATION_MAP_ZOOM, } from '#utils/constants'; -import BaseMap from '#components/domain/BaseMap'; +import { getCountryListBoundingBox } from '#utils/map'; +import type { EmergencyOutletContext } from '#utils/outletContext'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/EmergencyActivities/ActivitesMap/styles.module.css b/app/src/views/EmergencyActivities/ActivitesMap/styles.module.css similarity index 100% rename from src/views/EmergencyActivities/ActivitesMap/styles.module.css rename to app/src/views/EmergencyActivities/ActivitesMap/styles.module.css diff --git a/src/views/EmergencyActivities/ActivityActions/i18n.json b/app/src/views/EmergencyActivities/ActivityActions/i18n.json similarity index 100% rename from src/views/EmergencyActivities/ActivityActions/i18n.json rename to app/src/views/EmergencyActivities/ActivityActions/i18n.json diff --git a/src/views/EmergencyActivities/ActivityActions/index.tsx b/app/src/views/EmergencyActivities/ActivityActions/index.tsx similarity index 93% rename from src/views/EmergencyActivities/ActivityActions/index.tsx rename to app/src/views/EmergencyActivities/ActivityActions/index.tsx index 36ea411263..c4c74c40f5 100644 --- a/src/views/EmergencyActivities/ActivityActions/index.tsx +++ b/app/src/views/EmergencyActivities/ActivityActions/index.tsx @@ -4,10 +4,10 @@ import { PencilFillIcon, ShareBoxLineIcon, } from '@ifrc-go/icons'; +import { DropdownMenu } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; -import DropdownMenu from '#components/DropdownMenu'; import DropdownMenuItem from '#components/DropdownMenuItem'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/EmergencyActivities/ActivityDetail/i18n.json b/app/src/views/EmergencyActivities/ActivityDetail/i18n.json similarity index 100% rename from src/views/EmergencyActivities/ActivityDetail/i18n.json rename to app/src/views/EmergencyActivities/ActivityDetail/i18n.json diff --git a/src/views/EmergencyActivities/ActivityDetail/index.tsx b/app/src/views/EmergencyActivities/ActivityDetail/index.tsx similarity index 89% rename from src/views/EmergencyActivities/ActivityDetail/index.tsx rename to app/src/views/EmergencyActivities/ActivityDetail/index.tsx index 8f4f37ea34..01627bcfda 100644 --- a/src/views/EmergencyActivities/ActivityDetail/index.tsx +++ b/app/src/views/EmergencyActivities/ActivityDetail/index.tsx @@ -1,22 +1,32 @@ -import { useState, useCallback } from 'react'; - -import Button from '#components/Button'; -import Container from '#components/Container'; -import DateOutput from '#components/DateOutput'; -import ExpandableContainer from '#components/ExpandableContainer'; -import List from '#components/List'; -import NumberOutput from '#components/NumberOutput'; -import ProgressBar from '#components/ProgressBar'; -import ReducedListDisplay from '#components/ReducedListDisplay'; -import InfoPopup from '#components/InfoPopup'; -import TextOutput from '#components/TextOutput'; -import useBooleanState from '#hooks/useBooleanState'; -import useTranslation from '#hooks/useTranslation'; -import { numericIdSelector } from '#utils/selectors'; -import { resolveToString } from '#utils/translation'; +import { + useCallback, + useState, +} from 'react'; +import { + Button, + Container, + DateOutput, + ExpandableContainer, + InfoPopup, + List, + NumberOutput, + ProgressBar, + ReducedListDisplay, + TextOutput, +} from '@ifrc-go/ui'; +import { + useBooleanState, + useTranslation, +} from '@ifrc-go/ui/hooks'; +import { + numericIdSelector, + resolveToString, +} from '@ifrc-go/ui/utils'; + import { type GoApiResponse } from '#utils/restRequest'; import { getPeopleReachedInActivity } from '../useEmergencyProjectStats'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/EmergencyActivities/ActivityDetail/styles.module.css b/app/src/views/EmergencyActivities/ActivityDetail/styles.module.css similarity index 100% rename from src/views/EmergencyActivities/ActivityDetail/styles.module.css rename to app/src/views/EmergencyActivities/ActivityDetail/styles.module.css diff --git a/src/views/EmergencyActivities/Filters/i18n.json b/app/src/views/EmergencyActivities/Filters/i18n.json similarity index 100% rename from src/views/EmergencyActivities/Filters/i18n.json rename to app/src/views/EmergencyActivities/Filters/i18n.json diff --git a/src/views/EmergencyActivities/Filters/index.tsx b/app/src/views/EmergencyActivities/Filters/index.tsx similarity index 92% rename from src/views/EmergencyActivities/Filters/index.tsx rename to app/src/views/EmergencyActivities/Filters/index.tsx index 35c8210c2a..ff774dfdb5 100644 --- a/src/views/EmergencyActivities/Filters/index.tsx +++ b/app/src/views/EmergencyActivities/Filters/index.tsx @@ -1,15 +1,29 @@ -import { useCallback, useState } from 'react'; -import { _cs, isDefined, isNotDefined } from '@togglecorp/fujs'; -import { EntriesAsList, type SetValueArg } from '@togglecorp/toggle-form'; +import { + useCallback, + useState, +} from 'react'; +import { MultiSelectInput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + numericIdSelector, + stringTitleSelector, + stringValueSelector, +} from '@ifrc-go/ui/utils'; +import { + _cs, + isDefined, + isNotDefined, +} from '@togglecorp/fujs'; +import { + EntriesAsList, + type SetValueArg, +} from '@togglecorp/toggle-form'; import CountryMultiSelectInput from '#components/domain/CountryMultiSelectInput'; import DistrictMultiCountrySearchMultiSelectInput, { type DistrictItem } from '#components/domain/DistrictMultiCountrySearchMultiSelectInput'; -import MultiSelectInput from '#components/MultiSelectInput'; import NationalSocietyMultiSelectInput from '#components/domain/NationalSocietyMultiSelectInput'; -import type { GoApiResponse } from '#utils/restRequest'; import useGlobalEnums from '#hooks/domain/useGlobalEnums'; -import useTranslation from '#hooks/useTranslation'; -import { numericIdSelector, stringTitleSelector, stringValueSelector } from '#utils/selectors'; +import type { GoApiResponse } from '#utils/restRequest'; import { useRequest } from '#utils/restRequest'; import i18n from './i18n.json'; diff --git a/src/views/EmergencyActivities/Filters/styles.module.css b/app/src/views/EmergencyActivities/Filters/styles.module.css similarity index 100% rename from src/views/EmergencyActivities/Filters/styles.module.css rename to app/src/views/EmergencyActivities/Filters/styles.module.css diff --git a/src/views/EmergencyActivities/i18n.json b/app/src/views/EmergencyActivities/i18n.json similarity index 100% rename from src/views/EmergencyActivities/i18n.json rename to app/src/views/EmergencyActivities/i18n.json diff --git a/src/views/EmergencyActivities/index.tsx b/app/src/views/EmergencyActivities/index.tsx similarity index 96% rename from src/views/EmergencyActivities/index.tsx rename to app/src/views/EmergencyActivities/index.tsx index 036d6f78e3..46529708e2 100644 --- a/src/views/EmergencyActivities/index.tsx +++ b/app/src/views/EmergencyActivities/index.tsx @@ -1,56 +1,55 @@ import { - useMemo, useCallback, + useMemo, } from 'react'; -import { sumSafe } from '#utils/common'; import { useOutletContext } from 'react-router-dom'; -import Papa from 'papaparse'; -import { saveAs } from 'file-saver'; +import { InformationLineIcon } from '@ifrc-go/icons'; +import { + BlockLoading, + Container, + InfoPopup, + KeyFigure, + Message, + Pager, + PieChart, + Table, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + createDateColumn, + createElementColumn, + createListDisplayColumn, + createNumberColumn, + createStringColumn, + numericCountSelector, + numericIdSelector, + stringTitleSelector, + sumSafe, +} from '@ifrc-go/ui/utils'; import { compareNumber, isDefined, isNotDefined, mapToList, } from '@togglecorp/fujs'; -import { - InformationLineIcon, -} from '@ifrc-go/icons'; +import { saveAs } from 'file-saver'; +import Papa from 'papaparse'; -import BlockLoading from '#components/BlockLoading'; -import Container from '#components/Container'; -import KeyFigure from '#components/KeyFigure'; import ExportButton from '#components/domain/ExportButton'; -import useAlert from '#hooks/useAlert'; -import Message from '#components/Message'; -import Pager from '#components/Pager'; -import InfoPopup from '#components/InfoPopup'; -import PieChart from '#components/PieChart'; -import Table from '#components/Table'; import Link from '#components/Link'; -import { - createElementColumn, - createDateColumn, - createListDisplayColumn, - createNumberColumn, - createStringColumn, -} from '#components/Table/ColumnShortcuts'; -import useTranslation from '#hooks/useTranslation'; +import useAlert from '#hooks/useAlert'; import useFilterState from '#hooks/useFilterState'; -import { - numericIdSelector, - numericCountSelector, - stringTitleSelector, -} from '#utils/selectors'; +import useRecursiveCsvExport from '#hooks/useRecursiveCsvRequest'; import type { EmergencyOutletContext } from '#utils/outletContext'; import { type GoApiResponse } from '#utils/restRequest'; import { useRequest } from '#utils/restRequest'; -import useRecursiveCsvExport from '#hooks/useRecursiveCsvRequest'; +import ActivitiesMap from './ActivitesMap'; import ActivityActions, { type Props as ActivityActionsProps } from './ActivityActions'; import ActivityDetail from './ActivityDetail'; -import ActivitiesMap from './ActivitesMap'; import Filters, { type FilterValue } from './Filters'; import useEmergencyProjectStats, { getPeopleReached } from './useEmergencyProjectStats'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/EmergencyActivities/styles.module.css b/app/src/views/EmergencyActivities/styles.module.css similarity index 100% rename from src/views/EmergencyActivities/styles.module.css rename to app/src/views/EmergencyActivities/styles.module.css diff --git a/src/views/EmergencyActivities/useEmergencyProjectStats.ts b/app/src/views/EmergencyActivities/useEmergencyProjectStats.ts similarity index 99% rename from src/views/EmergencyActivities/useEmergencyProjectStats.ts rename to app/src/views/EmergencyActivities/useEmergencyProjectStats.ts index aeaa80fcd0..28dd113e4b 100644 --- a/src/views/EmergencyActivities/useEmergencyProjectStats.ts +++ b/app/src/views/EmergencyActivities/useEmergencyProjectStats.ts @@ -1,11 +1,11 @@ import { useMemo } from 'react'; +import { sumSafe } from '@ifrc-go/ui/utils'; import { isDefined, unique, } from '@togglecorp/fujs'; import { type GoApiResponse } from '#utils/restRequest'; -import { sumSafe } from '#utils/common'; type EmergencyProjectResponse = GoApiResponse<'/api/v2/emergency-project/'> type EmergencyProject = NonNullable[number]; diff --git a/src/views/EmergencyAdditionalTab/index.tsx b/app/src/views/EmergencyAdditionalTab/index.tsx similarity index 97% rename from src/views/EmergencyAdditionalTab/index.tsx rename to app/src/views/EmergencyAdditionalTab/index.tsx index f9efa46c87..242016eafd 100644 --- a/src/views/EmergencyAdditionalTab/index.tsx +++ b/app/src/views/EmergencyAdditionalTab/index.tsx @@ -1,16 +1,16 @@ import { useContext } from 'react'; import { - Navigate, generatePath, + Navigate, useLocation, useOutletContext, useParams, } from 'react-router-dom'; +import { HtmlOutput } from '@ifrc-go/ui'; import { isDefined } from '@togglecorp/fujs'; -import { type EmergencyOutletContext } from '#utils/outletContext'; -import HtmlOutput from '#components/HtmlOutput'; import RouteContext from '#contexts/route'; +import { type EmergencyOutletContext } from '#utils/outletContext'; import styles from './styles.module.css'; diff --git a/src/views/EmergencyAdditionalTab/styles.module.css b/app/src/views/EmergencyAdditionalTab/styles.module.css similarity index 100% rename from src/views/EmergencyAdditionalTab/styles.module.css rename to app/src/views/EmergencyAdditionalTab/styles.module.css diff --git a/src/views/EmergencyDetails/EmergencyMap/i18n.json b/app/src/views/EmergencyDetails/EmergencyMap/i18n.json similarity index 100% rename from src/views/EmergencyDetails/EmergencyMap/i18n.json rename to app/src/views/EmergencyDetails/EmergencyMap/i18n.json diff --git a/src/views/EmergencyDetails/EmergencyMap/index.tsx b/app/src/views/EmergencyDetails/EmergencyMap/index.tsx similarity index 98% rename from src/views/EmergencyDetails/EmergencyMap/index.tsx rename to app/src/views/EmergencyDetails/EmergencyMap/index.tsx index 8138a900a9..6123e29cce 100644 --- a/src/views/EmergencyDetails/EmergencyMap/index.tsx +++ b/app/src/views/EmergencyDetails/EmergencyMap/index.tsx @@ -1,22 +1,19 @@ import { useMemo } from 'react'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { _cs, isDefined, isNotDefined, listToMap, } from '@togglecorp/fujs'; -import type { FillLayer } from 'mapbox-gl'; import { MapBounds, MapLayer, } from '@togglecorp/re-map'; +import type { FillLayer } from 'mapbox-gl'; +import BaseMap from '#components/domain/BaseMap'; import MapContainerWithDisclaimer from '#components/MapContainerWithDisclaimer'; -import useTranslation from '#hooks/useTranslation'; -import { type GoApiResponse } from '#utils/restRequest'; -import { - getCountryListBoundingBox, -} from '#utils/map'; import useCountryRaw from '#hooks/domain/useCountryRaw'; import { COLOR_LIGHT_GREY, @@ -24,7 +21,8 @@ import { DEFAULT_MAP_PADDING, DURATION_MAP_ZOOM, } from '#utils/constants'; -import BaseMap from '#components/domain/BaseMap'; +import { getCountryListBoundingBox } from '#utils/map'; +import { type GoApiResponse } from '#utils/restRequest'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/EmergencyDetails/EmergencyMap/styles.module.css b/app/src/views/EmergencyDetails/EmergencyMap/styles.module.css similarity index 100% rename from src/views/EmergencyDetails/EmergencyMap/styles.module.css rename to app/src/views/EmergencyDetails/EmergencyMap/styles.module.css diff --git a/src/views/EmergencyDetails/FieldReportStats/i18n.json b/app/src/views/EmergencyDetails/FieldReportStats/i18n.json similarity index 100% rename from src/views/EmergencyDetails/FieldReportStats/i18n.json rename to app/src/views/EmergencyDetails/FieldReportStats/i18n.json diff --git a/src/views/EmergencyDetails/FieldReportStats/index.tsx b/app/src/views/EmergencyDetails/FieldReportStats/index.tsx similarity index 97% rename from src/views/EmergencyDetails/FieldReportStats/index.tsx rename to app/src/views/EmergencyDetails/FieldReportStats/index.tsx index 6ada2007d6..202a7a38b6 100644 --- a/src/views/EmergencyDetails/FieldReportStats/index.tsx +++ b/app/src/views/EmergencyDetails/FieldReportStats/index.tsx @@ -1,15 +1,18 @@ import { useMemo } from 'react'; -import DateOutput from '#components/DateOutput'; +import { + DateOutput, + TextOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToComponent } from '@ifrc-go/ui/utils'; + import Link from '#components/Link'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; -import { resolveToComponent } from '#utils/translation'; -import { type GoApiResponse } from '#utils/restRequest'; import { - FIELD_REPORT_STATUS_EARLY_WARNING, DISASTER_TYPE_EPIDEMIC, + FIELD_REPORT_STATUS_EARLY_WARNING, ReportType, } from '#utils/constants'; +import { type GoApiResponse } from '#utils/restRequest'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/EmergencyDetails/FieldReportStats/styles.module.css b/app/src/views/EmergencyDetails/FieldReportStats/styles.module.css similarity index 100% rename from src/views/EmergencyDetails/FieldReportStats/styles.module.css rename to app/src/views/EmergencyDetails/FieldReportStats/styles.module.css diff --git a/src/views/EmergencyDetails/i18n.json b/app/src/views/EmergencyDetails/i18n.json similarity index 100% rename from src/views/EmergencyDetails/i18n.json rename to app/src/views/EmergencyDetails/i18n.json diff --git a/src/views/EmergencyDetails/index.tsx b/app/src/views/EmergencyDetails/index.tsx similarity index 97% rename from src/views/EmergencyDetails/index.tsx rename to app/src/views/EmergencyDetails/index.tsx index d0897b47ca..905dafa38b 100644 --- a/src/views/EmergencyDetails/index.tsx +++ b/app/src/views/EmergencyDetails/index.tsx @@ -1,7 +1,15 @@ import { useMemo } from 'react'; import { useOutletContext } from 'react-router-dom'; -import useTranslation from '#hooks/useTranslation'; import { DownloadFillIcon } from '@ifrc-go/icons'; +import { + Button, + Container, + HtmlOutput, + KeyFigure, + TextOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToString } from '@ifrc-go/ui/utils'; import { compareDate, isDefined, @@ -11,18 +19,12 @@ import { listToMap, } from '@togglecorp/fujs'; -import Button from '#components/Button'; -import Container from '#components/Container'; -import HtmlOutput from '#components/HtmlOutput'; -import KeyFigure from '#components/KeyFigure'; -import Link from '#components/Link'; import SeverityIndicator from '#components/domain/SeverityIndicator'; -import TextOutput from '#components/TextOutput'; -import useGlobalEnums from '#hooks/domain/useGlobalEnums'; +import Link from '#components/Link'; import useDisasterType from '#hooks/domain/useDisasterType'; +import useGlobalEnums from '#hooks/domain/useGlobalEnums'; import { type EmergencyOutletContext } from '#utils/outletContext'; import { type GoApiResponse } from '#utils/restRequest'; -import { resolveToString } from '#utils/translation'; import EmergencyMap from './EmergencyMap'; import FieldReportStats from './FieldReportStats'; diff --git a/src/views/EmergencyDetails/styles.module.css b/app/src/views/EmergencyDetails/styles.module.css similarity index 100% rename from src/views/EmergencyDetails/styles.module.css rename to app/src/views/EmergencyDetails/styles.module.css diff --git a/src/views/EmergencyFollow/i18n.json b/app/src/views/EmergencyFollow/i18n.json similarity index 100% rename from src/views/EmergencyFollow/i18n.json rename to app/src/views/EmergencyFollow/i18n.json diff --git a/src/views/EmergencyFollow/index.tsx b/app/src/views/EmergencyFollow/index.tsx similarity index 87% rename from src/views/EmergencyFollow/index.tsx rename to app/src/views/EmergencyFollow/index.tsx index 51a9013992..932db9bc8b 100644 --- a/src/views/EmergencyFollow/index.tsx +++ b/app/src/views/EmergencyFollow/index.tsx @@ -1,9 +1,12 @@ import { useMemo } from 'react'; -import { useParams, Navigate } from 'react-router-dom'; +import { + Navigate, + useParams, +} from 'react-router-dom'; +import { Message } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { isNotDefined } from '@togglecorp/fujs'; -import Message from '#components/Message'; -import useTranslation from '#hooks/useTranslation'; import { useRequest } from '#utils/restRequest'; import i18n from './i18n.json'; diff --git a/src/views/EmergencyReportAndDocument/i18n.json b/app/src/views/EmergencyReportAndDocument/i18n.json similarity index 100% rename from src/views/EmergencyReportAndDocument/i18n.json rename to app/src/views/EmergencyReportAndDocument/i18n.json diff --git a/src/views/EmergencyReportAndDocument/index.tsx b/app/src/views/EmergencyReportAndDocument/index.tsx similarity index 97% rename from src/views/EmergencyReportAndDocument/index.tsx rename to app/src/views/EmergencyReportAndDocument/index.tsx index 7e802330db..9d22e21b6c 100644 --- a/src/views/EmergencyReportAndDocument/index.tsx +++ b/app/src/views/EmergencyReportAndDocument/index.tsx @@ -1,9 +1,23 @@ import { - useMemo, useCallback, + useMemo, } from 'react'; import { useOutletContext } from 'react-router-dom'; import { DownloadLineIcon } from '@ifrc-go/icons'; +import { + Container, + Image, + Pager, + RawList, + Table, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + createDateColumn, + createStringColumn, + numericIdSelector, + resolveToString, +} from '@ifrc-go/ui/utils'; import { isDefined, isNotDefined, @@ -12,29 +26,19 @@ import { unique, } from '@togglecorp/fujs'; -import Container from '#components/Container'; -import Image from '#components/Image'; import Link, { Props as LinkProps } from '#components/Link'; -import Pager from '#components/Pager'; -import Table from '#components/Table'; -import RawList from '#components/RawList'; -import useFilterState from '#hooks/useFilterState'; -import useRegion, { type Region } from '#hooks/domain/useRegion'; -import useTranslation from '#hooks/useTranslation'; import { adminUrl } from '#config'; -import { numericIdSelector } from '#utils/selectors'; -import { resolveToString } from '#utils/translation'; -import { resolveUrl } from '#utils/resolveUrl'; -import { useRequest } from '#utils/restRequest'; -import { type EmergencyOutletContext } from '#utils/outletContext'; -import { type GoApiResponse } from '#utils/restRequest'; +import useRegion, { type Region } from '#hooks/domain/useRegion'; +import useFilterState from '#hooks/useFilterState'; import { - createDateColumn, - createLinkColumn, createCountryListColumn, + createLinkColumn, createRegionListColumn, - createStringColumn, -} from '#components/Table/ColumnShortcuts'; +} from '#utils/domain/tableHelpers'; +import { type EmergencyOutletContext } from '#utils/outletContext'; +import { resolveUrl } from '#utils/resolveUrl'; +import { useRequest } from '#utils/restRequest'; +import { type GoApiResponse } from '#utils/restRequest'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/EmergencyReportAndDocument/styles.module.css b/app/src/views/EmergencyReportAndDocument/styles.module.css similarity index 100% rename from src/views/EmergencyReportAndDocument/styles.module.css rename to app/src/views/EmergencyReportAndDocument/styles.module.css diff --git a/src/views/EmergencySlug/i18n.json b/app/src/views/EmergencySlug/i18n.json similarity index 100% rename from src/views/EmergencySlug/i18n.json rename to app/src/views/EmergencySlug/i18n.json diff --git a/src/views/EmergencySlug/index.tsx b/app/src/views/EmergencySlug/index.tsx similarity index 80% rename from src/views/EmergencySlug/index.tsx rename to app/src/views/EmergencySlug/index.tsx index e200230c43..30c34b23d9 100644 --- a/src/views/EmergencySlug/index.tsx +++ b/app/src/views/EmergencySlug/index.tsx @@ -1,8 +1,14 @@ -import { useParams, Navigate } from 'react-router-dom'; -import { isDefined, isNotDefined } from '@togglecorp/fujs'; +import { + Navigate, + useParams, +} from 'react-router-dom'; +import { Message } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + isDefined, + isNotDefined, +} from '@togglecorp/fujs'; -import Message from '#components/Message'; -import useTranslation from '#hooks/useTranslation'; import { useRequest } from '#utils/restRequest'; import i18n from './i18n.json'; diff --git a/src/views/EmergencySurge/DeployedErusTable/i18n.json b/app/src/views/EmergencySurge/DeployedErusTable/i18n.json similarity index 100% rename from src/views/EmergencySurge/DeployedErusTable/i18n.json rename to app/src/views/EmergencySurge/DeployedErusTable/i18n.json diff --git a/src/views/EmergencySurge/DeployedErusTable/index.tsx b/app/src/views/EmergencySurge/DeployedErusTable/index.tsx similarity index 92% rename from src/views/EmergencySurge/DeployedErusTable/index.tsx rename to app/src/views/EmergencySurge/DeployedErusTable/index.tsx index 58659ff0ab..e243a527df 100644 --- a/src/views/EmergencySurge/DeployedErusTable/index.tsx +++ b/app/src/views/EmergencySurge/DeployedErusTable/index.tsx @@ -1,32 +1,33 @@ import { - useMemo, useCallback, + useMemo, } from 'react'; +import { + Container, + Pager, + Table, +} from '@ifrc-go/ui'; +import { SortContext } from '@ifrc-go/ui/contexts'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + createNumberColumn, + createStringColumn, + numericIdSelector, + resolveToComponent, +} from '@ifrc-go/ui/utils'; import { isNotDefined, listToMap, } from '@togglecorp/fujs'; -import useTranslation from '#hooks/useTranslation'; + +import Link from '#components/Link'; +import useGlobalEnums from '#hooks/domain/useGlobalEnums'; +import useFilterState from '#hooks/useFilterState'; +import { createLinkColumn } from '#utils/domain/tableHelpers'; import { type GoApiResponse, useRequest, } from '#utils/restRequest'; -import { resolveToComponent } from '#utils/translation'; -import Container from '#components/Container'; -import Pager from '#components/Pager'; -import { - SortContext, -} from '#components/Table/useSorting'; -import { - createStringColumn, - createLinkColumn, - createNumberColumn, -} from '#components/Table/ColumnShortcuts'; -import Table from '#components/Table'; -import Link from '#components/Link'; -import useGlobalEnums from '#hooks/domain/useGlobalEnums'; -import { numericIdSelector } from '#utils/selectors'; -import useFilterState from '#hooks/useFilterState'; import i18n from './i18n.json'; diff --git a/src/views/EmergencySurge/RapidResponsePerosnnelTable/i18n.json b/app/src/views/EmergencySurge/RapidResponsePerosnnelTable/i18n.json similarity index 100% rename from src/views/EmergencySurge/RapidResponsePerosnnelTable/i18n.json rename to app/src/views/EmergencySurge/RapidResponsePerosnnelTable/i18n.json diff --git a/src/views/EmergencySurge/RapidResponsePerosnnelTable/index.tsx b/app/src/views/EmergencySurge/RapidResponsePerosnnelTable/index.tsx similarity index 93% rename from src/views/EmergencySurge/RapidResponsePerosnnelTable/index.tsx rename to app/src/views/EmergencySurge/RapidResponsePerosnnelTable/index.tsx index 63f230c03a..a2b521a93c 100644 --- a/src/views/EmergencySurge/RapidResponsePerosnnelTable/index.tsx +++ b/app/src/views/EmergencySurge/RapidResponsePerosnnelTable/index.tsx @@ -1,33 +1,34 @@ import { - useMemo, useCallback, + useMemo, } from 'react'; -import { isDefined, isNotDefined } from '@togglecorp/fujs'; - -import useTranslation from '#hooks/useTranslation'; import { - type GoApiResponse, - useRequest, -} from '#utils/restRequest'; -import Container from '#components/Container'; -import Pager from '#components/Pager'; -import { - SortContext, -} from '#components/Table/useSorting'; + Container, + Pager, + Table, +} from '@ifrc-go/ui'; +import { SortContext } from '@ifrc-go/ui/contexts'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { createStringColumn, - createLinkColumn, createTimelineColumn, -} from '#components/Table/ColumnShortcuts'; -import Table from '#components/Table'; -import Link from '#components/Link'; -import { numericIdSelector } from '#utils/selectors'; -import useFilterState from '#hooks/useFilterState'; -import { isValidDate, maxSafe, minSafe, -} from '#utils/common'; + numericIdSelector, +} from '@ifrc-go/ui/utils'; +import { + isDefined, + isNotDefined, +} from '@togglecorp/fujs'; + +import Link from '#components/Link'; +import useFilterState from '#hooks/useFilterState'; +import { createLinkColumn } from '#utils/domain/tableHelpers'; +import { + type GoApiResponse, + useRequest, +} from '#utils/restRequest'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/EmergencySurge/RapidResponsePerosnnelTable/styles.module.css b/app/src/views/EmergencySurge/RapidResponsePerosnnelTable/styles.module.css similarity index 100% rename from src/views/EmergencySurge/RapidResponsePerosnnelTable/styles.module.css rename to app/src/views/EmergencySurge/RapidResponsePerosnnelTable/styles.module.css diff --git a/src/views/EmergencySurge/SurgeTable/i18n.json b/app/src/views/EmergencySurge/SurgeTable/i18n.json similarity index 100% rename from src/views/EmergencySurge/SurgeTable/i18n.json rename to app/src/views/EmergencySurge/SurgeTable/i18n.json diff --git a/src/views/EmergencySurge/SurgeTable/index.tsx b/app/src/views/EmergencySurge/SurgeTable/index.tsx similarity index 92% rename from src/views/EmergencySurge/SurgeTable/index.tsx rename to app/src/views/EmergencySurge/SurgeTable/index.tsx index 7db7f6d7c4..cb618de05e 100644 --- a/src/views/EmergencySurge/SurgeTable/index.tsx +++ b/app/src/views/EmergencySurge/SurgeTable/index.tsx @@ -1,22 +1,31 @@ import { - useMemo, useCallback, + useMemo, } from 'react'; -import { isDefined, isNotDefined } from '@togglecorp/fujs'; -import Container from '#components/Container'; -import Pager from '#components/Pager'; -import Table from '#components/Table'; -import Link from '#components/Link'; import { - createStringColumn, + Container, + Pager, + Table, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { createDateColumn, - createLinkColumn, -} from '#components/Table/ColumnShortcuts'; -import useTranslation from '#hooks/useTranslation'; -import { useRequest, type GoApiResponse } from '#utils/restRequest'; -import { getDuration } from '#utils/common'; -import { numericIdSelector } from '#utils/selectors'; + createStringColumn, + getDuration, + numericIdSelector, +} from '@ifrc-go/ui/utils'; +import { + isDefined, + isNotDefined, +} from '@togglecorp/fujs'; + +import Link from '#components/Link'; import useFilterState from '#hooks/useFilterState'; +import { createLinkColumn } from '#utils/domain/tableHelpers'; +import { + type GoApiResponse, + useRequest, +} from '#utils/restRequest'; import i18n from './i18n.json'; diff --git a/src/views/EmergencySurge/i18n.json b/app/src/views/EmergencySurge/i18n.json similarity index 100% rename from src/views/EmergencySurge/i18n.json rename to app/src/views/EmergencySurge/i18n.json diff --git a/src/views/EmergencySurge/index.tsx b/app/src/views/EmergencySurge/index.tsx similarity index 92% rename from src/views/EmergencySurge/index.tsx rename to app/src/views/EmergencySurge/index.tsx index 67362f2cee..100d32bbc7 100644 --- a/src/views/EmergencySurge/index.tsx +++ b/app/src/views/EmergencySurge/index.tsx @@ -1,16 +1,16 @@ import { useParams } from 'react-router-dom'; import { - EmergencyResponseUnitIcon, DeployedIcon, + EmergencyResponseUnitIcon, } from '@ifrc-go/icons'; -import { - useRequest, -} from '#utils/restRequest'; -import KeyFigure from '#components/KeyFigure'; -import useTranslation from '#hooks/useTranslation'; -import SurgeTable from './SurgeTable'; -import RapidResponsePersonnelTable from './RapidResponsePerosnnelTable'; +import { KeyFigure } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + +import { useRequest } from '#utils/restRequest'; + import DeployedErusTable from './DeployedErusTable'; +import RapidResponsePersonnelTable from './RapidResponsePerosnnelTable'; +import SurgeTable from './SurgeTable'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/EmergencySurge/styles.module.css b/app/src/views/EmergencySurge/styles.module.css similarity index 100% rename from src/views/EmergencySurge/styles.module.css rename to app/src/views/EmergencySurge/styles.module.css diff --git a/src/views/FieldReportDetails/CovidNumericDetails/i18n.json b/app/src/views/FieldReportDetails/CovidNumericDetails/i18n.json similarity index 100% rename from src/views/FieldReportDetails/CovidNumericDetails/i18n.json rename to app/src/views/FieldReportDetails/CovidNumericDetails/i18n.json diff --git a/src/views/FieldReportDetails/CovidNumericDetails/index.tsx b/app/src/views/FieldReportDetails/CovidNumericDetails/index.tsx similarity index 92% rename from src/views/FieldReportDetails/CovidNumericDetails/index.tsx rename to app/src/views/FieldReportDetails/CovidNumericDetails/index.tsx index 368a046780..4b31a14b43 100644 --- a/src/views/FieldReportDetails/CovidNumericDetails/index.tsx +++ b/app/src/views/FieldReportDetails/CovidNumericDetails/index.tsx @@ -1,6 +1,9 @@ -import KeyFigure from '#components/KeyFigure'; -import useTranslation from '#hooks/useTranslation'; -import TextOutput from '#components/TextOutput'; +import { + KeyFigure, + TextOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + import { type GoApiResponse } from '#utils/restRequest'; import i18n from './i18n.json'; diff --git a/src/views/FieldReportDetails/EarlyWarningNumericDetails/i18n.json b/app/src/views/FieldReportDetails/EarlyWarningNumericDetails/i18n.json similarity index 100% rename from src/views/FieldReportDetails/EarlyWarningNumericDetails/i18n.json rename to app/src/views/FieldReportDetails/EarlyWarningNumericDetails/i18n.json diff --git a/src/views/FieldReportDetails/EarlyWarningNumericDetails/index.tsx b/app/src/views/FieldReportDetails/EarlyWarningNumericDetails/index.tsx similarity index 95% rename from src/views/FieldReportDetails/EarlyWarningNumericDetails/index.tsx rename to app/src/views/FieldReportDetails/EarlyWarningNumericDetails/index.tsx index 0da2d8e81d..29b4304bcf 100644 --- a/src/views/FieldReportDetails/EarlyWarningNumericDetails/index.tsx +++ b/app/src/views/FieldReportDetails/EarlyWarningNumericDetails/index.tsx @@ -1,5 +1,6 @@ -import useTranslation from '#hooks/useTranslation'; -import KeyFigure from '#components/KeyFigure'; +import { KeyFigure } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + import { type GoApiResponse } from '#utils/restRequest'; import i18n from './i18n.json'; diff --git a/src/views/FieldReportDetails/EpidemicNumericDetails/i18n.json b/app/src/views/FieldReportDetails/EpidemicNumericDetails/i18n.json similarity index 100% rename from src/views/FieldReportDetails/EpidemicNumericDetails/i18n.json rename to app/src/views/FieldReportDetails/EpidemicNumericDetails/i18n.json diff --git a/src/views/FieldReportDetails/EpidemicNumericDetails/index.tsx b/app/src/views/FieldReportDetails/EpidemicNumericDetails/index.tsx similarity index 95% rename from src/views/FieldReportDetails/EpidemicNumericDetails/index.tsx rename to app/src/views/FieldReportDetails/EpidemicNumericDetails/index.tsx index d8396462fc..52b7418ca0 100644 --- a/src/views/FieldReportDetails/EpidemicNumericDetails/index.tsx +++ b/app/src/views/FieldReportDetails/EpidemicNumericDetails/index.tsx @@ -1,5 +1,6 @@ -import KeyFigure from '#components/KeyFigure'; -import useTranslation from '#hooks/useTranslation'; +import { KeyFigure } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + import { type GoApiResponse } from '#utils/restRequest'; import i18n from './i18n.json'; diff --git a/src/views/FieldReportDetails/EventNumericDetails/i18n.json b/app/src/views/FieldReportDetails/EventNumericDetails/i18n.json similarity index 100% rename from src/views/FieldReportDetails/EventNumericDetails/i18n.json rename to app/src/views/FieldReportDetails/EventNumericDetails/i18n.json diff --git a/src/views/FieldReportDetails/EventNumericDetails/index.tsx b/app/src/views/FieldReportDetails/EventNumericDetails/index.tsx similarity index 97% rename from src/views/FieldReportDetails/EventNumericDetails/index.tsx rename to app/src/views/FieldReportDetails/EventNumericDetails/index.tsx index be5aea0510..a31613ca29 100644 --- a/src/views/FieldReportDetails/EventNumericDetails/index.tsx +++ b/app/src/views/FieldReportDetails/EventNumericDetails/index.tsx @@ -1,5 +1,6 @@ -import KeyFigure from '#components/KeyFigure'; -import useTranslation from '#hooks/useTranslation'; +import { KeyFigure } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + import { type GoApiResponse } from '#utils/restRequest'; import i18n from './i18n.json'; diff --git a/src/views/FieldReportDetails/i18n.json b/app/src/views/FieldReportDetails/i18n.json similarity index 100% rename from src/views/FieldReportDetails/i18n.json rename to app/src/views/FieldReportDetails/i18n.json diff --git a/src/views/FieldReportDetails/index.tsx b/app/src/views/FieldReportDetails/index.tsx similarity index 98% rename from src/views/FieldReportDetails/index.tsx rename to app/src/views/FieldReportDetails/index.tsx index f8d3208f14..7badd83e6b 100644 --- a/src/views/FieldReportDetails/index.tsx +++ b/app/src/views/FieldReportDetails/index.tsx @@ -1,40 +1,47 @@ -import { Fragment, useMemo } from 'react'; +import { + Fragment, + useMemo, +} from 'react'; import { useParams } from 'react-router-dom'; +import { CheckboxCircleLineIcon } from '@ifrc-go/icons'; +import { + Breadcrumbs, + Container, + DateOutput, + HtmlOutput, + Message, + TextOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + joinList, + resolveToComponent, +} from '@ifrc-go/ui/utils'; import { isDefined, + isFalsyString, isNotDefined, isTruthyString, - isFalsyString, - listToMap, listToGroupList, + listToMap, mapToList, } from '@togglecorp/fujs'; -import { CheckboxCircleLineIcon } from '@ifrc-go/icons'; -import Breadcrumbs from '#components/Breadcrumbs'; -import Container from '#components/Container'; -import DateOutput from '#components/DateOutput'; import DetailsFailedToLoadMessage from '#components/domain/DetailsFailedToLoadMessage'; -import HtmlOutput from '#components/HtmlOutput'; import Link from '#components/Link'; -import Message from '#components/Message'; import Page from '#components/Page'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; -import { getUserName } from '#utils/domain/user'; -import { resolveToComponent } from '#utils/translation'; -import { useRequest } from '#utils/restRequest'; +import useGlobalEnums from '#hooks/domain/useGlobalEnums'; import { - FIELD_REPORT_STATUS_EARLY_WARNING, + type CategoryType, DISASTER_TYPE_EPIDEMIC, + FIELD_REPORT_STATUS_EARLY_WARNING, type ReportType, - type CategoryType, } from '#utils/constants'; -import { joinList } from '#utils/common'; -import useGlobalEnums from '#hooks/domain/useGlobalEnums'; +import { getUserName } from '#utils/domain/user'; +import { useRequest } from '#utils/restRequest'; -import EarlyWarningNumericDetails from './EarlyWarningNumericDetails'; import CovidNumericDetails from './CovidNumericDetails'; +import EarlyWarningNumericDetails from './EarlyWarningNumericDetails'; import EpidemicNumericDetails from './EpidemicNumericDetails'; import EventNumericDetails from './EventNumericDetails'; diff --git a/src/views/FieldReportDetails/styles.module.css b/app/src/views/FieldReportDetails/styles.module.css similarity index 100% rename from src/views/FieldReportDetails/styles.module.css rename to app/src/views/FieldReportDetails/styles.module.css diff --git a/src/views/FieldReportForm/ActionsFields/i18n.json b/app/src/views/FieldReportForm/ActionsFields/i18n.json similarity index 100% rename from src/views/FieldReportForm/ActionsFields/i18n.json rename to app/src/views/FieldReportForm/ActionsFields/i18n.json diff --git a/src/views/FieldReportForm/ActionsFields/index.tsx b/app/src/views/FieldReportForm/ActionsFields/index.tsx similarity index 97% rename from src/views/FieldReportForm/ActionsFields/index.tsx rename to app/src/views/FieldReportForm/ActionsFields/index.tsx index 80b8c12701..4682448b1e 100644 --- a/src/views/FieldReportForm/ActionsFields/index.tsx +++ b/app/src/views/FieldReportForm/ActionsFields/index.tsx @@ -1,39 +1,39 @@ import React, { useMemo } from 'react'; import { - type Error, + Container, + InputSection, + MultiSelectInput, + NumberInput, + RadioInput, + TextArea, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + isDefined, + listToMap, +} from '@togglecorp/fujs'; +import { type EntriesAsList, + type Error, getErrorObject, getErrorString as listErrorToString, useFormArray, } from '@togglecorp/toggle-form'; -import { - listToMap, - isDefined, -} from '@togglecorp/fujs'; import NonFieldError from '#components/NonFieldError'; -import { type GoApiResponse } from '#utils/restRequest'; -import Container from '#components/Container'; -import MultiSelectInput from '#components/MultiSelectInput'; -import InputSection from '#components/InputSection'; -import NumberInput from '#components/NumberInput'; -import TextArea from '#components/TextArea'; -import RadioInput from '#components/RadioInput'; -import useTranslation from '#hooks/useTranslation'; import useGlobalEnums from '#hooks/domain/useGlobalEnums'; import { + type CategoryType, type OrganizationType, type ReportType, - type CategoryType, } from '#utils/constants'; +import { type GoApiResponse } from '#utils/restRequest'; +import { type PartialFormValue } from '../common'; import ActionInput, { type ActionValue } from '../EarlyActionsFields/ActionInput'; -import { - type PartialFormValue, -} from '../common'; -import styles from './styles.module.css'; import i18n from './i18n.json'; +import styles from './styles.module.css'; type ExternalPartnerOptions = GoApiResponse<'/api/v2/external_partner/'>['results']; type SupportedActivityOptions = GoApiResponse<'/api/v2/supported_activity/'>['results']; diff --git a/src/views/FieldReportForm/ActionsFields/styles.module.css b/app/src/views/FieldReportForm/ActionsFields/styles.module.css similarity index 100% rename from src/views/FieldReportForm/ActionsFields/styles.module.css rename to app/src/views/FieldReportForm/ActionsFields/styles.module.css diff --git a/src/views/FieldReportForm/ContextFields/i18n.json b/app/src/views/FieldReportForm/ContextFields/i18n.json similarity index 100% rename from src/views/FieldReportForm/ContextFields/i18n.json rename to app/src/views/FieldReportForm/ContextFields/i18n.json diff --git a/src/views/FieldReportForm/ContextFields/index.tsx b/app/src/views/FieldReportForm/ContextFields/index.tsx similarity index 96% rename from src/views/FieldReportForm/ContextFields/index.tsx rename to app/src/views/FieldReportForm/ContextFields/index.tsx index 0533f80acc..bf966e361b 100644 --- a/src/views/FieldReportForm/ContextFields/index.tsx +++ b/app/src/views/FieldReportForm/ContextFields/index.tsx @@ -1,30 +1,38 @@ -import { useCallback, useMemo } from 'react'; -import { isNotDefined, isTruthyString } from '@togglecorp/fujs'; import { - type Error, + useCallback, + useMemo, +} from 'react'; +import { + BooleanInput, + Container, + DateInput, + InputSection, + RadioInput, + TextInput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + isNotDefined, + isTruthyString, +} from '@togglecorp/fujs'; +import { type EntriesAsList, + type Error, getErrorObject, getErrorString, } from '@togglecorp/toggle-form'; -import Container from '#components/Container'; -import InputSection from '#components/InputSection'; -import RadioInput from '#components/RadioInput'; -import BooleanInput from '#components/BooleanInput'; -import DateInput from '#components/DateInput'; -import TextInput from '#components/TextInput'; -import useGlobalEnums from '#hooks/domain/useGlobalEnums'; import CountrySelectInput from '#components/domain/CountrySelectInput'; import DisasterTypeSelectInput, { type DisasterTypeItem } from '#components/domain/DisasterTypeSelectInput'; import DistrictSearchMultiSelectInput, { type DistrictItem } from '#components/domain/DistrictSearchMultiSelectInput'; import EventSearchSelectInput, { type EventItem } from '#components/domain/EventSearchSelectInput'; -import useTranslation from '#hooks/useTranslation'; +import useGlobalEnums from '#hooks/domain/useGlobalEnums'; import { DISASTER_TYPE_EPIDEMIC, FIELD_REPORT_STATUS_EARLY_WARNING, FIELD_REPORT_STATUS_EVENT, - type ReportType, type FieldReportStatusEnum, + type ReportType, } from '#utils/constants'; import { type PartialFormValue } from '../common'; diff --git a/src/views/FieldReportForm/ContextFields/styles.module.css b/app/src/views/FieldReportForm/ContextFields/styles.module.css similarity index 100% rename from src/views/FieldReportForm/ContextFields/styles.module.css rename to app/src/views/FieldReportForm/ContextFields/styles.module.css diff --git a/src/views/FieldReportForm/EarlyActionsFields/ActionInput/i18n.json b/app/src/views/FieldReportForm/EarlyActionsFields/ActionInput/i18n.json similarity index 100% rename from src/views/FieldReportForm/EarlyActionsFields/ActionInput/i18n.json rename to app/src/views/FieldReportForm/EarlyActionsFields/ActionInput/i18n.json diff --git a/src/views/FieldReportForm/EarlyActionsFields/ActionInput/index.tsx b/app/src/views/FieldReportForm/EarlyActionsFields/ActionInput/index.tsx similarity index 97% rename from src/views/FieldReportForm/EarlyActionsFields/ActionInput/index.tsx rename to app/src/views/FieldReportForm/EarlyActionsFields/ActionInput/index.tsx index 1a9237f11c..ec54c0327b 100644 --- a/src/views/FieldReportForm/EarlyActionsFields/ActionInput/index.tsx +++ b/app/src/views/FieldReportForm/EarlyActionsFields/ActionInput/index.tsx @@ -1,27 +1,29 @@ import React from 'react'; +import { + Checklist, + Container, + TextArea, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { type Error, getErrorObject, + getErrorString as listErrorToString, type SetValueArg, useFormObject, - getErrorString as listErrorToString, } from '@togglecorp/toggle-form'; import NonFieldError from '#components/NonFieldError'; -import useTranslation from '#hooks/useTranslation'; -import Container from '#components/Container'; -import TextArea from '#components/TextArea'; -import Checklist from '#components/Checklist'; import { + type CategoryType, type OrganizationType, type ReportType, - type CategoryType, } from '#utils/constants'; import { type PartialFormValue } from '../../common'; -import styles from './styles.module.css'; import i18n from './i18n.json'; +import styles from './styles.module.css'; export type ActionValue = NonNullable[number]; diff --git a/src/views/FieldReportForm/EarlyActionsFields/ActionInput/styles.module.css b/app/src/views/FieldReportForm/EarlyActionsFields/ActionInput/styles.module.css similarity index 100% rename from src/views/FieldReportForm/EarlyActionsFields/ActionInput/styles.module.css rename to app/src/views/FieldReportForm/EarlyActionsFields/ActionInput/styles.module.css diff --git a/src/views/FieldReportForm/EarlyActionsFields/i18n.json b/app/src/views/FieldReportForm/EarlyActionsFields/i18n.json similarity index 100% rename from src/views/FieldReportForm/EarlyActionsFields/i18n.json rename to app/src/views/FieldReportForm/EarlyActionsFields/i18n.json diff --git a/src/views/FieldReportForm/EarlyActionsFields/index.tsx b/app/src/views/FieldReportForm/EarlyActionsFields/index.tsx similarity index 95% rename from src/views/FieldReportForm/EarlyActionsFields/index.tsx rename to app/src/views/FieldReportForm/EarlyActionsFields/index.tsx index 6bc18e6b59..b25b1baa1f 100644 --- a/src/views/FieldReportForm/EarlyActionsFields/index.tsx +++ b/app/src/views/FieldReportForm/EarlyActionsFields/index.tsx @@ -1,29 +1,34 @@ import React, { useMemo } from 'react'; import { - type Error, + Container, + InputSection, + NumberInput, + RadioInput, + TextArea, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + isDefined, + listToMap, +} from '@togglecorp/fujs'; +import { type EntriesAsList, + type Error, getErrorObject, useFormArray, } from '@togglecorp/toggle-form'; -import { isDefined, listToMap } from '@togglecorp/fujs'; import NonFieldError from '#components/NonFieldError'; -import Container from '#components/Container'; -import InputSection from '#components/InputSection'; -import NumberInput from '#components/NumberInput'; -import TextArea from '#components/TextArea'; -import RadioInput from '#components/RadioInput'; -import useTranslation from '#hooks/useTranslation'; import useGlobalEnums from '#hooks/domain/useGlobalEnums'; import { + type CategoryType, type OrganizationType, type ReportType, - type CategoryType, } from '#utils/constants'; import { type PartialFormValue } from '../common'; - import ActionInput, { type ActionValue } from './ActionInput'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/FieldReportForm/EarlyActionsFields/styles.module.css b/app/src/views/FieldReportForm/EarlyActionsFields/styles.module.css similarity index 100% rename from src/views/FieldReportForm/EarlyActionsFields/styles.module.css rename to app/src/views/FieldReportForm/EarlyActionsFields/styles.module.css diff --git a/src/views/FieldReportForm/ResponseFields/ContactInput/i18n.json b/app/src/views/FieldReportForm/ResponseFields/ContactInput/i18n.json similarity index 100% rename from src/views/FieldReportForm/ResponseFields/ContactInput/i18n.json rename to app/src/views/FieldReportForm/ResponseFields/ContactInput/i18n.json diff --git a/src/views/FieldReportForm/ResponseFields/ContactInput/index.tsx b/app/src/views/FieldReportForm/ResponseFields/ContactInput/index.tsx similarity index 96% rename from src/views/FieldReportForm/ResponseFields/ContactInput/index.tsx rename to app/src/views/FieldReportForm/ResponseFields/ContactInput/index.tsx index 29f1e2f8ec..051b97a333 100644 --- a/src/views/FieldReportForm/ResponseFields/ContactInput/index.tsx +++ b/app/src/views/FieldReportForm/ResponseFields/ContactInput/index.tsx @@ -1,4 +1,6 @@ import React from 'react'; +import { TextInput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { type Error, getErrorObject, @@ -6,9 +8,7 @@ import { useFormObject, } from '@togglecorp/toggle-form'; -import useTranslation from '#hooks/useTranslation'; import NonFieldError from '#components/NonFieldError'; -import TextInput from '#components/TextInput'; import { type ContactType } from '#utils/constants'; import { type PartialFormValue } from '../../common'; diff --git a/src/views/FieldReportForm/ResponseFields/i18n.json b/app/src/views/FieldReportForm/ResponseFields/i18n.json similarity index 100% rename from src/views/FieldReportForm/ResponseFields/i18n.json rename to app/src/views/FieldReportForm/ResponseFields/i18n.json diff --git a/src/views/FieldReportForm/ResponseFields/index.tsx b/app/src/views/FieldReportForm/ResponseFields/index.tsx similarity index 97% rename from src/views/FieldReportForm/ResponseFields/index.tsx rename to app/src/views/FieldReportForm/ResponseFields/index.tsx index b9c725d139..6142f5c6bf 100644 --- a/src/views/FieldReportForm/ResponseFields/index.tsx +++ b/app/src/views/FieldReportForm/ResponseFields/index.tsx @@ -1,33 +1,39 @@ import React, { useMemo } from 'react'; -import { listToMap, isDefined } from '@togglecorp/fujs'; import { - type Error, + Container, + InputSection, + NumberInput, + RadioInput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToString } from '@ifrc-go/ui/utils'; +import { + isDefined, + listToMap, +} from '@togglecorp/fujs'; +import { type EntriesAsList, + type Error, getErrorObject, useFormArray, } from '@togglecorp/toggle-form'; import NonFieldError from '#components/NonFieldError'; -import Container from '#components/Container'; -import InputSection from '#components/InputSection'; -import NumberInput from '#components/NumberInput'; -import RadioInput from '#components/RadioInput'; -import useTranslation from '#hooks/useTranslation'; -import useUserMe from '#hooks/domain/useUserMe'; import useGlobalEnums from '#hooks/domain/useGlobalEnums'; +import useUserMe from '#hooks/domain/useUserMe'; import { - type ReportType, type ContactType, + type ReportType, REQUEST_CHOICES_NO, + VISIBILITY_IFRC_NS, VISIBILITY_IFRC_SECRETARIAT, VISIBILITY_PUBLIC, VISIBILITY_RCRC_MOVEMENT, - VISIBILITY_IFRC_NS, } from '#utils/constants'; -import { resolveToString } from '#utils/translation'; import { type PartialFormValue } from '../common'; import ContactInput, { type ContactValue } from './ContactInput'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/FieldReportForm/ResponseFields/styles.module.css b/app/src/views/FieldReportForm/ResponseFields/styles.module.css similarity index 100% rename from src/views/FieldReportForm/ResponseFields/styles.module.css rename to app/src/views/FieldReportForm/ResponseFields/styles.module.css diff --git a/src/views/FieldReportForm/RiskAnalysisFields/i18n.json b/app/src/views/FieldReportForm/RiskAnalysisFields/i18n.json similarity index 100% rename from src/views/FieldReportForm/RiskAnalysisFields/i18n.json rename to app/src/views/FieldReportForm/RiskAnalysisFields/i18n.json diff --git a/src/views/FieldReportForm/RiskAnalysisFields/index.tsx b/app/src/views/FieldReportForm/RiskAnalysisFields/index.tsx similarity index 95% rename from src/views/FieldReportForm/RiskAnalysisFields/index.tsx rename to app/src/views/FieldReportForm/RiskAnalysisFields/index.tsx index e820a1acbb..0ed3e2b358 100644 --- a/src/views/FieldReportForm/RiskAnalysisFields/index.tsx +++ b/app/src/views/FieldReportForm/RiskAnalysisFields/index.tsx @@ -1,18 +1,20 @@ import React from 'react'; import { - type Error, + Container, + InputSection, + NumberInput, + TextArea, + TextInput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { type EntriesAsList, + type Error, getErrorObject, } from '@togglecorp/toggle-form'; -import Container from '#components/Container'; -import InputSection from '#components/InputSection'; -import TextInput from '#components/TextInput'; -import NumberInput from '#components/NumberInput'; -import TextArea from '#components/TextArea'; -import useTranslation from '#hooks/useTranslation'; - import { type PartialFormValue } from '../common'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/FieldReportForm/RiskAnalysisFields/styles.module.css b/app/src/views/FieldReportForm/RiskAnalysisFields/styles.module.css similarity index 100% rename from src/views/FieldReportForm/RiskAnalysisFields/styles.module.css rename to app/src/views/FieldReportForm/RiskAnalysisFields/styles.module.css diff --git a/src/views/FieldReportForm/SituationFields/i18n.json b/app/src/views/FieldReportForm/SituationFields/i18n.json similarity index 100% rename from src/views/FieldReportForm/SituationFields/i18n.json rename to app/src/views/FieldReportForm/SituationFields/i18n.json diff --git a/src/views/FieldReportForm/SituationFields/index.tsx b/app/src/views/FieldReportForm/SituationFields/index.tsx similarity index 98% rename from src/views/FieldReportForm/SituationFields/index.tsx rename to app/src/views/FieldReportForm/SituationFields/index.tsx index 427c08c4fb..236b5684f8 100644 --- a/src/views/FieldReportForm/SituationFields/index.tsx +++ b/app/src/views/FieldReportForm/SituationFields/index.tsx @@ -1,22 +1,25 @@ import { useMemo } from 'react'; import { - type Error, + Container, + DateInput, + InputSection, + NumberInput, + SelectInput, + TextArea, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { type EntriesAsList, + type Error, getErrorObject, } from '@togglecorp/toggle-form'; -import Container from '#components/Container'; -import InputSection from '#components/InputSection'; -import NumberInput from '#components/NumberInput'; -import TextArea from '#components/TextArea'; import RichTextArea from '#components/RichTextArea'; -import DateInput from '#components/DateInput'; -import SelectInput from '#components/SelectInput'; -import useTranslation from '#hooks/useTranslation'; import useGlobalEnums from '#hooks/domain/useGlobalEnums'; import { type ReportType } from '#utils/constants'; import { type PartialFormValue } from '../common'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/FieldReportForm/SituationFields/styles.module.css b/app/src/views/FieldReportForm/SituationFields/styles.module.css similarity index 100% rename from src/views/FieldReportForm/SituationFields/styles.module.css rename to app/src/views/FieldReportForm/SituationFields/styles.module.css diff --git a/src/views/FieldReportForm/common.ts b/app/src/views/FieldReportForm/common.ts similarity index 99% rename from src/views/FieldReportForm/common.ts rename to app/src/views/FieldReportForm/common.ts index 658e27a686..a6133d4c73 100644 --- a/src/views/FieldReportForm/common.ts +++ b/app/src/views/FieldReportForm/common.ts @@ -1,31 +1,34 @@ -import { isDefined, isNotDefined } from '@togglecorp/fujs'; +import { type DeepReplace } from '@ifrc-go/ui/utils'; import { + isDefined, + isNotDefined, +} from '@togglecorp/fujs'; +import { + addCondition, + analyzeErrors, type ArraySchema, + emailCondition, + type Error, + getErrorObject, + nullValue, type ObjectSchema, type PartialForm, type PurgeNull, - type Error, requiredStringCondition, - addCondition, - nullValue, undefinedValue, - emailCondition, - analyzeErrors, - getErrorObject, } from '@togglecorp/toggle-form'; -import { - positiveIntegerCondition, - nonZeroCondition, -} from '#utils/form'; -import { type DeepReplace } from '#utils/common'; import { type ContactType, - type FieldReportStatusEnum, + DISASTER_TYPE_EPIDEMIC, FIELD_REPORT_STATUS_EARLY_WARNING, FIELD_REPORT_STATUS_EVENT, - DISASTER_TYPE_EPIDEMIC, + type FieldReportStatusEnum, } from '#utils/constants'; +import { + nonZeroCondition, + positiveIntegerCondition, +} from '#utils/form'; import { type GoApiResponse } from '#utils/restRequest'; // FORM diff --git a/src/views/FieldReportForm/i18n.json b/app/src/views/FieldReportForm/i18n.json similarity index 100% rename from src/views/FieldReportForm/i18n.json rename to app/src/views/FieldReportForm/i18n.json diff --git a/src/views/FieldReportForm/index.tsx b/app/src/views/FieldReportForm/index.tsx similarity index 98% rename from src/views/FieldReportForm/index.tsx rename to app/src/views/FieldReportForm/index.tsx index 1d07198ad5..0941740256 100644 --- a/src/views/FieldReportForm/index.tsx +++ b/app/src/views/FieldReportForm/index.tsx @@ -1,85 +1,88 @@ import { - useState, + type ElementRef, useCallback, useMemo, useRef, - type ElementRef, + useState, } from 'react'; import { - useParams, useLocation, + useParams, } from 'react-router-dom'; +import { + Button, + Message, + Tab, + TabList, + TabPanel, + Tabs, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { formatDate } from '@ifrc-go/ui/utils'; import { isDefined, - isNotDefined, isFalsyString, + isNotDefined, isTruthyString, listToGroupList, } from '@togglecorp/fujs'; import { - useForm, createSubmitHandler, removeNull, + useForm, } from '@togglecorp/toggle-form'; -import useRouting from '#hooks/useRouting'; -import { - transformObjectError, - matchArray, - NUM, -} from '#utils/restRequest/error'; -import Button from '#components/Button'; -import NonFieldError from '#components/NonFieldError'; -import Tab from '#components/Tabs/Tab'; -import Tabs from '#components/Tabs'; -import TabList from '#components/Tabs/TabList'; -import TabPanel from '#components/Tabs/TabPanel'; -import Page from '#components/Page'; -import Message from '#components/Message'; -import LanguageMismatchMessage from '#components/domain/LanguageMismatchMessage'; -import FormFailedToLoadMessage from '#components/domain/FormFailedToLoadMessage'; import { type DistrictItem } from '#components/domain/DistrictSearchMultiSelectInput'; import { type EventItem } from '#components/domain/EventSearchSelectInput'; -import useAlert from '#hooks/useAlert'; -import useTranslation from '#hooks/useTranslation'; +import FormFailedToLoadMessage from '#components/domain/FormFailedToLoadMessage'; +import LanguageMismatchMessage from '#components/domain/LanguageMismatchMessage'; +import NonFieldError from '#components/NonFieldError'; +import Page from '#components/Page'; import useCountryRaw from '#hooks/domain/useCountryRaw'; -import useDisasterType from '#hooks/domain/useDisasterType'; import useCurrentLanguage from '#hooks/domain/useCurrentLanguage'; +import useDisasterType from '#hooks/domain/useDisasterType'; +import useAlert from '#hooks/useAlert'; +import useRouting from '#hooks/useRouting'; import { - formatDate, -} from '#utils/common'; -import { useRequest, useLazyRequest } from '#utils/restRequest'; -import { - type FieldReportStatusEnum, - type ReportType, - type OrganizationType, + BULLETIN_PUBLISHED_NO, + DISASTER_TYPE_EPIDEMIC, FIELD_REPORT_STATUS_EARLY_WARNING, FIELD_REPORT_STATUS_EVENT, + type FieldReportStatusEnum, + type OrganizationType, + type ReportType, VISIBILITY_PUBLIC, - BULLETIN_PUBLISHED_NO, - DISASTER_TYPE_EPIDEMIC, } from '#utils/constants'; +import { + useLazyRequest, + useRequest, +} from '#utils/restRequest'; +import { + matchArray, + NUM, + transformObjectError, +} from '#utils/restRequest/error'; -import ContextFields from './ContextFields'; -import RiskAnalysisFields from './RiskAnalysisFields'; -import SituationFields from './SituationFields'; -import EarlyActionsFields from './EarlyActionsFields'; import ActionsFields from './ActionsFields'; -import ResponseFields from './ResponseFields'; - import { - reportSchema, - transformAPIFieldsToFormFields, - transformFormFieldsToAPIFields, + checkTabErrors, type FieldReportBody, type FieldReportPostBody, - type PartialFormValue, type FormValue, + type PartialFormValue, + reportSchema, type TabKeys, - checkTabErrors, + transformAPIFieldsToFormFields, + transformFormFieldsToAPIFields, } from './common'; -import styles from './styles.module.css'; +import ContextFields from './ContextFields'; +import EarlyActionsFields from './EarlyActionsFields'; +import ResponseFields from './ResponseFields'; +import RiskAnalysisFields from './RiskAnalysisFields'; +import SituationFields from './SituationFields'; + import i18n from './i18n.json'; +import styles from './styles.module.css'; interface Part { value: string | null | undefined; diff --git a/src/views/FieldReportForm/styles.module.css b/app/src/views/FieldReportForm/styles.module.css similarity index 100% rename from src/views/FieldReportForm/styles.module.css rename to app/src/views/FieldReportForm/styles.module.css diff --git a/src/views/FlashUpdateDetails/FlashUpdateExportModal/i18n.json b/app/src/views/FlashUpdateDetails/FlashUpdateExportModal/i18n.json similarity index 100% rename from src/views/FlashUpdateDetails/FlashUpdateExportModal/i18n.json rename to app/src/views/FlashUpdateDetails/FlashUpdateExportModal/i18n.json diff --git a/src/views/FlashUpdateDetails/FlashUpdateExportModal/index.tsx b/app/src/views/FlashUpdateDetails/FlashUpdateExportModal/index.tsx similarity index 93% rename from src/views/FlashUpdateDetails/FlashUpdateExportModal/index.tsx rename to app/src/views/FlashUpdateDetails/FlashUpdateExportModal/index.tsx index 01edb68cf8..19a67cfd9c 100644 --- a/src/views/FlashUpdateDetails/FlashUpdateExportModal/index.tsx +++ b/app/src/views/FlashUpdateDetails/FlashUpdateExportModal/index.tsx @@ -1,10 +1,12 @@ +import { + Message, + Modal, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { isDefined } from '@togglecorp/fujs'; import Link from '#components/Link'; -import Message from '#components/Message'; -import Modal from '#components/Modal'; import { useRequest } from '#utils/restRequest'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/FlashUpdateDetails/FlashUpdateShareModal/i18n.json b/app/src/views/FlashUpdateDetails/FlashUpdateShareModal/i18n.json similarity index 100% rename from src/views/FlashUpdateDetails/FlashUpdateShareModal/i18n.json rename to app/src/views/FlashUpdateDetails/FlashUpdateShareModal/i18n.json diff --git a/src/views/FlashUpdateDetails/FlashUpdateShareModal/index.tsx b/app/src/views/FlashUpdateDetails/FlashUpdateShareModal/index.tsx similarity index 92% rename from src/views/FlashUpdateDetails/FlashUpdateShareModal/index.tsx rename to app/src/views/FlashUpdateDetails/FlashUpdateShareModal/index.tsx index 309694a476..ef002e8df0 100644 --- a/src/views/FlashUpdateDetails/FlashUpdateShareModal/index.tsx +++ b/app/src/views/FlashUpdateDetails/FlashUpdateShareModal/index.tsx @@ -1,19 +1,24 @@ import { useCallback } from 'react'; +import { + Button, + Message, + Modal, + MultiSelectInput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + numericIdSelector, + stringNameSelector, +} from '@ifrc-go/ui/utils'; import { isDefined } from '@togglecorp/fujs'; -import Button from '#components/Button'; -import Modal from '#components/Modal'; -import Message from '#components/Message'; -import MultiSelectInput from '#components/MultiSelectInput'; import useAlert from '#hooks/useAlert'; import useInputState from '#hooks/useInputState'; import { - useRequest, - useLazyRequest, GoApiBody, + useLazyRequest, + useRequest, } from '#utils/restRequest'; -import { numericIdSelector, stringNameSelector } from '#utils/selectors'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/FlashUpdateDetails/FlashUpdateShareModal/styles.module.css b/app/src/views/FlashUpdateDetails/FlashUpdateShareModal/styles.module.css similarity index 100% rename from src/views/FlashUpdateDetails/FlashUpdateShareModal/styles.module.css rename to app/src/views/FlashUpdateDetails/FlashUpdateShareModal/styles.module.css diff --git a/src/views/FlashUpdateDetails/i18n.json b/app/src/views/FlashUpdateDetails/i18n.json similarity index 100% rename from src/views/FlashUpdateDetails/i18n.json rename to app/src/views/FlashUpdateDetails/i18n.json diff --git a/src/views/FlashUpdateDetails/index.tsx b/app/src/views/FlashUpdateDetails/index.tsx similarity index 95% rename from src/views/FlashUpdateDetails/index.tsx rename to app/src/views/FlashUpdateDetails/index.tsx index 2cc2251590..f1e90965a5 100644 --- a/src/views/FlashUpdateDetails/index.tsx +++ b/app/src/views/FlashUpdateDetails/index.tsx @@ -1,33 +1,44 @@ -import { Fragment, useMemo } from 'react'; +import { + Fragment, + useMemo, +} from 'react'; import { useParams } from 'react-router-dom'; +import { + DownloadLineIcon, + PencilFillIcon, +} from '@ifrc-go/icons'; +import { + Breadcrumbs, + Button, + Container, + DateOutput, + HtmlOutput, + Image, + Message, + TextOutput, +} from '@ifrc-go/ui'; +import { + useBooleanState, + useTranslation, +} from '@ifrc-go/ui/hooks'; import { isDefined, isFalsyString, isNotDefined, isTruthyString, } from '@togglecorp/fujs'; -import { PencilFillIcon, DownloadLineIcon } from '@ifrc-go/icons'; +import DetailsFailedToLoadMessage from '#components/domain/DetailsFailedToLoadMessage'; import Link from '#components/Link'; import Page from '#components/Page'; -import Button from '#components/Button'; -import Breadcrumbs from '#components/Breadcrumbs'; -import Container from '#components/Container'; -import Image from '#components/Image'; -import Message from '#components/Message'; -import DetailsFailedToLoadMessage from '#components/domain/DetailsFailedToLoadMessage'; -import TextOutput from '#components/TextOutput'; -import DateOutput from '#components/DateOutput'; -import HtmlOutput from '#components/HtmlOutput'; -import useTranslation from '#hooks/useTranslation'; -import useBooleanState from '#hooks/useBooleanState'; import { useRequest } from '#utils/restRequest'; -import i18n from './i18n.json'; -import styles from './styles.module.css'; import FlashUpdateExportModal from './FlashUpdateExportModal'; import FlashUpdateShareModal from './FlashUpdateShareModal'; +import i18n from './i18n.json'; +import styles from './styles.module.css'; + // eslint-disable-next-line import/prefer-default-export export function Component() { const strings = useTranslation(i18n); diff --git a/src/views/FlashUpdateDetails/styles.module.css b/app/src/views/FlashUpdateDetails/styles.module.css similarity index 100% rename from src/views/FlashUpdateDetails/styles.module.css rename to app/src/views/FlashUpdateDetails/styles.module.css diff --git a/src/views/FlashUpdateForm/ActionsTab/ActionInput/index.tsx b/app/src/views/FlashUpdateForm/ActionsTab/ActionInput/index.tsx similarity index 96% rename from src/views/FlashUpdateForm/ActionsTab/ActionInput/index.tsx rename to app/src/views/FlashUpdateForm/ActionsTab/ActionInput/index.tsx index b634909cdd..6ff572b5c1 100644 --- a/src/views/FlashUpdateForm/ActionsTab/ActionInput/index.tsx +++ b/app/src/views/FlashUpdateForm/ActionsTab/ActionInput/index.tsx @@ -1,18 +1,21 @@ +import { + Checklist, + TextArea, +} from '@ifrc-go/ui'; +import { randomString } from '@togglecorp/fujs'; import { ArrayError, + getErrorObject, getErrorString, - useFormObject, SetValueArg, - getErrorObject, + useFormObject, } from '@togglecorp/toggle-form'; -import { randomString } from '@togglecorp/fujs'; import NonFieldError from '#components/NonFieldError'; -import Checklist from '#components/Checklist'; -import TextArea from '#components/TextArea'; import { type GoApiResponse } from '#utils/restRequest'; import { type PartialActionTaken } from '../../schema'; + import styles from './styles.module.css'; type ActionsResponse = GoApiResponse<'/api/v2/flash-update-action/'>; diff --git a/src/views/FlashUpdateForm/ActionsTab/ActionInput/styles.module.css b/app/src/views/FlashUpdateForm/ActionsTab/ActionInput/styles.module.css similarity index 100% rename from src/views/FlashUpdateForm/ActionsTab/ActionInput/styles.module.css rename to app/src/views/FlashUpdateForm/ActionsTab/ActionInput/styles.module.css diff --git a/src/views/FlashUpdateForm/ActionsTab/i18n.json b/app/src/views/FlashUpdateForm/ActionsTab/i18n.json similarity index 100% rename from src/views/FlashUpdateForm/ActionsTab/i18n.json rename to app/src/views/FlashUpdateForm/ActionsTab/i18n.json diff --git a/src/views/FlashUpdateForm/ActionsTab/index.tsx b/app/src/views/FlashUpdateForm/ActionsTab/index.tsx similarity index 97% rename from src/views/FlashUpdateForm/ActionsTab/index.tsx rename to app/src/views/FlashUpdateForm/ActionsTab/index.tsx index 7f49fbf23a..0bcfc2d519 100644 --- a/src/views/FlashUpdateForm/ActionsTab/index.tsx +++ b/app/src/views/FlashUpdateForm/ActionsTab/index.tsx @@ -1,28 +1,30 @@ import { useMemo } from 'react'; +import { + Container, + InputSection, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { type EntriesAsList, type Error, - useFormArray, getErrorObject, + useFormArray, } from '@togglecorp/toggle-form'; import NonFieldError from '#components/NonFieldError'; -import Container from '#components/Container'; -import useTranslation from '#hooks/useTranslation'; -import InputSection from '#components/InputSection'; import { - useRequest, type GoApiResponse, + useRequest, } from '#utils/restRequest'; import { type FormType, type PartialActionTaken, } from '../schema'; -import i18n from './i18n.json'; - import ActionInput from './ActionInput'; +import i18n from './i18n.json'; + type ActionsResponse = GoApiResponse<'/api/v2/flash-update-action/'>; type Action = NonNullable[number]; diff --git a/src/views/FlashUpdateForm/ContextTab/CountryProvinceInput/i18n.json b/app/src/views/FlashUpdateForm/ContextTab/CountryProvinceInput/i18n.json similarity index 100% rename from src/views/FlashUpdateForm/ContextTab/CountryProvinceInput/i18n.json rename to app/src/views/FlashUpdateForm/ContextTab/CountryProvinceInput/i18n.json diff --git a/src/views/FlashUpdateForm/ContextTab/CountryProvinceInput/index.tsx b/app/src/views/FlashUpdateForm/ContextTab/CountryProvinceInput/index.tsx similarity index 93% rename from src/views/FlashUpdateForm/ContextTab/CountryProvinceInput/index.tsx rename to app/src/views/FlashUpdateForm/ContextTab/CountryProvinceInput/index.tsx index fab5707a46..08bd6d5c53 100644 --- a/src/views/FlashUpdateForm/ContextTab/CountryProvinceInput/index.tsx +++ b/app/src/views/FlashUpdateForm/ContextTab/CountryProvinceInput/index.tsx @@ -1,27 +1,25 @@ import { - useCallback, - type SetStateAction, type Dispatch, + type SetStateAction, + useCallback, } from 'react'; +import { DeleteBinLineIcon } from '@ifrc-go/icons'; +import { IconButton } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { randomString } from '@togglecorp/fujs'; import { type ArrayError, getErrorObject, getErrorString, } from '@togglecorp/toggle-form'; -import { DeleteBinLineIcon } from '@ifrc-go/icons'; -import NonFieldError from '#components/NonFieldError'; -import IconButton from '#components/IconButton'; import CountrySelectInput from '#components/domain/CountrySelectInput'; -import useTranslation from '#hooks/useTranslation'; -import DistrictSearchMultiSelectInput, { - type DistrictItem, -} from '#components/domain/DistrictSearchMultiSelectInput'; +import DistrictSearchMultiSelectInput, { type DistrictItem } from '#components/domain/DistrictSearchMultiSelectInput'; +import NonFieldError from '#components/NonFieldError'; -import i18n from './i18n.json'; import { PartialCountryDistrict } from '../../schema'; +import i18n from './i18n.json'; import styles from './styles.module.css'; interface Props { diff --git a/src/views/FlashUpdateForm/ContextTab/CountryProvinceInput/styles.module.css b/app/src/views/FlashUpdateForm/ContextTab/CountryProvinceInput/styles.module.css similarity index 100% rename from src/views/FlashUpdateForm/ContextTab/CountryProvinceInput/styles.module.css rename to app/src/views/FlashUpdateForm/ContextTab/CountryProvinceInput/styles.module.css diff --git a/src/views/FlashUpdateForm/ContextTab/ReferenceInput/i18n.json b/app/src/views/FlashUpdateForm/ContextTab/ReferenceInput/i18n.json similarity index 100% rename from src/views/FlashUpdateForm/ContextTab/ReferenceInput/i18n.json rename to app/src/views/FlashUpdateForm/ContextTab/ReferenceInput/i18n.json diff --git a/src/views/FlashUpdateForm/ContextTab/ReferenceInput/index.tsx b/app/src/views/FlashUpdateForm/ContextTab/ReferenceInput/index.tsx similarity index 95% rename from src/views/FlashUpdateForm/ContextTab/ReferenceInput/index.tsx rename to app/src/views/FlashUpdateForm/ContextTab/ReferenceInput/index.tsx index 58b966e688..ede19f26c4 100644 --- a/src/views/FlashUpdateForm/ContextTab/ReferenceInput/index.tsx +++ b/app/src/views/FlashUpdateForm/ContextTab/ReferenceInput/index.tsx @@ -1,19 +1,21 @@ import React from 'react'; +import { DeleteBinLineIcon } from '@ifrc-go/icons'; +import { + DateInput, + IconButton, + TextInput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { randomString } from '@togglecorp/fujs'; import { - useFormObject, + type ArrayError, getErrorObject, type SetValueArg, - type ArrayError, + useFormObject, } from '@togglecorp/toggle-form'; -import { DeleteBinLineIcon } from '@ifrc-go/icons'; -import DateInput from '#components/DateInput'; -import NonFieldError from '#components/NonFieldError'; -import TextInput from '#components/TextInput'; -import IconButton from '#components/IconButton'; import GoSingleFileInput from '#components/domain/GoSingleFileInput'; -import useTranslation from '#hooks/useTranslation'; +import NonFieldError from '#components/NonFieldError'; import { PartialReferenceType } from '../../schema'; diff --git a/src/views/FlashUpdateForm/ContextTab/ReferenceInput/styles.module.css b/app/src/views/FlashUpdateForm/ContextTab/ReferenceInput/styles.module.css similarity index 100% rename from src/views/FlashUpdateForm/ContextTab/ReferenceInput/styles.module.css rename to app/src/views/FlashUpdateForm/ContextTab/ReferenceInput/styles.module.css diff --git a/src/views/FlashUpdateForm/ContextTab/i18n.json b/app/src/views/FlashUpdateForm/ContextTab/i18n.json similarity index 100% rename from src/views/FlashUpdateForm/ContextTab/i18n.json rename to app/src/views/FlashUpdateForm/ContextTab/i18n.json diff --git a/src/views/FlashUpdateForm/ContextTab/index.tsx b/app/src/views/FlashUpdateForm/ContextTab/index.tsx similarity index 97% rename from src/views/FlashUpdateForm/ContextTab/index.tsx rename to app/src/views/FlashUpdateForm/ContextTab/index.tsx index 1160b6207f..1a34c4c8ee 100644 --- a/src/views/FlashUpdateForm/ContextTab/index.tsx +++ b/app/src/views/FlashUpdateForm/ContextTab/index.tsx @@ -1,43 +1,46 @@ import { + type Dispatch, + type SetStateAction, useCallback, useMemo, - type SetStateAction, - type Dispatch, } from 'react'; +import { + Button, + Container, + InputSection, + TextInput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { getCurrentMonthYear } from '@ifrc-go/ui/utils'; import { isDefined, listToMap, randomString, } from '@togglecorp/fujs'; import { - useFormArray, - getErrorObject, type EntriesAsList, type Error, + getErrorObject, + useFormArray, } from '@togglecorp/toggle-form'; -import Container from '#components/Container'; -import InputSection from '#components/InputSection'; import DisasterTypeSelectInput from '#components/domain/DisasterTypeSelectInput'; +import { type DistrictItem } from '#components/domain/DistrictSearchMultiSelectInput'; +import MultiImageWithCaptionInput from '#components/domain/MultiImageWithCaptionInput'; +import NonFieldError from '#components/NonFieldError'; import RichTextArea from '#components/RichTextArea'; -import useTranslation from '#hooks/useTranslation'; import useCountry from '#hooks/domain/useCountry'; import useDisasterType from '#hooks/domain/useDisasterType'; -import TextInput from '#components/TextInput'; -import Button from '#components/Button'; -import NonFieldError from '#components/NonFieldError'; -import { type DistrictItem } from '#components/domain/DistrictSearchMultiSelectInput'; -import { getCurrentMonthYear } from '#utils/common'; -import MultiImageWithCaptionInput from '#components/domain/MultiImageWithCaptionInput'; -import i18n from './i18n.json'; -import ReferenceInput from './ReferenceInput'; -import CountryProvinceInput from './CountryProvinceInput'; import { type FormType, - type PartialReferenceType, type PartialCountryDistrict, + type PartialReferenceType, } from '../schema'; +import CountryProvinceInput from './CountryProvinceInput'; +import ReferenceInput from './ReferenceInput'; + +import i18n from './i18n.json'; interface Props { error: Error | undefined; diff --git a/src/views/FlashUpdateForm/FocalPointsTab/i18n.json b/app/src/views/FlashUpdateForm/FocalPointsTab/i18n.json similarity index 100% rename from src/views/FlashUpdateForm/FocalPointsTab/i18n.json rename to app/src/views/FlashUpdateForm/FocalPointsTab/i18n.json diff --git a/src/views/FlashUpdateForm/FocalPointsTab/index.tsx b/app/src/views/FlashUpdateForm/FocalPointsTab/index.tsx similarity index 95% rename from src/views/FlashUpdateForm/FocalPointsTab/index.tsx rename to app/src/views/FlashUpdateForm/FocalPointsTab/index.tsx index bb5db5080c..e134d8fd5e 100644 --- a/src/views/FlashUpdateForm/FocalPointsTab/index.tsx +++ b/app/src/views/FlashUpdateForm/FocalPointsTab/index.tsx @@ -1,18 +1,18 @@ +import { + Container, + InputSection, + TextInput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { EntriesAsList, Error, getErrorObject, } from '@togglecorp/toggle-form'; -import Container from '#components/Container'; -import InputSection from '#components/InputSection'; -import useTranslation from '#hooks/useTranslation'; -import TextInput from '#components/TextInput'; +import { FormType } from '../schema'; import i18n from './i18n.json'; -import { - FormType, -} from '../schema'; interface Props { error: Error | undefined; diff --git a/src/views/FlashUpdateForm/common.ts b/app/src/views/FlashUpdateForm/common.ts similarity index 97% rename from src/views/FlashUpdateForm/common.ts rename to app/src/views/FlashUpdateForm/common.ts index 610cb1d758..c9f37a6262 100644 --- a/src/views/FlashUpdateForm/common.ts +++ b/app/src/views/FlashUpdateForm/common.ts @@ -1,12 +1,11 @@ import { isNotDefined } from '@togglecorp/fujs'; import { analyzeErrors, - getErrorObject, type Error, + getErrorObject, } from '@togglecorp/toggle-form'; -import { - type FormType, -} from './schema'; + +import { type FormType } from './schema'; export type TabKeys = 'context' | 'actions' | 'focal'; diff --git a/src/views/FlashUpdateForm/i18n.json b/app/src/views/FlashUpdateForm/i18n.json similarity index 100% rename from src/views/FlashUpdateForm/i18n.json rename to app/src/views/FlashUpdateForm/i18n.json diff --git a/src/views/FlashUpdateForm/index.tsx b/app/src/views/FlashUpdateForm/index.tsx similarity index 98% rename from src/views/FlashUpdateForm/index.tsx rename to app/src/views/FlashUpdateForm/index.tsx index 3cb11ed78e..1c47456914 100644 --- a/src/views/FlashUpdateForm/index.tsx +++ b/app/src/views/FlashUpdateForm/index.tsx @@ -1,64 +1,67 @@ import { + type ElementRef, useCallback, - useState, useRef, - type ElementRef, + useState, } from 'react'; +import { useParams } from 'react-router-dom'; +import { + Button, + Message, + Tab, + TabList, + TabPanel, + Tabs, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { injectClientId } from '@ifrc-go/ui/utils'; import { - listToMap, - randomString, isDefined, - isNotDefined, isFalsyString, + isNotDefined, isTruthyString, + listToMap, + randomString, } from '@togglecorp/fujs'; import { - useForm, createSubmitHandler, removeNull, + useForm, } from '@togglecorp/toggle-form'; -import { useParams } from 'react-router-dom'; -import { - transformObjectError, - matchArray, - NUM, -} from '#utils/restRequest/error'; -import Tab from '#components/Tabs/Tab'; -import Tabs from '#components/Tabs'; -import Button from '#components/Button'; -import TabList from '#components/Tabs/TabList'; -import TabPanel from '#components/Tabs/TabPanel'; -import NonFieldError from '#components/NonFieldError'; -import Message from '#components/Message'; -import NonEnglishFormCreationMessage from '#components/domain/NonEnglishFormCreationMessage'; -import LanguageMismatchMessage from '#components/domain/LanguageMismatchMessage'; -import FormFailedToLoadMessage from '#components/domain/FormFailedToLoadMessage'; import { type DistrictItem } from '#components/domain/DistrictSearchMultiSelectInput'; -import useRouting from '#hooks/useRouting'; -import useAlert from '#hooks/useAlert'; +import FormFailedToLoadMessage from '#components/domain/FormFailedToLoadMessage'; +import LanguageMismatchMessage from '#components/domain/LanguageMismatchMessage'; +import NonEnglishFormCreationMessage from '#components/domain/NonEnglishFormCreationMessage'; +import NonFieldError from '#components/NonFieldError'; import Page from '#components/Page'; -import useTranslation from '#hooks/useTranslation'; import useCurrentLanguage from '#hooks/domain/useCurrentLanguage'; +import useAlert from '#hooks/useAlert'; +import useRouting from '#hooks/useRouting'; import { - useRequest, useLazyRequest, + useRequest, } from '#utils/restRequest'; -import { injectClientId } from '#utils/common'; +import { + matchArray, + NUM, + transformObjectError, +} from '#utils/restRequest/error'; +import ActionsTab from './ActionsTab'; import { checkTabErrors, getNextStep, type TabKeys, } from './common'; +import ContextTab from './ContextTab'; +import FocalPointsTab from './FocalPointsTab'; import schema, { - type FormType, type FlashUpdateBody, type FlashUpdatePostBody, + type FormType, } from './schema'; -import ActionsTab from './ActionsTab'; -import ContextTab from './ContextTab'; -import FocalPointsTab from './FocalPointsTab'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/FlashUpdateForm/schema.ts b/app/src/views/FlashUpdateForm/schema.ts similarity index 98% rename from src/views/FlashUpdateForm/schema.ts rename to app/src/views/FlashUpdateForm/schema.ts index bdd57d2dd5..dd2ba30d56 100644 --- a/src/views/FlashUpdateForm/schema.ts +++ b/app/src/views/FlashUpdateForm/schema.ts @@ -1,17 +1,17 @@ +import { type DeepReplace } from '@ifrc-go/ui/utils'; +import { getDuplicates } from '@ifrc-go/ui/utils'; import { isDefined } from '@togglecorp/fujs'; import { - type PartialForm, type ArraySchema, - type PurgeNull, - ObjectSchema, emailCondition, + ObjectSchema, + type PartialForm, + type PurgeNull, requiredStringCondition, undefinedValue, } from '@togglecorp/toggle-form'; -import { type DeepReplace } from '#utils/common'; import { type GoApiBody } from '#utils/restRequest'; -import { getDuplicates } from '#utils/common'; export type FlashUpdateBody = GoApiBody<'/api/v2/flash-update/{id}/', 'PATCH'>; export type FlashUpdatePostBody = GoApiBody<'/api/v2/flash-update/{id}/', 'POST'>; diff --git a/src/views/FlashUpdateForm/styles.module.css b/app/src/views/FlashUpdateForm/styles.module.css similarity index 100% rename from src/views/FlashUpdateForm/styles.module.css rename to app/src/views/FlashUpdateForm/styles.module.css diff --git a/src/views/FourHundredFour/i18n.json b/app/src/views/FourHundredFour/i18n.json similarity index 100% rename from src/views/FourHundredFour/i18n.json rename to app/src/views/FourHundredFour/i18n.json diff --git a/src/views/FourHundredFour/index.tsx b/app/src/views/FourHundredFour/index.tsx similarity index 95% rename from src/views/FourHundredFour/index.tsx rename to app/src/views/FourHundredFour/index.tsx index 31dfead42d..19e139c355 100644 --- a/src/views/FourHundredFour/index.tsx +++ b/app/src/views/FourHundredFour/index.tsx @@ -1,9 +1,9 @@ import { SearchLineIcon } from '@ifrc-go/icons'; +import { Heading } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; -import Page from '#components/Page'; -import Heading from '#components/Heading'; -import useTranslation from '#hooks/useTranslation'; import Link from '#components/Link'; +import Page from '#components/Page'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/FourHundredFour/styles.module.css b/app/src/views/FourHundredFour/styles.module.css similarity index 100% rename from src/views/FourHundredFour/styles.module.css rename to app/src/views/FourHundredFour/styles.module.css diff --git a/src/views/GlobalThreeW/Filters/i18n.json b/app/src/views/GlobalThreeW/Filters/i18n.json similarity index 100% rename from src/views/GlobalThreeW/Filters/i18n.json rename to app/src/views/GlobalThreeW/Filters/i18n.json diff --git a/src/views/GlobalThreeW/Filters/index.tsx b/app/src/views/GlobalThreeW/Filters/index.tsx similarity index 95% rename from src/views/GlobalThreeW/Filters/index.tsx rename to app/src/views/GlobalThreeW/Filters/index.tsx index 92b6ed265e..0921b79c7a 100644 --- a/src/views/GlobalThreeW/Filters/index.tsx +++ b/app/src/views/GlobalThreeW/Filters/index.tsx @@ -1,16 +1,16 @@ import { useCallback } from 'react'; -import { _cs } from '@togglecorp/fujs'; - -import MultiSelectInput from '#components/MultiSelectInput'; -import useTranslation from '#hooks/useTranslation'; -import { useRequest } from '#utils/restRequest'; +import { MultiSelectInput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { numericKeySelector, stringLabelSelector, stringValueSelector, -} from '#utils/selectors'; -import useGlobalEnums from '#hooks/domain/useGlobalEnums'; +} from '@ifrc-go/ui/utils'; +import { _cs } from '@togglecorp/fujs'; + import NationalSocietyMultiSelectInput from '#components/domain/NationalSocietyMultiSelectInput'; +import useGlobalEnums from '#hooks/domain/useGlobalEnums'; +import { useRequest } from '#utils/restRequest'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/GlobalThreeW/Filters/styles.module.css b/app/src/views/GlobalThreeW/Filters/styles.module.css similarity index 100% rename from src/views/GlobalThreeW/Filters/styles.module.css rename to app/src/views/GlobalThreeW/Filters/styles.module.css diff --git a/src/views/GlobalThreeW/Map/i18n.json b/app/src/views/GlobalThreeW/Map/i18n.json similarity index 100% rename from src/views/GlobalThreeW/Map/i18n.json rename to app/src/views/GlobalThreeW/Map/i18n.json diff --git a/src/views/GlobalThreeW/Map/index.tsx b/app/src/views/GlobalThreeW/Map/index.tsx similarity index 98% rename from src/views/GlobalThreeW/Map/index.tsx rename to app/src/views/GlobalThreeW/Map/index.tsx index ed924adf8f..97959519b1 100644 --- a/src/views/GlobalThreeW/Map/index.tsx +++ b/app/src/views/GlobalThreeW/Map/index.tsx @@ -1,52 +1,55 @@ import { - useState, - useMemo, useCallback, + useMemo, + useState, } from 'react'; +import { + BarChart, + Container, + LegendItem, + TextOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { _cs, - listToMap, isDefined, - max, isNotDefined, + listToMap, + max, } from '@togglecorp/fujs'; import { - MapSource, MapLayer, + MapSource, } from '@togglecorp/re-map'; +import BaseMap from '#components/domain/BaseMap'; +import Link from '#components/Link'; import MapContainerWithDisclaimer from '#components/MapContainerWithDisclaimer'; -import Container from '#components/Container'; import MapPopup from '#components/MapPopup'; -import Link from '#components/Link'; -import TextOutput from '#components/TextOutput'; -import LegendItem from '#components/LegendItem'; -import BarChart from '#components/BarChart'; -import type { GoApiResponse } from '#utils/restRequest'; -import { - getPointCirclePaint, - getPointCircleHaloPaint, - pointColorMap, - adminFillLayerOptions, -} from '#utils/map'; +import useCountryRaw from '#hooks/domain/useCountryRaw'; +import useGlobalEnums from '#hooks/domain/useGlobalEnums'; import { - COLOR_RED, COLOR_BLUE, COLOR_ORANGE, + COLOR_RED, OPERATION_TYPE_EMERGENCY, OPERATION_TYPE_MULTI, OPERATION_TYPE_PROGRAMME, } from '#utils/constants'; -import useGlobalEnums from '#hooks/domain/useGlobalEnums'; -import useCountryRaw from '#hooks/domain/useCountryRaw'; -import useTranslation from '#hooks/useTranslation'; -import BaseMap from '#components/domain/BaseMap'; +import { + adminFillLayerOptions, + getPointCircleHaloPaint, + getPointCirclePaint, + pointColorMap, +} from '#utils/map'; +import type { GoApiResponse } from '#utils/restRequest'; import { countSelector, - projectPerSectorLabelSelector, projectPerSectorKeySelector, + projectPerSectorLabelSelector, } from '../common'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/GlobalThreeW/Map/styles.module.css b/app/src/views/GlobalThreeW/Map/styles.module.css similarity index 100% rename from src/views/GlobalThreeW/Map/styles.module.css rename to app/src/views/GlobalThreeW/Map/styles.module.css diff --git a/src/views/GlobalThreeW/RegionDropdown/i18n.json b/app/src/views/GlobalThreeW/RegionDropdown/i18n.json similarity index 100% rename from src/views/GlobalThreeW/RegionDropdown/i18n.json rename to app/src/views/GlobalThreeW/RegionDropdown/i18n.json diff --git a/src/views/GlobalThreeW/RegionDropdown/index.tsx b/app/src/views/GlobalThreeW/RegionDropdown/index.tsx similarity index 88% rename from src/views/GlobalThreeW/RegionDropdown/index.tsx rename to app/src/views/GlobalThreeW/RegionDropdown/index.tsx index d0a8775947..8f74b81631 100644 --- a/src/views/GlobalThreeW/RegionDropdown/index.tsx +++ b/app/src/views/GlobalThreeW/RegionDropdown/index.tsx @@ -1,9 +1,11 @@ +import { + DropdownMenu, + Message, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { isNotDefined } from '@togglecorp/fujs'; -import Message from '#components/Message'; -import DropdownMenu from '#components/DropdownMenu'; import DropdownMenuItem from '#components/DropdownMenuItem'; -import useTranslation from '#hooks/useTranslation'; import useGlobalEnums from '#hooks/domain/useGlobalEnums'; import i18n from './i18n.json'; diff --git a/src/views/GlobalThreeW/common.ts b/app/src/views/GlobalThreeW/common.ts similarity index 100% rename from src/views/GlobalThreeW/common.ts rename to app/src/views/GlobalThreeW/common.ts diff --git a/src/views/GlobalThreeW/i18n.json b/app/src/views/GlobalThreeW/i18n.json similarity index 100% rename from src/views/GlobalThreeW/i18n.json rename to app/src/views/GlobalThreeW/i18n.json diff --git a/src/views/GlobalThreeW/index.tsx b/app/src/views/GlobalThreeW/index.tsx similarity index 96% rename from src/views/GlobalThreeW/index.tsx rename to app/src/views/GlobalThreeW/index.tsx index b42788356f..53670ef98b 100644 --- a/src/views/GlobalThreeW/index.tsx +++ b/app/src/views/GlobalThreeW/index.tsx @@ -1,40 +1,41 @@ import { - useState, useCallback, + useState, } from 'react'; import { + AddFillIcon, EducationIcon, RedCrossNationalSocietyIcon, TargetedPopulationIcon, - AddFillIcon, } from '@ifrc-go/icons'; -import Papa from 'papaparse'; +import { + BarChart, + BlockLoading, + Container, + KeyFigure, + PieChart, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToComponent } from '@ifrc-go/ui/utils'; import { saveAs } from 'file-saver'; +import Papa from 'papaparse'; -import Page from '#components/Page'; -import Link from '#components/Link'; -import BlockLoading from '#components/BlockLoading'; -import KeyFigure from '#components/KeyFigure'; -import Container from '#components/Container'; -import BarChart from '#components/BarChart'; -import PieChart from '#components/PieChart'; -import useTranslation from '#hooks/useTranslation'; -import { useRequest } from '#utils/restRequest'; import ExportButton from '#components/domain/ExportButton'; -import { resolveToComponent } from '#utils/translation'; +import Link from '#components/Link'; +import Page from '#components/Page'; import useAlert from '#hooks/useAlert'; import useRecursiveCsvExport from '#hooks/useRecursiveCsvRequest'; - -import RegionDropdown from './RegionDropdown'; -import Filter, { type FilterValue } from './Filters'; +import { useRequest } from '#utils/restRequest'; import { - type GlobalProjectsOverview, countSelector, - projectPerSectorLabelSelector, + type GlobalProjectsOverview, projectPerSectorKeySelector, + projectPerSectorLabelSelector, } from './common'; +import Filter, { type FilterValue } from './Filters'; import Map from './Map'; +import RegionDropdown from './RegionDropdown'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/GlobalThreeW/styles.module.css b/app/src/views/GlobalThreeW/styles.module.css similarity index 100% rename from src/views/GlobalThreeW/styles.module.css rename to app/src/views/GlobalThreeW/styles.module.css diff --git a/src/views/Home/i18n.json b/app/src/views/Home/i18n.json similarity index 100% rename from src/views/Home/i18n.json rename to app/src/views/Home/i18n.json diff --git a/src/views/Home/index.tsx b/app/src/views/Home/index.tsx similarity index 94% rename from src/views/Home/index.tsx rename to app/src/views/Home/index.tsx index 7212fe92e6..abb66d941d 100644 --- a/src/views/Home/index.tsx +++ b/app/src/views/Home/index.tsx @@ -1,35 +1,37 @@ import { useCallback, - useState, useEffect, useRef, + useState, } from 'react'; import { - DrefIcon, AppealsIcon, - FundingIcon, - FundingCoverageIcon, CloseLineIcon, + DrefIcon, + FundingCoverageIcon, + FundingIcon, TargetedPopulationIcon, } from '@ifrc-go/icons'; +import { + BlockLoading, + Container, + IconButton, + InfoPopup, + KeyFigure, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { getPercentage } from '@ifrc-go/ui/utils'; import { _cs, isDefined, isNotDefined, } from '@togglecorp/fujs'; -import Page from '#components/Page'; -import Container from '#components/Container'; -import IconButton from '#components/IconButton'; -import BlockLoading from '#components/BlockLoading'; -import InfoPopup from '#components/InfoPopup'; -import KeyFigure from '#components/KeyFigure'; -import HighlightedOperations from '#components/domain/HighlightedOperations'; import ActiveOperationMap from '#components/domain/ActiveOperationMap'; -import AppealsTable from '#components/domain/AppealsTable'; import AppealsOverYearsChart from '#components/domain/AppealsOverYearsChart'; -import useTranslation from '#hooks/useTranslation'; -import { getPercentage } from '#utils/common'; +import AppealsTable from '#components/domain/AppealsTable'; +import HighlightedOperations from '#components/domain/HighlightedOperations'; +import Page from '#components/Page'; import { useRequest } from '#utils/restRequest'; import i18n from './i18n.json'; diff --git a/src/views/Home/styles.module.css b/app/src/views/Home/styles.module.css similarity index 100% rename from src/views/Home/styles.module.css rename to app/src/views/Home/styles.module.css diff --git a/src/views/Login/i18n.json b/app/src/views/Login/i18n.json similarity index 100% rename from src/views/Login/i18n.json rename to app/src/views/Login/i18n.json diff --git a/src/views/Login/index.tsx b/app/src/views/Login/index.tsx similarity index 94% rename from src/views/Login/index.tsx rename to app/src/views/Login/index.tsx index cd3b3965e5..28e1207189 100644 --- a/src/views/Login/index.tsx +++ b/app/src/views/Login/index.tsx @@ -1,26 +1,31 @@ -import { useContext, useMemo } from 'react'; import { - useForm, + useContext, + useMemo, +} from 'react'; +import { + BlockLoading, + Button, + PasswordInput, + TextInput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToComponent } from '@ifrc-go/ui/utils'; +import { + createSubmitHandler, + getErrorObject, type ObjectSchema, requiredStringCondition, - getErrorObject, - createSubmitHandler, + useForm, } from '@togglecorp/toggle-form'; -import BlockLoading from '#components/BlockLoading'; -import Page from '#components/Page'; -import TextInput from '#components/TextInput'; -import PasswordInput from '#components/PasswordInput'; import Link from '#components/Link'; -import Button from '#components/Button'; import NonFieldError from '#components/NonFieldError'; -import useTranslation from '#hooks/useTranslation'; +import Page from '#components/Page'; +import UserContext from '#contexts/user'; import useAlert from '#hooks/useAlert'; -import { resolveToComponent } from '#utils/translation'; -import { useLazyRequest } from '#utils/restRequest'; import { getUserName } from '#utils/domain/user'; +import { useLazyRequest } from '#utils/restRequest'; import { transformObjectError } from '#utils/restRequest/error'; -import UserContext from '#contexts/user'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/Login/styles.module.css b/app/src/views/Login/styles.module.css similarity index 100% rename from src/views/Login/styles.module.css rename to app/src/views/Login/styles.module.css diff --git a/src/views/PerAssessmentForm/AreaInput/ComponentInput/QuestionInput/i18n.json b/app/src/views/PerAssessmentForm/AreaInput/ComponentInput/QuestionInput/i18n.json similarity index 100% rename from src/views/PerAssessmentForm/AreaInput/ComponentInput/QuestionInput/i18n.json rename to app/src/views/PerAssessmentForm/AreaInput/ComponentInput/QuestionInput/i18n.json diff --git a/src/views/PerAssessmentForm/AreaInput/ComponentInput/QuestionInput/index.tsx b/app/src/views/PerAssessmentForm/AreaInput/ComponentInput/QuestionInput/index.tsx similarity index 94% rename from src/views/PerAssessmentForm/AreaInput/ComponentInput/QuestionInput/index.tsx rename to app/src/views/PerAssessmentForm/AreaInput/ComponentInput/QuestionInput/index.tsx index de811fec16..3bf1eac8da 100644 --- a/src/views/PerAssessmentForm/AreaInput/ComponentInput/QuestionInput/index.tsx +++ b/app/src/views/PerAssessmentForm/AreaInput/ComponentInput/QuestionInput/index.tsx @@ -1,20 +1,23 @@ import { useMemo } from 'react'; import { + Container, + RadioInput, + TextArea, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { isDefined } from '@togglecorp/fujs'; +import { + Error, + getErrorObject, SetValueArg, useFormObject, - getErrorObject, - Error, } from '@togglecorp/toggle-form'; -import { isDefined } from '@togglecorp/fujs'; import NonFieldError from '#components/NonFieldError'; -import Container from '#components/Container'; -import TextArea from '#components/TextArea'; -import RadioInput from '#components/RadioInput'; import { type GoApiResponse } from '#utils/restRequest'; -import useTranslation from '#hooks/useTranslation'; import type { PartialAssessment } from '../../../schema'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/PerAssessmentForm/AreaInput/ComponentInput/QuestionInput/styles.module.css b/app/src/views/PerAssessmentForm/AreaInput/ComponentInput/QuestionInput/styles.module.css similarity index 100% rename from src/views/PerAssessmentForm/AreaInput/ComponentInput/QuestionInput/styles.module.css rename to app/src/views/PerAssessmentForm/AreaInput/ComponentInput/QuestionInput/styles.module.css diff --git a/src/views/PerAssessmentForm/AreaInput/ComponentInput/i18n.json b/app/src/views/PerAssessmentForm/AreaInput/ComponentInput/i18n.json similarity index 100% rename from src/views/PerAssessmentForm/AreaInput/ComponentInput/i18n.json rename to app/src/views/PerAssessmentForm/AreaInput/ComponentInput/i18n.json diff --git a/src/views/PerAssessmentForm/AreaInput/ComponentInput/index.tsx b/app/src/views/PerAssessmentForm/AreaInput/ComponentInput/index.tsx similarity index 96% rename from src/views/PerAssessmentForm/AreaInput/ComponentInput/index.tsx rename to app/src/views/PerAssessmentForm/AreaInput/ComponentInput/index.tsx index 6fa028b015..4c8e1055cb 100644 --- a/src/views/PerAssessmentForm/AreaInput/ComponentInput/index.tsx +++ b/app/src/views/PerAssessmentForm/AreaInput/ComponentInput/index.tsx @@ -1,26 +1,28 @@ import { useMemo } from 'react'; import { - SetValueArg, - useFormArray, - useFormObject, - getErrorObject, - Error, -} from '@togglecorp/toggle-form'; + ExpandableContainer, + InputSection, + SelectInput, + TextArea, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { numericIdSelector } from '@ifrc-go/ui/utils'; import { - listToMap, _cs, isNotDefined, isTruthyString, + listToMap, } from '@togglecorp/fujs'; +import { + Error, + getErrorObject, + SetValueArg, + useFormArray, + useFormObject, +} from '@togglecorp/toggle-form'; -import ExpandableContainer from '#components/ExpandableContainer'; -import InputSection from '#components/InputSection'; import NonFieldError from '#components/NonFieldError'; -import SelectInput from '#components/SelectInput'; -import TextArea from '#components/TextArea'; -import { numericIdSelector } from '#utils/selectors'; import { type GoApiResponse } from '#utils/restRequest'; -import useTranslation from '#hooks/useTranslation'; import { type PartialAssessment } from '../../schema'; import QuestionInput from './QuestionInput'; diff --git a/src/views/PerAssessmentForm/AreaInput/ComponentInput/styles.module.css b/app/src/views/PerAssessmentForm/AreaInput/ComponentInput/styles.module.css similarity index 100% rename from src/views/PerAssessmentForm/AreaInput/ComponentInput/styles.module.css rename to app/src/views/PerAssessmentForm/AreaInput/ComponentInput/styles.module.css diff --git a/src/views/PerAssessmentForm/AreaInput/index.tsx b/app/src/views/PerAssessmentForm/AreaInput/index.tsx similarity index 99% rename from src/views/PerAssessmentForm/AreaInput/index.tsx rename to app/src/views/PerAssessmentForm/AreaInput/index.tsx index 509d2a784a..5f20dda459 100644 --- a/src/views/PerAssessmentForm/AreaInput/index.tsx +++ b/app/src/views/PerAssessmentForm/AreaInput/index.tsx @@ -1,23 +1,24 @@ import { useMemo } from 'react'; import { - type SetValueArg, - useFormObject, - useFormArray, - getErrorObject, - Error, -} from '@togglecorp/toggle-form'; -import { - listToMap, + _cs, listToGroupList, + listToMap, mapToList, - _cs, } from '@togglecorp/fujs'; +import { + Error, + getErrorObject, + type SetValueArg, + useFormArray, + useFormObject, +} from '@togglecorp/toggle-form'; -import { type GoApiResponse } from '#utils/restRequest'; import NonFieldError from '#components/NonFieldError'; +import { type GoApiResponse } from '#utils/restRequest'; import { type PartialAssessment } from '../schema'; import ComponentInput from './ComponentInput'; + import styles from './styles.module.css'; type PerOptionsResponse = GoApiResponse<'/api/v2/per-options/'>; diff --git a/src/views/PerAssessmentForm/AreaInput/styles.module.css b/app/src/views/PerAssessmentForm/AreaInput/styles.module.css similarity index 100% rename from src/views/PerAssessmentForm/AreaInput/styles.module.css rename to app/src/views/PerAssessmentForm/AreaInput/styles.module.css diff --git a/src/views/PerAssessmentForm/i18n.json b/app/src/views/PerAssessmentForm/i18n.json similarity index 100% rename from src/views/PerAssessmentForm/i18n.json rename to app/src/views/PerAssessmentForm/i18n.json diff --git a/src/views/PerAssessmentForm/index.tsx b/app/src/views/PerAssessmentForm/index.tsx similarity index 97% rename from src/views/PerAssessmentForm/index.tsx rename to app/src/views/PerAssessmentForm/index.tsx index 242cb10213..f397e9cced 100644 --- a/src/views/PerAssessmentForm/index.tsx +++ b/app/src/views/PerAssessmentForm/index.tsx @@ -1,64 +1,66 @@ import { - useState, + type ElementRef, useCallback, - useRef, useMemo, - type ElementRef, + useRef, + useState, } from 'react'; import { - useParams, useOutletContext, + useParams, } from 'react-router-dom'; import { - unique, - listToMap, + Button, + ConfirmButton, + Container, + Message, + Portal, + Tab, + TabList, + TabPanel, + Tabs, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { compareNumber, - listToGroupList, isDefined, isNotDefined, + listToGroupList, + listToMap, + unique, } from '@togglecorp/fujs'; import { - type PartialForm, createSubmitHandler, + getErrorObject, + type PartialForm, + removeNull, useForm, useFormArray, - removeNull, - getErrorObject, } from '@togglecorp/toggle-form'; -import NonFieldError from '#components/NonFieldError'; -import useRouting from '#hooks/useRouting'; -import { - transformObjectError, - matchArray, - NUM, -} from '#utils/restRequest/error'; -import Container from '#components/Container'; -import Portal from '#components/Portal'; -import Tabs from '#components/Tabs'; -import TabList from '#components/Tabs/TabList'; -import Tab from '#components/Tabs/Tab'; -import TabPanel from '#components/Tabs/TabPanel'; -import Button from '#components/Button'; -import PerAssessmentSummary from '#components/domain/PerAssessmentSummary'; -import ConfirmButton from '#components/ConfirmButton'; -import Message from '#components/Message'; import FormFailedToLoadMessage from '#components/domain/FormFailedToLoadMessage'; +import PerAssessmentSummary from '#components/domain/PerAssessmentSummary'; +import NonFieldError from '#components/NonFieldError'; import useAlert from '#hooks/useAlert'; -import useTranslation from '#hooks/useTranslation'; +import useRouting from '#hooks/useRouting'; +import { PER_PHASE_ASSESSMENT } from '#utils/domain/per'; +import { type PerProcessOutletContext } from '#utils/outletContext'; import { + type GoApiResponse, useLazyRequest, useRequest, - type GoApiResponse, } from '#utils/restRequest'; -import { PER_PHASE_ASSESSMENT } from '#utils/domain/per'; -import { type PerProcessOutletContext } from '#utils/outletContext'; +import { + matchArray, + NUM, + transformObjectError, +} from '#utils/restRequest/error'; +import AreaInput from './AreaInput'; import { assessmentSchema, PartialAssessment, } from './schema'; -import AreaInput from './AreaInput'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/PerAssessmentForm/schema.ts b/app/src/views/PerAssessmentForm/schema.ts similarity index 98% rename from src/views/PerAssessmentForm/schema.ts rename to app/src/views/PerAssessmentForm/schema.ts index 316bcb3b5e..4f1e30522f 100644 --- a/src/views/PerAssessmentForm/schema.ts +++ b/app/src/views/PerAssessmentForm/schema.ts @@ -1,3 +1,4 @@ +import { DeepReplace } from '@ifrc-go/ui/utils'; import { ObjectSchema, PartialForm, @@ -5,7 +6,6 @@ import { } from '@togglecorp/toggle-form'; import { type GoApiResponse } from '#utils/restRequest'; -import { DeepReplace } from '#utils/common'; type AssessmentRequestBody = GoApiResponse<'/api/v2/per-assessment/{id}/', 'PATCH'>; diff --git a/src/views/PerAssessmentForm/styles.module.css b/app/src/views/PerAssessmentForm/styles.module.css similarity index 100% rename from src/views/PerAssessmentForm/styles.module.css rename to app/src/views/PerAssessmentForm/styles.module.css diff --git a/src/views/PerOverviewForm/i18n.json b/app/src/views/PerOverviewForm/i18n.json similarity index 100% rename from src/views/PerOverviewForm/i18n.json rename to app/src/views/PerOverviewForm/i18n.json diff --git a/src/views/PerOverviewForm/index.tsx b/app/src/views/PerOverviewForm/index.tsx similarity index 97% rename from src/views/PerOverviewForm/index.tsx rename to app/src/views/PerOverviewForm/index.tsx index 05ec57d44b..640d49fce1 100644 --- a/src/views/PerOverviewForm/index.tsx +++ b/app/src/views/PerOverviewForm/index.tsx @@ -1,55 +1,68 @@ import { + type ElementRef, useCallback, - useState, useRef, - type ElementRef, + useState, } from 'react'; import { - useParams, useOutletContext, + useParams, } from 'react-router-dom'; import { - useForm, + BooleanInput, + Button, + ConfirmButton, + Container, + DateInput, + InputSection, + Message, + NumberInput, + Portal, + SelectInput, + TextInput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + numericIdSelector, + stringNameSelector, + stringValueSelector, +} from '@ifrc-go/ui/utils'; +import { + isDefined, + isNotDefined, + listToMap, +} from '@togglecorp/fujs'; +import { createSubmitHandler, getErrorObject, getErrorString, + useForm, } from '@togglecorp/toggle-form'; -import { isNotDefined, isDefined, listToMap } from '@togglecorp/fujs'; -import useRouting from '#hooks/useRouting'; -import { transformObjectError } from '#utils/restRequest/error'; -import Portal from '#components/Portal'; -import Button from '#components/Button'; -import Container from '#components/Container'; -import InputSection from '#components/InputSection'; -import SelectInput from '#components/SelectInput'; -import DateInput from '#components/DateInput'; -import TextInput from '#components/TextInput'; -import BooleanInput from '#components/BooleanInput'; -import ConfirmButton from '#components/ConfirmButton'; -import NumberInput from '#components/NumberInput'; +import FormFailedToLoadMessage from '#components/domain/FormFailedToLoadMessage'; import GoMultiFileInput from '#components/domain/GoMultiFileInput'; +import NationalSocietySelectInput from '#components/domain/NationalSocietySelectInput'; import NonFieldError from '#components/NonFieldError'; -import Message from '#components/Message'; -import FormFailedToLoadMessage from '#components/domain/FormFailedToLoadMessage'; -import useTranslation from '#hooks/useTranslation'; -import useAlertContext from '#hooks/useAlert'; -import { useLazyRequest, useRequest, type GoApiResponse } from '#utils/restRequest'; import useGlobalEnums from '#hooks/domain/useGlobalEnums'; import useUserMe from '#hooks/domain/useUserMe'; -import { PER_PHASE_OVERVIEW, PER_PHASE_ASSESSMENT } from '#utils/domain/per'; +import useAlertContext from '#hooks/useAlert'; +import useRouting from '#hooks/useRouting'; +import { + PER_PHASE_ASSESSMENT, + PER_PHASE_OVERVIEW, +} from '#utils/domain/per'; import type { PerProcessOutletContext } from '#utils/outletContext'; import { - numericIdSelector, - stringValueSelector, - stringNameSelector, -} from '#utils/selectors'; -import NationalSocietySelectInput from '#components/domain/NationalSocietySelectInput'; + type GoApiResponse, + useLazyRequest, + useRequest, +} from '#utils/restRequest'; +import { transformObjectError } from '#utils/restRequest/error'; import { - PerOverviewRequestBody, overviewSchema, PartialOverviewFormFields, + PerOverviewRequestBody, } from './schema'; import i18n from './i18n.json'; diff --git a/src/views/PerOverviewForm/schema.ts b/app/src/views/PerOverviewForm/schema.ts similarity index 97% rename from src/views/PerOverviewForm/schema.ts rename to app/src/views/PerOverviewForm/schema.ts index 7fd1bb64fa..f2a0f2e8d9 100644 --- a/src/views/PerOverviewForm/schema.ts +++ b/app/src/views/PerOverviewForm/schema.ts @@ -1,14 +1,20 @@ import { type RefObject } from 'react'; import { + isDefined, + isNotDefined, +} from '@togglecorp/fujs'; +import { + addCondition, + emailCondition, ObjectSchema, PartialForm, - addCondition, undefinedValue, - emailCondition, } from '@togglecorp/toggle-form'; -import { isDefined, isNotDefined } from '@togglecorp/fujs'; -import { type GoApiResponse, type GoApiBody } from '#utils/restRequest'; +import { + type GoApiBody, + type GoApiResponse, +} from '#utils/restRequest'; type FormContext = RefObject; diff --git a/src/views/PerOverviewForm/styles.module.css b/app/src/views/PerOverviewForm/styles.module.css similarity index 100% rename from src/views/PerOverviewForm/styles.module.css rename to app/src/views/PerOverviewForm/styles.module.css diff --git a/src/views/PerPrioritizationForm/ComponentInput/QuestionOutput/index.tsx b/app/src/views/PerPrioritizationForm/ComponentInput/QuestionOutput/index.tsx similarity index 99% rename from src/views/PerPrioritizationForm/ComponentInput/QuestionOutput/index.tsx rename to app/src/views/PerPrioritizationForm/ComponentInput/QuestionOutput/index.tsx index caf6c95bde..5e89fd5f5d 100644 --- a/src/views/PerPrioritizationForm/ComponentInput/QuestionOutput/index.tsx +++ b/app/src/views/PerPrioritizationForm/ComponentInput/QuestionOutput/index.tsx @@ -1,4 +1,5 @@ import { isNotDefined } from '@togglecorp/fujs'; + import styles from './styles.module.css'; interface Props { diff --git a/src/views/PerPrioritizationForm/ComponentInput/QuestionOutput/styles.module.css b/app/src/views/PerPrioritizationForm/ComponentInput/QuestionOutput/styles.module.css similarity index 100% rename from src/views/PerPrioritizationForm/ComponentInput/QuestionOutput/styles.module.css rename to app/src/views/PerPrioritizationForm/ComponentInput/QuestionOutput/styles.module.css diff --git a/src/views/PerPrioritizationForm/ComponentInput/i18n.json b/app/src/views/PerPrioritizationForm/ComponentInput/i18n.json similarity index 100% rename from src/views/PerPrioritizationForm/ComponentInput/i18n.json rename to app/src/views/PerPrioritizationForm/ComponentInput/i18n.json diff --git a/src/views/PerPrioritizationForm/ComponentInput/index.tsx b/app/src/views/PerPrioritizationForm/ComponentInput/index.tsx similarity index 94% rename from src/views/PerPrioritizationForm/ComponentInput/index.tsx rename to app/src/views/PerPrioritizationForm/ComponentInput/index.tsx index ed21421336..4c4acae89b 100644 --- a/src/views/PerPrioritizationForm/ComponentInput/index.tsx +++ b/app/src/views/PerPrioritizationForm/ComponentInput/index.tsx @@ -1,29 +1,34 @@ -import { useState, useCallback } from 'react'; import { - listToMap, - listToGroupList, - mapToList, - isNotDefined, + useCallback, + useState, +} from 'react'; +import { + BlockLoading, + Checkbox, + ExpandableContainer, + TextArea, + TextOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToComponent } from '@ifrc-go/ui/utils'; +import { isDefined, + isNotDefined, isTruthyString, + listToGroupList, + listToMap, + mapToList, } from '@togglecorp/fujs'; import { - SetValueArg, - useFormObject, Error, getErrorObject, + SetValueArg, + useFormObject, } from '@togglecorp/toggle-form'; -import ExpandableContainer from '#components/ExpandableContainer'; -import BlockLoading from '#components/BlockLoading'; import NonFieldError from '#components/NonFieldError'; -import TextArea from '#components/TextArea'; -import TextOutput from '#components/TextOutput'; -import Checkbox from '#components/Checkbox'; -import useTranslation from '#hooks/useTranslation'; -import { useRequest } from '#utils/restRequest'; -import { resolveToComponent } from '#utils/translation'; import type { GoApiResponse } from '#utils/restRequest'; +import { useRequest } from '#utils/restRequest'; import type { PartialPrioritization } from '../schema'; import QuestionOutput from './QuestionOutput'; diff --git a/src/views/PerPrioritizationForm/ComponentInput/styles.module.css b/app/src/views/PerPrioritizationForm/ComponentInput/styles.module.css similarity index 100% rename from src/views/PerPrioritizationForm/ComponentInput/styles.module.css rename to app/src/views/PerPrioritizationForm/ComponentInput/styles.module.css diff --git a/src/views/PerPrioritizationForm/i18n.json b/app/src/views/PerPrioritizationForm/i18n.json similarity index 100% rename from src/views/PerPrioritizationForm/i18n.json rename to app/src/views/PerPrioritizationForm/i18n.json diff --git a/src/views/PerPrioritizationForm/index.tsx b/app/src/views/PerPrioritizationForm/index.tsx similarity index 97% rename from src/views/PerPrioritizationForm/index.tsx rename to app/src/views/PerPrioritizationForm/index.tsx index f2b94592d0..372579ef1a 100644 --- a/src/views/PerPrioritizationForm/index.tsx +++ b/app/src/views/PerPrioritizationForm/index.tsx @@ -1,21 +1,25 @@ import { + type ElementRef, useCallback, useMemo, - useState, useRef, - type ElementRef, + useState, } from 'react'; import { - useParams, useOutletContext, + useParams, } from 'react-router-dom'; +import { CheckLineIcon } from '@ifrc-go/icons'; import { - createSubmitHandler, - useForm, - useFormArray, - removeNull, - getErrorObject, -} from '@togglecorp/toggle-form'; + Button, + ConfirmButton, + Container, + DropdownMenu, + Message, + Portal, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToString } from '@ifrc-go/ui/utils'; import { _cs, compareNumber, @@ -23,40 +27,38 @@ import { isNotDefined, listToMap, } from '@togglecorp/fujs'; -import { CheckLineIcon } from '@ifrc-go/icons'; +import { + createSubmitHandler, + getErrorObject, + removeNull, + useForm, + useFormArray, +} from '@togglecorp/toggle-form'; -import NonFieldError from '#components/NonFieldError'; -import useRouting from '#hooks/useRouting'; -import Container from '#components/Container'; -import Portal from '#components/Portal'; -import Button from '#components/Button'; -import ConfirmButton from '#components/ConfirmButton'; +import FormFailedToLoadMessage from '#components/domain/FormFailedToLoadMessage'; import PerAssessmentSummary from '#components/domain/PerAssessmentSummary'; -import DropdownMenu from '#components/DropdownMenu'; import DropdownMenuItem from '#components/DropdownMenuItem'; -import Message from '#components/Message'; -import FormFailedToLoadMessage from '#components/domain/FormFailedToLoadMessage'; -import useTranslation from '#hooks/useTranslation'; +import NonFieldError from '#components/NonFieldError'; import useAlert from '#hooks/useAlert'; -import { resolveToString } from '#utils/translation'; -import type { PerProcessOutletContext } from '#utils/outletContext'; +import useRouting from '#hooks/useRouting'; import { PER_PHASE_PRIORITIZATION } from '#utils/domain/per'; +import type { PerProcessOutletContext } from '#utils/outletContext'; import { useLazyRequest, useRequest, } from '#utils/restRequest'; import { - transformObjectError, matchArray, NUM, + transformObjectError, } from '#utils/restRequest/error'; +import ComponentInput from './ComponentInput'; import { - prioritizationSchema, - type PrioritizationRequestBody, type PartialPrioritization, + type PrioritizationRequestBody, + prioritizationSchema, } from './schema'; -import ComponentInput from './ComponentInput'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/PerPrioritizationForm/schema.ts b/app/src/views/PerPrioritizationForm/schema.ts similarity index 100% rename from src/views/PerPrioritizationForm/schema.ts rename to app/src/views/PerPrioritizationForm/schema.ts diff --git a/src/views/PerPrioritizationForm/styles.module.css b/app/src/views/PerPrioritizationForm/styles.module.css similarity index 100% rename from src/views/PerPrioritizationForm/styles.module.css rename to app/src/views/PerPrioritizationForm/styles.module.css diff --git a/src/views/PerProcessForm/i18n.json b/app/src/views/PerProcessForm/i18n.json similarity index 100% rename from src/views/PerProcessForm/i18n.json rename to app/src/views/PerProcessForm/i18n.json diff --git a/src/views/PerProcessForm/index.tsx b/app/src/views/PerProcessForm/index.tsx similarity index 95% rename from src/views/PerProcessForm/index.tsx rename to app/src/views/PerProcessForm/index.tsx index 4a86868f7c..8eea38a27c 100644 --- a/src/views/PerProcessForm/index.tsx +++ b/app/src/views/PerProcessForm/index.tsx @@ -1,26 +1,34 @@ -import { Outlet, useParams } from 'react-router-dom'; -import { useMemo, useRef } from 'react'; -import { isDefined, isNotDefined } from '@togglecorp/fujs'; +import { + useMemo, + useRef, +} from 'react'; +import { + Outlet, + useParams, +} from 'react-router-dom'; +import { NavigationTabList } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + isDefined, + isNotDefined, +} from '@togglecorp/fujs'; +import FormFailedToLoadMessage from '#components/domain/FormFailedToLoadMessage'; +import LanguageMismatchMessage from '#components/domain/LanguageMismatchMessage'; +import NonEnglishFormCreationMessage from '#components/domain/NonEnglishFormCreationMessage'; +import Link from '#components/Link'; import NavigationTab from '#components/NavigationTab'; -import NavigationTabList from '#components/NavigationTabList'; import Page from '#components/Page'; -import Link from '#components/Link'; -import NonEnglishFormCreationMessage from '#components/domain/NonEnglishFormCreationMessage'; -import LanguageMismatchMessage from '#components/domain/LanguageMismatchMessage'; -import FormFailedToLoadMessage from '#components/domain/FormFailedToLoadMessage'; -import useTranslation from '#hooks/useTranslation'; import useCurrentLanguage from '#hooks/domain/useCurrentLanguage'; -import { useRequest } from '#utils/restRequest'; - import { getCurrentPerProcessStep, - PER_PHASE_WORKPLAN, - PER_PHASE_PRIORITIZATION, PER_PHASE_ASSESSMENT, PER_PHASE_OVERVIEW, + PER_PHASE_PRIORITIZATION, + PER_PHASE_WORKPLAN, } from '#utils/domain/per'; import { type PerProcessOutletContext } from '#utils/outletContext'; +import { useRequest } from '#utils/restRequest'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/PerProcessForm/styles.module.css b/app/src/views/PerProcessForm/styles.module.css similarity index 100% rename from src/views/PerProcessForm/styles.module.css rename to app/src/views/PerProcessForm/styles.module.css diff --git a/src/views/PerWorkPlanForm/AdditionalActionInput/i18n.json b/app/src/views/PerWorkPlanForm/AdditionalActionInput/i18n.json similarity index 100% rename from src/views/PerWorkPlanForm/AdditionalActionInput/i18n.json rename to app/src/views/PerWorkPlanForm/AdditionalActionInput/i18n.json diff --git a/src/views/PerWorkPlanForm/AdditionalActionInput/index.tsx b/app/src/views/PerWorkPlanForm/AdditionalActionInput/index.tsx similarity index 91% rename from src/views/PerWorkPlanForm/AdditionalActionInput/index.tsx rename to app/src/views/PerWorkPlanForm/AdditionalActionInput/index.tsx index d41b42153a..1a9b3a1e75 100644 --- a/src/views/PerWorkPlanForm/AdditionalActionInput/index.tsx +++ b/app/src/views/PerWorkPlanForm/AdditionalActionInput/index.tsx @@ -1,25 +1,29 @@ import { useMemo } from 'react'; import { DeleteBinLineIcon } from '@ifrc-go/icons'; import { - SetValueArg, - useFormObject, + Button, + Container, + DateInput, + SelectInput, + TextArea, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + resolveToString, + stringValueSelector, +} from '@ifrc-go/ui/utils'; +import { randomString } from '@togglecorp/fujs'; +import { Error, getErrorObject, + SetValueArg, + useFormObject, } from '@togglecorp/toggle-form'; -import { randomString } from '@togglecorp/fujs'; -import useTranslation from '#hooks/useTranslation'; -import Container from '#components/Container'; -import DateInput from '#components/DateInput'; -import SelectInput from '#components/SelectInput'; -import Button from '#components/Button'; -import TextArea from '#components/TextArea'; -import { stringValueSelector } from '#utils/selectors'; -import { resolveToString } from '#utils/translation'; -import useGlobalEnums from '#hooks/domain/useGlobalEnums'; import NationalSocietySelectInput from '#components/domain/NationalSocietySelectInput'; -import { type GoApiResponse } from '#utils/restRequest'; import NonFieldError from '#components/NonFieldError'; +import useGlobalEnums from '#hooks/domain/useGlobalEnums'; +import { type GoApiResponse } from '#utils/restRequest'; import { PartialWorkPlan } from '../schema'; diff --git a/src/views/PerWorkPlanForm/AdditionalActionInput/styles.module.css b/app/src/views/PerWorkPlanForm/AdditionalActionInput/styles.module.css similarity index 100% rename from src/views/PerWorkPlanForm/AdditionalActionInput/styles.module.css rename to app/src/views/PerWorkPlanForm/AdditionalActionInput/styles.module.css diff --git a/src/views/PerWorkPlanForm/PrioritizedActionInput/i18n.json b/app/src/views/PerWorkPlanForm/PrioritizedActionInput/i18n.json similarity index 100% rename from src/views/PerWorkPlanForm/PrioritizedActionInput/i18n.json rename to app/src/views/PerWorkPlanForm/PrioritizedActionInput/i18n.json diff --git a/src/views/PerWorkPlanForm/PrioritizedActionInput/index.tsx b/app/src/views/PerWorkPlanForm/PrioritizedActionInput/index.tsx similarity index 92% rename from src/views/PerWorkPlanForm/PrioritizedActionInput/index.tsx rename to app/src/views/PerWorkPlanForm/PrioritizedActionInput/index.tsx index ab1b1d0e42..02f6093c26 100644 --- a/src/views/PerWorkPlanForm/PrioritizedActionInput/index.tsx +++ b/app/src/views/PerWorkPlanForm/PrioritizedActionInput/index.tsx @@ -1,22 +1,26 @@ import { - type SetValueArg, - useFormObject, + Container, + DateInput, + SelectInput, + TextArea, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + resolveToString, + stringValueSelector, +} from '@ifrc-go/ui/utils'; +import { isTruthyString } from '@togglecorp/fujs'; +import { type Error, getErrorObject, + type SetValueArg, + useFormObject, } from '@togglecorp/toggle-form'; -import { isTruthyString } from '@togglecorp/fujs'; -import Container from '#components/Container'; -import DateInput from '#components/DateInput'; -import SelectInput from '#components/SelectInput'; -import TextArea from '#components/TextArea'; import NationalSocietySelectInput from '#components/domain/NationalSocietySelectInput'; import NonFieldError from '#components/NonFieldError'; -import useTranslation from '#hooks/useTranslation'; import useGlobalEnums from '#hooks/domain/useGlobalEnums'; import { type GoApiResponse } from '#utils/restRequest'; -import { stringValueSelector } from '#utils/selectors'; -import { resolveToString } from '#utils/translation'; import { type PartialWorkPlan } from '../schema'; diff --git a/src/views/PerWorkPlanForm/PrioritizedActionInput/styles.module.css b/app/src/views/PerWorkPlanForm/PrioritizedActionInput/styles.module.css similarity index 100% rename from src/views/PerWorkPlanForm/PrioritizedActionInput/styles.module.css rename to app/src/views/PerWorkPlanForm/PrioritizedActionInput/styles.module.css diff --git a/src/views/PerWorkPlanForm/i18n.json b/app/src/views/PerWorkPlanForm/i18n.json similarity index 100% rename from src/views/PerWorkPlanForm/i18n.json rename to app/src/views/PerWorkPlanForm/i18n.json diff --git a/src/views/PerWorkPlanForm/index.tsx b/app/src/views/PerWorkPlanForm/index.tsx similarity index 97% rename from src/views/PerWorkPlanForm/index.tsx rename to app/src/views/PerWorkPlanForm/index.tsx index 561aa24b22..43d7973e18 100644 --- a/src/views/PerWorkPlanForm/index.tsx +++ b/app/src/views/PerWorkPlanForm/index.tsx @@ -1,59 +1,58 @@ import { + type ElementRef, useCallback, useMemo, useRef, - type ElementRef, } from 'react'; +import { useOutletContext } from 'react-router-dom'; import { AddLineIcon } from '@ifrc-go/icons'; import { - useOutletContext, -} from 'react-router-dom'; + Button, + ConfirmButton, + Container, + Message, + Portal, + TextOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { - isNotDefined, isDefined, + isNotDefined, listToMap, randomString, } from '@togglecorp/fujs'; - import { createSubmitHandler, + getErrorObject, useForm, useFormArray, - getErrorObject, } from '@togglecorp/toggle-form'; +import FormFailedToLoadMessage from '#components/domain/FormFailedToLoadMessage'; +import Link from '#components/Link'; import NonFieldError from '#components/NonFieldError'; +import useAlert from '#hooks/useAlert'; import useRouting from '#hooks/useRouting'; -import Button from '#components/Button'; -import Container from '#components/Container'; -import ConfirmButton from '#components/ConfirmButton'; -import TextOutput from '#components/TextOutput'; -import Link from '#components/Link'; -import Portal from '#components/Portal'; -import Message from '#components/Message'; -import FormFailedToLoadMessage from '#components/domain/FormFailedToLoadMessage'; +import { PER_PHASE_WORKPLAN } from '#utils/domain/per'; +import { type PerProcessOutletContext } from '#utils/outletContext'; import { useLazyRequest, useRequest, } from '#utils/restRequest'; -import { type PerProcessOutletContext } from '#utils/outletContext'; -import { PER_PHASE_WORKPLAN } from '#utils/domain/per'; -import useTranslation from '#hooks/useTranslation'; -import useAlert from '#hooks/useAlert'; import { - transformObjectError, matchArray, NUM, + transformObjectError, } from '#utils/restRequest/error'; -import PrioritizedActionInput from './PrioritizedActionInput'; import AdditionalActionInput from './AdditionalActionInput'; - +import PrioritizedActionInput from './PrioritizedActionInput'; import { + PartialWorkPlan, WorkPlanBody, workplanSchema, - PartialWorkPlan, } from './schema'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/PerWorkPlanForm/schema.ts b/app/src/views/PerWorkPlanForm/schema.ts similarity index 99% rename from src/views/PerWorkPlanForm/schema.ts rename to app/src/views/PerWorkPlanForm/schema.ts index d962557614..8566812e53 100644 --- a/src/views/PerWorkPlanForm/schema.ts +++ b/app/src/views/PerWorkPlanForm/schema.ts @@ -3,6 +3,7 @@ import { PartialForm, requiredStringCondition, } from '@togglecorp/toggle-form'; + import { type GoApiBody } from '#utils/restRequest'; export type WorkPlanBody = GoApiBody<'/api/v2/per-work-plan/{id}/', 'PATCH'>; diff --git a/src/views/PerWorkPlanForm/styles.module.css b/app/src/views/PerWorkPlanForm/styles.module.css similarity index 100% rename from src/views/PerWorkPlanForm/styles.module.css rename to app/src/views/PerWorkPlanForm/styles.module.css diff --git a/src/views/Preparedness/i18n.json b/app/src/views/Preparedness/i18n.json similarity index 100% rename from src/views/Preparedness/i18n.json rename to app/src/views/Preparedness/i18n.json diff --git a/src/views/Preparedness/index.tsx b/app/src/views/Preparedness/index.tsx similarity index 93% rename from src/views/Preparedness/index.tsx rename to app/src/views/Preparedness/index.tsx index 16ea0fa6e9..7026f6867e 100644 --- a/src/views/Preparedness/index.tsx +++ b/app/src/views/Preparedness/index.tsx @@ -1,16 +1,17 @@ import { Outlet } from 'react-router-dom'; +import { + Container, + NavigationTabList, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToComponent } from '@ifrc-go/ui/utils'; import perApproach from '#assets/content/per_approach_notext.svg'; -import Container from '#components/Container'; -import Page from '#components/Page'; import Link from '#components/Link'; import NavigationTab from '#components/NavigationTab'; -import NavigationTabList from '#components/NavigationTabList'; -import { resolveToComponent } from '#utils/translation'; -import useTranslation from '#hooks/useTranslation'; +import Page from '#components/Page'; import i18n from './i18n.json'; - import styles from './styles.module.css'; // eslint-disable-next-line import/prefer-default-export diff --git a/src/views/Preparedness/styles.module.css b/app/src/views/Preparedness/styles.module.css similarity index 100% rename from src/views/Preparedness/styles.module.css rename to app/src/views/Preparedness/styles.module.css diff --git a/src/views/PreparednessCatalogueResources/i18n.json b/app/src/views/PreparednessCatalogueResources/i18n.json similarity index 100% rename from src/views/PreparednessCatalogueResources/i18n.json rename to app/src/views/PreparednessCatalogueResources/i18n.json diff --git a/src/views/PreparednessCatalogueResources/index.tsx b/app/src/views/PreparednessCatalogueResources/index.tsx similarity index 93% rename from src/views/PreparednessCatalogueResources/index.tsx rename to app/src/views/PreparednessCatalogueResources/index.tsx index 31b6c0a919..be68a3620a 100644 --- a/src/views/PreparednessCatalogueResources/index.tsx +++ b/app/src/views/PreparednessCatalogueResources/index.tsx @@ -1,4 +1,4 @@ -import useTranslation from '#hooks/useTranslation'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/PreparednessCatalogueResources/styles.module.css b/app/src/views/PreparednessCatalogueResources/styles.module.css similarity index 100% rename from src/views/PreparednessCatalogueResources/styles.module.css rename to app/src/views/PreparednessCatalogueResources/styles.module.css diff --git a/src/views/PreparednessGlobalPerformance/i18n.json b/app/src/views/PreparednessGlobalPerformance/i18n.json similarity index 100% rename from src/views/PreparednessGlobalPerformance/i18n.json rename to app/src/views/PreparednessGlobalPerformance/i18n.json diff --git a/src/views/PreparednessGlobalPerformance/index.tsx b/app/src/views/PreparednessGlobalPerformance/index.tsx similarity index 93% rename from src/views/PreparednessGlobalPerformance/index.tsx rename to app/src/views/PreparednessGlobalPerformance/index.tsx index 5993b8ab17..b96b5dd694 100644 --- a/src/views/PreparednessGlobalPerformance/index.tsx +++ b/app/src/views/PreparednessGlobalPerformance/index.tsx @@ -1,4 +1,4 @@ -import useTranslation from '#hooks/useTranslation'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/PreparednessGlobalPerformance/styles.module.css b/app/src/views/PreparednessGlobalPerformance/styles.module.css similarity index 100% rename from src/views/PreparednessGlobalPerformance/styles.module.css rename to app/src/views/PreparednessGlobalPerformance/styles.module.css diff --git a/src/views/PreparednessGlobalSummary/i18n.json b/app/src/views/PreparednessGlobalSummary/i18n.json similarity index 100% rename from src/views/PreparednessGlobalSummary/i18n.json rename to app/src/views/PreparednessGlobalSummary/i18n.json diff --git a/src/views/PreparednessGlobalSummary/index.tsx b/app/src/views/PreparednessGlobalSummary/index.tsx similarity index 93% rename from src/views/PreparednessGlobalSummary/index.tsx rename to app/src/views/PreparednessGlobalSummary/index.tsx index 9f866216f4..5ff50cd766 100644 --- a/src/views/PreparednessGlobalSummary/index.tsx +++ b/app/src/views/PreparednessGlobalSummary/index.tsx @@ -1,4 +1,4 @@ -import useTranslation from '#hooks/useTranslation'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/PreparednessGlobalSummary/styles.module.css b/app/src/views/PreparednessGlobalSummary/styles.module.css similarity index 100% rename from src/views/PreparednessGlobalSummary/styles.module.css rename to app/src/views/PreparednessGlobalSummary/styles.module.css diff --git a/src/views/PreparednessOperationalLearning/i18n.json b/app/src/views/PreparednessOperationalLearning/i18n.json similarity index 100% rename from src/views/PreparednessOperationalLearning/i18n.json rename to app/src/views/PreparednessOperationalLearning/i18n.json diff --git a/src/views/PreparednessOperationalLearning/index.tsx b/app/src/views/PreparednessOperationalLearning/index.tsx similarity index 93% rename from src/views/PreparednessOperationalLearning/index.tsx rename to app/src/views/PreparednessOperationalLearning/index.tsx index 894850e30e..2591e12d2e 100644 --- a/src/views/PreparednessOperationalLearning/index.tsx +++ b/app/src/views/PreparednessOperationalLearning/index.tsx @@ -1,4 +1,4 @@ -import useTranslation from '#hooks/useTranslation'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/PreparednessOperationalLearning/styles.module.css b/app/src/views/PreparednessOperationalLearning/styles.module.css similarity index 100% rename from src/views/PreparednessOperationalLearning/styles.module.css rename to app/src/views/PreparednessOperationalLearning/styles.module.css diff --git a/src/views/RecoverAccount/i18n.json b/app/src/views/RecoverAccount/i18n.json similarity index 100% rename from src/views/RecoverAccount/i18n.json rename to app/src/views/RecoverAccount/i18n.json diff --git a/src/views/RecoverAccount/index.tsx b/app/src/views/RecoverAccount/index.tsx similarity index 96% rename from src/views/RecoverAccount/index.tsx rename to app/src/views/RecoverAccount/index.tsx index 73e8aa91b1..28784c5c13 100644 --- a/src/views/RecoverAccount/index.tsx +++ b/app/src/views/RecoverAccount/index.tsx @@ -1,17 +1,19 @@ import { useMemo } from 'react'; import { - useForm, + Button, + TextInput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + createSubmitHandler, + getErrorObject, type ObjectSchema, requiredStringCondition, - getErrorObject, - createSubmitHandler, + useForm, } from '@togglecorp/toggle-form'; -import Page from '#components/Page'; -import TextInput from '#components/TextInput'; -import Button from '#components/Button'; import NonFieldError from '#components/NonFieldError'; -import useTranslation from '#hooks/useTranslation'; +import Page from '#components/Page'; import useAlert from '#hooks/useAlert'; import useRouting from '#hooks/useRouting'; import { useLazyRequest } from '#utils/restRequest'; diff --git a/src/views/RecoverAccount/styles.module.css b/app/src/views/RecoverAccount/styles.module.css similarity index 100% rename from src/views/RecoverAccount/styles.module.css rename to app/src/views/RecoverAccount/styles.module.css diff --git a/src/views/RecoverAccountConfirm/i18n.json b/app/src/views/RecoverAccountConfirm/i18n.json similarity index 100% rename from src/views/RecoverAccountConfirm/i18n.json rename to app/src/views/RecoverAccountConfirm/i18n.json diff --git a/src/views/RecoverAccountConfirm/index.tsx b/app/src/views/RecoverAccountConfirm/index.tsx similarity index 96% rename from src/views/RecoverAccountConfirm/index.tsx rename to app/src/views/RecoverAccountConfirm/index.tsx index 54313b3348..b3570e7fd3 100644 --- a/src/views/RecoverAccountConfirm/index.tsx +++ b/app/src/views/RecoverAccountConfirm/index.tsx @@ -1,28 +1,28 @@ import { useCallback } from 'react'; import { useParams } from 'react-router-dom'; import { - useForm, + Button, + PasswordInput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { isTruthyString } from '@togglecorp/fujs'; +import { + addCondition, + createSubmitHandler, + getErrorObject, type ObjectSchema, requiredStringCondition, - getErrorObject, - createSubmitHandler, - addCondition, undefinedValue, + useForm, } from '@togglecorp/toggle-form'; -import { - isTruthyString, -} from '@togglecorp/fujs'; -import Page from '#components/Page'; -import Button from '#components/Button'; import NonFieldError from '#components/NonFieldError'; -import PasswordInput from '#components/PasswordInput'; -import useTranslation from '#hooks/useTranslation'; +import Page from '#components/Page'; import useAlert from '#hooks/useAlert'; import useRouting from '#hooks/useRouting'; import { - useLazyRequest, GoApiBody, + useLazyRequest, } from '#utils/restRequest'; import { transformObjectError } from '#utils/restRequest/error'; diff --git a/src/views/RecoverAccountConfirm/styles.module.css b/app/src/views/RecoverAccountConfirm/styles.module.css similarity index 100% rename from src/views/RecoverAccountConfirm/styles.module.css rename to app/src/views/RecoverAccountConfirm/styles.module.css diff --git a/src/views/Region/i18n.json b/app/src/views/Region/i18n.json similarity index 100% rename from src/views/Region/i18n.json rename to app/src/views/Region/i18n.json diff --git a/src/views/Region/index.tsx b/app/src/views/Region/index.tsx similarity index 93% rename from src/views/Region/index.tsx rename to app/src/views/Region/index.tsx index 3671c073b8..9b8cafe418 100644 --- a/src/views/Region/index.tsx +++ b/app/src/views/Region/index.tsx @@ -1,16 +1,25 @@ import { useMemo } from 'react'; -import { useParams, Outlet } from 'react-router-dom'; -import { isDefined, isNotDefined, isTruthyString } from '@togglecorp/fujs'; +import { + Outlet, + useParams, +} from 'react-router-dom'; +import { + BlockLoading, + NavigationTabList, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + isDefined, + isNotDefined, + isTruthyString, +} from '@togglecorp/fujs'; -import Page from '#components/Page'; -import BlockLoading from '#components/BlockLoading'; import RegionKeyFigures from '#components/domain/RegionKeyFigures'; -import NavigationTabList from '#components/NavigationTabList'; import NavigationTab from '#components/NavigationTab'; -import useTranslation from '#hooks/useTranslation'; +import Page from '#components/Page'; import useRegion from '#hooks/domain/useRegion'; -import { useRequest } from '#utils/restRequest'; import { type RegionOutletContext } from '#utils/outletContext'; +import { useRequest } from '#utils/restRequest'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/Region/styles.module.css b/app/src/views/Region/styles.module.css similarity index 100% rename from src/views/Region/styles.module.css rename to app/src/views/Region/styles.module.css diff --git a/src/views/RegionAdditionalInfo/i18n.json b/app/src/views/RegionAdditionalInfo/i18n.json similarity index 100% rename from src/views/RegionAdditionalInfo/i18n.json rename to app/src/views/RegionAdditionalInfo/i18n.json diff --git a/src/views/RegionAdditionalInfo/index.tsx b/app/src/views/RegionAdditionalInfo/index.tsx similarity index 91% rename from src/views/RegionAdditionalInfo/index.tsx rename to app/src/views/RegionAdditionalInfo/index.tsx index e1f7488220..74ce8331d5 100644 --- a/src/views/RegionAdditionalInfo/index.tsx +++ b/app/src/views/RegionAdditionalInfo/index.tsx @@ -1,18 +1,21 @@ import { useCallback } from 'react'; import { useOutletContext } from 'react-router-dom'; +import { + Container, + HtmlOutput, + HtmlOutputProps, + KeyFigure, + List, + Message, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToString } from '@ifrc-go/ui/utils'; import { - type RegionOutletContext, type RegionKeyFigureResponse, + type RegionOutletContext, type RegionResponse, } from '#utils/outletContext'; -import HtmlOutput, { type Props as HtmlOutputProps } from '#components/HtmlOutput'; -import Container from '#components/Container'; -import KeyFigure from '#components/KeyFigure'; -import Message from '#components/Message'; -import List from '#components/List'; -import useTranslation from '#hooks/useTranslation'; -import { resolveToString } from '#utils/translation'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/RegionAdditionalInfo/styles.module.css b/app/src/views/RegionAdditionalInfo/styles.module.css similarity index 100% rename from src/views/RegionAdditionalInfo/styles.module.css rename to app/src/views/RegionAdditionalInfo/styles.module.css diff --git a/src/views/RegionOperations/RecentEmergenciesTable/i18n.json b/app/src/views/RegionOperations/RecentEmergenciesTable/i18n.json similarity index 100% rename from src/views/RegionOperations/RecentEmergenciesTable/i18n.json rename to app/src/views/RegionOperations/RecentEmergenciesTable/i18n.json diff --git a/src/views/RegionOperations/RecentEmergenciesTable/index.tsx b/app/src/views/RegionOperations/RecentEmergenciesTable/index.tsx similarity index 91% rename from src/views/RegionOperations/RecentEmergenciesTable/index.tsx rename to app/src/views/RegionOperations/RecentEmergenciesTable/index.tsx index bf4fba081b..c8f680ae45 100644 --- a/src/views/RegionOperations/RecentEmergenciesTable/index.tsx +++ b/app/src/views/RegionOperations/RecentEmergenciesTable/index.tsx @@ -1,25 +1,31 @@ +import { useMemo } from 'react'; import { - useMemo, -} from 'react'; -import { max } from '@togglecorp/fujs'; -import { SortContext } from '#components/Table/useSorting'; -import Table from '#components/Table'; -import Container from '#components/Container'; -import Link from '#components/Link'; + Container, + NumberOutput, + Pager, + Table, +} from '@ifrc-go/ui'; +import { SortContext } from '@ifrc-go/ui/contexts'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { - createStringColumn, createDateColumn, createNumberColumn, - createLinkColumn, - createCountryListColumn, -} from '#components/Table/ColumnShortcuts'; -import Pager from '#components/Pager'; -import useTranslation from '#hooks/useTranslation'; + createStringColumn, + resolveToComponent, + sumSafe, +} from '@ifrc-go/ui/utils'; +import { max } from '@togglecorp/fujs'; + +import Link from '#components/Link'; import useFilterState from '#hooks/useFilterState'; -import NumberOutput from '#components/NumberOutput'; -import { useRequest, type GoApiResponse } from '#utils/restRequest'; -import { sumSafe } from '#utils/common'; -import { resolveToComponent } from '#utils/translation'; +import { + createCountryListColumn, + createLinkColumn, +} from '#utils/domain/tableHelpers'; +import { + type GoApiResponse, + useRequest, +} from '#utils/restRequest'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/RegionOperations/RecentEmergenciesTable/styles.module.css b/app/src/views/RegionOperations/RecentEmergenciesTable/styles.module.css similarity index 100% rename from src/views/RegionOperations/RecentEmergenciesTable/styles.module.css rename to app/src/views/RegionOperations/RecentEmergenciesTable/styles.module.css diff --git a/src/views/RegionOperations/i18n.json b/app/src/views/RegionOperations/i18n.json similarity index 100% rename from src/views/RegionOperations/i18n.json rename to app/src/views/RegionOperations/i18n.json diff --git a/src/views/RegionOperations/index.tsx b/app/src/views/RegionOperations/index.tsx similarity index 94% rename from src/views/RegionOperations/index.tsx rename to app/src/views/RegionOperations/index.tsx index 31eb610ca4..89da21f41d 100644 --- a/src/views/RegionOperations/index.tsx +++ b/app/src/views/RegionOperations/index.tsx @@ -1,32 +1,36 @@ import { useCallback, - useState, useEffect, useRef, + useState, } from 'react'; +import { + useOutletContext, + useParams, +} from 'react-router-dom'; +import { CloseLineIcon } from '@ifrc-go/icons'; +import { + Container, + HtmlOutput, + IconButton, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { _cs, isDefined, isNotDefined, } from '@togglecorp/fujs'; -import { useParams, useOutletContext } from 'react-router-dom'; -import { - CloseLineIcon, -} from '@ifrc-go/icons'; import getBbox from '@turf/bbox'; -import IconButton from '#components/IconButton'; -import HighlightedOperations from '#components/domain/HighlightedOperations'; -import RegionKeyFigures from '#components/domain/RegionKeyFigures'; import ActiveOperationMap from '#components/domain/ActiveOperationMap'; -import Container from '#components/Container'; -import HtmlOutput from '#components/HtmlOutput'; -import AppealsTable from '#components/domain/AppealsTable'; import AppealsOverYearsChart from '#components/domain/AppealsOverYearsChart'; -import useTranslation from '#hooks/useTranslation'; +import AppealsTable from '#components/domain/AppealsTable'; +import HighlightedOperations from '#components/domain/HighlightedOperations'; +import RegionKeyFigures from '#components/domain/RegionKeyFigures'; import { type RegionOutletContext } from '#utils/outletContext'; import RecentEmergenciesTable from './RecentEmergenciesTable'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/RegionOperations/styles.module.css b/app/src/views/RegionOperations/styles.module.css similarity index 100% rename from src/views/RegionOperations/styles.module.css rename to app/src/views/RegionOperations/styles.module.css diff --git a/src/views/RegionPreparedness/index.tsx b/app/src/views/RegionPreparedness/index.tsx similarity index 87% rename from src/views/RegionPreparedness/index.tsx rename to app/src/views/RegionPreparedness/index.tsx index 75faaa6bb9..3b094bbf46 100644 --- a/src/views/RegionPreparedness/index.tsx +++ b/app/src/views/RegionPreparedness/index.tsx @@ -1,9 +1,15 @@ import { useCallback } from 'react'; import { useOutletContext } from 'react-router-dom'; -import { type RegionOutletContext, type RegionResponse } from '#utils/outletContext'; -import HtmlOutput from '#components/HtmlOutput'; -import Container from '#components/Container'; -import List from '#components/List'; +import { + Container, + HtmlOutput, + List, +} from '@ifrc-go/ui'; + +import { + type RegionOutletContext, + type RegionResponse, +} from '#utils/outletContext'; import styles from './styles.module.css'; diff --git a/src/views/RegionPreparedness/styles.module.css b/app/src/views/RegionPreparedness/styles.module.css similarity index 100% rename from src/views/RegionPreparedness/styles.module.css rename to app/src/views/RegionPreparedness/styles.module.css diff --git a/src/views/RegionProfile/i18n.json b/app/src/views/RegionProfile/i18n.json similarity index 100% rename from src/views/RegionProfile/i18n.json rename to app/src/views/RegionProfile/i18n.json diff --git a/src/views/RegionProfile/index.tsx b/app/src/views/RegionProfile/index.tsx similarity index 94% rename from src/views/RegionProfile/index.tsx rename to app/src/views/RegionProfile/index.tsx index 4c1d5db611..04ad6349a0 100644 --- a/src/views/RegionProfile/index.tsx +++ b/app/src/views/RegionProfile/index.tsx @@ -1,13 +1,15 @@ import { useOutletContext } from 'react-router-dom'; import { RedCrossNationalSocietyIcon } from '@ifrc-go/icons'; +import { + Container, + HtmlOutput, + KeyFigure, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToString } from '@ifrc-go/ui/utils'; import { isValidEmail } from '@togglecorp/fujs'; -import Container from '#components/Container'; -import KeyFigure from '#components/KeyFigure'; import Link from '#components/Link'; -import HtmlOutput from '#components/HtmlOutput'; -import useTranslation from '#hooks/useTranslation'; -import { resolveToString } from '#utils/translation'; import { type RegionOutletContext } from '#utils/outletContext'; import i18n from './i18n.json'; diff --git a/src/views/RegionProfile/styles.module.css b/app/src/views/RegionProfile/styles.module.css similarity index 100% rename from src/views/RegionProfile/styles.module.css rename to app/src/views/RegionProfile/styles.module.css diff --git a/src/views/RegionRiskWatch/i18n.json b/app/src/views/RegionRiskWatch/i18n.json similarity index 100% rename from src/views/RegionRiskWatch/i18n.json rename to app/src/views/RegionRiskWatch/i18n.json diff --git a/src/views/RegionRiskWatch/index.tsx b/app/src/views/RegionRiskWatch/index.tsx similarity index 93% rename from src/views/RegionRiskWatch/index.tsx rename to app/src/views/RegionRiskWatch/index.tsx index 3cdbad9189..0f7558dff4 100644 --- a/src/views/RegionRiskWatch/index.tsx +++ b/app/src/views/RegionRiskWatch/index.tsx @@ -1,15 +1,15 @@ import { - useParams, Outlet, useOutletContext, + useParams, } from 'react-router-dom'; +import { NavigationTabList } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { isFalsyString } from '@togglecorp/fujs'; -import NavigationTabList from '#components/NavigationTabList'; import NavigationTab from '#components/NavigationTab'; import WikiLink from '#components/WikiLink'; import { RegionOutletContext } from '#utils/outletContext'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/RegionRiskWatch/styles.module.css b/app/src/views/RegionRiskWatch/styles.module.css similarity index 100% rename from src/views/RegionRiskWatch/styles.module.css rename to app/src/views/RegionRiskWatch/styles.module.css diff --git a/src/views/RegionRiskWatchImminent/index.tsx b/app/src/views/RegionRiskWatchImminent/index.tsx similarity index 100% rename from src/views/RegionRiskWatchImminent/index.tsx rename to app/src/views/RegionRiskWatchImminent/index.tsx diff --git a/src/views/RegionRiskWatchImminent/styles.module.css b/app/src/views/RegionRiskWatchImminent/styles.module.css similarity index 100% rename from src/views/RegionRiskWatchImminent/styles.module.css rename to app/src/views/RegionRiskWatchImminent/styles.module.css diff --git a/src/views/RegionRiskWatchSeasonal/index.tsx b/app/src/views/RegionRiskWatchSeasonal/index.tsx similarity index 94% rename from src/views/RegionRiskWatchSeasonal/index.tsx rename to app/src/views/RegionRiskWatchSeasonal/index.tsx index 33c8feb238..a03c18d0a4 100644 --- a/src/views/RegionRiskWatchSeasonal/index.tsx +++ b/app/src/views/RegionRiskWatchSeasonal/index.tsx @@ -1,5 +1,8 @@ import { useMemo } from 'react'; -import { useOutletContext, useParams } from 'react-router-dom'; +import { + useOutletContext, + useParams, +} from 'react-router-dom'; import getBbox from '@turf/bbox'; import { type LngLatBoundsLike } from 'mapbox-gl'; diff --git a/src/views/RegionRiskWatchSeasonal/styles.module.css b/app/src/views/RegionRiskWatchSeasonal/styles.module.css similarity index 100% rename from src/views/RegionRiskWatchSeasonal/styles.module.css rename to app/src/views/RegionRiskWatchSeasonal/styles.module.css diff --git a/src/views/RegionThreeW/CountryProjectTable/i18n.json b/app/src/views/RegionThreeW/CountryProjectTable/i18n.json similarity index 100% rename from src/views/RegionThreeW/CountryProjectTable/i18n.json rename to app/src/views/RegionThreeW/CountryProjectTable/i18n.json diff --git a/src/views/RegionThreeW/CountryProjectTable/index.tsx b/app/src/views/RegionThreeW/CountryProjectTable/index.tsx similarity index 91% rename from src/views/RegionThreeW/CountryProjectTable/index.tsx rename to app/src/views/RegionThreeW/CountryProjectTable/index.tsx index 368d64e3ef..d204e82214 100644 --- a/src/views/RegionThreeW/CountryProjectTable/index.tsx +++ b/app/src/views/RegionThreeW/CountryProjectTable/index.tsx @@ -1,25 +1,27 @@ import { useMemo } from 'react'; import { - isNotDefined, + Container, + Pager, + Table, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + createNumberColumn, + createStringColumn, + hasSomeDefinedValue, + numericIdSelector, +} from '@ifrc-go/ui/utils'; +import { isDefined, + isNotDefined, } from '@togglecorp/fujs'; -import Container from '#components/Container'; -import Table from '#components/Table'; -import Pager from '#components/Pager'; -import useTranslation from '#hooks/useTranslation'; -import { hasSomeDefinedValue } from '#utils/common'; import { type GoApiResponse } from '#utils/restRequest'; import { useRequest } from '#utils/restRequest'; -import { - createNumberColumn, - createStringColumn, -} from '#components/Table/ColumnShortcuts'; -import { numericIdSelector } from '#utils/selectors'; +import { type FilterValue } from '../Filters'; import i18n from './i18n.json'; -import { type FilterValue } from '../Filters'; type Project = NonNullable['results']>[number]; diff --git a/src/views/RegionThreeW/Filters/i18n.json b/app/src/views/RegionThreeW/Filters/i18n.json similarity index 100% rename from src/views/RegionThreeW/Filters/i18n.json rename to app/src/views/RegionThreeW/Filters/i18n.json diff --git a/src/views/RegionThreeW/Filters/index.tsx b/app/src/views/RegionThreeW/Filters/index.tsx similarity index 95% rename from src/views/RegionThreeW/Filters/index.tsx rename to app/src/views/RegionThreeW/Filters/index.tsx index c93cc9da5b..fdd2eb5d1c 100644 --- a/src/views/RegionThreeW/Filters/index.tsx +++ b/app/src/views/RegionThreeW/Filters/index.tsx @@ -1,14 +1,17 @@ -import { EntriesAsList } from '@togglecorp/toggle-form'; - -import MultiSelectInput from '#components/MultiSelectInput'; -import useTranslation from '#hooks/useTranslation'; -import { type GoApiResponse, useRequest } from '#utils/restRequest'; +import { MultiSelectInput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { numericKeySelector, stringLabelSelector, stringValueSelector, -} from '#utils/selectors'; +} from '@ifrc-go/ui/utils'; +import { EntriesAsList } from '@togglecorp/toggle-form'; + import useGlobalEnums from '#hooks/domain/useGlobalEnums'; +import { + type GoApiResponse, + useRequest, +} from '#utils/restRequest'; import i18n from './i18n.json'; diff --git a/src/views/RegionThreeW/MovementActivitiesMap/i18n.json b/app/src/views/RegionThreeW/MovementActivitiesMap/i18n.json similarity index 100% rename from src/views/RegionThreeW/MovementActivitiesMap/i18n.json rename to app/src/views/RegionThreeW/MovementActivitiesMap/i18n.json diff --git a/src/views/RegionThreeW/MovementActivitiesMap/index.tsx b/app/src/views/RegionThreeW/MovementActivitiesMap/index.tsx similarity index 98% rename from src/views/RegionThreeW/MovementActivitiesMap/index.tsx rename to app/src/views/RegionThreeW/MovementActivitiesMap/index.tsx index 9e6b73b4f7..3668a1e030 100644 --- a/src/views/RegionThreeW/MovementActivitiesMap/index.tsx +++ b/app/src/views/RegionThreeW/MovementActivitiesMap/index.tsx @@ -1,42 +1,45 @@ import { - useState, - useMemo, useCallback, + useMemo, + useState, } from 'react'; import { useOutletContext } from 'react-router-dom'; +import { + RawList, + TextOutput, + TextOutputProps, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { numericIdSelector } from '@ifrc-go/ui/utils'; import { _cs, isDefined, isNotDefined, } from '@togglecorp/fujs'; import { - MapSource, - MapLayer, MapBounds, + MapLayer, + MapSource, } from '@togglecorp/re-map'; import getBbox from '@turf/bbox'; -import MapContainerWithDisclaimer from '#components/MapContainerWithDisclaimer'; +import BaseMap from '#components/domain/BaseMap'; import Link from '#components/Link'; -import RawList from '#components/RawList'; +import MapContainerWithDisclaimer from '#components/MapContainerWithDisclaimer'; import MapPopup from '#components/MapPopup'; -import TextOutput, { Props as TextOutputProps } from '#components/TextOutput'; import useCountryRaw, { Country } from '#hooks/domain/useCountryRaw'; -import useTranslation from '#hooks/useTranslation'; -import { numericIdSelector } from '#utils/selectors'; -import { type GoApiResponse } from '#utils/restRequest'; -import { type RegionOutletContext } from '#utils/outletContext'; -import { - getPointCirclePaint, - getPointCircleHaloPaint, - adminFillLayerOptions, -} from '#utils/map'; import { COLOR_RED, - DURATION_MAP_ZOOM, DEFAULT_MAP_PADDING, + DURATION_MAP_ZOOM, } from '#utils/constants'; -import BaseMap from '#components/domain/BaseMap'; +import { + adminFillLayerOptions, + getPointCircleHaloPaint, + getPointCirclePaint, +} from '#utils/map'; +import { type RegionOutletContext } from '#utils/outletContext'; +import { type GoApiResponse } from '#utils/restRequest'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/RegionThreeW/MovementActivitiesMap/styles.module.css b/app/src/views/RegionThreeW/MovementActivitiesMap/styles.module.css similarity index 100% rename from src/views/RegionThreeW/MovementActivitiesMap/styles.module.css rename to app/src/views/RegionThreeW/MovementActivitiesMap/styles.module.css diff --git a/src/views/RegionThreeW/i18n.json b/app/src/views/RegionThreeW/i18n.json similarity index 100% rename from src/views/RegionThreeW/i18n.json rename to app/src/views/RegionThreeW/i18n.json diff --git a/src/views/RegionThreeW/index.tsx b/app/src/views/RegionThreeW/index.tsx similarity index 94% rename from src/views/RegionThreeW/index.tsx rename to app/src/views/RegionThreeW/index.tsx index 7857989aaf..706a32d916 100644 --- a/src/views/RegionThreeW/index.tsx +++ b/app/src/views/RegionThreeW/index.tsx @@ -1,40 +1,46 @@ -import { useMemo, useCallback } from 'react'; +import { + useCallback, + useMemo, +} from 'react'; import { useParams } from 'react-router-dom'; +import { DownloadFillIcon } from '@ifrc-go/icons'; +import { + BlockLoading, + Button, + Container, + ExpandableContainer, + ExpandableContainerProps, + KeyFigure, + List, + PieChart, + ProgressBar, + TextOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + numericCountSelector, + numericIdSelector, + resolveToString, + stringNameSelector, +} from '@ifrc-go/ui/utils'; import { _cs, isDefined, isNotDefined, } from '@togglecorp/fujs'; -import { - DownloadFillIcon, -} from '@ifrc-go/icons'; -import BlockLoading from '#components/BlockLoading'; -import Button from '#components/Button'; -import Container from '#components/Container'; -import ExpandableContainer, { - type Props as ExpandableContainerProps, -} from '#components/ExpandableContainer'; -import KeyFigure from '#components/KeyFigure'; import Link from '#components/Link'; -import List from '#components/List'; -import PieChart from '#components/PieChart'; -import ProgressBar from '#components/ProgressBar'; -import TextOutput from '#components/TextOutput'; import useGlobalEnums from '#hooks/domain/useGlobalEnums'; -import useTranslation from '#hooks/useTranslation'; import useFilterState from '#hooks/useFilterState'; -import { resolveToString } from '#utils/translation'; -import { type GoApiResponse, useRequest } from '#utils/restRequest'; import { - numericCountSelector, - stringNameSelector, - numericIdSelector, -} from '#utils/selectors'; + type GoApiResponse, + useRequest, +} from '#utils/restRequest'; import CountryProjectTable from './CountryProjectTable'; import Filters, { type FilterValue } from './Filters'; import MovementActivitiesMap from './MovementActivitiesMap'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/RegionThreeW/styles.module.css b/app/src/views/RegionThreeW/styles.module.css similarity index 100% rename from src/views/RegionThreeW/styles.module.css rename to app/src/views/RegionThreeW/styles.module.css diff --git a/src/views/Register/i18n.json b/app/src/views/Register/i18n.json similarity index 100% rename from src/views/Register/i18n.json rename to app/src/views/Register/i18n.json diff --git a/src/views/Register/index.tsx b/app/src/views/Register/index.tsx similarity index 97% rename from src/views/Register/index.tsx rename to app/src/views/Register/index.tsx index 7ae4af9cba..44ad91080f 100644 --- a/src/views/Register/index.tsx +++ b/app/src/views/Register/index.tsx @@ -1,42 +1,48 @@ +import { useCallback } from 'react'; import { - useCallback, -} from 'react'; + Button, + SelectInput, + TextArea, + TextInput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { - useForm, - type ObjectSchema, - requiredStringCondition, + isWhitelistedEmail, + resolveToComponent, +} from '@ifrc-go/ui/utils'; +import { + isDefined, + isTruthyString, + isValidEmail, +} from '@togglecorp/fujs'; +import { + addCondition, + createSubmitHandler, emailCondition, getErrorObject, + type ObjectSchema, type PartialForm, - createSubmitHandler, - addCondition, + requiredStringCondition, undefinedValue, + useForm, } from '@togglecorp/toggle-form'; -import { isTruthyString, isDefined, isValidEmail } from '@togglecorp/fujs'; -import useRouting from '#hooks/useRouting'; -import { transformObjectError } from '#utils/restRequest/error'; -import Page from '#components/Page'; -import TextInput from '#components/TextInput'; -import SelectInput from '#components/SelectInput'; -import TextArea from '#components/TextArea'; +import CountrySelectInput from '#components/domain/CountrySelectInput'; import Link from '#components/Link'; -import Button from '#components/Button'; import NonFieldError from '#components/NonFieldError'; -import useTranslation from '#hooks/useTranslation'; +import Page from '#components/Page'; +import WikiLink from '#components/WikiLink'; +import useGlobalEnums from '#hooks/domain/useGlobalEnums'; +import useNationalSociety, { NationalSociety } from '#hooks/domain/useNationalSociety'; import useAlert from '#hooks/useAlert'; -import { resolveToComponent } from '#utils/translation'; -import { isWhitelistedEmail } from '#utils/common'; +import useRouting from '#hooks/useRouting'; import { - useRequest, - useLazyRequest, - type GoApiResponse, type GoApiBody, + type GoApiResponse, + useLazyRequest, + useRequest, } from '#utils/restRequest'; -import useGlobalEnums from '#hooks/domain/useGlobalEnums'; -import useNationalSociety, { NationalSociety } from '#hooks/domain/useNationalSociety'; -import CountrySelectInput from '#components/domain/CountrySelectInput'; -import WikiLink from '#components/WikiLink'; +import { transformObjectError } from '#utils/restRequest/error'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/Register/styles.module.css b/app/src/views/Register/styles.module.css similarity index 100% rename from src/views/Register/styles.module.css rename to app/src/views/Register/styles.module.css diff --git a/src/views/ResendValidationEmail/i18n.json b/app/src/views/ResendValidationEmail/i18n.json similarity index 100% rename from src/views/ResendValidationEmail/i18n.json rename to app/src/views/ResendValidationEmail/i18n.json diff --git a/src/views/ResendValidationEmail/index.tsx b/app/src/views/ResendValidationEmail/index.tsx similarity index 96% rename from src/views/ResendValidationEmail/index.tsx rename to app/src/views/ResendValidationEmail/index.tsx index 0da3bdc3bb..0913c172a1 100644 --- a/src/views/ResendValidationEmail/index.tsx +++ b/app/src/views/ResendValidationEmail/index.tsx @@ -1,17 +1,19 @@ import { useMemo } from 'react'; import { - useForm, + Button, + TextInput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + createSubmitHandler, + getErrorObject, type ObjectSchema, requiredStringCondition, - getErrorObject, - createSubmitHandler, + useForm, } from '@togglecorp/toggle-form'; -import Page from '#components/Page'; -import TextInput from '#components/TextInput'; -import Button from '#components/Button'; import NonFieldError from '#components/NonFieldError'; -import useTranslation from '#hooks/useTranslation'; +import Page from '#components/Page'; import useAlert from '#hooks/useAlert'; import useRouting from '#hooks/useRouting'; import { useLazyRequest } from '#utils/restRequest'; diff --git a/src/views/ResendValidationEmail/styles.module.css b/app/src/views/ResendValidationEmail/styles.module.css similarity index 100% rename from src/views/ResendValidationEmail/styles.module.css rename to app/src/views/ResendValidationEmail/styles.module.css diff --git a/src/views/Resources/VideoList/i18n.json b/app/src/views/Resources/VideoList/i18n.json similarity index 100% rename from src/views/Resources/VideoList/i18n.json rename to app/src/views/Resources/VideoList/i18n.json diff --git a/src/views/Resources/VideoList/index.tsx b/app/src/views/Resources/VideoList/index.tsx similarity index 96% rename from src/views/Resources/VideoList/index.tsx rename to app/src/views/Resources/VideoList/index.tsx index e85fe9af72..63b0cc148e 100644 --- a/src/views/Resources/VideoList/index.tsx +++ b/app/src/views/Resources/VideoList/index.tsx @@ -1,5 +1,5 @@ -import Heading from '#components/Heading'; -import useTranslation from '#hooks/useTranslation'; +import { Heading } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/Resources/VideoList/styles.module.css b/app/src/views/Resources/VideoList/styles.module.css similarity index 100% rename from src/views/Resources/VideoList/styles.module.css rename to app/src/views/Resources/VideoList/styles.module.css diff --git a/src/views/Resources/i18n.json b/app/src/views/Resources/i18n.json similarity index 100% rename from src/views/Resources/i18n.json rename to app/src/views/Resources/i18n.json diff --git a/src/views/Resources/index.tsx b/app/src/views/Resources/index.tsx similarity index 99% rename from src/views/Resources/index.tsx rename to app/src/views/Resources/index.tsx index 58d1cee4b7..928acf5caf 100644 --- a/src/views/Resources/index.tsx +++ b/app/src/views/Resources/index.tsx @@ -1,25 +1,26 @@ -import Page from '#components/Page'; -import Container from '#components/Container'; -import Link from '#components/Link'; -import useTranslation from '#hooks/useTranslation'; -import { useRequest } from '#utils/restRequest'; -import { resolveToComponent } from '#utils/translation'; +import { Container } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToComponent } from '@ifrc-go/ui/utils'; import arcLogo from '#assets/icons/arc_logo.png'; import aurcLogo from '#assets/icons/aurc_logo.svg'; import brcLogo from '#assets/icons/brc_logo.png'; import crcLogo from '#assets/icons/crc_logo.png'; import dnkLogo from '#assets/icons/dnk_logo.png'; +import ericLogo from '#assets/icons/ericsson_logo.png'; +import esprcLogo from '#assets/icons/esp_logo.svg'; import frcLogo from '#assets/icons/frc_logo.png'; import jrcLogo from '#assets/icons/jrc_logo.png'; import nlrcLogo from '#assets/icons/nlrc_logo.jpg'; -import esprcLogo from '#assets/icons/esp_logo.svg'; -import ericLogo from '#assets/icons/ericsson_logo.png'; +import pdcLogo from '#assets/icons/pdc_logo.svg'; import swissLogo from '#assets/icons/swiss.svg'; import usAidLogo from '#assets/icons/us_aid.svg'; -import pdcLogo from '#assets/icons/pdc_logo.svg'; +import Link from '#components/Link'; +import Page from '#components/Page'; +import { useRequest } from '#utils/restRequest'; import VideoList from './VideoList'; + import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/Resources/styles.module.css b/app/src/views/Resources/styles.module.css similarity index 100% rename from src/views/Resources/styles.module.css rename to app/src/views/Resources/styles.module.css diff --git a/src/views/RiskWatch/i18n.json b/app/src/views/RiskWatch/i18n.json similarity index 100% rename from src/views/RiskWatch/i18n.json rename to app/src/views/RiskWatch/i18n.json diff --git a/src/views/RiskWatch/index.tsx b/app/src/views/RiskWatch/index.tsx similarity index 89% rename from src/views/RiskWatch/index.tsx rename to app/src/views/RiskWatch/index.tsx index 8873b71d25..209b77b429 100644 --- a/src/views/RiskWatch/index.tsx +++ b/app/src/views/RiskWatch/index.tsx @@ -1,8 +1,9 @@ import { Outlet } from 'react-router-dom'; -import Page from '#components/Page'; -import useTranslation from '#hooks/useTranslation'; -import NavigationTabList from '#components/NavigationTabList'; +import { NavigationTabList } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + import NavigationTab from '#components/NavigationTab'; +import Page from '#components/Page'; import i18n from './i18n.json'; diff --git a/src/views/RiskWatchImminent/i18n.json b/app/src/views/RiskWatchImminent/i18n.json similarity index 100% rename from src/views/RiskWatchImminent/i18n.json rename to app/src/views/RiskWatchImminent/i18n.json diff --git a/src/views/RiskWatchImminent/index.tsx b/app/src/views/RiskWatchImminent/index.tsx similarity index 93% rename from src/views/RiskWatchImminent/index.tsx rename to app/src/views/RiskWatchImminent/index.tsx index 63908204b0..7bec2e0a51 100644 --- a/src/views/RiskWatchImminent/index.tsx +++ b/app/src/views/RiskWatchImminent/index.tsx @@ -1,7 +1,7 @@ +import { useTranslation } from '@ifrc-go/ui/hooks'; import { type LngLatBoundsLike } from 'mapbox-gl'; import RiskImminentEvents from '#components/domain/RiskImminentEvents'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/RiskWatchImminent/styles.module.css b/app/src/views/RiskWatchImminent/styles.module.css similarity index 100% rename from src/views/RiskWatchImminent/styles.module.css rename to app/src/views/RiskWatchImminent/styles.module.css diff --git a/src/views/RiskWatchSeasonal/index.tsx b/app/src/views/RiskWatchSeasonal/index.tsx similarity index 99% rename from src/views/RiskWatchSeasonal/index.tsx rename to app/src/views/RiskWatchSeasonal/index.tsx index 81b7f54dd1..54ddccc442 100644 --- a/src/views/RiskWatchSeasonal/index.tsx +++ b/app/src/views/RiskWatchSeasonal/index.tsx @@ -1,6 +1,7 @@ -import RiskSeasonalMap from '#components/domain/RiskSeasonalMap'; import { type LngLatBoundsLike } from 'mapbox-gl'; +import RiskSeasonalMap from '#components/domain/RiskSeasonalMap'; + const defaultBounds: LngLatBoundsLike = [-160, -60, 190, 80]; // eslint-disable-next-line import/prefer-default-export diff --git a/src/views/RootLayout/i18n.json b/app/src/views/RootLayout/i18n.json similarity index 100% rename from src/views/RootLayout/i18n.json rename to app/src/views/RootLayout/i18n.json diff --git a/src/views/RootLayout/index.tsx b/app/src/views/RootLayout/index.tsx similarity index 96% rename from src/views/RootLayout/index.tsx rename to app/src/views/RootLayout/index.tsx index f9949d93ea..9863acf108 100644 --- a/src/views/RootLayout/index.tsx +++ b/app/src/views/RootLayout/index.tsx @@ -1,36 +1,43 @@ import { - useMemo, useCallback, - useState, useContext, useEffect, + useMemo, useRef, + useState, } from 'react'; +import { unstable_batchedUpdates } from 'react-dom'; import { - unstable_batchedUpdates, -} from 'react-dom'; + Outlet, + useNavigation, +} from 'react-router-dom'; +import { AlertContainer } from '@ifrc-go/ui'; +import { LanguageContext } from '@ifrc-go/ui/contexts'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { _cs, + isDefined, + isFalsyString, listToGroupList, listToMap, mapToList, mapToMap, - isFalsyString, - isDefined, } from '@togglecorp/fujs'; -import { Outlet, useNavigation } from 'react-router-dom'; -import useAuth from '#hooks/domain/useAuth'; -import Navbar from '#components/Navbar'; import GlobalFooter from '#components/GlobalFooter'; -import AlertContainer from '#components/AlertContainer'; -import useDebouncedValue from '#hooks/useDebouncedValue'; -import useTranslation from '#hooks/useTranslation'; -import { useLazyRequest, useRequest } from '#utils/restRequest'; -import DomainContext, { type CacheKey, type Domain } from '#contexts/domain'; -import UserContext from '#contexts/user'; -import LanguageContext from '#contexts/language'; +import Navbar from '#components/Navbar'; import { environment } from '#config'; +import DomainContext, { + type CacheKey, + type Domain, +} from '#contexts/domain'; +import UserContext from '#contexts/user'; +import useAuth from '#hooks/domain/useAuth'; +import useDebouncedValue from '#hooks/useDebouncedValue'; +import { + useLazyRequest, + useRequest, +} from '#utils/restRequest'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/RootLayout/styles.module.css b/app/src/views/RootLayout/styles.module.css similarity index 100% rename from src/views/RootLayout/styles.module.css rename to app/src/views/RootLayout/styles.module.css diff --git a/src/views/Search/ResultList/index.tsx b/app/src/views/Search/ResultList/index.tsx similarity index 97% rename from src/views/Search/ResultList/index.tsx rename to app/src/views/Search/ResultList/index.tsx index 49eb6c67d8..c0214bbdb0 100644 --- a/src/views/Search/ResultList/index.tsx +++ b/app/src/views/Search/ResultList/index.tsx @@ -1,9 +1,12 @@ import { useMemo } from 'react'; -import { isDefined, isNotDefined } from '@togglecorp/fujs'; +import { Container } from '@ifrc-go/ui'; +import { + isDefined, + isNotDefined, +} from '@togglecorp/fujs'; -import { type GoApiResponse } from '#utils/restRequest'; import Link from '#components/Link'; -import Container from '#components/Container'; +import { type GoApiResponse } from '#utils/restRequest'; import styles from './styles.module.css'; diff --git a/src/views/Search/ResultList/styles.module.css b/app/src/views/Search/ResultList/styles.module.css similarity index 100% rename from src/views/Search/ResultList/styles.module.css rename to app/src/views/Search/ResultList/styles.module.css diff --git a/src/views/Search/ResultTable/index.tsx b/app/src/views/Search/ResultTable/index.tsx similarity index 91% rename from src/views/Search/ResultTable/index.tsx rename to app/src/views/Search/ResultTable/index.tsx index 8e379d78e0..fa8f83b2b6 100644 --- a/src/views/Search/ResultTable/index.tsx +++ b/app/src/views/Search/ResultTable/index.tsx @@ -1,10 +1,15 @@ import { useMemo } from 'react'; -import { isDefined, isNotDefined } from '@togglecorp/fujs'; +import { + Container, + Table, +} from '@ifrc-go/ui'; +import { type Column } from '@ifrc-go/ui'; +import { + isDefined, + isNotDefined, +} from '@togglecorp/fujs'; import { type GoApiResponse } from '#utils/restRequest'; -import { type Column } from '#components/Table/types'; -import Table from '#components/Table'; -import Container from '#components/Container'; import useColumns from '../useColumns'; diff --git a/src/views/Search/i18n.json b/app/src/views/Search/i18n.json similarity index 100% rename from src/views/Search/i18n.json rename to app/src/views/Search/i18n.json diff --git a/src/views/Search/index.tsx b/app/src/views/Search/index.tsx similarity index 97% rename from src/views/Search/index.tsx rename to app/src/views/Search/index.tsx index 33ffd5b3dc..cb9b169997 100644 --- a/src/views/Search/index.tsx +++ b/app/src/views/Search/index.tsx @@ -1,38 +1,46 @@ import { useCallback, + useEffect, useMemo, useState, - useEffect, } from 'react'; import { - isDefined, - isNotDefined, - compareNumber, -} from '@togglecorp/fujs'; -import { - ChevronRightLineIcon, ChevronLeftLineIcon, + ChevronRightLineIcon, CloseLineIcon, SearchLineIcon, } from '@ifrc-go/icons'; +import { + BlockLoading, + Button, + Container, + TextInput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { + resolveToString, + sumSafe, +} from '@ifrc-go/ui/utils'; +import { + compareNumber, + isDefined, + isNotDefined, +} from '@togglecorp/fujs'; -import Container from '#components/Container'; import Link from '#components/Link'; -import Button from '#components/Button'; import Page from '#components/Page'; -import BlockLoading from '#components/BlockLoading'; -import TextInput from '#components/TextInput'; import useInputState from '#hooks/useInputState'; -import useTranslation from '#hooks/useTranslation'; import useUrlSearchState from '#hooks/useUrlSearchState'; -import { resolveToString } from '#utils/translation'; -import { KEY_URL_SEARCH, SEARCH_TEXT_LENGTH_MIN } from '#utils/constants'; -import { useRequest } from '#utils/restRequest'; +import { defaultRanking } from '#utils/common'; +import { + KEY_URL_SEARCH, + SEARCH_TEXT_LENGTH_MIN, +} from '#utils/constants'; import type { GoApiResponse } from '#utils/restRequest'; -import { sumSafe, defaultRanking } from '#utils/common'; +import { useRequest } from '#utils/restRequest'; -import ResultTable from './ResultTable'; import ResultList from './ResultList'; +import ResultTable from './ResultTable'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/Search/styles.module.css b/app/src/views/Search/styles.module.css similarity index 100% rename from src/views/Search/styles.module.css rename to app/src/views/Search/styles.module.css diff --git a/src/views/Search/useColumns/DistrictNameOutput/index.tsx b/app/src/views/Search/useColumns/DistrictNameOutput/index.tsx similarity index 100% rename from src/views/Search/useColumns/DistrictNameOutput/index.tsx rename to app/src/views/Search/useColumns/DistrictNameOutput/index.tsx diff --git a/src/views/Search/useColumns/i18n.json b/app/src/views/Search/useColumns/i18n.json similarity index 100% rename from src/views/Search/useColumns/i18n.json rename to app/src/views/Search/useColumns/i18n.json diff --git a/src/views/Search/useColumns/index.tsx b/app/src/views/Search/useColumns/index.tsx similarity index 98% rename from src/views/Search/useColumns/index.tsx rename to app/src/views/Search/useColumns/index.tsx index 5b374faf24..b4d259635f 100644 --- a/src/views/Search/useColumns/index.tsx +++ b/app/src/views/Search/useColumns/index.tsx @@ -1,22 +1,29 @@ -import { useMemo, useCallback } from 'react'; -import { isNotDefined } from '@togglecorp/fujs'; - import { - createNumberColumn, - createStringColumn, - createLinkColumn, - createProgressColumn, - createCountryListColumn, + useCallback, + useMemo, +} from 'react'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { createDateColumn, createDateRangeColumn, createListDisplayColumn, -} from '#components/Table/ColumnShortcuts'; + createNumberColumn, + createProgressColumn, + createStringColumn, + getDuration, + getPercentage, +} from '@ifrc-go/ui/utils'; +import { isNotDefined } from '@togglecorp/fujs'; + import SeverityIndicator from '#components/domain/SeverityIndicator'; -import useTranslation from '#hooks/useTranslation'; -import { getDuration, getPercentage } from '#utils/common'; +import { + createCountryListColumn, + createLinkColumn, +} from '#utils/domain/tableHelpers'; import { type GoApiResponse } from '#utils/restRequest'; import DistrictNameOutput from './DistrictNameOutput'; + import i18n from './i18n.json'; type SearchResponse = GoApiResponse<'/api/v1/search/'>; diff --git a/src/views/Surge/i18n.json b/app/src/views/Surge/i18n.json similarity index 100% rename from src/views/Surge/i18n.json rename to app/src/views/Surge/i18n.json diff --git a/src/views/Surge/index.tsx b/app/src/views/Surge/index.tsx similarity index 90% rename from src/views/Surge/index.tsx rename to app/src/views/Surge/index.tsx index 03dddadf7c..8a08a4395d 100644 --- a/src/views/Surge/index.tsx +++ b/app/src/views/Surge/index.tsx @@ -1,13 +1,19 @@ import { Outlet } from 'react-router-dom'; -import { DeployedIcon, EmergencyResponseUnitIcon, ClinicIcon } from '@ifrc-go/icons'; +import { + ClinicIcon, + DeployedIcon, + EmergencyResponseUnitIcon, +} from '@ifrc-go/icons'; +import { + BlockLoading, + KeyFigure, + NavigationTabList, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; -import NavigationTabList from '#components/NavigationTabList'; import NavigationTab from '#components/NavigationTab'; import Page from '#components/Page'; -import BlockLoading from '#components/BlockLoading'; -import useTranslation from '#hooks/useTranslation'; import { useRequest } from '#utils/restRequest'; -import KeyFigure from '#components/KeyFigure'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/Surge/styles.module.css b/app/src/views/Surge/styles.module.css similarity index 100% rename from src/views/Surge/styles.module.css rename to app/src/views/Surge/styles.module.css diff --git a/src/views/SurgeCatalogue/i18n.json b/app/src/views/SurgeCatalogue/i18n.json similarity index 100% rename from src/views/SurgeCatalogue/i18n.json rename to app/src/views/SurgeCatalogue/i18n.json diff --git a/src/views/SurgeCatalogue/index.tsx b/app/src/views/SurgeCatalogue/index.tsx similarity index 98% rename from src/views/SurgeCatalogue/index.tsx rename to app/src/views/SurgeCatalogue/index.tsx index 784317f080..85a3123b30 100644 --- a/src/views/SurgeCatalogue/index.tsx +++ b/app/src/views/SurgeCatalogue/index.tsx @@ -1,28 +1,28 @@ import { Outlet } from 'react-router-dom'; import { + AnalysisIcon, BasecampIcon, CashTransferIcon, CoordinatedAssessementIcon, - HealthIcon, - PartnershipIcon, - PublicInformationIcon, - AnalysisIcon, EmergencyTelecommunicationsIcon, + GroupIcon, + HealthIcon, LivelihoodIcon, LogisticsIcon, - GroupIcon, - ProtectionIcon, MonitoringIcon, - ShelterIcon, - WaterSanitationAndHygieneIcon, + MoreOptionsIcon, NonFoodItemsIcon, + PartnershipIcon, + ProtectionIcon, + PublicInformationIcon, SafetyAndSecurityIcon, - MoreOptionsIcon, + ShelterIcon, + WaterSanitationAndHygieneIcon, } from '@ifrc-go/icons'; +import { NavigationTabList } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; -import NavigationTabList from '#components/NavigationTabList'; import NavigationTab from '#components/NavigationTab'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/SurgeCatalogue/styles.module.css b/app/src/views/SurgeCatalogue/styles.module.css similarity index 100% rename from src/views/SurgeCatalogue/styles.module.css rename to app/src/views/SurgeCatalogue/styles.module.css diff --git a/src/views/SurgeCatalogueBasecamp/i18n.json b/app/src/views/SurgeCatalogueBasecamp/i18n.json similarity index 100% rename from src/views/SurgeCatalogueBasecamp/i18n.json rename to app/src/views/SurgeCatalogueBasecamp/i18n.json diff --git a/src/views/SurgeCatalogueBasecamp/index.tsx b/app/src/views/SurgeCatalogueBasecamp/index.tsx similarity index 97% rename from src/views/SurgeCatalogueBasecamp/index.tsx rename to app/src/views/SurgeCatalogueBasecamp/index.tsx index 4d6b52d1cc..df27c7237e 100644 --- a/src/views/SurgeCatalogueBasecamp/index.tsx +++ b/app/src/views/SurgeCatalogueBasecamp/index.tsx @@ -1,7 +1,8 @@ -import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; -import SurgeCardContainer from '#components/domain/SurgeCardContainer'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + import CatalogueInfoCard, { LinkData } from '#components/CatalogueInfoCard'; -import useTranslation from '#hooks/useTranslation'; +import SurgeCardContainer from '#components/domain/SurgeCardContainer'; +import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueBasecampEruLarge/i18n.json b/app/src/views/SurgeCatalogueBasecampEruLarge/i18n.json similarity index 100% rename from src/views/SurgeCatalogueBasecampEruLarge/i18n.json rename to app/src/views/SurgeCatalogueBasecampEruLarge/i18n.json diff --git a/src/views/SurgeCatalogueBasecampEruLarge/index.tsx b/app/src/views/SurgeCatalogueBasecampEruLarge/index.tsx similarity index 98% rename from src/views/SurgeCatalogueBasecampEruLarge/index.tsx rename to app/src/views/SurgeCatalogueBasecampEruLarge/index.tsx index 3bd5f9321f..3d5dea5335 100644 --- a/src/views/SurgeCatalogueBasecampEruLarge/index.tsx +++ b/app/src/views/SurgeCatalogueBasecampEruLarge/index.tsx @@ -1,9 +1,9 @@ import { useMemo } from 'react'; +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueBasecampEruMedium/i18n.json b/app/src/views/SurgeCatalogueBasecampEruMedium/i18n.json similarity index 100% rename from src/views/SurgeCatalogueBasecampEruMedium/i18n.json rename to app/src/views/SurgeCatalogueBasecampEruMedium/i18n.json diff --git a/src/views/SurgeCatalogueBasecampEruMedium/index.tsx b/app/src/views/SurgeCatalogueBasecampEruMedium/index.tsx similarity index 98% rename from src/views/SurgeCatalogueBasecampEruMedium/index.tsx rename to app/src/views/SurgeCatalogueBasecampEruMedium/index.tsx index 7c4352fc25..796b101636 100644 --- a/src/views/SurgeCatalogueBasecampEruMedium/index.tsx +++ b/app/src/views/SurgeCatalogueBasecampEruMedium/index.tsx @@ -1,9 +1,9 @@ import { useMemo } from 'react'; +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueBasecampEruSmall/i18n.json b/app/src/views/SurgeCatalogueBasecampEruSmall/i18n.json similarity index 100% rename from src/views/SurgeCatalogueBasecampEruSmall/i18n.json rename to app/src/views/SurgeCatalogueBasecampEruSmall/i18n.json diff --git a/src/views/SurgeCatalogueBasecampEruSmall/index.tsx b/app/src/views/SurgeCatalogueBasecampEruSmall/index.tsx similarity index 98% rename from src/views/SurgeCatalogueBasecampEruSmall/index.tsx rename to app/src/views/SurgeCatalogueBasecampEruSmall/index.tsx index 034f42090f..faf79411a7 100644 --- a/src/views/SurgeCatalogueBasecampEruSmall/index.tsx +++ b/app/src/views/SurgeCatalogueBasecampEruSmall/index.tsx @@ -1,9 +1,9 @@ import { useMemo } from 'react'; +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueBasecampFacilityManagement/i18n.json b/app/src/views/SurgeCatalogueBasecampFacilityManagement/i18n.json similarity index 100% rename from src/views/SurgeCatalogueBasecampFacilityManagement/i18n.json rename to app/src/views/SurgeCatalogueBasecampFacilityManagement/i18n.json diff --git a/src/views/SurgeCatalogueBasecampFacilityManagement/index.tsx b/app/src/views/SurgeCatalogueBasecampFacilityManagement/index.tsx similarity index 96% rename from src/views/SurgeCatalogueBasecampFacilityManagement/index.tsx rename to app/src/views/SurgeCatalogueBasecampFacilityManagement/index.tsx index 66b55e2d08..4c9d1dffc1 100644 --- a/src/views/SurgeCatalogueBasecampFacilityManagement/index.tsx +++ b/app/src/views/SurgeCatalogueBasecampFacilityManagement/index.tsx @@ -1,7 +1,8 @@ +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueCash/i18n.json b/app/src/views/SurgeCatalogueCash/i18n.json similarity index 100% rename from src/views/SurgeCatalogueCash/i18n.json rename to app/src/views/SurgeCatalogueCash/i18n.json diff --git a/src/views/SurgeCatalogueCash/index.tsx b/app/src/views/SurgeCatalogueCash/index.tsx similarity index 98% rename from src/views/SurgeCatalogueCash/index.tsx rename to app/src/views/SurgeCatalogueCash/index.tsx index 95b4d6dd34..3ca3454b52 100644 --- a/src/views/SurgeCatalogueCash/index.tsx +++ b/app/src/views/SurgeCatalogueCash/index.tsx @@ -1,7 +1,8 @@ -import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; -import SurgeCardContainer from '#components/domain/SurgeCardContainer'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + import CatalogueInfoCard, { LinkData } from '#components/CatalogueInfoCard'; -import useTranslation from '#hooks/useTranslation'; +import SurgeCardContainer from '#components/domain/SurgeCardContainer'; +import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueCashRapidResponse/i18n.json b/app/src/views/SurgeCatalogueCashRapidResponse/i18n.json similarity index 100% rename from src/views/SurgeCatalogueCashRapidResponse/i18n.json rename to app/src/views/SurgeCatalogueCashRapidResponse/i18n.json diff --git a/src/views/SurgeCatalogueCashRapidResponse/index.tsx b/app/src/views/SurgeCatalogueCashRapidResponse/index.tsx similarity index 98% rename from src/views/SurgeCatalogueCashRapidResponse/index.tsx rename to app/src/views/SurgeCatalogueCashRapidResponse/index.tsx index b2d41c48b4..926d8a64fe 100644 --- a/src/views/SurgeCatalogueCashRapidResponse/index.tsx +++ b/app/src/views/SurgeCatalogueCashRapidResponse/index.tsx @@ -1,9 +1,9 @@ import { useMemo } from 'react'; +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueCommunication/i18n.json b/app/src/views/SurgeCatalogueCommunication/i18n.json similarity index 100% rename from src/views/SurgeCatalogueCommunication/i18n.json rename to app/src/views/SurgeCatalogueCommunication/i18n.json diff --git a/src/views/SurgeCatalogueCommunication/index.tsx b/app/src/views/SurgeCatalogueCommunication/index.tsx similarity index 98% rename from src/views/SurgeCatalogueCommunication/index.tsx rename to app/src/views/SurgeCatalogueCommunication/index.tsx index c84fe40685..a9bad1c5ad 100644 --- a/src/views/SurgeCatalogueCommunication/index.tsx +++ b/app/src/views/SurgeCatalogueCommunication/index.tsx @@ -1,7 +1,8 @@ -import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; -import SurgeCardContainer from '#components/domain/SurgeCardContainer'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + import CatalogueInfoCard, { LinkData } from '#components/CatalogueInfoCard'; -import useTranslation from '#hooks/useTranslation'; +import SurgeCardContainer from '#components/domain/SurgeCardContainer'; +import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueCommunicationErtOne/i18n.json b/app/src/views/SurgeCatalogueCommunicationErtOne/i18n.json similarity index 100% rename from src/views/SurgeCatalogueCommunicationErtOne/i18n.json rename to app/src/views/SurgeCatalogueCommunicationErtOne/i18n.json diff --git a/src/views/SurgeCatalogueCommunicationErtOne/index.tsx b/app/src/views/SurgeCatalogueCommunicationErtOne/index.tsx similarity index 97% rename from src/views/SurgeCatalogueCommunicationErtOne/index.tsx rename to app/src/views/SurgeCatalogueCommunicationErtOne/index.tsx index ab131cb4a2..1045b9b983 100644 --- a/src/views/SurgeCatalogueCommunicationErtOne/index.tsx +++ b/app/src/views/SurgeCatalogueCommunicationErtOne/index.tsx @@ -1,9 +1,9 @@ import { useMemo } from 'react'; +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueCommunicationErtThree/i18n.json b/app/src/views/SurgeCatalogueCommunicationErtThree/i18n.json similarity index 100% rename from src/views/SurgeCatalogueCommunicationErtThree/i18n.json rename to app/src/views/SurgeCatalogueCommunicationErtThree/i18n.json diff --git a/src/views/SurgeCatalogueCommunicationErtThree/index.tsx b/app/src/views/SurgeCatalogueCommunicationErtThree/index.tsx similarity index 98% rename from src/views/SurgeCatalogueCommunicationErtThree/index.tsx rename to app/src/views/SurgeCatalogueCommunicationErtThree/index.tsx index 01b835300e..1b5642e599 100644 --- a/src/views/SurgeCatalogueCommunicationErtThree/index.tsx +++ b/app/src/views/SurgeCatalogueCommunicationErtThree/index.tsx @@ -1,9 +1,9 @@ import { useMemo } from 'react'; +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueCommunicationErtTwo/i18n.json b/app/src/views/SurgeCatalogueCommunicationErtTwo/i18n.json similarity index 100% rename from src/views/SurgeCatalogueCommunicationErtTwo/i18n.json rename to app/src/views/SurgeCatalogueCommunicationErtTwo/i18n.json diff --git a/src/views/SurgeCatalogueCommunicationErtTwo/index.tsx b/app/src/views/SurgeCatalogueCommunicationErtTwo/index.tsx similarity index 98% rename from src/views/SurgeCatalogueCommunicationErtTwo/index.tsx rename to app/src/views/SurgeCatalogueCommunicationErtTwo/index.tsx index 99994c4490..b4f675708b 100644 --- a/src/views/SurgeCatalogueCommunicationErtTwo/index.tsx +++ b/app/src/views/SurgeCatalogueCommunicationErtTwo/index.tsx @@ -1,9 +1,9 @@ import { useMemo } from 'react'; +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueCommunityEngagement/i18n.json b/app/src/views/SurgeCatalogueCommunityEngagement/i18n.json similarity index 100% rename from src/views/SurgeCatalogueCommunityEngagement/i18n.json rename to app/src/views/SurgeCatalogueCommunityEngagement/i18n.json diff --git a/src/views/SurgeCatalogueCommunityEngagement/index.tsx b/app/src/views/SurgeCatalogueCommunityEngagement/index.tsx similarity index 98% rename from src/views/SurgeCatalogueCommunityEngagement/index.tsx rename to app/src/views/SurgeCatalogueCommunityEngagement/index.tsx index 13b7d102b0..0f6bea8639 100644 --- a/src/views/SurgeCatalogueCommunityEngagement/index.tsx +++ b/app/src/views/SurgeCatalogueCommunityEngagement/index.tsx @@ -1,7 +1,8 @@ +import { useTranslation } from '@ifrc-go/ui/hooks'; + +import CatalogueInfoCard, { LinkData } from '#components/CatalogueInfoCard'; import SurgeCardContainer from '#components/domain/SurgeCardContainer'; import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; -import CatalogueInfoCard, { LinkData } from '#components/CatalogueInfoCard'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueCommunityEngagementRapidResponse/i18n.json b/app/src/views/SurgeCatalogueCommunityEngagementRapidResponse/i18n.json similarity index 100% rename from src/views/SurgeCatalogueCommunityEngagementRapidResponse/i18n.json rename to app/src/views/SurgeCatalogueCommunityEngagementRapidResponse/i18n.json diff --git a/src/views/SurgeCatalogueCommunityEngagementRapidResponse/index.tsx b/app/src/views/SurgeCatalogueCommunityEngagementRapidResponse/index.tsx similarity index 97% rename from src/views/SurgeCatalogueCommunityEngagementRapidResponse/index.tsx rename to app/src/views/SurgeCatalogueCommunityEngagementRapidResponse/index.tsx index 5816ecffe7..c55d9dda69 100644 --- a/src/views/SurgeCatalogueCommunityEngagementRapidResponse/index.tsx +++ b/app/src/views/SurgeCatalogueCommunityEngagementRapidResponse/index.tsx @@ -1,9 +1,9 @@ import { useMemo } from 'react'; +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueEmergencyNeedsAssessment/i18n.json b/app/src/views/SurgeCatalogueEmergencyNeedsAssessment/i18n.json similarity index 100% rename from src/views/SurgeCatalogueEmergencyNeedsAssessment/i18n.json rename to app/src/views/SurgeCatalogueEmergencyNeedsAssessment/i18n.json diff --git a/src/views/SurgeCatalogueEmergencyNeedsAssessment/index.tsx b/app/src/views/SurgeCatalogueEmergencyNeedsAssessment/index.tsx similarity index 98% rename from src/views/SurgeCatalogueEmergencyNeedsAssessment/index.tsx rename to app/src/views/SurgeCatalogueEmergencyNeedsAssessment/index.tsx index 70606d3a4f..54d63d278b 100644 --- a/src/views/SurgeCatalogueEmergencyNeedsAssessment/index.tsx +++ b/app/src/views/SurgeCatalogueEmergencyNeedsAssessment/index.tsx @@ -1,9 +1,9 @@ import { useMemo } from 'react'; +import { useTranslation } from '@ifrc-go/ui/hooks'; -import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; -import SurgeCardContainer from '#components/domain/SurgeCardContainer'; import CatalogueInfoCard, { LinkData } from '#components/CatalogueInfoCard'; -import useTranslation from '#hooks/useTranslation'; +import SurgeCardContainer from '#components/domain/SurgeCardContainer'; +import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueEmergencyNeedsAssessmentCell/i18n.json b/app/src/views/SurgeCatalogueEmergencyNeedsAssessmentCell/i18n.json similarity index 100% rename from src/views/SurgeCatalogueEmergencyNeedsAssessmentCell/i18n.json rename to app/src/views/SurgeCatalogueEmergencyNeedsAssessmentCell/i18n.json diff --git a/src/views/SurgeCatalogueEmergencyNeedsAssessmentCell/index.tsx b/app/src/views/SurgeCatalogueEmergencyNeedsAssessmentCell/index.tsx similarity index 97% rename from src/views/SurgeCatalogueEmergencyNeedsAssessmentCell/index.tsx rename to app/src/views/SurgeCatalogueEmergencyNeedsAssessmentCell/index.tsx index 4355a7f08c..1926214ec3 100644 --- a/src/views/SurgeCatalogueEmergencyNeedsAssessmentCell/index.tsx +++ b/app/src/views/SurgeCatalogueEmergencyNeedsAssessmentCell/index.tsx @@ -1,8 +1,9 @@ import { useMemo } from 'react'; +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueHealth/i18n.json b/app/src/views/SurgeCatalogueHealth/i18n.json similarity index 100% rename from src/views/SurgeCatalogueHealth/i18n.json rename to app/src/views/SurgeCatalogueHealth/i18n.json diff --git a/src/views/SurgeCatalogueHealth/index.tsx b/app/src/views/SurgeCatalogueHealth/index.tsx similarity index 99% rename from src/views/SurgeCatalogueHealth/index.tsx rename to app/src/views/SurgeCatalogueHealth/index.tsx index f6bdc91973..2e34b56843 100644 --- a/src/views/SurgeCatalogueHealth/index.tsx +++ b/app/src/views/SurgeCatalogueHealth/index.tsx @@ -1,7 +1,8 @@ +import { useTranslation } from '@ifrc-go/ui/hooks'; + +import CatalogueInfoCard, { LinkData } from '#components/CatalogueInfoCard'; import SurgeCardContainer from '#components/domain/SurgeCardContainer'; import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; -import CatalogueInfoCard, { LinkData } from '#components/CatalogueInfoCard'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueHealthCommunityBasedSurveillance/i18n.json b/app/src/views/SurgeCatalogueHealthCommunityBasedSurveillance/i18n.json similarity index 100% rename from src/views/SurgeCatalogueHealthCommunityBasedSurveillance/i18n.json rename to app/src/views/SurgeCatalogueHealthCommunityBasedSurveillance/i18n.json diff --git a/src/views/SurgeCatalogueHealthCommunityBasedSurveillance/index.tsx b/app/src/views/SurgeCatalogueHealthCommunityBasedSurveillance/index.tsx similarity index 97% rename from src/views/SurgeCatalogueHealthCommunityBasedSurveillance/index.tsx rename to app/src/views/SurgeCatalogueHealthCommunityBasedSurveillance/index.tsx index 85cd637b4c..688efb3022 100644 --- a/src/views/SurgeCatalogueHealthCommunityBasedSurveillance/index.tsx +++ b/app/src/views/SurgeCatalogueHealthCommunityBasedSurveillance/index.tsx @@ -1,9 +1,10 @@ +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToComponent } from '@ifrc-go/ui/utils'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import TextOutput from '#components/TextOutput'; import Link from '#components/Link'; -import useTranslation from '#hooks/useTranslation'; -import { resolveToComponent } from '#utils/translation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueHealthCommunityCaseManagementChlorea/i18n.json b/app/src/views/SurgeCatalogueHealthCommunityCaseManagementChlorea/i18n.json similarity index 100% rename from src/views/SurgeCatalogueHealthCommunityCaseManagementChlorea/i18n.json rename to app/src/views/SurgeCatalogueHealthCommunityCaseManagementChlorea/i18n.json diff --git a/src/views/SurgeCatalogueHealthCommunityCaseManagementChlorea/index.tsx b/app/src/views/SurgeCatalogueHealthCommunityCaseManagementChlorea/index.tsx similarity index 97% rename from src/views/SurgeCatalogueHealthCommunityCaseManagementChlorea/index.tsx rename to app/src/views/SurgeCatalogueHealthCommunityCaseManagementChlorea/index.tsx index bfccdf2825..8ab08d08c0 100644 --- a/src/views/SurgeCatalogueHealthCommunityCaseManagementChlorea/index.tsx +++ b/app/src/views/SurgeCatalogueHealthCommunityCaseManagementChlorea/index.tsx @@ -1,8 +1,9 @@ +import { useMemo } from 'react'; +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; -import { useMemo } from 'react'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueHealthCommunityManagementMalnutrition/i18n.json b/app/src/views/SurgeCatalogueHealthCommunityManagementMalnutrition/i18n.json similarity index 100% rename from src/views/SurgeCatalogueHealthCommunityManagementMalnutrition/i18n.json rename to app/src/views/SurgeCatalogueHealthCommunityManagementMalnutrition/i18n.json diff --git a/src/views/SurgeCatalogueHealthCommunityManagementMalnutrition/index.tsx b/app/src/views/SurgeCatalogueHealthCommunityManagementMalnutrition/index.tsx similarity index 93% rename from src/views/SurgeCatalogueHealthCommunityManagementMalnutrition/index.tsx rename to app/src/views/SurgeCatalogueHealthCommunityManagementMalnutrition/index.tsx index 9d4906e8b5..067f43b67d 100644 --- a/src/views/SurgeCatalogueHealthCommunityManagementMalnutrition/index.tsx +++ b/app/src/views/SurgeCatalogueHealthCommunityManagementMalnutrition/index.tsx @@ -1,7 +1,8 @@ +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueHealthEmergencyClinic/i18n.json b/app/src/views/SurgeCatalogueHealthEmergencyClinic/i18n.json similarity index 100% rename from src/views/SurgeCatalogueHealthEmergencyClinic/i18n.json rename to app/src/views/SurgeCatalogueHealthEmergencyClinic/i18n.json diff --git a/src/views/SurgeCatalogueHealthEmergencyClinic/index.tsx b/app/src/views/SurgeCatalogueHealthEmergencyClinic/index.tsx similarity index 98% rename from src/views/SurgeCatalogueHealthEmergencyClinic/index.tsx rename to app/src/views/SurgeCatalogueHealthEmergencyClinic/index.tsx index a72a1f8cdb..a547bc4593 100644 --- a/src/views/SurgeCatalogueHealthEmergencyClinic/index.tsx +++ b/app/src/views/SurgeCatalogueHealthEmergencyClinic/index.tsx @@ -1,9 +1,9 @@ import { useMemo } from 'react'; +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import useTranslation from '#hooks/useTranslation'; -import TextOutput from '#components/TextOutput'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueHealthEruChloreaTreatment/i18n.json b/app/src/views/SurgeCatalogueHealthEruChloreaTreatment/i18n.json similarity index 100% rename from src/views/SurgeCatalogueHealthEruChloreaTreatment/i18n.json rename to app/src/views/SurgeCatalogueHealthEruChloreaTreatment/i18n.json diff --git a/src/views/SurgeCatalogueHealthEruChloreaTreatment/index.tsx b/app/src/views/SurgeCatalogueHealthEruChloreaTreatment/index.tsx similarity index 98% rename from src/views/SurgeCatalogueHealthEruChloreaTreatment/index.tsx rename to app/src/views/SurgeCatalogueHealthEruChloreaTreatment/index.tsx index 6ecf96c697..6574d2734c 100644 --- a/src/views/SurgeCatalogueHealthEruChloreaTreatment/index.tsx +++ b/app/src/views/SurgeCatalogueHealthEruChloreaTreatment/index.tsx @@ -1,7 +1,8 @@ +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueHealthEruClinic/i18n.json b/app/src/views/SurgeCatalogueHealthEruClinic/i18n.json similarity index 100% rename from src/views/SurgeCatalogueHealthEruClinic/i18n.json rename to app/src/views/SurgeCatalogueHealthEruClinic/i18n.json diff --git a/src/views/SurgeCatalogueHealthEruClinic/index.tsx b/app/src/views/SurgeCatalogueHealthEruClinic/index.tsx similarity index 99% rename from src/views/SurgeCatalogueHealthEruClinic/index.tsx rename to app/src/views/SurgeCatalogueHealthEruClinic/index.tsx index 9b410a62e2..283f8f0e76 100644 --- a/src/views/SurgeCatalogueHealthEruClinic/index.tsx +++ b/app/src/views/SurgeCatalogueHealthEruClinic/index.tsx @@ -1,8 +1,9 @@ +import { useMemo } from 'react'; +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; -import { useMemo } from 'react'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueHealthEruHospital/i18n.json b/app/src/views/SurgeCatalogueHealthEruHospital/i18n.json similarity index 100% rename from src/views/SurgeCatalogueHealthEruHospital/i18n.json rename to app/src/views/SurgeCatalogueHealthEruHospital/i18n.json diff --git a/src/views/SurgeCatalogueHealthEruHospital/index.tsx b/app/src/views/SurgeCatalogueHealthEruHospital/index.tsx similarity index 98% rename from src/views/SurgeCatalogueHealthEruHospital/index.tsx rename to app/src/views/SurgeCatalogueHealthEruHospital/index.tsx index 223fdcad01..65ae89ab1f 100644 --- a/src/views/SurgeCatalogueHealthEruHospital/index.tsx +++ b/app/src/views/SurgeCatalogueHealthEruHospital/index.tsx @@ -1,10 +1,11 @@ import { useMemo } from 'react'; +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToComponent } from '@ifrc-go/ui/utils'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; import Link from '#components/Link'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; -import { resolveToComponent } from '#utils/translation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueHealthEruPsychosocialSupport/i18n.json b/app/src/views/SurgeCatalogueHealthEruPsychosocialSupport/i18n.json similarity index 100% rename from src/views/SurgeCatalogueHealthEruPsychosocialSupport/i18n.json rename to app/src/views/SurgeCatalogueHealthEruPsychosocialSupport/i18n.json diff --git a/src/views/SurgeCatalogueHealthEruPsychosocialSupport/index.tsx b/app/src/views/SurgeCatalogueHealthEruPsychosocialSupport/index.tsx similarity index 97% rename from src/views/SurgeCatalogueHealthEruPsychosocialSupport/index.tsx rename to app/src/views/SurgeCatalogueHealthEruPsychosocialSupport/index.tsx index 397b7a7ecd..56eba2d84b 100644 --- a/src/views/SurgeCatalogueHealthEruPsychosocialSupport/index.tsx +++ b/app/src/views/SurgeCatalogueHealthEruPsychosocialSupport/index.tsx @@ -1,8 +1,9 @@ +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import TextOutput from '#components/TextOutput'; import Link from '#components/Link'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueHealthEruSurgical/i18n.json b/app/src/views/SurgeCatalogueHealthEruSurgical/i18n.json similarity index 100% rename from src/views/SurgeCatalogueHealthEruSurgical/i18n.json rename to app/src/views/SurgeCatalogueHealthEruSurgical/i18n.json diff --git a/src/views/SurgeCatalogueHealthEruSurgical/index.tsx b/app/src/views/SurgeCatalogueHealthEruSurgical/index.tsx similarity index 97% rename from src/views/SurgeCatalogueHealthEruSurgical/index.tsx rename to app/src/views/SurgeCatalogueHealthEruSurgical/index.tsx index b89d403401..7e206e6293 100644 --- a/src/views/SurgeCatalogueHealthEruSurgical/index.tsx +++ b/app/src/views/SurgeCatalogueHealthEruSurgical/index.tsx @@ -1,7 +1,8 @@ +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueHealthMaternalNewbornClinic/i18n.json b/app/src/views/SurgeCatalogueHealthMaternalNewbornClinic/i18n.json similarity index 100% rename from src/views/SurgeCatalogueHealthMaternalNewbornClinic/i18n.json rename to app/src/views/SurgeCatalogueHealthMaternalNewbornClinic/i18n.json diff --git a/src/views/SurgeCatalogueHealthMaternalNewbornClinic/index.tsx b/app/src/views/SurgeCatalogueHealthMaternalNewbornClinic/index.tsx similarity index 97% rename from src/views/SurgeCatalogueHealthMaternalNewbornClinic/index.tsx rename to app/src/views/SurgeCatalogueHealthMaternalNewbornClinic/index.tsx index 56eedb5607..bdf7e2a3ea 100644 --- a/src/views/SurgeCatalogueHealthMaternalNewbornClinic/index.tsx +++ b/app/src/views/SurgeCatalogueHealthMaternalNewbornClinic/index.tsx @@ -1,7 +1,8 @@ +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueHealthSafeDignifiedBurials/i18n.json b/app/src/views/SurgeCatalogueHealthSafeDignifiedBurials/i18n.json similarity index 100% rename from src/views/SurgeCatalogueHealthSafeDignifiedBurials/i18n.json rename to app/src/views/SurgeCatalogueHealthSafeDignifiedBurials/i18n.json diff --git a/src/views/SurgeCatalogueHealthSafeDignifiedBurials/index.tsx b/app/src/views/SurgeCatalogueHealthSafeDignifiedBurials/index.tsx similarity index 97% rename from src/views/SurgeCatalogueHealthSafeDignifiedBurials/index.tsx rename to app/src/views/SurgeCatalogueHealthSafeDignifiedBurials/index.tsx index ac69377b85..34e630ff5a 100644 --- a/src/views/SurgeCatalogueHealthSafeDignifiedBurials/index.tsx +++ b/app/src/views/SurgeCatalogueHealthSafeDignifiedBurials/index.tsx @@ -1,7 +1,8 @@ +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueInformationManagement/i18n.json b/app/src/views/SurgeCatalogueInformationManagement/i18n.json similarity index 100% rename from src/views/SurgeCatalogueInformationManagement/i18n.json rename to app/src/views/SurgeCatalogueInformationManagement/i18n.json diff --git a/src/views/SurgeCatalogueInformationManagement/index.tsx b/app/src/views/SurgeCatalogueInformationManagement/index.tsx similarity index 98% rename from src/views/SurgeCatalogueInformationManagement/index.tsx rename to app/src/views/SurgeCatalogueInformationManagement/index.tsx index d251465ebd..1ae3bdf8ae 100644 --- a/src/views/SurgeCatalogueInformationManagement/index.tsx +++ b/app/src/views/SurgeCatalogueInformationManagement/index.tsx @@ -1,9 +1,10 @@ -import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; -import SurgeCardContainer from '#components/domain/SurgeCardContainer'; -import CatalogueInfoCard, { LinkData } from '#components/CatalogueInfoCard'; -import Image from '#components/Image'; -import useTranslation from '#hooks/useTranslation'; +import { Image } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + import pyramidImage from '#assets/images/surge-im-pyramid.png'; +import CatalogueInfoCard, { LinkData } from '#components/CatalogueInfoCard'; +import SurgeCardContainer from '#components/domain/SurgeCardContainer'; +import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueInformationManagementComposition/i18n.json b/app/src/views/SurgeCatalogueInformationManagementComposition/i18n.json similarity index 100% rename from src/views/SurgeCatalogueInformationManagementComposition/i18n.json rename to app/src/views/SurgeCatalogueInformationManagementComposition/i18n.json diff --git a/src/views/SurgeCatalogueInformationManagementComposition/index.tsx b/app/src/views/SurgeCatalogueInformationManagementComposition/index.tsx similarity index 93% rename from src/views/SurgeCatalogueInformationManagementComposition/index.tsx rename to app/src/views/SurgeCatalogueInformationManagementComposition/index.tsx index 8e7ba14bca..eda74e965e 100644 --- a/src/views/SurgeCatalogueInformationManagementComposition/index.tsx +++ b/app/src/views/SurgeCatalogueInformationManagementComposition/index.tsx @@ -1,7 +1,8 @@ -import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; -import Image from '#components/Image'; -import useTranslation from '#hooks/useTranslation'; +import { Image } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + import compositionImage from '#assets/images/surge-im-composition.jpg'; +import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueInformationManagementOperationSupport/i18n.json b/app/src/views/SurgeCatalogueInformationManagementOperationSupport/i18n.json similarity index 100% rename from src/views/SurgeCatalogueInformationManagementOperationSupport/i18n.json rename to app/src/views/SurgeCatalogueInformationManagementOperationSupport/i18n.json diff --git a/src/views/SurgeCatalogueInformationManagementOperationSupport/index.tsx b/app/src/views/SurgeCatalogueInformationManagementOperationSupport/index.tsx similarity index 93% rename from src/views/SurgeCatalogueInformationManagementOperationSupport/index.tsx rename to app/src/views/SurgeCatalogueInformationManagementOperationSupport/index.tsx index 1b92ad7f09..e7c1c2bc94 100644 --- a/src/views/SurgeCatalogueInformationManagementOperationSupport/index.tsx +++ b/app/src/views/SurgeCatalogueInformationManagementOperationSupport/index.tsx @@ -1,6 +1,7 @@ +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToComponent } from '@ifrc-go/ui/utils'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; -import useTranslation from '#hooks/useTranslation'; -import { resolveToComponent } from '#utils/translation'; import Link from '#components/Link'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueInformationManagementRolesResponsibility/i18n.json b/app/src/views/SurgeCatalogueInformationManagementRolesResponsibility/i18n.json similarity index 100% rename from src/views/SurgeCatalogueInformationManagementRolesResponsibility/i18n.json rename to app/src/views/SurgeCatalogueInformationManagementRolesResponsibility/i18n.json diff --git a/src/views/SurgeCatalogueInformationManagementRolesResponsibility/index.tsx b/app/src/views/SurgeCatalogueInformationManagementRolesResponsibility/index.tsx similarity index 97% rename from src/views/SurgeCatalogueInformationManagementRolesResponsibility/index.tsx rename to app/src/views/SurgeCatalogueInformationManagementRolesResponsibility/index.tsx index 63d84915c3..4d889e50c2 100644 --- a/src/views/SurgeCatalogueInformationManagementRolesResponsibility/index.tsx +++ b/app/src/views/SurgeCatalogueInformationManagementRolesResponsibility/index.tsx @@ -1,6 +1,7 @@ +import { useTranslation } from '@ifrc-go/ui/hooks'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueInformationManagementSatelliteImagery/i18n.json b/app/src/views/SurgeCatalogueInformationManagementSatelliteImagery/i18n.json similarity index 100% rename from src/views/SurgeCatalogueInformationManagementSatelliteImagery/i18n.json rename to app/src/views/SurgeCatalogueInformationManagementSatelliteImagery/i18n.json diff --git a/src/views/SurgeCatalogueInformationManagementSatelliteImagery/index.tsx b/app/src/views/SurgeCatalogueInformationManagementSatelliteImagery/index.tsx similarity index 99% rename from src/views/SurgeCatalogueInformationManagementSatelliteImagery/index.tsx rename to app/src/views/SurgeCatalogueInformationManagementSatelliteImagery/index.tsx index ea055f45b0..ab4194dfb0 100644 --- a/src/views/SurgeCatalogueInformationManagementSatelliteImagery/index.tsx +++ b/app/src/views/SurgeCatalogueInformationManagementSatelliteImagery/index.tsx @@ -1,9 +1,10 @@ +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToComponent } from '@ifrc-go/ui/utils'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; import Link from '#components/Link'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; -import { resolveToComponent } from '#utils/translation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueInformationManagementSupport/i18n.json b/app/src/views/SurgeCatalogueInformationManagementSupport/i18n.json similarity index 100% rename from src/views/SurgeCatalogueInformationManagementSupport/i18n.json rename to app/src/views/SurgeCatalogueInformationManagementSupport/i18n.json diff --git a/src/views/SurgeCatalogueInformationManagementSupport/index.tsx b/app/src/views/SurgeCatalogueInformationManagementSupport/index.tsx similarity index 96% rename from src/views/SurgeCatalogueInformationManagementSupport/index.tsx rename to app/src/views/SurgeCatalogueInformationManagementSupport/index.tsx index ca02b3499c..8eeb03201b 100644 --- a/src/views/SurgeCatalogueInformationManagementSupport/index.tsx +++ b/app/src/views/SurgeCatalogueInformationManagementSupport/index.tsx @@ -1,8 +1,9 @@ +import { Image } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + +import responsibleOperationImage from '#assets/images/surge-im-support-responsible-operation.jpg'; import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import Image from '#components/Image'; -import useTranslation from '#hooks/useTranslation'; -import responsibleOperationImage from '#assets/images/surge-im-support-responsible-operation.jpg'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueInformationTechnology/i18n.json b/app/src/views/SurgeCatalogueInformationTechnology/i18n.json similarity index 100% rename from src/views/SurgeCatalogueInformationTechnology/i18n.json rename to app/src/views/SurgeCatalogueInformationTechnology/i18n.json diff --git a/src/views/SurgeCatalogueInformationTechnology/index.tsx b/app/src/views/SurgeCatalogueInformationTechnology/index.tsx similarity index 97% rename from src/views/SurgeCatalogueInformationTechnology/index.tsx rename to app/src/views/SurgeCatalogueInformationTechnology/index.tsx index 8be38b8e7b..1e0f97399f 100644 --- a/src/views/SurgeCatalogueInformationTechnology/index.tsx +++ b/app/src/views/SurgeCatalogueInformationTechnology/index.tsx @@ -1,7 +1,8 @@ -import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; -import SurgeCardContainer from '#components/domain/SurgeCardContainer'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + import CatalogueInfoCard, { LinkData } from '#components/CatalogueInfoCard'; -import useTranslation from '#hooks/useTranslation'; +import SurgeCardContainer from '#components/domain/SurgeCardContainer'; +import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueInformationTechnologyEruItTelecom/i18n.json b/app/src/views/SurgeCatalogueInformationTechnologyEruItTelecom/i18n.json similarity index 100% rename from src/views/SurgeCatalogueInformationTechnologyEruItTelecom/i18n.json rename to app/src/views/SurgeCatalogueInformationTechnologyEruItTelecom/i18n.json diff --git a/src/views/SurgeCatalogueInformationTechnologyEruItTelecom/index.tsx b/app/src/views/SurgeCatalogueInformationTechnologyEruItTelecom/index.tsx similarity index 96% rename from src/views/SurgeCatalogueInformationTechnologyEruItTelecom/index.tsx rename to app/src/views/SurgeCatalogueInformationTechnologyEruItTelecom/index.tsx index 5eee001e16..dc8637d657 100644 --- a/src/views/SurgeCatalogueInformationTechnologyEruItTelecom/index.tsx +++ b/app/src/views/SurgeCatalogueInformationTechnologyEruItTelecom/index.tsx @@ -1,9 +1,10 @@ +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToComponent } from '@ifrc-go/ui/utils'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import TextOutput from '#components/TextOutput'; import Link from '#components/Link'; -import useTranslation from '#hooks/useTranslation'; -import { resolveToComponent } from '#utils/translation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueLivelihood/i18n.json b/app/src/views/SurgeCatalogueLivelihood/i18n.json similarity index 100% rename from src/views/SurgeCatalogueLivelihood/i18n.json rename to app/src/views/SurgeCatalogueLivelihood/i18n.json diff --git a/src/views/SurgeCatalogueLivelihood/index.tsx b/app/src/views/SurgeCatalogueLivelihood/index.tsx similarity index 99% rename from src/views/SurgeCatalogueLivelihood/index.tsx rename to app/src/views/SurgeCatalogueLivelihood/index.tsx index 3dee8db69a..0b9e5c89f8 100644 --- a/src/views/SurgeCatalogueLivelihood/index.tsx +++ b/app/src/views/SurgeCatalogueLivelihood/index.tsx @@ -1,7 +1,8 @@ -import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; -import SurgeCardContainer from '#components/domain/SurgeCardContainer'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + import CatalogueInfoCard, { LinkData } from '#components/CatalogueInfoCard'; -import useTranslation from '#hooks/useTranslation'; +import SurgeCardContainer from '#components/domain/SurgeCardContainer'; +import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueLivelihoodServices/i18n.json b/app/src/views/SurgeCatalogueLivelihoodServices/i18n.json similarity index 100% rename from src/views/SurgeCatalogueLivelihoodServices/i18n.json rename to app/src/views/SurgeCatalogueLivelihoodServices/i18n.json diff --git a/src/views/SurgeCatalogueLivelihoodServices/index.tsx b/app/src/views/SurgeCatalogueLivelihoodServices/index.tsx similarity index 97% rename from src/views/SurgeCatalogueLivelihoodServices/index.tsx rename to app/src/views/SurgeCatalogueLivelihoodServices/index.tsx index b789baf0f3..5f077795e6 100644 --- a/src/views/SurgeCatalogueLivelihoodServices/index.tsx +++ b/app/src/views/SurgeCatalogueLivelihoodServices/index.tsx @@ -1,11 +1,11 @@ import { useMemo } from 'react'; +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToComponent } from '@ifrc-go/ui/utils'; import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; import Link from '#components/Link'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; -import { resolveToComponent } from '#utils/translation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueLogistics/i18n.json b/app/src/views/SurgeCatalogueLogistics/i18n.json similarity index 100% rename from src/views/SurgeCatalogueLogistics/i18n.json rename to app/src/views/SurgeCatalogueLogistics/i18n.json diff --git a/src/views/SurgeCatalogueLogistics/index.tsx b/app/src/views/SurgeCatalogueLogistics/index.tsx similarity index 99% rename from src/views/SurgeCatalogueLogistics/index.tsx rename to app/src/views/SurgeCatalogueLogistics/index.tsx index 14cef88815..e402610b6d 100644 --- a/src/views/SurgeCatalogueLogistics/index.tsx +++ b/app/src/views/SurgeCatalogueLogistics/index.tsx @@ -1,9 +1,9 @@ import { useMemo } from 'react'; +import { useTranslation } from '@ifrc-go/ui/hooks'; -import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; -import SurgeCardContainer from '#components/domain/SurgeCardContainer'; import CatalogueInfoCard, { LinkData } from '#components/CatalogueInfoCard'; -import useTranslation from '#hooks/useTranslation'; +import SurgeCardContainer from '#components/domain/SurgeCardContainer'; +import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueLogisticsEru/i18n.json b/app/src/views/SurgeCatalogueLogisticsEru/i18n.json similarity index 100% rename from src/views/SurgeCatalogueLogisticsEru/i18n.json rename to app/src/views/SurgeCatalogueLogisticsEru/i18n.json diff --git a/src/views/SurgeCatalogueLogisticsEru/index.tsx b/app/src/views/SurgeCatalogueLogisticsEru/index.tsx similarity index 98% rename from src/views/SurgeCatalogueLogisticsEru/index.tsx rename to app/src/views/SurgeCatalogueLogisticsEru/index.tsx index ebf221992e..270f60609b 100644 --- a/src/views/SurgeCatalogueLogisticsEru/index.tsx +++ b/app/src/views/SurgeCatalogueLogisticsEru/index.tsx @@ -1,9 +1,9 @@ import { useMemo } from 'react'; +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueLogisticsLpscmNs/i18n.json b/app/src/views/SurgeCatalogueLogisticsLpscmNs/i18n.json similarity index 100% rename from src/views/SurgeCatalogueLogisticsLpscmNs/i18n.json rename to app/src/views/SurgeCatalogueLogisticsLpscmNs/i18n.json diff --git a/src/views/SurgeCatalogueLogisticsLpscmNs/index.tsx b/app/src/views/SurgeCatalogueLogisticsLpscmNs/index.tsx similarity index 97% rename from src/views/SurgeCatalogueLogisticsLpscmNs/index.tsx rename to app/src/views/SurgeCatalogueLogisticsLpscmNs/index.tsx index 73fba77951..b8de946746 100644 --- a/src/views/SurgeCatalogueLogisticsLpscmNs/index.tsx +++ b/app/src/views/SurgeCatalogueLogisticsLpscmNs/index.tsx @@ -1,9 +1,10 @@ +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToComponent } from '@ifrc-go/ui/utils'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import TextOutput from '#components/TextOutput'; import Link from '#components/Link'; -import useTranslation from '#hooks/useTranslation'; -import { resolveToComponent } from '#utils/translation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueOperationsManagement/i18n.json b/app/src/views/SurgeCatalogueOperationsManagement/i18n.json similarity index 100% rename from src/views/SurgeCatalogueOperationsManagement/i18n.json rename to app/src/views/SurgeCatalogueOperationsManagement/i18n.json diff --git a/src/views/SurgeCatalogueOperationsManagement/index.tsx b/app/src/views/SurgeCatalogueOperationsManagement/index.tsx similarity index 98% rename from src/views/SurgeCatalogueOperationsManagement/index.tsx rename to app/src/views/SurgeCatalogueOperationsManagement/index.tsx index 7e1c6ea57e..199a64d03a 100644 --- a/src/views/SurgeCatalogueOperationsManagement/index.tsx +++ b/app/src/views/SurgeCatalogueOperationsManagement/index.tsx @@ -1,7 +1,8 @@ -import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; -import SurgeCardContainer from '#components/domain/SurgeCardContainer'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + import CatalogueInfoCard, { LinkData } from '#components/CatalogueInfoCard'; -import useTranslation from '#hooks/useTranslation'; +import SurgeCardContainer from '#components/domain/SurgeCardContainer'; +import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueOperationsManagementHeops/i18n.json b/app/src/views/SurgeCatalogueOperationsManagementHeops/i18n.json similarity index 100% rename from src/views/SurgeCatalogueOperationsManagementHeops/i18n.json rename to app/src/views/SurgeCatalogueOperationsManagementHeops/i18n.json diff --git a/src/views/SurgeCatalogueOperationsManagementHeops/index.tsx b/app/src/views/SurgeCatalogueOperationsManagementHeops/index.tsx similarity index 96% rename from src/views/SurgeCatalogueOperationsManagementHeops/index.tsx rename to app/src/views/SurgeCatalogueOperationsManagementHeops/index.tsx index bfd74820d0..90a4cf2e0b 100644 --- a/src/views/SurgeCatalogueOperationsManagementHeops/index.tsx +++ b/app/src/views/SurgeCatalogueOperationsManagementHeops/index.tsx @@ -1,9 +1,10 @@ +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToComponent } from '@ifrc-go/ui/utils'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import TextOutput from '#components/TextOutput'; import Link from '#components/Link'; -import useTranslation from '#hooks/useTranslation'; -import { resolveToComponent } from '#utils/translation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueOther/i18n.json b/app/src/views/SurgeCatalogueOther/i18n.json similarity index 100% rename from src/views/SurgeCatalogueOther/i18n.json rename to app/src/views/SurgeCatalogueOther/i18n.json diff --git a/src/views/SurgeCatalogueOther/index.tsx b/app/src/views/SurgeCatalogueOther/index.tsx similarity index 98% rename from src/views/SurgeCatalogueOther/index.tsx rename to app/src/views/SurgeCatalogueOther/index.tsx index 4aa02d2db5..3067f8743c 100644 --- a/src/views/SurgeCatalogueOther/index.tsx +++ b/app/src/views/SurgeCatalogueOther/index.tsx @@ -1,7 +1,8 @@ +import { useTranslation } from '@ifrc-go/ui/hooks'; + import CatalogueInfoCard, { LinkData } from '#components/CatalogueInfoCard'; import SurgeCardContainer from '#components/domain/SurgeCardContainer'; import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueOtherCivilMilitaryRelations/i18n.json b/app/src/views/SurgeCatalogueOtherCivilMilitaryRelations/i18n.json similarity index 100% rename from src/views/SurgeCatalogueOtherCivilMilitaryRelations/i18n.json rename to app/src/views/SurgeCatalogueOtherCivilMilitaryRelations/i18n.json diff --git a/src/views/SurgeCatalogueOtherCivilMilitaryRelations/index.tsx b/app/src/views/SurgeCatalogueOtherCivilMilitaryRelations/index.tsx similarity index 93% rename from src/views/SurgeCatalogueOtherCivilMilitaryRelations/index.tsx rename to app/src/views/SurgeCatalogueOtherCivilMilitaryRelations/index.tsx index 338920988e..e41518c2e1 100644 --- a/src/views/SurgeCatalogueOtherCivilMilitaryRelations/index.tsx +++ b/app/src/views/SurgeCatalogueOtherCivilMilitaryRelations/index.tsx @@ -1,8 +1,9 @@ +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToComponent } from '@ifrc-go/ui/utils'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; import Link from '#components/Link'; -import useTranslation from '#hooks/useTranslation'; -import { resolveToComponent } from '#utils/translation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueOtherDisasterRiskReduction/i18n.json b/app/src/views/SurgeCatalogueOtherDisasterRiskReduction/i18n.json similarity index 100% rename from src/views/SurgeCatalogueOtherDisasterRiskReduction/i18n.json rename to app/src/views/SurgeCatalogueOtherDisasterRiskReduction/i18n.json diff --git a/src/views/SurgeCatalogueOtherDisasterRiskReduction/index.tsx b/app/src/views/SurgeCatalogueOtherDisasterRiskReduction/index.tsx similarity index 93% rename from src/views/SurgeCatalogueOtherDisasterRiskReduction/index.tsx rename to app/src/views/SurgeCatalogueOtherDisasterRiskReduction/index.tsx index 4f41c077b6..d3dce24dd6 100644 --- a/src/views/SurgeCatalogueOtherDisasterRiskReduction/index.tsx +++ b/app/src/views/SurgeCatalogueOtherDisasterRiskReduction/index.tsx @@ -1,8 +1,9 @@ +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToComponent } from '@ifrc-go/ui/utils'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; import Link from '#components/Link'; -import useTranslation from '#hooks/useTranslation'; -import { resolveToComponent } from '#utils/translation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueOtherGreenResponse/i18n.json b/app/src/views/SurgeCatalogueOtherGreenResponse/i18n.json similarity index 100% rename from src/views/SurgeCatalogueOtherGreenResponse/i18n.json rename to app/src/views/SurgeCatalogueOtherGreenResponse/i18n.json diff --git a/src/views/SurgeCatalogueOtherGreenResponse/index.tsx b/app/src/views/SurgeCatalogueOtherGreenResponse/index.tsx similarity index 93% rename from src/views/SurgeCatalogueOtherGreenResponse/index.tsx rename to app/src/views/SurgeCatalogueOtherGreenResponse/index.tsx index b566542091..032135ffe4 100644 --- a/src/views/SurgeCatalogueOtherGreenResponse/index.tsx +++ b/app/src/views/SurgeCatalogueOtherGreenResponse/index.tsx @@ -1,8 +1,9 @@ +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToComponent } from '@ifrc-go/ui/utils'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; import Link from '#components/Link'; -import useTranslation from '#hooks/useTranslation'; -import { resolveToComponent } from '#utils/translation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueOtherHumanResources/i18n.json b/app/src/views/SurgeCatalogueOtherHumanResources/i18n.json similarity index 100% rename from src/views/SurgeCatalogueOtherHumanResources/i18n.json rename to app/src/views/SurgeCatalogueOtherHumanResources/i18n.json diff --git a/src/views/SurgeCatalogueOtherHumanResources/index.tsx b/app/src/views/SurgeCatalogueOtherHumanResources/index.tsx similarity index 97% rename from src/views/SurgeCatalogueOtherHumanResources/index.tsx rename to app/src/views/SurgeCatalogueOtherHumanResources/index.tsx index aca9904c24..807f1a4275 100644 --- a/src/views/SurgeCatalogueOtherHumanResources/index.tsx +++ b/app/src/views/SurgeCatalogueOtherHumanResources/index.tsx @@ -1,7 +1,8 @@ +import { useTranslation } from '@ifrc-go/ui/hooks'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; import Link from '#components/Link'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueOtherInternationalDisasterResponseLaw/i18n.json b/app/src/views/SurgeCatalogueOtherInternationalDisasterResponseLaw/i18n.json similarity index 100% rename from src/views/SurgeCatalogueOtherInternationalDisasterResponseLaw/i18n.json rename to app/src/views/SurgeCatalogueOtherInternationalDisasterResponseLaw/i18n.json diff --git a/src/views/SurgeCatalogueOtherInternationalDisasterResponseLaw/index.tsx b/app/src/views/SurgeCatalogueOtherInternationalDisasterResponseLaw/index.tsx similarity index 93% rename from src/views/SurgeCatalogueOtherInternationalDisasterResponseLaw/index.tsx rename to app/src/views/SurgeCatalogueOtherInternationalDisasterResponseLaw/index.tsx index 5c274d51aa..f8897d9f88 100644 --- a/src/views/SurgeCatalogueOtherInternationalDisasterResponseLaw/index.tsx +++ b/app/src/views/SurgeCatalogueOtherInternationalDisasterResponseLaw/index.tsx @@ -1,8 +1,9 @@ +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToComponent } from '@ifrc-go/ui/utils'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; import Link from '#components/Link'; -import useTranslation from '#hooks/useTranslation'; -import { resolveToComponent } from '#utils/translation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueOtherMigration/i18n.json b/app/src/views/SurgeCatalogueOtherMigration/i18n.json similarity index 100% rename from src/views/SurgeCatalogueOtherMigration/i18n.json rename to app/src/views/SurgeCatalogueOtherMigration/i18n.json diff --git a/src/views/SurgeCatalogueOtherMigration/index.tsx b/app/src/views/SurgeCatalogueOtherMigration/index.tsx similarity index 93% rename from src/views/SurgeCatalogueOtherMigration/index.tsx rename to app/src/views/SurgeCatalogueOtherMigration/index.tsx index d683c6c8a2..6afa70d229 100644 --- a/src/views/SurgeCatalogueOtherMigration/index.tsx +++ b/app/src/views/SurgeCatalogueOtherMigration/index.tsx @@ -1,8 +1,9 @@ +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToComponent } from '@ifrc-go/ui/utils'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; import Link from '#components/Link'; -import useTranslation from '#hooks/useTranslation'; -import { resolveToComponent } from '#utils/translation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueOtherNationalSocietyDevelopment/i18n.json b/app/src/views/SurgeCatalogueOtherNationalSocietyDevelopment/i18n.json similarity index 100% rename from src/views/SurgeCatalogueOtherNationalSocietyDevelopment/i18n.json rename to app/src/views/SurgeCatalogueOtherNationalSocietyDevelopment/i18n.json diff --git a/src/views/SurgeCatalogueOtherNationalSocietyDevelopment/index.tsx b/app/src/views/SurgeCatalogueOtherNationalSocietyDevelopment/index.tsx similarity index 97% rename from src/views/SurgeCatalogueOtherNationalSocietyDevelopment/index.tsx rename to app/src/views/SurgeCatalogueOtherNationalSocietyDevelopment/index.tsx index 0262490ad0..98e157a910 100644 --- a/src/views/SurgeCatalogueOtherNationalSocietyDevelopment/index.tsx +++ b/app/src/views/SurgeCatalogueOtherNationalSocietyDevelopment/index.tsx @@ -1,7 +1,8 @@ +import { useTranslation } from '@ifrc-go/ui/hooks'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; import Link from '#components/Link'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueOtherPartnershipResourceDevelopment/i18n.json b/app/src/views/SurgeCatalogueOtherPartnershipResourceDevelopment/i18n.json similarity index 100% rename from src/views/SurgeCatalogueOtherPartnershipResourceDevelopment/i18n.json rename to app/src/views/SurgeCatalogueOtherPartnershipResourceDevelopment/i18n.json diff --git a/src/views/SurgeCatalogueOtherPartnershipResourceDevelopment/index.tsx b/app/src/views/SurgeCatalogueOtherPartnershipResourceDevelopment/index.tsx similarity index 97% rename from src/views/SurgeCatalogueOtherPartnershipResourceDevelopment/index.tsx rename to app/src/views/SurgeCatalogueOtherPartnershipResourceDevelopment/index.tsx index 69c2717a78..c6b5bc5dcf 100644 --- a/src/views/SurgeCatalogueOtherPartnershipResourceDevelopment/index.tsx +++ b/app/src/views/SurgeCatalogueOtherPartnershipResourceDevelopment/index.tsx @@ -1,7 +1,8 @@ +import { useTranslation } from '@ifrc-go/ui/hooks'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; import Link from '#components/Link'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueOtherPreparednessEffectiveResponse/i18n.json b/app/src/views/SurgeCatalogueOtherPreparednessEffectiveResponse/i18n.json similarity index 100% rename from src/views/SurgeCatalogueOtherPreparednessEffectiveResponse/i18n.json rename to app/src/views/SurgeCatalogueOtherPreparednessEffectiveResponse/i18n.json diff --git a/src/views/SurgeCatalogueOtherPreparednessEffectiveResponse/index.tsx b/app/src/views/SurgeCatalogueOtherPreparednessEffectiveResponse/index.tsx similarity index 96% rename from src/views/SurgeCatalogueOtherPreparednessEffectiveResponse/index.tsx rename to app/src/views/SurgeCatalogueOtherPreparednessEffectiveResponse/index.tsx index c28f9c97bb..1de7acea4a 100644 --- a/src/views/SurgeCatalogueOtherPreparednessEffectiveResponse/index.tsx +++ b/app/src/views/SurgeCatalogueOtherPreparednessEffectiveResponse/index.tsx @@ -1,7 +1,8 @@ +import { useTranslation } from '@ifrc-go/ui/hooks'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; import Link from '#components/Link'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueOtherRecovery/i18n.json b/app/src/views/SurgeCatalogueOtherRecovery/i18n.json similarity index 100% rename from src/views/SurgeCatalogueOtherRecovery/i18n.json rename to app/src/views/SurgeCatalogueOtherRecovery/i18n.json diff --git a/src/views/SurgeCatalogueOtherRecovery/index.tsx b/app/src/views/SurgeCatalogueOtherRecovery/index.tsx similarity index 95% rename from src/views/SurgeCatalogueOtherRecovery/index.tsx rename to app/src/views/SurgeCatalogueOtherRecovery/index.tsx index a77f909d4d..9d6db105d9 100644 --- a/src/views/SurgeCatalogueOtherRecovery/index.tsx +++ b/app/src/views/SurgeCatalogueOtherRecovery/index.tsx @@ -1,8 +1,9 @@ +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToComponent } from '@ifrc-go/ui/utils'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; import Link from '#components/Link'; -import useTranslation from '#hooks/useTranslation'; -import { resolveToComponent } from '#utils/translation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueOverview/i18n.json b/app/src/views/SurgeCatalogueOverview/i18n.json similarity index 100% rename from src/views/SurgeCatalogueOverview/i18n.json rename to app/src/views/SurgeCatalogueOverview/i18n.json diff --git a/src/views/SurgeCatalogueOverview/index.tsx b/app/src/views/SurgeCatalogueOverview/index.tsx similarity index 95% rename from src/views/SurgeCatalogueOverview/index.tsx rename to app/src/views/SurgeCatalogueOverview/index.tsx index 67154d6ca3..89469b9047 100644 --- a/src/views/SurgeCatalogueOverview/index.tsx +++ b/app/src/views/SurgeCatalogueOverview/index.tsx @@ -1,7 +1,8 @@ +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToComponent } from '@ifrc-go/ui/utils'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import { resolveToComponent } from '#utils/translation'; -import useTranslation from '#hooks/useTranslation'; import Link from '#components/Link'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCataloguePgi/i18n.json b/app/src/views/SurgeCataloguePgi/i18n.json similarity index 100% rename from src/views/SurgeCataloguePgi/i18n.json rename to app/src/views/SurgeCataloguePgi/i18n.json diff --git a/src/views/SurgeCataloguePgi/index.tsx b/app/src/views/SurgeCataloguePgi/index.tsx similarity index 98% rename from src/views/SurgeCataloguePgi/index.tsx rename to app/src/views/SurgeCataloguePgi/index.tsx index 09cdd4d96e..febe136c13 100644 --- a/src/views/SurgeCataloguePgi/index.tsx +++ b/app/src/views/SurgeCataloguePgi/index.tsx @@ -1,7 +1,8 @@ -import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; -import SurgeCardContainer from '#components/domain/SurgeCardContainer'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + import CatalogueInfoCard, { LinkData } from '#components/CatalogueInfoCard'; -import useTranslation from '#hooks/useTranslation'; +import SurgeCardContainer from '#components/domain/SurgeCardContainer'; +import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCataloguePgiServices/i18n.json b/app/src/views/SurgeCataloguePgiServices/i18n.json similarity index 100% rename from src/views/SurgeCataloguePgiServices/i18n.json rename to app/src/views/SurgeCataloguePgiServices/i18n.json diff --git a/src/views/SurgeCataloguePgiServices/index.tsx b/app/src/views/SurgeCataloguePgiServices/index.tsx similarity index 98% rename from src/views/SurgeCataloguePgiServices/index.tsx rename to app/src/views/SurgeCataloguePgiServices/index.tsx index 5a62d673ea..72e869b1d1 100644 --- a/src/views/SurgeCataloguePgiServices/index.tsx +++ b/app/src/views/SurgeCataloguePgiServices/index.tsx @@ -1,9 +1,9 @@ import { useMemo } from 'react'; +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCataloguePmer/i18n.json b/app/src/views/SurgeCataloguePmer/i18n.json similarity index 100% rename from src/views/SurgeCataloguePmer/i18n.json rename to app/src/views/SurgeCataloguePmer/i18n.json diff --git a/src/views/SurgeCataloguePmer/index.tsx b/app/src/views/SurgeCataloguePmer/index.tsx similarity index 97% rename from src/views/SurgeCataloguePmer/index.tsx rename to app/src/views/SurgeCataloguePmer/index.tsx index 3537cb490d..1294c2c616 100644 --- a/src/views/SurgeCataloguePmer/index.tsx +++ b/app/src/views/SurgeCataloguePmer/index.tsx @@ -1,7 +1,8 @@ +import { useTranslation } from '@ifrc-go/ui/hooks'; + import CatalogueInfoCard, { type LinkData } from '#components/CatalogueInfoCard'; -import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeCardContainer from '#components/domain/SurgeCardContainer'; -import useTranslation from '#hooks/useTranslation'; +import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCataloguePmerEmergencyPlanAction/i18n.json b/app/src/views/SurgeCataloguePmerEmergencyPlanAction/i18n.json similarity index 100% rename from src/views/SurgeCataloguePmerEmergencyPlanAction/i18n.json rename to app/src/views/SurgeCataloguePmerEmergencyPlanAction/i18n.json diff --git a/src/views/SurgeCataloguePmerEmergencyPlanAction/index.tsx b/app/src/views/SurgeCataloguePmerEmergencyPlanAction/index.tsx similarity index 95% rename from src/views/SurgeCataloguePmerEmergencyPlanAction/index.tsx rename to app/src/views/SurgeCataloguePmerEmergencyPlanAction/index.tsx index bcf41804a1..20642a81ac 100644 --- a/src/views/SurgeCataloguePmerEmergencyPlanAction/index.tsx +++ b/app/src/views/SurgeCataloguePmerEmergencyPlanAction/index.tsx @@ -1,7 +1,8 @@ +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCataloguePmerRealTimeEvaluation/i18n.json b/app/src/views/SurgeCataloguePmerRealTimeEvaluation/i18n.json similarity index 100% rename from src/views/SurgeCataloguePmerRealTimeEvaluation/i18n.json rename to app/src/views/SurgeCataloguePmerRealTimeEvaluation/i18n.json diff --git a/src/views/SurgeCataloguePmerRealTimeEvaluation/index.tsx b/app/src/views/SurgeCataloguePmerRealTimeEvaluation/index.tsx similarity index 95% rename from src/views/SurgeCataloguePmerRealTimeEvaluation/index.tsx rename to app/src/views/SurgeCataloguePmerRealTimeEvaluation/index.tsx index 37cf38952d..d6b878461f 100644 --- a/src/views/SurgeCataloguePmerRealTimeEvaluation/index.tsx +++ b/app/src/views/SurgeCataloguePmerRealTimeEvaluation/index.tsx @@ -1,7 +1,8 @@ +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueRelief/i18n.json b/app/src/views/SurgeCatalogueRelief/i18n.json similarity index 100% rename from src/views/SurgeCatalogueRelief/i18n.json rename to app/src/views/SurgeCatalogueRelief/i18n.json diff --git a/src/views/SurgeCatalogueRelief/index.tsx b/app/src/views/SurgeCatalogueRelief/index.tsx similarity index 97% rename from src/views/SurgeCatalogueRelief/index.tsx rename to app/src/views/SurgeCatalogueRelief/index.tsx index 846f4d4c02..1787d2031e 100644 --- a/src/views/SurgeCatalogueRelief/index.tsx +++ b/app/src/views/SurgeCatalogueRelief/index.tsx @@ -1,7 +1,8 @@ -import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; -import SurgeCardContainer from '#components/domain/SurgeCardContainer'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + import CatalogueInfoCard, { type LinkData } from '#components/CatalogueInfoCard'; -import useTranslation from '#hooks/useTranslation'; +import SurgeCardContainer from '#components/domain/SurgeCardContainer'; +import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueReliefEru/i18n.json b/app/src/views/SurgeCatalogueReliefEru/i18n.json similarity index 100% rename from src/views/SurgeCatalogueReliefEru/i18n.json rename to app/src/views/SurgeCatalogueReliefEru/i18n.json diff --git a/src/views/SurgeCatalogueReliefEru/index.tsx b/app/src/views/SurgeCatalogueReliefEru/index.tsx similarity index 98% rename from src/views/SurgeCatalogueReliefEru/index.tsx rename to app/src/views/SurgeCatalogueReliefEru/index.tsx index 439f465698..f5f44167a5 100644 --- a/src/views/SurgeCatalogueReliefEru/index.tsx +++ b/app/src/views/SurgeCatalogueReliefEru/index.tsx @@ -1,9 +1,9 @@ import { useMemo } from 'react'; +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import useTranslation from '#hooks/useTranslation'; -import TextOutput from '#components/TextOutput'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueSecurity/i18n.json b/app/src/views/SurgeCatalogueSecurity/i18n.json similarity index 100% rename from src/views/SurgeCatalogueSecurity/i18n.json rename to app/src/views/SurgeCatalogueSecurity/i18n.json diff --git a/src/views/SurgeCatalogueSecurity/index.tsx b/app/src/views/SurgeCatalogueSecurity/index.tsx similarity index 97% rename from src/views/SurgeCatalogueSecurity/index.tsx rename to app/src/views/SurgeCatalogueSecurity/index.tsx index a1d2ac559e..872a3ab893 100644 --- a/src/views/SurgeCatalogueSecurity/index.tsx +++ b/app/src/views/SurgeCatalogueSecurity/index.tsx @@ -1,7 +1,8 @@ +import { useTranslation } from '@ifrc-go/ui/hooks'; + +import CatalogueInfoCard, { type LinkData } from '#components/CatalogueInfoCard'; import SurgeCardContainer from '#components/domain/SurgeCardContainer'; import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; -import CatalogueInfoCard, { type LinkData } from '#components/CatalogueInfoCard'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueSecurityManagement/i18n.json b/app/src/views/SurgeCatalogueSecurityManagement/i18n.json similarity index 100% rename from src/views/SurgeCatalogueSecurityManagement/i18n.json rename to app/src/views/SurgeCatalogueSecurityManagement/i18n.json diff --git a/src/views/SurgeCatalogueSecurityManagement/index.tsx b/app/src/views/SurgeCatalogueSecurityManagement/index.tsx similarity index 96% rename from src/views/SurgeCatalogueSecurityManagement/index.tsx rename to app/src/views/SurgeCatalogueSecurityManagement/index.tsx index 951404e918..8f59578e99 100644 --- a/src/views/SurgeCatalogueSecurityManagement/index.tsx +++ b/app/src/views/SurgeCatalogueSecurityManagement/index.tsx @@ -1,9 +1,9 @@ import { useMemo } from 'react'; +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import useTranslation from '#hooks/useTranslation'; -import TextOutput from '#components/TextOutput'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueShelter/i18n.json b/app/src/views/SurgeCatalogueShelter/i18n.json similarity index 100% rename from src/views/SurgeCatalogueShelter/i18n.json rename to app/src/views/SurgeCatalogueShelter/i18n.json diff --git a/src/views/SurgeCatalogueShelter/index.tsx b/app/src/views/SurgeCatalogueShelter/index.tsx similarity index 98% rename from src/views/SurgeCatalogueShelter/index.tsx rename to app/src/views/SurgeCatalogueShelter/index.tsx index 38eeeafd6c..409f44f1b3 100644 --- a/src/views/SurgeCatalogueShelter/index.tsx +++ b/app/src/views/SurgeCatalogueShelter/index.tsx @@ -1,7 +1,8 @@ -import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; -import SurgeCardContainer from '#components/domain/SurgeCardContainer'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + import CatalogueInfoCard, { LinkData } from '#components/CatalogueInfoCard'; -import useTranslation from '#hooks/useTranslation'; +import SurgeCardContainer from '#components/domain/SurgeCardContainer'; +import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueShelterCoordinatorTeam/i18n.json b/app/src/views/SurgeCatalogueShelterCoordinatorTeam/i18n.json similarity index 100% rename from src/views/SurgeCatalogueShelterCoordinatorTeam/i18n.json rename to app/src/views/SurgeCatalogueShelterCoordinatorTeam/i18n.json diff --git a/src/views/SurgeCatalogueShelterCoordinatorTeam/index.tsx b/app/src/views/SurgeCatalogueShelterCoordinatorTeam/index.tsx similarity index 98% rename from src/views/SurgeCatalogueShelterCoordinatorTeam/index.tsx rename to app/src/views/SurgeCatalogueShelterCoordinatorTeam/index.tsx index 29b09f2b96..664553d0ca 100644 --- a/src/views/SurgeCatalogueShelterCoordinatorTeam/index.tsx +++ b/app/src/views/SurgeCatalogueShelterCoordinatorTeam/index.tsx @@ -1,11 +1,11 @@ import { useMemo } from 'react'; +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToComponent } from '@ifrc-go/ui/utils'; import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; import Link from '#components/Link'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; -import { resolveToComponent } from '#utils/translation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueShelterTechnicalTeam/i18n.json b/app/src/views/SurgeCatalogueShelterTechnicalTeam/i18n.json similarity index 100% rename from src/views/SurgeCatalogueShelterTechnicalTeam/i18n.json rename to app/src/views/SurgeCatalogueShelterTechnicalTeam/i18n.json diff --git a/src/views/SurgeCatalogueShelterTechnicalTeam/index.tsx b/app/src/views/SurgeCatalogueShelterTechnicalTeam/index.tsx similarity index 98% rename from src/views/SurgeCatalogueShelterTechnicalTeam/index.tsx rename to app/src/views/SurgeCatalogueShelterTechnicalTeam/index.tsx index 970b841585..f1568f38d7 100644 --- a/src/views/SurgeCatalogueShelterTechnicalTeam/index.tsx +++ b/app/src/views/SurgeCatalogueShelterTechnicalTeam/index.tsx @@ -1,11 +1,11 @@ import { useMemo } from 'react'; +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToComponent } from '@ifrc-go/ui/utils'; import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import TextOutput from '#components/TextOutput'; import Link from '#components/Link'; -import useTranslation from '#hooks/useTranslation'; -import { resolveToComponent } from '#utils/translation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueWash/i18n.json b/app/src/views/SurgeCatalogueWash/i18n.json similarity index 100% rename from src/views/SurgeCatalogueWash/i18n.json rename to app/src/views/SurgeCatalogueWash/i18n.json diff --git a/src/views/SurgeCatalogueWash/index.tsx b/app/src/views/SurgeCatalogueWash/index.tsx similarity index 99% rename from src/views/SurgeCatalogueWash/index.tsx rename to app/src/views/SurgeCatalogueWash/index.tsx index 3c7e224e28..cef528bdc9 100644 --- a/src/views/SurgeCatalogueWash/index.tsx +++ b/app/src/views/SurgeCatalogueWash/index.tsx @@ -1,7 +1,8 @@ -import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; -import SurgeCardContainer from '#components/domain/SurgeCardContainer'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + import CatalogueInfoCard, { LinkData } from '#components/CatalogueInfoCard'; -import useTranslation from '#hooks/useTranslation'; +import SurgeCardContainer from '#components/domain/SurgeCardContainer'; +import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueWashHwts/i18n.json b/app/src/views/SurgeCatalogueWashHwts/i18n.json similarity index 100% rename from src/views/SurgeCatalogueWashHwts/i18n.json rename to app/src/views/SurgeCatalogueWashHwts/i18n.json diff --git a/src/views/SurgeCatalogueWashHwts/index.tsx b/app/src/views/SurgeCatalogueWashHwts/index.tsx similarity index 98% rename from src/views/SurgeCatalogueWashHwts/index.tsx rename to app/src/views/SurgeCatalogueWashHwts/index.tsx index 81fb96a343..8079b402e8 100644 --- a/src/views/SurgeCatalogueWashHwts/index.tsx +++ b/app/src/views/SurgeCatalogueWashHwts/index.tsx @@ -1,7 +1,8 @@ +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueWashKit2/i18n.json b/app/src/views/SurgeCatalogueWashKit2/i18n.json similarity index 100% rename from src/views/SurgeCatalogueWashKit2/i18n.json rename to app/src/views/SurgeCatalogueWashKit2/i18n.json diff --git a/src/views/SurgeCatalogueWashKit2/index.tsx b/app/src/views/SurgeCatalogueWashKit2/index.tsx similarity index 93% rename from src/views/SurgeCatalogueWashKit2/index.tsx rename to app/src/views/SurgeCatalogueWashKit2/index.tsx index 29dd7b28eb..d9c2df9758 100644 --- a/src/views/SurgeCatalogueWashKit2/index.tsx +++ b/app/src/views/SurgeCatalogueWashKit2/index.tsx @@ -1,8 +1,11 @@ +import { + Image, + TextOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import Image from '#components/Image'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueWashKit5/i18n.json b/app/src/views/SurgeCatalogueWashKit5/i18n.json similarity index 100% rename from src/views/SurgeCatalogueWashKit5/i18n.json rename to app/src/views/SurgeCatalogueWashKit5/i18n.json diff --git a/src/views/SurgeCatalogueWashKit5/index.tsx b/app/src/views/SurgeCatalogueWashKit5/index.tsx similarity index 93% rename from src/views/SurgeCatalogueWashKit5/index.tsx rename to app/src/views/SurgeCatalogueWashKit5/index.tsx index 214a1f0a04..c61ec4cfed 100644 --- a/src/views/SurgeCatalogueWashKit5/index.tsx +++ b/app/src/views/SurgeCatalogueWashKit5/index.tsx @@ -1,8 +1,11 @@ +import { + Image, + TextOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import Image from '#components/Image'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueWashKitM15Eru/i18n.json b/app/src/views/SurgeCatalogueWashKitM15Eru/i18n.json similarity index 100% rename from src/views/SurgeCatalogueWashKitM15Eru/i18n.json rename to app/src/views/SurgeCatalogueWashKitM15Eru/i18n.json diff --git a/src/views/SurgeCatalogueWashKitM15Eru/index.tsx b/app/src/views/SurgeCatalogueWashKitM15Eru/index.tsx similarity index 98% rename from src/views/SurgeCatalogueWashKitM15Eru/index.tsx rename to app/src/views/SurgeCatalogueWashKitM15Eru/index.tsx index 63342ccb34..7ebdc8305f 100644 --- a/src/views/SurgeCatalogueWashKitM15Eru/index.tsx +++ b/app/src/views/SurgeCatalogueWashKitM15Eru/index.tsx @@ -1,9 +1,9 @@ import { useMemo } from 'react'; +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueWashKitM40Eru/i18n.json b/app/src/views/SurgeCatalogueWashKitM40Eru/i18n.json similarity index 100% rename from src/views/SurgeCatalogueWashKitM40Eru/i18n.json rename to app/src/views/SurgeCatalogueWashKitM40Eru/i18n.json diff --git a/src/views/SurgeCatalogueWashKitM40Eru/index.tsx b/app/src/views/SurgeCatalogueWashKitM40Eru/index.tsx similarity index 97% rename from src/views/SurgeCatalogueWashKitM40Eru/index.tsx rename to app/src/views/SurgeCatalogueWashKitM40Eru/index.tsx index d38bd9c87a..2a8418d39c 100644 --- a/src/views/SurgeCatalogueWashKitM40Eru/index.tsx +++ b/app/src/views/SurgeCatalogueWashKitM40Eru/index.tsx @@ -1,9 +1,9 @@ import { useMemo } from 'react'; +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueWashKitMsm20Eru/i18n.json b/app/src/views/SurgeCatalogueWashKitMsm20Eru/i18n.json similarity index 100% rename from src/views/SurgeCatalogueWashKitMsm20Eru/i18n.json rename to app/src/views/SurgeCatalogueWashKitMsm20Eru/i18n.json diff --git a/src/views/SurgeCatalogueWashKitMsm20Eru/index.tsx b/app/src/views/SurgeCatalogueWashKitMsm20Eru/index.tsx similarity index 98% rename from src/views/SurgeCatalogueWashKitMsm20Eru/index.tsx rename to app/src/views/SurgeCatalogueWashKitMsm20Eru/index.tsx index ce285f8e0f..f2434f2b1b 100644 --- a/src/views/SurgeCatalogueWashKitMsm20Eru/index.tsx +++ b/app/src/views/SurgeCatalogueWashKitMsm20Eru/index.tsx @@ -1,9 +1,9 @@ import { useMemo } from 'react'; +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeCatalogueWashWaterSupplyRehabilitation/i18n.json b/app/src/views/SurgeCatalogueWashWaterSupplyRehabilitation/i18n.json similarity index 100% rename from src/views/SurgeCatalogueWashWaterSupplyRehabilitation/i18n.json rename to app/src/views/SurgeCatalogueWashWaterSupplyRehabilitation/i18n.json diff --git a/src/views/SurgeCatalogueWashWaterSupplyRehabilitation/index.tsx b/app/src/views/SurgeCatalogueWashWaterSupplyRehabilitation/index.tsx similarity index 96% rename from src/views/SurgeCatalogueWashWaterSupplyRehabilitation/index.tsx rename to app/src/views/SurgeCatalogueWashWaterSupplyRehabilitation/index.tsx index eb3b7ec63e..7dca0f8d11 100644 --- a/src/views/SurgeCatalogueWashWaterSupplyRehabilitation/index.tsx +++ b/app/src/views/SurgeCatalogueWashWaterSupplyRehabilitation/index.tsx @@ -1,9 +1,10 @@ +import { TextOutput } from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToComponent } from '@ifrc-go/ui/utils'; + import SurgeCatalogueContainer from '#components/domain/SurgeCatalogueContainer'; import SurgeContentContainer from '#components/domain/SurgeContentContainer'; -import TextOutput from '#components/TextOutput'; import Link from '#components/Link'; -import useTranslation from '#hooks/useTranslation'; -import { resolveToComponent } from '#utils/translation'; import i18n from './i18n.json'; diff --git a/src/views/SurgeOperationalToolbox/i18n.json b/app/src/views/SurgeOperationalToolbox/i18n.json similarity index 100% rename from src/views/SurgeOperationalToolbox/i18n.json rename to app/src/views/SurgeOperationalToolbox/i18n.json diff --git a/src/views/SurgeOperationalToolbox/index.tsx b/app/src/views/SurgeOperationalToolbox/index.tsx similarity index 98% rename from src/views/SurgeOperationalToolbox/index.tsx rename to app/src/views/SurgeOperationalToolbox/index.tsx index dfedbc2a2b..e4c63c4f19 100644 --- a/src/views/SurgeOperationalToolbox/index.tsx +++ b/app/src/views/SurgeOperationalToolbox/index.tsx @@ -1,14 +1,15 @@ import { MouseEventHandler } from 'react'; +import { + Container, + ExpandableContainer, + TextOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToComponent } from '@ifrc-go/ui/utils'; -import Container from '#components/Container'; -import useTranslation from '#hooks/useTranslation'; -import ExpandableContainer from '#components/ExpandableContainer'; -import TextOutput from '#components/TextOutput'; -import Link from '#components/Link'; -import { resolveToComponent } from '#utils/translation'; - -import OperationalTimelineTitle from '#assets/content/operational_timeline_title.svg?react'; import OperationalTimelineBody from '#assets/content/operational_timeline_body.svg?react'; +import OperationalTimelineTitle from '#assets/content/operational_timeline_title.svg?react'; +import Link from '#components/Link'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/SurgeOperationalToolbox/styles.module.css b/app/src/views/SurgeOperationalToolbox/styles.module.css similarity index 100% rename from src/views/SurgeOperationalToolbox/styles.module.css rename to app/src/views/SurgeOperationalToolbox/styles.module.css diff --git a/src/views/SurgeOverview/EmergencyResponseUnitsTable/i18n.json b/app/src/views/SurgeOverview/EmergencyResponseUnitsTable/i18n.json similarity index 100% rename from src/views/SurgeOverview/EmergencyResponseUnitsTable/i18n.json rename to app/src/views/SurgeOverview/EmergencyResponseUnitsTable/i18n.json diff --git a/src/views/SurgeOverview/EmergencyResponseUnitsTable/index.tsx b/app/src/views/SurgeOverview/EmergencyResponseUnitsTable/index.tsx similarity index 92% rename from src/views/SurgeOverview/EmergencyResponseUnitsTable/index.tsx rename to app/src/views/SurgeOverview/EmergencyResponseUnitsTable/index.tsx index 7edb115b63..1d4d15d928 100644 --- a/src/views/SurgeOverview/EmergencyResponseUnitsTable/index.tsx +++ b/app/src/views/SurgeOverview/EmergencyResponseUnitsTable/index.tsx @@ -1,25 +1,28 @@ +import { useMemo } from 'react'; import { - useMemo, -} from 'react'; -import { isDefined } from '@togglecorp/fujs'; - -import Table from '#components/Table'; -import SelectInput from '#components/SelectInput'; -import Link from '#components/Link'; -import Container from '#components/Container'; -import { SortContext } from '#components/Table/useSorting'; -import Pager from '#components/Pager'; -import useTranslation from '#hooks/useTranslation'; + Container, + Pager, + SelectInput, + Table, +} from '@ifrc-go/ui'; +import { SortContext } from '@ifrc-go/ui/contexts'; +import { useTranslation } from '@ifrc-go/ui/hooks'; import { - createLinkColumn, createNumberColumn, createStringColumn, -} from '#components/Table/ColumnShortcuts'; -import { resolveToString } from '#utils/translation'; -import { useRequest, type GoApiResponse } from '#utils/restRequest'; + resolveToString, +} from '@ifrc-go/ui/utils'; +import { isDefined } from '@togglecorp/fujs'; + +import Link from '#components/Link'; +import { type components } from '#generated/types'; import useGlobalEnums from '#hooks/domain/useGlobalEnums'; import useFilterState from '#hooks/useFilterState'; -import { type components } from '#generated/types'; +import { createLinkColumn } from '#utils/domain/tableHelpers'; +import { + type GoApiResponse, + useRequest, +} from '#utils/restRequest'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/SurgeOverview/EmergencyResponseUnitsTable/styles.module.css b/app/src/views/SurgeOverview/EmergencyResponseUnitsTable/styles.module.css similarity index 100% rename from src/views/SurgeOverview/EmergencyResponseUnitsTable/styles.module.css rename to app/src/views/SurgeOverview/EmergencyResponseUnitsTable/styles.module.css diff --git a/src/views/SurgeOverview/PersonnelByEventTable/i18n.json b/app/src/views/SurgeOverview/PersonnelByEventTable/i18n.json similarity index 100% rename from src/views/SurgeOverview/PersonnelByEventTable/i18n.json rename to app/src/views/SurgeOverview/PersonnelByEventTable/i18n.json diff --git a/src/views/SurgeOverview/PersonnelByEventTable/index.tsx b/app/src/views/SurgeOverview/PersonnelByEventTable/index.tsx similarity index 90% rename from src/views/SurgeOverview/PersonnelByEventTable/index.tsx rename to app/src/views/SurgeOverview/PersonnelByEventTable/index.tsx index 89f0e07b9c..83b0ade978 100644 --- a/src/views/SurgeOverview/PersonnelByEventTable/index.tsx +++ b/app/src/views/SurgeOverview/PersonnelByEventTable/index.tsx @@ -1,18 +1,23 @@ import { useMemo } from 'react'; - -import Table from '#components/Table'; -import Link from '#components/Link'; -import Container from '#components/Container'; import { - createLinkColumn, + Container, + Pager, + Table, +} from '@ifrc-go/ui'; +import { SortContext } from '@ifrc-go/ui/contexts'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { createNumberColumn, createStringColumn, -} from '#components/Table/ColumnShortcuts'; -import { SortContext } from '#components/Table/useSorting'; -import Pager from '#components/Pager'; -import useTranslation from '#hooks/useTranslation'; +} from '@ifrc-go/ui/utils'; + +import Link from '#components/Link'; import useFilterState from '#hooks/useFilterState'; -import { useRequest, type GoApiResponse } from '#utils/restRequest'; +import { createLinkColumn } from '#utils/domain/tableHelpers'; +import { + type GoApiResponse, + useRequest, +} from '#utils/restRequest'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/SurgeOverview/PersonnelByEventTable/styles.module.css b/app/src/views/SurgeOverview/PersonnelByEventTable/styles.module.css similarity index 100% rename from src/views/SurgeOverview/PersonnelByEventTable/styles.module.css rename to app/src/views/SurgeOverview/PersonnelByEventTable/styles.module.css diff --git a/src/views/SurgeOverview/Readiness/EmergencyResponseUnitOwnerCard/i18n.json b/app/src/views/SurgeOverview/Readiness/EmergencyResponseUnitOwnerCard/i18n.json similarity index 100% rename from src/views/SurgeOverview/Readiness/EmergencyResponseUnitOwnerCard/i18n.json rename to app/src/views/SurgeOverview/Readiness/EmergencyResponseUnitOwnerCard/i18n.json diff --git a/src/views/SurgeOverview/Readiness/EmergencyResponseUnitOwnerCard/index.tsx b/app/src/views/SurgeOverview/Readiness/EmergencyResponseUnitOwnerCard/index.tsx similarity index 94% rename from src/views/SurgeOverview/Readiness/EmergencyResponseUnitOwnerCard/index.tsx rename to app/src/views/SurgeOverview/Readiness/EmergencyResponseUnitOwnerCard/index.tsx index 332e18de39..75498d4ce0 100644 --- a/src/views/SurgeOverview/Readiness/EmergencyResponseUnitOwnerCard/index.tsx +++ b/app/src/views/SurgeOverview/Readiness/EmergencyResponseUnitOwnerCard/index.tsx @@ -1,13 +1,15 @@ import { useCallback } from 'react'; +import { + Container, + RawList, + TextOutput, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToString } from '@ifrc-go/ui/utils'; import { _cs } from '@togglecorp/fujs'; -import Container from '#components/Container'; -import RawList from '#components/RawList'; import Link from '#components/Link'; -import TextOutput from '#components/TextOutput'; -import useTranslation from '#hooks/useTranslation'; import { type GoApiResponse } from '#utils/restRequest'; -import { resolveToString } from '#utils/translation'; import i18n from './i18n.json'; import styles from './styles.module.css'; diff --git a/src/views/SurgeOverview/Readiness/EmergencyResponseUnitOwnerCard/styles.module.css b/app/src/views/SurgeOverview/Readiness/EmergencyResponseUnitOwnerCard/styles.module.css similarity index 100% rename from src/views/SurgeOverview/Readiness/EmergencyResponseUnitOwnerCard/styles.module.css rename to app/src/views/SurgeOverview/Readiness/EmergencyResponseUnitOwnerCard/styles.module.css diff --git a/src/views/SurgeOverview/Readiness/i18n.json b/app/src/views/SurgeOverview/Readiness/i18n.json similarity index 100% rename from src/views/SurgeOverview/Readiness/i18n.json rename to app/src/views/SurgeOverview/Readiness/i18n.json diff --git a/src/views/SurgeOverview/Readiness/index.tsx b/app/src/views/SurgeOverview/Readiness/index.tsx similarity index 90% rename from src/views/SurgeOverview/Readiness/index.tsx rename to app/src/views/SurgeOverview/Readiness/index.tsx index 5e5169f331..1a26500809 100644 --- a/src/views/SurgeOverview/Readiness/index.tsx +++ b/app/src/views/SurgeOverview/Readiness/index.tsx @@ -1,21 +1,25 @@ +import { useCallback } from 'react'; import { - useCallback, -} from 'react'; + Button, + Checklist, + Container, + Grid, + Pager, +} from '@ifrc-go/ui'; +import { useTranslation } from '@ifrc-go/ui/hooks'; +import { resolveToString } from '@ifrc-go/ui/utils'; import { isDefined } from '@togglecorp/fujs'; -import useFilterState from '#hooks/useFilterState'; -import Button from '#components/Button'; -import CheckList from '#components/Checklist'; -import Grid from '#components/Grid'; -import Pager from '#components/Pager'; -import Container from '#components/Container'; -import useTranslation from '#hooks/useTranslation'; -import { resolveToString } from '#utils/translation'; -import { useRequest, type GoApiResponse } from '#utils/restRequest'; import { type components } from '#generated/types'; - import useGlobalEnums from '#hooks/domain/useGlobalEnums'; +import useFilterState from '#hooks/useFilterState'; +import { + type GoApiResponse, + useRequest, +} from '#utils/restRequest'; + import EmergencyResponseUnitOwnerCard from './EmergencyResponseUnitOwnerCard'; + import i18n from './i18n.json'; import styles from './styles.module.css'; @@ -98,7 +102,7 @@ function Readiness() { headingLevel={3} childrenContainerClassName={styles.filterContainer} > - [number]; diff --git a/src/views/ThreeWProjectForm/schema.ts b/app/src/views/ThreeWProjectForm/schema.ts similarity index 99% rename from src/views/ThreeWProjectForm/schema.ts rename to app/src/views/ThreeWProjectForm/schema.ts index fa3ad84d1d..6bbd51b5d7 100644 --- a/src/views/ThreeWProjectForm/schema.ts +++ b/app/src/views/ThreeWProjectForm/schema.ts @@ -1,25 +1,26 @@ +import { type DeepReplace } from '@ifrc-go/ui/utils'; import { - PartialForm, + addCondition, ArraySchema, - ObjectSchema, + emailCondition, nullValue, - addCondition, - undefinedValue, + ObjectSchema, + PartialForm, requiredStringCondition, - emailCondition, + undefinedValue, } from '@togglecorp/toggle-form'; + import { - positiveIntegerCondition, - positiveNumberCondition, - dateGreaterThanOrEqualCondition, -} from '#utils/form'; -import { - OPERATION_TYPE_PROGRAMME, OPERATION_TYPE_EMERGENCY, - PROGRAMME_TYPE_MULTILATERAL, + OPERATION_TYPE_PROGRAMME, PROGRAMME_TYPE_DOMESTIC, + PROGRAMME_TYPE_MULTILATERAL, } from '#utils/constants'; -import { type DeepReplace } from '#utils/common'; +import { + dateGreaterThanOrEqualCondition, + positiveIntegerCondition, + positiveNumberCondition, +} from '#utils/form'; import { type GoApiBody } from '#utils/restRequest'; export type ProjectResponseBody = GoApiBody<'/api/v2/project/{id}/', 'PATCH'>; diff --git a/src/views/ThreeWProjectForm/styles.module.css b/app/src/views/ThreeWProjectForm/styles.module.css similarity index 100% rename from src/views/ThreeWProjectForm/styles.module.css rename to app/src/views/ThreeWProjectForm/styles.module.css diff --git a/stylelint.config.cjs b/app/stylelint.config.cjs similarity index 100% rename from stylelint.config.cjs rename to app/stylelint.config.cjs diff --git a/tsconfig.json b/app/tsconfig.json similarity index 100% rename from tsconfig.json rename to app/tsconfig.json diff --git a/tsconfig.node.json b/app/tsconfig.node.json similarity index 100% rename from tsconfig.node.json rename to app/tsconfig.node.json diff --git a/types.stub.ts b/app/types.stub.ts similarity index 100% rename from types.stub.ts rename to app/types.stub.ts diff --git a/vite.config.ts b/app/vite.config.ts similarity index 100% rename from vite.config.ts rename to app/vite.config.ts diff --git a/package.json b/package.json index 917ad3e5c3..d68e5e3892 100644 --- a/package.json +++ b/package.json @@ -2,104 +2,16 @@ "name": "go-web-app", "version": "7.0.18", "type": "module", + "private": true, "scripts": { - "initialize:type": "mkdir -p generated/ && yarn initialize:type:go-api && yarn initialize:type:risk-api", - "initialize:type:go-api": "test -f ./generated/types.ts && true || cp types.stub.ts ./generated/types.ts", - "initialize:type:risk-api": "test -f ./generated/riskTypes.ts && true || cp types.stub.ts ./generated/riskTypes.ts", - "prestart": "yarn initialize:type", - "pretypecheck": "yarn initialize:type", - "prelint:js": "yarn initialize:type", - "prelint:unused": "yarn initialize:type", - "prebuild": "yarn initialize:type", - "start": "vite", - "build": "vite build", - "generate:type": "yarn generate:type:go-api && yarn generate:type:risk-api", - "generate:type:go-api": "dotenv -- cross-var openapi-typescript \"%APP_API_ENDPOINT%api-docs/\" -o ./generated/types.ts --alphabetize", - "generate:type:risk-api": "dotenv -- cross-var openapi-typescript \"%APP_RISK_API_ENDPOINT%api-docs/\" -o ./generated/riskTypes.ts --alphabetize", - "typecheck": "tsc", - "lint:js": "eslint src", - "lint:css": "stylelint \"./src/**/*.css\"", - "lint:unused": "unimported", - "lint:translation": "node ./scripts/translator.js", - "lint": "yarn lint:js && yarn lint:css && yarn lint:unused && yarn lint:translation", - "test": "vitest", - "test:coverage": "vitest run --coverage", - "surge:deploy": "branch=$(git rev-parse --symbolic-full-name --abbrev-ref HEAD); branch=$(echo $branch | tr ./ -); cp build/index.html build/200.html; surge -p build/ -d https://ifrc-go-$branch.surge.sh", - "surge:teardown": "branch=$(git rev-parse --symbolic-full-name --abbrev-ref HEAD); branch=$(echo $branch | tr ./ -); surge teardown https://ifrc-go-$branch.surge.sh", "postinstall": "patch-package" }, - "dependencies": { - "@ifrc-go/icons": "^1.2.0", - "@mapbox/mapbox-gl-draw": "^1.2.0", - "@sentry/react": "^7.81.1", - "@tinymce/tinymce-react": "^4.3.0", - "@togglecorp/fujs": "^2.0.0", - "@togglecorp/re-map": "^0.2.0-beta-6", - "@togglecorp/toggle-form": "2.0.3", - "@togglecorp/toggle-request": "^1.0.0-beta.2", - "@turf/bbox": "^6.5.0", - "@turf/buffer": "^6.5.0", - "exceljs": "^4.3.0", - "file-saver": "^2.0.5", - "html-to-image": "^1.11.11", - "mapbox-gl": "^1.13.0", - "papaparse": "^5.4.1", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-focus-on": "^3.8.1", - "react-router-dom": "^6.18.0", - "sanitize-html": "^2.10.0" - }, "devDependencies": { - "@eslint/eslintrc": "^2.0.3", - "@julr/vite-plugin-validate-env": "^1.0.1", - "@types/file-saver": "^2.0.5", - "@types/html2canvas": "^1.0.0", - "@types/mapbox-gl": "^1.13.0", - "@types/node": "^20.1.3", - "@types/papaparse": "^5.3.8", - "@types/react": "^18.0.28", - "@types/react-dom": "^18.0.11", - "@types/sanitize-html": "^2.9.0", - "@typescript-eslint/eslint-plugin": "^5.59.5", - "@typescript-eslint/parser": "^5.59.5", - "@vitejs/plugin-react-swc": "^3.5.0", - "autoprefixer": "^10.4.14", - "cross-var": "^1.1.0", - "dotenv-cli": "^7.2.1", - "eslint": "^8.40.0", - "eslint-config-airbnb": "^19.0.4", - "eslint-import-resolver-typescript": "^3.5.5", - "eslint-plugin-import": "^2.27.5", - "eslint-plugin-jsx-a11y": "^6.7.1", - "eslint-plugin-react": "^7.32.2", - "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-react-refresh": "^0.3.4", - "fast-glob": "^3.3.0", - "happy-dom": "^9.18.3", - "openapi-typescript": "^6.5.5", - "patch-package": "^7.0.0", - "postcss": "^8.3.0", - "postcss-nested": "^6.0.1", - "postcss-normalize": "^10.0.1", - "postcss-preset-env": "^8.3.2", - "postinstall-postinstall": "^2.1.0", - "rollup-plugin-visualizer": "^5.9.0", - "stylelint": "^15.6.1", - "stylelint-config-concentric": "^2.0.2", - "stylelint-config-recommended": "^12.0.0", - "stylelint-no-unused-selectors": "git+https://github.com/toggle-corp/stylelint-no-unused-selectors#e0831e1", - "stylelint-value-no-unknown-custom-properties": "^4.0.0", - "surge": "^0.23.1", - "typescript": "^5.0.4", - "unimported": "^1.28.0", - "vite": "^5.0.10", - "vite-plugin-checker": "^0.6.2", - "vite-plugin-compression2": "^0.11.0", - "vite-plugin-radar": "^0.9.2", - "vite-plugin-svgr": "^4.2.0", - "vite-plugin-webfont-dl": "^3.9.1", - "vite-tsconfig-paths": "^4.2.2", - "vitest": "^1.1.0" - } + "patch-package": "^8.0.0", + "postinstall-postinstall": "^2.1.0" + }, + "workspaces": [ + "app", + "packages/ui" + ] } diff --git a/packages/ui/.eslintignore b/packages/ui/.eslintignore new file mode 100644 index 0000000000..04c01ba7ba --- /dev/null +++ b/packages/ui/.eslintignore @@ -0,0 +1,2 @@ +node_modules/ +dist/ \ No newline at end of file diff --git a/packages/ui/README.md b/packages/ui/README.md new file mode 100644 index 0000000000..9c01267942 --- /dev/null +++ b/packages/ui/README.md @@ -0,0 +1 @@ +### GO UI diff --git a/eslint.config.js b/packages/ui/eslint.config.js similarity index 98% rename from eslint.config.js rename to packages/ui/eslint.config.js index e4a6c69c72..419fd9970f 100644 --- a/eslint.config.js +++ b/packages/ui/eslint.config.js @@ -15,6 +15,7 @@ const appConfigs = compat.config({ browser: true, es2020: true, }, + root: true, extends: [ 'airbnb', 'airbnb/hooks', @@ -87,7 +88,6 @@ const appConfigs = compat.config({ }).map((conf) => ({ ...conf, files: ['src/**/*.tsx', 'src/**/*.jsx', 'src/**/*.ts', 'src/**/*.js'], - ignores: ['src/generated/types.ts'], })); const otherConfig = { diff --git a/packages/ui/package.json b/packages/ui/package.json new file mode 100644 index 0000000000..ad52f3eeaa --- /dev/null +++ b/packages/ui/package.json @@ -0,0 +1,100 @@ +{ + "name": "@ifrc-go/ui", + "private": true, + "version": "0.0.1", + "type": "module", + "license": "MIT", + "author": { + "name": "ifrc" + }, + "description": "IFRC-GO UI Components Library", + "keywords": [ + "ifrc-go", + "ui", + "react", + "component library" + ], + "scripts": { + "typecheck": "tsc", + "build": "tsc && vite build", + "watch": "vite build --watch", + "lint:js": "eslint src", + "lint:css": "stylelint \"./src/**/*.css\"", + "lint": "yarn lint:js && yarn lint:css" + }, + "files": [ + "dist/*" + ], + "module": "./dist/index.js", + "types": "./dist/index.d.ts", + "style": "./dist/index.gcss", + "exports": { + "./index.css": { + "import": "./dist/index.css" + }, + ".": { + "import": "./dist/index.js", + "types": "./dist/index.d.ts" + }, + "./contexts": { + "import": "./dist/contexts/index.js", + "types": "./dist/contexts/index.d.ts" + }, + "./hooks": { + "import": "./dist/hooks/index.js", + "types": "./dist/hooks/index.d.ts" + }, + "./utils": { + "import": "./dist/utils/index.js", + "types": "./dist/utils/index.d.ts" + }, + "./printable": { + "import": "./dist/components/printable/index.js", + "types": "./dist/components/printable/index.d.ts" + } + }, + "dependencies": { + "@togglecorp/fujs": "^2.1.1", + "react-focus-on": "^3.9.1", + "sanitize-html": "^2.11.0" + }, + "peerDependencies": { + "@ifrc-go/icons": "^1.2.0", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@eslint/eslintrc": "^2.0.3", + "@types/react": "^18.0.28", + "@types/react-dom": "^18.0.11", + "@typescript-eslint/eslint-plugin": "^5.59.5", + "@typescript-eslint/parser": "^5.59.5", + "autoprefixer": "^10.4.16", + "eslint": "^8.2.0", + "eslint-config-airbnb": "19.0.4", + "eslint-import-resolver-typescript": "^3.5.5", + "eslint-plugin-import": "^2.25.3", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-react": "^7.28.0", + "eslint-plugin-react-hooks": "^4.3.0", + "eslint-plugin-react-refresh": "^0.3.4", + "glob": "^10.3.10", + "postcss": "^8.3.0", + "postcss-nested": "^6.0.1", + "postcss-normalize": "^10.0.1", + "postcss-preset-env": "^8.3.2", + "react-focus-on": "^3.9.1", + "sanitize-html": "^2.11.0", + "stylelint": "^15.6.1", + "stylelint-config-concentric": "^2.0.2", + "stylelint-config-recommended": "^12.0.0", + "stylelint-no-unused-selectors": "git+https://github.com/toggle-corp/stylelint-no-unused-selectors#e0831e1", + "stylelint-value-no-unknown-custom-properties": "^4.0.0", + "typescript": "^5.2.2", + "vite": "^5.0.8", + "vite-plugin-dts": "^3.7.0", + "vite-plugin-lib-inject-css": "^1.3.0", + "vite-tsconfig-paths": "^4.2.3", + "vitest": "^1.1.1" + } +} diff --git a/packages/ui/postcss.config.cjs b/packages/ui/postcss.config.cjs new file mode 100644 index 0000000000..c1a23f7496 --- /dev/null +++ b/packages/ui/postcss.config.cjs @@ -0,0 +1,8 @@ +module.exports = { + plugins: [ + require('postcss-preset-env'), + require('postcss-nested'), + require('postcss-normalize'), + require('autoprefixer'), + ], +}; diff --git a/src/components/Alert/i18n.json b/packages/ui/src/components/Alert/i18n.json similarity index 100% rename from src/components/Alert/i18n.json rename to packages/ui/src/components/Alert/i18n.json diff --git a/src/components/Alert/index.tsx b/packages/ui/src/components/Alert/index.tsx similarity index 99% rename from src/components/Alert/index.tsx rename to packages/ui/src/components/Alert/index.tsx index 170112f4eb..d03b7d8df2 100644 --- a/src/components/Alert/index.tsx +++ b/packages/ui/src/components/Alert/index.tsx @@ -14,7 +14,6 @@ import { AlertType } from '#contexts/alert'; import useTranslation from '#hooks/useTranslation'; import i18n from './i18n.json'; - import styles from './styles.module.css'; export interface Props { diff --git a/src/components/Alert/styles.module.css b/packages/ui/src/components/Alert/styles.module.css similarity index 100% rename from src/components/Alert/styles.module.css rename to packages/ui/src/components/Alert/styles.module.css diff --git a/src/components/AlertContainer/index.tsx b/packages/ui/src/components/AlertContainer/index.tsx similarity index 100% rename from src/components/AlertContainer/index.tsx rename to packages/ui/src/components/AlertContainer/index.tsx diff --git a/src/components/AlertContainer/styles.module.css b/packages/ui/src/components/AlertContainer/styles.module.css similarity index 100% rename from src/components/AlertContainer/styles.module.css rename to packages/ui/src/components/AlertContainer/styles.module.css diff --git a/src/components/BarChart/index.tsx b/packages/ui/src/components/BarChart/index.tsx similarity index 99% rename from src/components/BarChart/index.tsx rename to packages/ui/src/components/BarChart/index.tsx index 70b17e9b5e..ec73470b51 100644 --- a/src/components/BarChart/index.tsx +++ b/packages/ui/src/components/BarChart/index.tsx @@ -6,7 +6,7 @@ import { getPercentage } from '#utils/common'; import styles from './styles.module.css'; -interface Props { +export interface Props { className?: string; data: D[] | null | undefined; keySelector: (datum: D) => number | string; diff --git a/src/components/BarChart/styles.module.css b/packages/ui/src/components/BarChart/styles.module.css similarity index 100% rename from src/components/BarChart/styles.module.css rename to packages/ui/src/components/BarChart/styles.module.css diff --git a/src/components/BlockLoading/index.tsx b/packages/ui/src/components/BlockLoading/index.tsx similarity index 97% rename from src/components/BlockLoading/index.tsx rename to packages/ui/src/components/BlockLoading/index.tsx index af51959736..209991ca28 100644 --- a/src/components/BlockLoading/index.tsx +++ b/packages/ui/src/components/BlockLoading/index.tsx @@ -3,7 +3,7 @@ import { _cs } from '@togglecorp/fujs'; import Spinner from '#components/Spinner'; import styles from './styles.module.css'; -interface Props { +export interface Props { className?: string; message?: React.ReactNode; compact?: boolean; diff --git a/src/components/BlockLoading/styles.module.css b/packages/ui/src/components/BlockLoading/styles.module.css similarity index 100% rename from src/components/BlockLoading/styles.module.css rename to packages/ui/src/components/BlockLoading/styles.module.css diff --git a/src/components/BodyOverlay/index.tsx b/packages/ui/src/components/BodyOverlay/index.tsx similarity index 95% rename from src/components/BodyOverlay/index.tsx rename to packages/ui/src/components/BodyOverlay/index.tsx index bd4940e34b..6b041ab323 100644 --- a/src/components/BodyOverlay/index.tsx +++ b/packages/ui/src/components/BodyOverlay/index.tsx @@ -5,7 +5,7 @@ import Overlay from '#components/Overlay'; import styles from './styles.module.css'; -interface Props { +export interface Props { children: React.ReactNode; className?: string; } diff --git a/src/components/BodyOverlay/styles.module.css b/packages/ui/src/components/BodyOverlay/styles.module.css similarity index 100% rename from src/components/BodyOverlay/styles.module.css rename to packages/ui/src/components/BodyOverlay/styles.module.css diff --git a/src/components/BooleanInput/i18n.json b/packages/ui/src/components/BooleanInput/i18n.json similarity index 100% rename from src/components/BooleanInput/i18n.json rename to packages/ui/src/components/BooleanInput/i18n.json diff --git a/src/components/BooleanInput/index.tsx b/packages/ui/src/components/BooleanInput/index.tsx similarity index 100% rename from src/components/BooleanInput/index.tsx rename to packages/ui/src/components/BooleanInput/index.tsx diff --git a/src/components/BooleanOutput/i18n.json b/packages/ui/src/components/BooleanOutput/i18n.json similarity index 100% rename from src/components/BooleanOutput/i18n.json rename to packages/ui/src/components/BooleanOutput/i18n.json diff --git a/src/components/BooleanOutput/index.tsx b/packages/ui/src/components/BooleanOutput/index.tsx similarity index 100% rename from src/components/BooleanOutput/index.tsx rename to packages/ui/src/components/BooleanOutput/index.tsx diff --git a/src/components/BooleanOutput/styles.module.css b/packages/ui/src/components/BooleanOutput/styles.module.css similarity index 100% rename from src/components/BooleanOutput/styles.module.css rename to packages/ui/src/components/BooleanOutput/styles.module.css diff --git a/src/components/Breadcrumbs/index.tsx b/packages/ui/src/components/Breadcrumbs/index.tsx similarity index 100% rename from src/components/Breadcrumbs/index.tsx rename to packages/ui/src/components/Breadcrumbs/index.tsx diff --git a/src/components/Breadcrumbs/styles.module.css b/packages/ui/src/components/Breadcrumbs/styles.module.css similarity index 100% rename from src/components/Breadcrumbs/styles.module.css rename to packages/ui/src/components/Breadcrumbs/styles.module.css diff --git a/src/components/Button/index.tsx b/packages/ui/src/components/Button/index.tsx similarity index 100% rename from src/components/Button/index.tsx rename to packages/ui/src/components/Button/index.tsx diff --git a/src/components/Button/styles.module.css b/packages/ui/src/components/Button/styles.module.css similarity index 100% rename from src/components/Button/styles.module.css rename to packages/ui/src/components/Button/styles.module.css diff --git a/src/components/ChartAxes/index.tsx b/packages/ui/src/components/ChartAxes/index.tsx similarity index 100% rename from src/components/ChartAxes/index.tsx rename to packages/ui/src/components/ChartAxes/index.tsx diff --git a/src/components/ChartAxes/styles.module.css b/packages/ui/src/components/ChartAxes/styles.module.css similarity index 100% rename from src/components/ChartAxes/styles.module.css rename to packages/ui/src/components/ChartAxes/styles.module.css diff --git a/packages/ui/src/components/ChartAxisX/index.tsx b/packages/ui/src/components/ChartAxisX/index.tsx new file mode 100644 index 0000000000..dd61e2eddf --- /dev/null +++ b/packages/ui/src/components/ChartAxisX/index.tsx @@ -0,0 +1,91 @@ +import { Fragment, useMemo } from 'react'; +import { _cs, compareNumber, isDefined } from '@togglecorp/fujs'; + +import styles from './styles.module.css'; + +interface Props { + ticks: { + x: number; + label: React.ReactNode; + }[]; + chartMargin: { + top: number; + right: number; + bottom: number; + left: number; + }; + chartBounds: { + width: number; + height: number; + }; + chartInnerOffset: number; +} + +function ChartAxisX(props: Props) { + const { + ticks: ticksFromProps, + chartMargin, + chartBounds, + chartInnerOffset, + } = props; + + const ticks = useMemo( + () => [...ticksFromProps].sort((a, b) => compareNumber(a.x, b.x)), + [ticksFromProps], + ); + + return ( + + {ticks.map((tick, i) => { + const isFirst = i === 0; + const isLast = i === (ticks.length - 1); + + const nextTick = isLast ? tick : ticks[i + 1]; + const prevTick = isFirst ? tick : ticks[i - 1]; + + const x1 = (prevTick.x + tick.x) / 2; + const x2 = (tick.x + nextTick.x) / 2; + + const y = chartBounds.height - chartMargin.bottom; + + return ( + + + +
+ {tick.label} +
+
+
+ ); + })} +
+ ); +} + +export default ChartAxisX; diff --git a/packages/ui/src/components/ChartAxisX/styles.module.css b/packages/ui/src/components/ChartAxisX/styles.module.css new file mode 100644 index 0000000000..e0596439ee --- /dev/null +++ b/packages/ui/src/components/ChartAxisX/styles.module.css @@ -0,0 +1,31 @@ +.chart-axis-x { + .x-axis-tick-text { + transition: var(--go-ui-duration-transition-medium) ease-in-out transform; + padding: var(--go-ui-spacing-xs) 0; + text-align: center; + word-break: break-word; + font-size: var(--go-ui-font-size-xs); + + @media screen and (max-width: 30rem) { + transform: rotate(-30deg); + } + + &.first { + text-align: left; + } + + &.last { + text-align: right; + } + } + + .axis-lines { + stroke: var(--go-ui-color-gray-60); + stroke-dasharray: 4 4; + stroke-opacity: 0.5; + + &.hovered { + stroke-opacity: 1; + } + } +} diff --git a/packages/ui/src/components/ChartAxisY/index.tsx b/packages/ui/src/components/ChartAxisY/index.tsx new file mode 100644 index 0000000000..a671330cd2 --- /dev/null +++ b/packages/ui/src/components/ChartAxisY/index.tsx @@ -0,0 +1,73 @@ +import { Fragment } from 'react'; +import { isDefined } from '@togglecorp/fujs'; + +import styles from './styles.module.css'; + +interface Props { + ticks: { + y: number; + label: React.ReactNode; + }[]; + chartMargin: { + top: number; + right: number; + bottom: number; + left: number; + }; + chartBounds: { + width: number; + height: number; + }; + chartInnerOffset: number; +} + +function ChartAxisY(props: Props) { + const { + ticks, + chartMargin, + chartBounds, + chartInnerOffset, + } = props; + + // NOTE: we do not need to check if ticks.length is 0 as the + // loop will not run + const yAxisTickHeight = Math.max( + (chartBounds.height - chartMargin.top - chartMargin.bottom) / ticks.length, + 0, + ); + + return ( + + {ticks.map((tick) => ( + + + +
+ {tick.label} +
+
+
+ ))} +
+ ); +} + +export default ChartAxisY; diff --git a/packages/ui/src/components/ChartAxisY/styles.module.css b/packages/ui/src/components/ChartAxisY/styles.module.css new file mode 100644 index 0000000000..18788944d3 --- /dev/null +++ b/packages/ui/src/components/ChartAxisY/styles.module.css @@ -0,0 +1,21 @@ +.chart-axis-y { + .y-axis-tick-text { + display: flex; + align-items: center; + justify-content: flex-end; + padding: var(--go-ui-spacing-xs); + text-align: right; + word-break: break-word; + font-size: var(--go-ui-font-size-xs); + } + + .axis-line { + stroke: var(--go-ui-color-gray-60); + stroke-dasharray: 4 4; + stroke-opacity: 0.5; + + &.hovered { + stroke-opacity: 1; + } + } +} diff --git a/src/components/Checkbox/Checkmark/index.tsx b/packages/ui/src/components/Checkbox/Checkmark/index.tsx similarity index 100% rename from src/components/Checkbox/Checkmark/index.tsx rename to packages/ui/src/components/Checkbox/Checkmark/index.tsx diff --git a/src/components/Checkbox/index.tsx b/packages/ui/src/components/Checkbox/index.tsx similarity index 100% rename from src/components/Checkbox/index.tsx rename to packages/ui/src/components/Checkbox/index.tsx diff --git a/src/components/Checkbox/styles.module.css b/packages/ui/src/components/Checkbox/styles.module.css similarity index 100% rename from src/components/Checkbox/styles.module.css rename to packages/ui/src/components/Checkbox/styles.module.css diff --git a/src/components/Checklist/index.tsx b/packages/ui/src/components/Checklist/index.tsx similarity index 100% rename from src/components/Checklist/index.tsx rename to packages/ui/src/components/Checklist/index.tsx diff --git a/src/components/Checklist/styles.module.css b/packages/ui/src/components/Checklist/styles.module.css similarity index 100% rename from src/components/Checklist/styles.module.css rename to packages/ui/src/components/Checklist/styles.module.css diff --git a/src/components/ConfirmButton/i18n.json b/packages/ui/src/components/ConfirmButton/i18n.json similarity index 100% rename from src/components/ConfirmButton/i18n.json rename to packages/ui/src/components/ConfirmButton/i18n.json diff --git a/src/components/ConfirmButton/index.tsx b/packages/ui/src/components/ConfirmButton/index.tsx similarity index 100% rename from src/components/ConfirmButton/index.tsx rename to packages/ui/src/components/ConfirmButton/index.tsx diff --git a/src/components/Container/index.tsx b/packages/ui/src/components/Container/index.tsx similarity index 100% rename from src/components/Container/index.tsx rename to packages/ui/src/components/Container/index.tsx diff --git a/src/components/Container/styles.module.css b/packages/ui/src/components/Container/styles.module.css similarity index 100% rename from src/components/Container/styles.module.css rename to packages/ui/src/components/Container/styles.module.css diff --git a/src/components/DateInput/index.tsx b/packages/ui/src/components/DateInput/index.tsx similarity index 100% rename from src/components/DateInput/index.tsx rename to packages/ui/src/components/DateInput/index.tsx diff --git a/src/components/DateOutput/index.tsx b/packages/ui/src/components/DateOutput/index.tsx similarity index 100% rename from src/components/DateOutput/index.tsx rename to packages/ui/src/components/DateOutput/index.tsx diff --git a/src/components/DateOutput/styles.module.css b/packages/ui/src/components/DateOutput/styles.module.css similarity index 100% rename from src/components/DateOutput/styles.module.css rename to packages/ui/src/components/DateOutput/styles.module.css diff --git a/src/components/DateRangeOutput/index.tsx b/packages/ui/src/components/DateRangeOutput/index.tsx similarity index 100% rename from src/components/DateRangeOutput/index.tsx rename to packages/ui/src/components/DateRangeOutput/index.tsx diff --git a/src/components/DateRangeOutput/styles.module.css b/packages/ui/src/components/DateRangeOutput/styles.module.css similarity index 100% rename from src/components/DateRangeOutput/styles.module.css rename to packages/ui/src/components/DateRangeOutput/styles.module.css diff --git a/src/components/DropdownMenu/index.tsx b/packages/ui/src/components/DropdownMenu/index.tsx similarity index 100% rename from src/components/DropdownMenu/index.tsx rename to packages/ui/src/components/DropdownMenu/index.tsx diff --git a/src/components/DropdownMenu/styles.module.css b/packages/ui/src/components/DropdownMenu/styles.module.css similarity index 100% rename from src/components/DropdownMenu/styles.module.css rename to packages/ui/src/components/DropdownMenu/styles.module.css diff --git a/src/components/ExpandableContainer/i18n.json b/packages/ui/src/components/ExpandableContainer/i18n.json similarity index 100% rename from src/components/ExpandableContainer/i18n.json rename to packages/ui/src/components/ExpandableContainer/i18n.json diff --git a/src/components/ExpandableContainer/index.tsx b/packages/ui/src/components/ExpandableContainer/index.tsx similarity index 100% rename from src/components/ExpandableContainer/index.tsx rename to packages/ui/src/components/ExpandableContainer/index.tsx diff --git a/src/components/ExpandableContainer/styles.module.css b/packages/ui/src/components/ExpandableContainer/styles.module.css similarity index 100% rename from src/components/ExpandableContainer/styles.module.css rename to packages/ui/src/components/ExpandableContainer/styles.module.css diff --git a/src/components/Footer/index.tsx b/packages/ui/src/components/Footer/index.tsx similarity index 100% rename from src/components/Footer/index.tsx rename to packages/ui/src/components/Footer/index.tsx diff --git a/src/components/Grid/i18n.json b/packages/ui/src/components/Grid/i18n.json similarity index 100% rename from src/components/Grid/i18n.json rename to packages/ui/src/components/Grid/i18n.json diff --git a/src/components/Grid/index.tsx b/packages/ui/src/components/Grid/index.tsx similarity index 100% rename from src/components/Grid/index.tsx rename to packages/ui/src/components/Grid/index.tsx diff --git a/src/components/Grid/styles.module.css b/packages/ui/src/components/Grid/styles.module.css similarity index 100% rename from src/components/Grid/styles.module.css rename to packages/ui/src/components/Grid/styles.module.css diff --git a/src/components/Header/index.tsx b/packages/ui/src/components/Header/index.tsx similarity index 100% rename from src/components/Header/index.tsx rename to packages/ui/src/components/Header/index.tsx diff --git a/src/components/Header/styles.module.css b/packages/ui/src/components/Header/styles.module.css similarity index 100% rename from src/components/Header/styles.module.css rename to packages/ui/src/components/Header/styles.module.css diff --git a/src/components/Heading/index.tsx b/packages/ui/src/components/Heading/index.tsx similarity index 100% rename from src/components/Heading/index.tsx rename to packages/ui/src/components/Heading/index.tsx diff --git a/src/components/Heading/styles.module.css b/packages/ui/src/components/Heading/styles.module.css similarity index 100% rename from src/components/Heading/styles.module.css rename to packages/ui/src/components/Heading/styles.module.css diff --git a/src/components/HtmlOutput/index.tsx b/packages/ui/src/components/HtmlOutput/index.tsx similarity index 100% rename from src/components/HtmlOutput/index.tsx rename to packages/ui/src/components/HtmlOutput/index.tsx diff --git a/src/components/HtmlOutput/styles.module.css b/packages/ui/src/components/HtmlOutput/styles.module.css similarity index 100% rename from src/components/HtmlOutput/styles.module.css rename to packages/ui/src/components/HtmlOutput/styles.module.css diff --git a/src/components/IconButton/index.tsx b/packages/ui/src/components/IconButton/index.tsx similarity index 100% rename from src/components/IconButton/index.tsx rename to packages/ui/src/components/IconButton/index.tsx diff --git a/src/components/IconButton/styles.module.css b/packages/ui/src/components/IconButton/styles.module.css similarity index 100% rename from src/components/IconButton/styles.module.css rename to packages/ui/src/components/IconButton/styles.module.css diff --git a/src/components/Image/index.tsx b/packages/ui/src/components/Image/index.tsx similarity index 100% rename from src/components/Image/index.tsx rename to packages/ui/src/components/Image/index.tsx diff --git a/src/components/Image/styles.module.css b/packages/ui/src/components/Image/styles.module.css similarity index 100% rename from src/components/Image/styles.module.css rename to packages/ui/src/components/Image/styles.module.css diff --git a/src/components/InfoPopup/index.tsx b/packages/ui/src/components/InfoPopup/index.tsx similarity index 100% rename from src/components/InfoPopup/index.tsx rename to packages/ui/src/components/InfoPopup/index.tsx diff --git a/src/components/InfoPopup/styles.module.css b/packages/ui/src/components/InfoPopup/styles.module.css similarity index 100% rename from src/components/InfoPopup/styles.module.css rename to packages/ui/src/components/InfoPopup/styles.module.css diff --git a/src/components/InputContainer/index.tsx b/packages/ui/src/components/InputContainer/index.tsx similarity index 100% rename from src/components/InputContainer/index.tsx rename to packages/ui/src/components/InputContainer/index.tsx diff --git a/src/components/InputContainer/styles.module.css b/packages/ui/src/components/InputContainer/styles.module.css similarity index 100% rename from src/components/InputContainer/styles.module.css rename to packages/ui/src/components/InputContainer/styles.module.css diff --git a/src/components/InputError/index.tsx b/packages/ui/src/components/InputError/index.tsx similarity index 100% rename from src/components/InputError/index.tsx rename to packages/ui/src/components/InputError/index.tsx diff --git a/src/components/InputError/styles.module.css b/packages/ui/src/components/InputError/styles.module.css similarity index 100% rename from src/components/InputError/styles.module.css rename to packages/ui/src/components/InputError/styles.module.css diff --git a/src/components/InputHint/index.tsx b/packages/ui/src/components/InputHint/index.tsx similarity index 100% rename from src/components/InputHint/index.tsx rename to packages/ui/src/components/InputHint/index.tsx diff --git a/src/components/InputHint/styles.module.css b/packages/ui/src/components/InputHint/styles.module.css similarity index 100% rename from src/components/InputHint/styles.module.css rename to packages/ui/src/components/InputHint/styles.module.css diff --git a/src/components/InputLabel/index.tsx b/packages/ui/src/components/InputLabel/index.tsx similarity index 100% rename from src/components/InputLabel/index.tsx rename to packages/ui/src/components/InputLabel/index.tsx diff --git a/src/components/InputLabel/styles.module.css b/packages/ui/src/components/InputLabel/styles.module.css similarity index 100% rename from src/components/InputLabel/styles.module.css rename to packages/ui/src/components/InputLabel/styles.module.css diff --git a/src/components/InputSection/index.tsx b/packages/ui/src/components/InputSection/index.tsx similarity index 100% rename from src/components/InputSection/index.tsx rename to packages/ui/src/components/InputSection/index.tsx diff --git a/src/components/InputSection/styles.module.css b/packages/ui/src/components/InputSection/styles.module.css similarity index 100% rename from src/components/InputSection/styles.module.css rename to packages/ui/src/components/InputSection/styles.module.css diff --git a/src/components/KeyFigure/index.tsx b/packages/ui/src/components/KeyFigure/index.tsx similarity index 100% rename from src/components/KeyFigure/index.tsx rename to packages/ui/src/components/KeyFigure/index.tsx diff --git a/src/components/KeyFigure/styles.module.css b/packages/ui/src/components/KeyFigure/styles.module.css similarity index 100% rename from src/components/KeyFigure/styles.module.css rename to packages/ui/src/components/KeyFigure/styles.module.css diff --git a/src/components/LegendItem/index.tsx b/packages/ui/src/components/LegendItem/index.tsx similarity index 100% rename from src/components/LegendItem/index.tsx rename to packages/ui/src/components/LegendItem/index.tsx diff --git a/src/components/LegendItem/styles.module.css b/packages/ui/src/components/LegendItem/styles.module.css similarity index 100% rename from src/components/LegendItem/styles.module.css rename to packages/ui/src/components/LegendItem/styles.module.css diff --git a/src/components/List/i18n.json b/packages/ui/src/components/List/i18n.json similarity index 100% rename from src/components/List/i18n.json rename to packages/ui/src/components/List/i18n.json diff --git a/src/components/List/index.tsx b/packages/ui/src/components/List/index.tsx similarity index 100% rename from src/components/List/index.tsx rename to packages/ui/src/components/List/index.tsx diff --git a/src/components/List/styles.module.css b/packages/ui/src/components/List/styles.module.css similarity index 100% rename from src/components/List/styles.module.css rename to packages/ui/src/components/List/styles.module.css diff --git a/src/components/Message/index.tsx b/packages/ui/src/components/Message/index.tsx similarity index 100% rename from src/components/Message/index.tsx rename to packages/ui/src/components/Message/index.tsx diff --git a/src/components/Message/styles.module.css b/packages/ui/src/components/Message/styles.module.css similarity index 100% rename from src/components/Message/styles.module.css rename to packages/ui/src/components/Message/styles.module.css diff --git a/src/components/Modal/i18n.json b/packages/ui/src/components/Modal/i18n.json similarity index 100% rename from src/components/Modal/i18n.json rename to packages/ui/src/components/Modal/i18n.json diff --git a/src/components/Modal/index.tsx b/packages/ui/src/components/Modal/index.tsx similarity index 100% rename from src/components/Modal/index.tsx rename to packages/ui/src/components/Modal/index.tsx diff --git a/src/components/Modal/styles.module.css b/packages/ui/src/components/Modal/styles.module.css similarity index 100% rename from src/components/Modal/styles.module.css rename to packages/ui/src/components/Modal/styles.module.css diff --git a/src/components/MultiSelectInput/index.tsx b/packages/ui/src/components/MultiSelectInput/index.tsx similarity index 100% rename from src/components/MultiSelectInput/index.tsx rename to packages/ui/src/components/MultiSelectInput/index.tsx diff --git a/src/components/NavigationTabList/index.tsx b/packages/ui/src/components/NavigationTabList/index.tsx similarity index 100% rename from src/components/NavigationTabList/index.tsx rename to packages/ui/src/components/NavigationTabList/index.tsx diff --git a/src/components/NavigationTabList/styles.module.css b/packages/ui/src/components/NavigationTabList/styles.module.css similarity index 100% rename from src/components/NavigationTabList/styles.module.css rename to packages/ui/src/components/NavigationTabList/styles.module.css diff --git a/src/components/NumberInput/index.tsx b/packages/ui/src/components/NumberInput/index.tsx similarity index 100% rename from src/components/NumberInput/index.tsx rename to packages/ui/src/components/NumberInput/index.tsx diff --git a/src/components/NumberOutput/index.tsx b/packages/ui/src/components/NumberOutput/index.tsx similarity index 100% rename from src/components/NumberOutput/index.tsx rename to packages/ui/src/components/NumberOutput/index.tsx diff --git a/src/components/NumberOutput/styles.module.css b/packages/ui/src/components/NumberOutput/styles.module.css similarity index 100% rename from src/components/NumberOutput/styles.module.css rename to packages/ui/src/components/NumberOutput/styles.module.css diff --git a/src/components/Overlay/index.tsx b/packages/ui/src/components/Overlay/index.tsx similarity index 100% rename from src/components/Overlay/index.tsx rename to packages/ui/src/components/Overlay/index.tsx diff --git a/src/components/Overlay/styles.module.css b/packages/ui/src/components/Overlay/styles.module.css similarity index 100% rename from src/components/Overlay/styles.module.css rename to packages/ui/src/components/Overlay/styles.module.css diff --git a/src/components/PageContainer/index.tsx b/packages/ui/src/components/PageContainer/index.tsx similarity index 100% rename from src/components/PageContainer/index.tsx rename to packages/ui/src/components/PageContainer/index.tsx diff --git a/src/components/PageContainer/styles.module.css b/packages/ui/src/components/PageContainer/styles.module.css similarity index 100% rename from src/components/PageContainer/styles.module.css rename to packages/ui/src/components/PageContainer/styles.module.css diff --git a/src/components/PageHeader/index.tsx b/packages/ui/src/components/PageHeader/index.tsx similarity index 100% rename from src/components/PageHeader/index.tsx rename to packages/ui/src/components/PageHeader/index.tsx diff --git a/src/components/PageHeader/styles.module.css b/packages/ui/src/components/PageHeader/styles.module.css similarity index 100% rename from src/components/PageHeader/styles.module.css rename to packages/ui/src/components/PageHeader/styles.module.css diff --git a/src/components/Pager/i18n.json b/packages/ui/src/components/Pager/i18n.json similarity index 100% rename from src/components/Pager/i18n.json rename to packages/ui/src/components/Pager/i18n.json diff --git a/src/components/Pager/index.tsx b/packages/ui/src/components/Pager/index.tsx similarity index 100% rename from src/components/Pager/index.tsx rename to packages/ui/src/components/Pager/index.tsx diff --git a/src/components/Pager/styles.module.css b/packages/ui/src/components/Pager/styles.module.css similarity index 100% rename from src/components/Pager/styles.module.css rename to packages/ui/src/components/Pager/styles.module.css diff --git a/src/components/PasswordInput/i18n.json b/packages/ui/src/components/PasswordInput/i18n.json similarity index 100% rename from src/components/PasswordInput/i18n.json rename to packages/ui/src/components/PasswordInput/i18n.json diff --git a/src/components/PasswordInput/index.tsx b/packages/ui/src/components/PasswordInput/index.tsx similarity index 100% rename from src/components/PasswordInput/index.tsx rename to packages/ui/src/components/PasswordInput/index.tsx diff --git a/src/components/PieChart/index.tsx b/packages/ui/src/components/PieChart/index.tsx similarity index 100% rename from src/components/PieChart/index.tsx rename to packages/ui/src/components/PieChart/index.tsx diff --git a/src/components/PieChart/styles.module.css b/packages/ui/src/components/PieChart/styles.module.css similarity index 100% rename from src/components/PieChart/styles.module.css rename to packages/ui/src/components/PieChart/styles.module.css diff --git a/src/components/Popup/index.tsx b/packages/ui/src/components/Popup/index.tsx similarity index 100% rename from src/components/Popup/index.tsx rename to packages/ui/src/components/Popup/index.tsx diff --git a/src/components/Popup/styles.module.css b/packages/ui/src/components/Popup/styles.module.css similarity index 100% rename from src/components/Popup/styles.module.css rename to packages/ui/src/components/Popup/styles.module.css diff --git a/src/components/Portal/index.tsx b/packages/ui/src/components/Portal/index.tsx similarity index 100% rename from src/components/Portal/index.tsx rename to packages/ui/src/components/Portal/index.tsx diff --git a/src/components/ProgressBar/index.tsx b/packages/ui/src/components/ProgressBar/index.tsx similarity index 100% rename from src/components/ProgressBar/index.tsx rename to packages/ui/src/components/ProgressBar/index.tsx diff --git a/src/components/ProgressBar/styles.module.css b/packages/ui/src/components/ProgressBar/styles.module.css similarity index 100% rename from src/components/ProgressBar/styles.module.css rename to packages/ui/src/components/ProgressBar/styles.module.css diff --git a/src/components/RadioInput/Radio/index.tsx b/packages/ui/src/components/RadioInput/Radio/index.tsx similarity index 100% rename from src/components/RadioInput/Radio/index.tsx rename to packages/ui/src/components/RadioInput/Radio/index.tsx diff --git a/src/components/RadioInput/Radio/styles.module.css b/packages/ui/src/components/RadioInput/Radio/styles.module.css similarity index 100% rename from src/components/RadioInput/Radio/styles.module.css rename to packages/ui/src/components/RadioInput/Radio/styles.module.css diff --git a/src/components/RadioInput/index.tsx b/packages/ui/src/components/RadioInput/index.tsx similarity index 100% rename from src/components/RadioInput/index.tsx rename to packages/ui/src/components/RadioInput/index.tsx diff --git a/src/components/RadioInput/styles.module.css b/packages/ui/src/components/RadioInput/styles.module.css similarity index 100% rename from src/components/RadioInput/styles.module.css rename to packages/ui/src/components/RadioInput/styles.module.css diff --git a/src/components/RawButton/index.tsx b/packages/ui/src/components/RawButton/index.tsx similarity index 100% rename from src/components/RawButton/index.tsx rename to packages/ui/src/components/RawButton/index.tsx diff --git a/src/components/RawButton/styles.module.css b/packages/ui/src/components/RawButton/styles.module.css similarity index 100% rename from src/components/RawButton/styles.module.css rename to packages/ui/src/components/RawButton/styles.module.css diff --git a/src/components/RawFileInput/index.tsx b/packages/ui/src/components/RawFileInput/index.tsx similarity index 100% rename from src/components/RawFileInput/index.tsx rename to packages/ui/src/components/RawFileInput/index.tsx diff --git a/src/components/RawFileInput/styles.module.css b/packages/ui/src/components/RawFileInput/styles.module.css similarity index 100% rename from src/components/RawFileInput/styles.module.css rename to packages/ui/src/components/RawFileInput/styles.module.css diff --git a/src/components/RawInput/index.tsx b/packages/ui/src/components/RawInput/index.tsx similarity index 100% rename from src/components/RawInput/index.tsx rename to packages/ui/src/components/RawInput/index.tsx diff --git a/src/components/RawInput/styles.module.css b/packages/ui/src/components/RawInput/styles.module.css similarity index 100% rename from src/components/RawInput/styles.module.css rename to packages/ui/src/components/RawInput/styles.module.css diff --git a/src/components/RawList/index.tsx b/packages/ui/src/components/RawList/index.tsx similarity index 100% rename from src/components/RawList/index.tsx rename to packages/ui/src/components/RawList/index.tsx diff --git a/src/components/RawTextArea/index.tsx b/packages/ui/src/components/RawTextArea/index.tsx similarity index 100% rename from src/components/RawTextArea/index.tsx rename to packages/ui/src/components/RawTextArea/index.tsx diff --git a/src/components/RawTextArea/styles.module.css b/packages/ui/src/components/RawTextArea/styles.module.css similarity index 100% rename from src/components/RawTextArea/styles.module.css rename to packages/ui/src/components/RawTextArea/styles.module.css diff --git a/src/components/ReducedListDisplay/i18n.json b/packages/ui/src/components/ReducedListDisplay/i18n.json similarity index 100% rename from src/components/ReducedListDisplay/i18n.json rename to packages/ui/src/components/ReducedListDisplay/i18n.json diff --git a/src/components/ReducedListDisplay/index.tsx b/packages/ui/src/components/ReducedListDisplay/index.tsx similarity index 100% rename from src/components/ReducedListDisplay/index.tsx rename to packages/ui/src/components/ReducedListDisplay/index.tsx diff --git a/src/components/ReducedListDisplay/styles.module.css b/packages/ui/src/components/ReducedListDisplay/styles.module.css similarity index 100% rename from src/components/ReducedListDisplay/styles.module.css rename to packages/ui/src/components/ReducedListDisplay/styles.module.css diff --git a/src/components/SearchMultiSelectInput/Option/index.tsx b/packages/ui/src/components/SearchMultiSelectInput/Option/index.tsx similarity index 100% rename from src/components/SearchMultiSelectInput/Option/index.tsx rename to packages/ui/src/components/SearchMultiSelectInput/Option/index.tsx diff --git a/src/components/SearchMultiSelectInput/index.tsx b/packages/ui/src/components/SearchMultiSelectInput/index.tsx similarity index 100% rename from src/components/SearchMultiSelectInput/index.tsx rename to packages/ui/src/components/SearchMultiSelectInput/index.tsx diff --git a/src/components/SearchMultiSelectInput/styles.module.css b/packages/ui/src/components/SearchMultiSelectInput/styles.module.css similarity index 100% rename from src/components/SearchMultiSelectInput/styles.module.css rename to packages/ui/src/components/SearchMultiSelectInput/styles.module.css diff --git a/src/components/SearchSelectInput/Option/index.tsx b/packages/ui/src/components/SearchSelectInput/Option/index.tsx similarity index 100% rename from src/components/SearchSelectInput/Option/index.tsx rename to packages/ui/src/components/SearchSelectInput/Option/index.tsx diff --git a/src/components/SearchSelectInput/Option/styles.module.css b/packages/ui/src/components/SearchSelectInput/Option/styles.module.css similarity index 100% rename from src/components/SearchSelectInput/Option/styles.module.css rename to packages/ui/src/components/SearchSelectInput/Option/styles.module.css diff --git a/src/components/SearchSelectInput/index.tsx b/packages/ui/src/components/SearchSelectInput/index.tsx similarity index 100% rename from src/components/SearchSelectInput/index.tsx rename to packages/ui/src/components/SearchSelectInput/index.tsx diff --git a/src/components/SearchSelectInput/styles.module.css b/packages/ui/src/components/SearchSelectInput/styles.module.css similarity index 100% rename from src/components/SearchSelectInput/styles.module.css rename to packages/ui/src/components/SearchSelectInput/styles.module.css diff --git a/src/components/SegmentInput/index.tsx b/packages/ui/src/components/SegmentInput/index.tsx similarity index 100% rename from src/components/SegmentInput/index.tsx rename to packages/ui/src/components/SegmentInput/index.tsx diff --git a/src/components/SegmentInput/styles.module.css b/packages/ui/src/components/SegmentInput/styles.module.css similarity index 100% rename from src/components/SegmentInput/styles.module.css rename to packages/ui/src/components/SegmentInput/styles.module.css diff --git a/src/components/SelectInput/index.tsx b/packages/ui/src/components/SelectInput/index.tsx similarity index 100% rename from src/components/SelectInput/index.tsx rename to packages/ui/src/components/SelectInput/index.tsx diff --git a/src/components/SelectInputContainer/GenericOption/index.tsx b/packages/ui/src/components/SelectInputContainer/GenericOption/index.tsx similarity index 100% rename from src/components/SelectInputContainer/GenericOption/index.tsx rename to packages/ui/src/components/SelectInputContainer/GenericOption/index.tsx diff --git a/src/components/SelectInputContainer/GenericOption/styles.module.css b/packages/ui/src/components/SelectInputContainer/GenericOption/styles.module.css similarity index 100% rename from src/components/SelectInputContainer/GenericOption/styles.module.css rename to packages/ui/src/components/SelectInputContainer/GenericOption/styles.module.css diff --git a/src/components/SelectInputContainer/i18n.json b/packages/ui/src/components/SelectInputContainer/i18n.json similarity index 100% rename from src/components/SelectInputContainer/i18n.json rename to packages/ui/src/components/SelectInputContainer/i18n.json diff --git a/src/components/SelectInputContainer/index.tsx b/packages/ui/src/components/SelectInputContainer/index.tsx similarity index 100% rename from src/components/SelectInputContainer/index.tsx rename to packages/ui/src/components/SelectInputContainer/index.tsx diff --git a/src/components/SelectInputContainer/styles.module.css b/packages/ui/src/components/SelectInputContainer/styles.module.css similarity index 100% rename from src/components/SelectInputContainer/styles.module.css rename to packages/ui/src/components/SelectInputContainer/styles.module.css diff --git a/src/components/Spinner/index.tsx b/packages/ui/src/components/Spinner/index.tsx similarity index 100% rename from src/components/Spinner/index.tsx rename to packages/ui/src/components/Spinner/index.tsx diff --git a/src/components/Spinner/styles.module.css b/packages/ui/src/components/Spinner/styles.module.css similarity index 100% rename from src/components/Spinner/styles.module.css rename to packages/ui/src/components/Spinner/styles.module.css diff --git a/src/components/StackedProgressBar/index.tsx b/packages/ui/src/components/StackedProgressBar/index.tsx similarity index 100% rename from src/components/StackedProgressBar/index.tsx rename to packages/ui/src/components/StackedProgressBar/index.tsx diff --git a/src/components/StackedProgressBar/styles.module.css b/packages/ui/src/components/StackedProgressBar/styles.module.css similarity index 100% rename from src/components/StackedProgressBar/styles.module.css rename to packages/ui/src/components/StackedProgressBar/styles.module.css diff --git a/src/components/Switch/SwitchIcon/index.tsx b/packages/ui/src/components/Switch/SwitchIcon/index.tsx similarity index 100% rename from src/components/Switch/SwitchIcon/index.tsx rename to packages/ui/src/components/Switch/SwitchIcon/index.tsx diff --git a/src/components/Switch/SwitchIcon/styles.module.css b/packages/ui/src/components/Switch/SwitchIcon/styles.module.css similarity index 100% rename from src/components/Switch/SwitchIcon/styles.module.css rename to packages/ui/src/components/Switch/SwitchIcon/styles.module.css diff --git a/src/components/Switch/index.tsx b/packages/ui/src/components/Switch/index.tsx similarity index 100% rename from src/components/Switch/index.tsx rename to packages/ui/src/components/Switch/index.tsx diff --git a/src/components/Switch/styles.module.css b/packages/ui/src/components/Switch/styles.module.css similarity index 100% rename from src/components/Switch/styles.module.css rename to packages/ui/src/components/Switch/styles.module.css diff --git a/src/components/Table/Cell/index.tsx b/packages/ui/src/components/Table/Cell/index.tsx similarity index 100% rename from src/components/Table/Cell/index.tsx rename to packages/ui/src/components/Table/Cell/index.tsx diff --git a/src/components/Table/ColumnShortcuts/ExpandButton/index.tsx b/packages/ui/src/components/Table/ColumnShortcuts/ExpandButton/index.tsx similarity index 100% rename from src/components/Table/ColumnShortcuts/ExpandButton/index.tsx rename to packages/ui/src/components/Table/ColumnShortcuts/ExpandButton/index.tsx diff --git a/src/components/Table/ColumnShortcuts/ExpandButton/styles.module.css b/packages/ui/src/components/Table/ColumnShortcuts/ExpandButton/styles.module.css similarity index 100% rename from src/components/Table/ColumnShortcuts/ExpandButton/styles.module.css rename to packages/ui/src/components/Table/ColumnShortcuts/ExpandButton/styles.module.css diff --git a/src/components/Table/ColumnShortcuts/ExpansionIndicator/index.tsx b/packages/ui/src/components/Table/ColumnShortcuts/ExpansionIndicator/index.tsx similarity index 100% rename from src/components/Table/ColumnShortcuts/ExpansionIndicator/index.tsx rename to packages/ui/src/components/Table/ColumnShortcuts/ExpansionIndicator/index.tsx diff --git a/src/components/Table/ColumnShortcuts/ExpansionIndicator/styles.module.css b/packages/ui/src/components/Table/ColumnShortcuts/ExpansionIndicator/styles.module.css similarity index 100% rename from src/components/Table/ColumnShortcuts/ExpansionIndicator/styles.module.css rename to packages/ui/src/components/Table/ColumnShortcuts/ExpansionIndicator/styles.module.css diff --git a/src/components/Table/ColumnShortcuts/TimelineHeader/index.tsx b/packages/ui/src/components/Table/ColumnShortcuts/TimelineHeader/index.tsx similarity index 100% rename from src/components/Table/ColumnShortcuts/TimelineHeader/index.tsx rename to packages/ui/src/components/Table/ColumnShortcuts/TimelineHeader/index.tsx diff --git a/src/components/Table/ColumnShortcuts/TimelineHeader/styles.module.css b/packages/ui/src/components/Table/ColumnShortcuts/TimelineHeader/styles.module.css similarity index 100% rename from src/components/Table/ColumnShortcuts/TimelineHeader/styles.module.css rename to packages/ui/src/components/Table/ColumnShortcuts/TimelineHeader/styles.module.css diff --git a/src/components/Table/ColumnShortcuts/TimelineItem/index.tsx b/packages/ui/src/components/Table/ColumnShortcuts/TimelineItem/index.tsx similarity index 100% rename from src/components/Table/ColumnShortcuts/TimelineItem/index.tsx rename to packages/ui/src/components/Table/ColumnShortcuts/TimelineItem/index.tsx diff --git a/src/components/Table/ColumnShortcuts/TimelineItem/styles.module.css b/packages/ui/src/components/Table/ColumnShortcuts/TimelineItem/styles.module.css similarity index 100% rename from src/components/Table/ColumnShortcuts/TimelineItem/styles.module.css rename to packages/ui/src/components/Table/ColumnShortcuts/TimelineItem/styles.module.css diff --git a/src/components/Table/ColumnShortcuts/index.ts b/packages/ui/src/components/Table/ColumnShortcuts/index.ts similarity index 78% rename from src/components/Table/ColumnShortcuts/index.ts rename to packages/ui/src/components/Table/ColumnShortcuts/index.ts index e67501cc78..6a7e0dcc33 100644 --- a/src/components/Table/ColumnShortcuts/index.ts +++ b/packages/ui/src/components/Table/ColumnShortcuts/index.ts @@ -13,9 +13,6 @@ import NumberOutput, { type Props as NumberOutputProps } from '#components/Numbe import BooleanOutput, { type Props as BooleanOutputProps } from '#components/BooleanOutput'; import ProgressBar, { type Props as ProgressBarProps } from '#components/ProgressBar'; import ReducedListDisplay, { Props as ReducedListDisplayProps } from '#components/ReducedListDisplay'; -import Link, { type Props as LinkProps } from '#components/Link'; -import { numericIdSelector } from '#utils/selectors'; -import { type GoApiResponse } from '#utils/restRequest'; import TableActions, { Props as TableActionsProps, @@ -29,14 +26,9 @@ import ExpandButton from './ExpandButton'; import { type ExpandButtonProps } from './ExpandButton'; import ExpansionIndicator from './ExpansionIndicator'; import { type Props as ExpansionIndicatorProps } from './ExpansionIndicator'; -import CountryLink from './CountryLink'; import TimelineItem, { type Props as TimelineItemProps } from './TimelineItem'; import TimelineHeader, { type Props as TimelineHeaderProps } from './TimelineHeader'; -import type { Props as CountryLinkProps } from './CountryLink'; -import RegionLink from './RegionLink'; -import type { Props as RegionLinkProps } from './RegionLink'; - import styles from './styles.module.css'; type Options = { @@ -308,44 +300,6 @@ export function createDateRangeColumn( }; return item; } -export function createLinkColumn( - id: string, - title: string, - accessor: (item: D) => React.ReactNode, - rendererParams: (item: D) => LinkProps, - options?: Options, -) { - const item: Column & { - valueSelector: (item: D) => string | undefined | null, - valueComparator: (foo: D, bar: D) => number, - } = { - id, - title, - headerCellRenderer: HeaderCell, - headerCellRendererParams: { - sortable: options?.sortable, - infoTitle: options?.headerInfoTitle, - infoDescription: options?.headerInfoDescription, - }, - cellRenderer: Link, - cellRendererParams: (_: K, datum: D): LinkProps => ({ - children: accessor(datum) || '--', - withUnderline: true, - ...rendererParams(datum), - }), - valueSelector: () => '', - valueComparator: () => 0, - cellRendererClassName: options?.cellRendererClassName, - columnClassName: options?.columnClassName, - headerCellRendererClassName: options?.headerCellRendererClassName, - cellContainerClassName: options?.cellContainerClassName, - columnWidth: options?.columnWidth, - columnStretch: options?.columnStretch, - columnStyle: options?.columnStyle, - }; - - return item; -} export function createExpandColumn( id: string, @@ -541,105 +495,3 @@ export function createListDisplayColumn( return item; } - -type CountryResponse = GoApiResponse<'/api/v2/country/'>; -type CountryListItem = NonNullable[number]; -type PartialCountry = Pick; - -type RegionListResponse = GoApiResponse<'/api/v2/region/'>; -type RegionListItem = NonNullable[number]; -type PartialRegion = Pick; - -const countryLinkRendererParams = (country: PartialCountry) => ({ - id: country.id, - name: country.name ?? '?', -}); - -const regionLinkRendererParams = (region: PartialRegion) => ({ - id: region.id, - name: region.region_name ?? '', -}); - -export function createCountryListColumn( - id: string, - title: string, - countryListSelector: (datum: DATUM) => PartialCountry[] | undefined, - options?: Options, -) { - const item: Column< - DATUM, - KEY, - ReducedListDisplayProps, - HeaderCellProps - > = { - id, - title, - headerCellRenderer: HeaderCell, - headerCellRendererParams: { - sortable: false, - }, - headerContainerClassName: options?.headerContainerClassName, - cellRenderer: ReducedListDisplay, - cellRendererParams: (_, datum) => { - const countryList = countryListSelector(datum); - - return { - list: countryList, - renderer: CountryLink, - keySelector: numericIdSelector, - rendererParams: countryLinkRendererParams, - }; - }, - cellRendererClassName: options?.cellRendererClassName, - columnClassName: options?.columnClassName, - headerCellRendererClassName: options?.headerCellRendererClassName, - cellContainerClassName: options?.cellContainerClassName, - columnWidth: options?.columnWidth, - columnStretch: options?.columnStretch, - columnStyle: options?.columnStyle, - }; - - return item; -} - -export function createRegionListColumn( - id: string, - title: string, - regionListSelector: (datum: DATUM) => PartialRegion[] | undefined, - options?: Options, -) { - const item: Column< - DATUM, - KEY, - ReducedListDisplayProps, - HeaderCellProps - > = { - id, - title, - headerCellRenderer: HeaderCell, - headerCellRendererParams: { - sortable: false, - }, - headerContainerClassName: options?.headerContainerClassName, - cellRenderer: ReducedListDisplay, - cellRendererParams: (_, datum) => { - const regionList = regionListSelector(datum); - - return { - list: regionList, - renderer: RegionLink, - keySelector: numericIdSelector, - rendererParams: regionLinkRendererParams, - }; - }, - cellRendererClassName: options?.cellRendererClassName, - columnClassName: options?.columnClassName, - headerCellRendererClassName: options?.headerCellRendererClassName, - cellContainerClassName: options?.cellContainerClassName, - columnWidth: options?.columnWidth, - columnStretch: options?.columnStretch, - columnStyle: options?.columnStyle, - }; - - return item; -} diff --git a/src/components/Table/ColumnShortcuts/styles.module.css b/packages/ui/src/components/Table/ColumnShortcuts/styles.module.css similarity index 100% rename from src/components/Table/ColumnShortcuts/styles.module.css rename to packages/ui/src/components/Table/ColumnShortcuts/styles.module.css diff --git a/src/components/Table/HeaderCell/i18n.json b/packages/ui/src/components/Table/HeaderCell/i18n.json similarity index 100% rename from src/components/Table/HeaderCell/i18n.json rename to packages/ui/src/components/Table/HeaderCell/i18n.json diff --git a/src/components/Table/HeaderCell/index.tsx b/packages/ui/src/components/Table/HeaderCell/index.tsx similarity index 100% rename from src/components/Table/HeaderCell/index.tsx rename to packages/ui/src/components/Table/HeaderCell/index.tsx diff --git a/src/components/Table/HeaderCell/styles.module.css b/packages/ui/src/components/Table/HeaderCell/styles.module.css similarity index 100% rename from src/components/Table/HeaderCell/styles.module.css rename to packages/ui/src/components/Table/HeaderCell/styles.module.css diff --git a/src/components/Table/TableActions/index.tsx b/packages/ui/src/components/Table/TableActions/index.tsx similarity index 100% rename from src/components/Table/TableActions/index.tsx rename to packages/ui/src/components/Table/TableActions/index.tsx diff --git a/src/components/Table/TableActions/styles.module.css b/packages/ui/src/components/Table/TableActions/styles.module.css similarity index 100% rename from src/components/Table/TableActions/styles.module.css rename to packages/ui/src/components/Table/TableActions/styles.module.css diff --git a/src/components/Table/TableBodyContent/index.tsx b/packages/ui/src/components/Table/TableBodyContent/index.tsx similarity index 100% rename from src/components/Table/TableBodyContent/index.tsx rename to packages/ui/src/components/Table/TableBodyContent/index.tsx diff --git a/src/components/Table/TableBodyContent/styles.module.css b/packages/ui/src/components/Table/TableBodyContent/styles.module.css similarity index 100% rename from src/components/Table/TableBodyContent/styles.module.css rename to packages/ui/src/components/Table/TableBodyContent/styles.module.css diff --git a/src/components/Table/TableData/index.tsx b/packages/ui/src/components/Table/TableData/index.tsx similarity index 100% rename from src/components/Table/TableData/index.tsx rename to packages/ui/src/components/Table/TableData/index.tsx diff --git a/src/components/Table/TableData/styles.module.css b/packages/ui/src/components/Table/TableData/styles.module.css similarity index 100% rename from src/components/Table/TableData/styles.module.css rename to packages/ui/src/components/Table/TableData/styles.module.css diff --git a/src/components/Table/TableHeader/index.tsx b/packages/ui/src/components/Table/TableHeader/index.tsx similarity index 100% rename from src/components/Table/TableHeader/index.tsx rename to packages/ui/src/components/Table/TableHeader/index.tsx diff --git a/src/components/Table/TableHeader/styles.module.css b/packages/ui/src/components/Table/TableHeader/styles.module.css similarity index 100% rename from src/components/Table/TableHeader/styles.module.css rename to packages/ui/src/components/Table/TableHeader/styles.module.css diff --git a/src/components/Table/TableRow/index.tsx b/packages/ui/src/components/Table/TableRow/index.tsx similarity index 100% rename from src/components/Table/TableRow/index.tsx rename to packages/ui/src/components/Table/TableRow/index.tsx diff --git a/src/components/Table/i18n.json b/packages/ui/src/components/Table/i18n.json similarity index 100% rename from src/components/Table/i18n.json rename to packages/ui/src/components/Table/i18n.json diff --git a/src/components/Table/index.tsx b/packages/ui/src/components/Table/index.tsx similarity index 100% rename from src/components/Table/index.tsx rename to packages/ui/src/components/Table/index.tsx diff --git a/src/components/Table/styles.module.css b/packages/ui/src/components/Table/styles.module.css similarity index 100% rename from src/components/Table/styles.module.css rename to packages/ui/src/components/Table/styles.module.css diff --git a/src/components/Table/types.ts b/packages/ui/src/components/Table/types.ts similarity index 100% rename from src/components/Table/types.ts rename to packages/ui/src/components/Table/types.ts diff --git a/src/components/Table/useSorting.ts b/packages/ui/src/components/Table/useSorting.ts similarity index 100% rename from src/components/Table/useSorting.ts rename to packages/ui/src/components/Table/useSorting.ts diff --git a/src/components/Tabs/Tab/i18n.json b/packages/ui/src/components/Tabs/Tab/i18n.json similarity index 100% rename from src/components/Tabs/Tab/i18n.json rename to packages/ui/src/components/Tabs/Tab/i18n.json diff --git a/src/components/Tabs/Tab/index.tsx b/packages/ui/src/components/Tabs/Tab/index.tsx similarity index 100% rename from src/components/Tabs/Tab/index.tsx rename to packages/ui/src/components/Tabs/Tab/index.tsx diff --git a/src/components/Tabs/Tab/styles.module.css b/packages/ui/src/components/Tabs/Tab/styles.module.css similarity index 100% rename from src/components/Tabs/Tab/styles.module.css rename to packages/ui/src/components/Tabs/Tab/styles.module.css diff --git a/src/components/Tabs/TabContext.tsx b/packages/ui/src/components/Tabs/TabContext.tsx similarity index 100% rename from src/components/Tabs/TabContext.tsx rename to packages/ui/src/components/Tabs/TabContext.tsx diff --git a/src/components/Tabs/TabList/index.tsx b/packages/ui/src/components/Tabs/TabList/index.tsx similarity index 100% rename from src/components/Tabs/TabList/index.tsx rename to packages/ui/src/components/Tabs/TabList/index.tsx diff --git a/src/components/Tabs/TabList/styles.module.css b/packages/ui/src/components/Tabs/TabList/styles.module.css similarity index 100% rename from src/components/Tabs/TabList/styles.module.css rename to packages/ui/src/components/Tabs/TabList/styles.module.css diff --git a/src/components/Tabs/TabPanel/index.tsx b/packages/ui/src/components/Tabs/TabPanel/index.tsx similarity index 100% rename from src/components/Tabs/TabPanel/index.tsx rename to packages/ui/src/components/Tabs/TabPanel/index.tsx diff --git a/src/components/Tabs/index.tsx b/packages/ui/src/components/Tabs/index.tsx similarity index 100% rename from src/components/Tabs/index.tsx rename to packages/ui/src/components/Tabs/index.tsx diff --git a/src/components/TextArea/index.tsx b/packages/ui/src/components/TextArea/index.tsx similarity index 100% rename from src/components/TextArea/index.tsx rename to packages/ui/src/components/TextArea/index.tsx diff --git a/src/components/TextInput/index.tsx b/packages/ui/src/components/TextInput/index.tsx similarity index 100% rename from src/components/TextInput/index.tsx rename to packages/ui/src/components/TextInput/index.tsx diff --git a/src/components/TextOutput/index.tsx b/packages/ui/src/components/TextOutput/index.tsx similarity index 100% rename from src/components/TextOutput/index.tsx rename to packages/ui/src/components/TextOutput/index.tsx diff --git a/src/components/TextOutput/styles.module.css b/packages/ui/src/components/TextOutput/styles.module.css similarity index 100% rename from src/components/TextOutput/styles.module.css rename to packages/ui/src/components/TextOutput/styles.module.css diff --git a/src/components/TimeSeriesChart/ChartPoint/index.tsx b/packages/ui/src/components/TimeSeriesChart/ChartPoint/index.tsx similarity index 100% rename from src/components/TimeSeriesChart/ChartPoint/index.tsx rename to packages/ui/src/components/TimeSeriesChart/ChartPoint/index.tsx diff --git a/src/components/TimeSeriesChart/ChartPoint/styles.module.css b/packages/ui/src/components/TimeSeriesChart/ChartPoint/styles.module.css similarity index 100% rename from src/components/TimeSeriesChart/ChartPoint/styles.module.css rename to packages/ui/src/components/TimeSeriesChart/ChartPoint/styles.module.css diff --git a/src/components/TimeSeriesChart/index.tsx b/packages/ui/src/components/TimeSeriesChart/index.tsx similarity index 100% rename from src/components/TimeSeriesChart/index.tsx rename to packages/ui/src/components/TimeSeriesChart/index.tsx diff --git a/src/components/TimeSeriesChart/styles.module.css b/packages/ui/src/components/TimeSeriesChart/styles.module.css similarity index 100% rename from src/components/TimeSeriesChart/styles.module.css rename to packages/ui/src/components/TimeSeriesChart/styles.module.css diff --git a/src/components/Tooltip/index.tsx b/packages/ui/src/components/Tooltip/index.tsx similarity index 100% rename from src/components/Tooltip/index.tsx rename to packages/ui/src/components/Tooltip/index.tsx diff --git a/src/components/Tooltip/styles.module.css b/packages/ui/src/components/Tooltip/styles.module.css similarity index 100% rename from src/components/Tooltip/styles.module.css rename to packages/ui/src/components/Tooltip/styles.module.css diff --git a/src/components/parked/TopBanner/index.tsx b/packages/ui/src/components/parked/TopBanner/index.tsx similarity index 100% rename from src/components/parked/TopBanner/index.tsx rename to packages/ui/src/components/parked/TopBanner/index.tsx diff --git a/src/components/parked/TopBanner/styles.module.css b/packages/ui/src/components/parked/TopBanner/styles.module.css similarity index 100% rename from src/components/parked/TopBanner/styles.module.css rename to packages/ui/src/components/parked/TopBanner/styles.module.css diff --git a/src/components/printable/Container/index.tsx b/packages/ui/src/components/printable/Container/index.tsx similarity index 96% rename from src/components/printable/Container/index.tsx rename to packages/ui/src/components/printable/Container/index.tsx index 4706e5f9f9..2c0adf63d5 100644 --- a/src/components/printable/Container/index.tsx +++ b/packages/ui/src/components/printable/Container/index.tsx @@ -3,7 +3,7 @@ import { _cs } from '@togglecorp/fujs'; import Heading, { type HeadingLevel } from '#components/printable/Heading'; import styles from './styles.module.css'; -interface Props { +export interface Props { heading?: React.ReactNode; headingLevel?: HeadingLevel; children?: React.ReactNode; diff --git a/src/components/printable/Container/styles.module.css b/packages/ui/src/components/printable/Container/styles.module.css similarity index 100% rename from src/components/printable/Container/styles.module.css rename to packages/ui/src/components/printable/Container/styles.module.css diff --git a/src/components/printable/DescriptionText/index.tsx b/packages/ui/src/components/printable/DescriptionText/index.tsx similarity index 90% rename from src/components/printable/DescriptionText/index.tsx rename to packages/ui/src/components/printable/DescriptionText/index.tsx index 983b5d761d..5498930d26 100644 --- a/src/components/printable/DescriptionText/index.tsx +++ b/packages/ui/src/components/printable/DescriptionText/index.tsx @@ -1,7 +1,7 @@ import { _cs } from '@togglecorp/fujs'; import styles from './styles.module.css'; -interface DescriptionTextProps { +export interface DescriptionTextProps { children?: React.ReactNode; className?: string; } diff --git a/src/components/printable/DescriptionText/styles.module.css b/packages/ui/src/components/printable/DescriptionText/styles.module.css similarity index 100% rename from src/components/printable/DescriptionText/styles.module.css rename to packages/ui/src/components/printable/DescriptionText/styles.module.css diff --git a/src/components/printable/Heading/index.tsx b/packages/ui/src/components/printable/Heading/index.tsx similarity index 96% rename from src/components/printable/Heading/index.tsx rename to packages/ui/src/components/printable/Heading/index.tsx index aad83dcf82..b6aadf09a3 100644 --- a/src/components/printable/Heading/index.tsx +++ b/packages/ui/src/components/printable/Heading/index.tsx @@ -13,7 +13,7 @@ const levelToClassName: Record = { 6: styles.levelSix, }; -interface Props { +export interface Props { className?: string; children?: React.ReactNode; level?: HeadingLevel; diff --git a/src/components/printable/Heading/styles.module.css b/packages/ui/src/components/printable/Heading/styles.module.css similarity index 100% rename from src/components/printable/Heading/styles.module.css rename to packages/ui/src/components/printable/Heading/styles.module.css diff --git a/src/components/printable/Image/index.tsx b/packages/ui/src/components/printable/Image/index.tsx similarity index 98% rename from src/components/printable/Image/index.tsx rename to packages/ui/src/components/printable/Image/index.tsx index 24e7027ba2..35254f3bcf 100644 --- a/src/components/printable/Image/index.tsx +++ b/packages/ui/src/components/printable/Image/index.tsx @@ -8,7 +8,7 @@ import { import styles from './styles.module.css'; -interface Props { +export interface Props { src: string | null | undefined; alt?: string; caption?: React.ReactNode; diff --git a/src/components/printable/Image/styles.module.css b/packages/ui/src/components/printable/Image/styles.module.css similarity index 100% rename from src/components/printable/Image/styles.module.css rename to packages/ui/src/components/printable/Image/styles.module.css diff --git a/src/components/printable/TextOutput/index.tsx b/packages/ui/src/components/printable/TextOutput/index.tsx similarity index 100% rename from src/components/printable/TextOutput/index.tsx rename to packages/ui/src/components/printable/TextOutput/index.tsx diff --git a/src/components/printable/TextOutput/styles.module.css b/packages/ui/src/components/printable/TextOutput/styles.module.css similarity index 100% rename from src/components/printable/TextOutput/styles.module.css rename to packages/ui/src/components/printable/TextOutput/styles.module.css diff --git a/packages/ui/src/components/printable/index.tsx b/packages/ui/src/components/printable/index.tsx new file mode 100644 index 0000000000..0ec43a4309 --- /dev/null +++ b/packages/ui/src/components/printable/index.tsx @@ -0,0 +1,10 @@ +export { default as Container } from './Container'; +export type { Props as ContainerProps } from './Container'; +export { default as DescriptionText } from './DescriptionText'; +export type { DescriptionTextProps } from './DescriptionText'; +export { default as Heading } from './Heading'; +export type { Props as HeadingProps } from './Heading'; +export { default as Image } from './Image'; +export type { Props as ImageProps } from './Image'; +export { default as TextOutput } from './TextOutput'; +export type { Props as TextOutputProps } from './TextOutput'; diff --git a/src/components/types.ts b/packages/ui/src/components/types.ts similarity index 100% rename from src/components/types.ts rename to packages/ui/src/components/types.ts diff --git a/src/contexts/alert.tsx b/packages/ui/src/contexts/alert.tsx similarity index 100% rename from src/contexts/alert.tsx rename to packages/ui/src/contexts/alert.tsx diff --git a/src/contexts/dropdown-menu.tsx b/packages/ui/src/contexts/dropdown-menu.tsx similarity index 100% rename from src/contexts/dropdown-menu.tsx rename to packages/ui/src/contexts/dropdown-menu.tsx diff --git a/packages/ui/src/contexts/index.ts b/packages/ui/src/contexts/index.ts new file mode 100644 index 0000000000..e0b68986e2 --- /dev/null +++ b/packages/ui/src/contexts/index.ts @@ -0,0 +1,10 @@ +export { default as AlertContext } from './alert'; +export { default as DropdownMenuContext } from './dropdown-menu'; +export { default as LanguageContext } from './language'; +export { default as NavigationTabContext } from './navigation-tab'; + +export type { AlertType, AlertParams, AlertContextProps } from './alert'; +export type { DropdownMenuContextProps } from './dropdown-menu'; +export type { Language, LanguageNamespaceStatus, LanguageContextProps } from './language'; +export type { NavigationTabVariant, NavigationTabContextProps } from './navigation-tab'; +export { SortContext } from '../components/Table/useSorting'; diff --git a/src/contexts/language.tsx b/packages/ui/src/contexts/language.tsx similarity index 100% rename from src/contexts/language.tsx rename to packages/ui/src/contexts/language.tsx diff --git a/src/contexts/navigation-tab.tsx b/packages/ui/src/contexts/navigation-tab.tsx similarity index 100% rename from src/contexts/navigation-tab.tsx rename to packages/ui/src/contexts/navigation-tab.tsx diff --git a/packages/ui/src/declarations/css.d.ts b/packages/ui/src/declarations/css.d.ts new file mode 100644 index 0000000000..50bf5b12bb --- /dev/null +++ b/packages/ui/src/declarations/css.d.ts @@ -0,0 +1,4 @@ +declare module '*.module.css' { + const classes: CSSModuleClasses; + export default classes; +} diff --git a/packages/ui/src/hooks/index.ts b/packages/ui/src/hooks/index.ts new file mode 100644 index 0000000000..3d3a22472d --- /dev/null +++ b/packages/ui/src/hooks/index.ts @@ -0,0 +1,11 @@ +export { default as useBasicLayout } from './useBasicLayout'; +export { default as useBlurEffect } from './useBlurEffect'; +export { default as useBooleanState } from './useBooleanState'; +export { default as useFloatPlacement } from './useFloatPlacement'; +export { default as useKeyboard } from './useKeyboard'; +export { default as useSizeTracking } from './useSizeTracking'; +export { default as useSpacingTokens } from './useSpacingTokens'; +export { default as useTranslation } from './useTranslation'; +export { useButtonFeatures } from '../components/Button'; + +export { default as useSorting } from '../components/Table/useSorting'; diff --git a/src/hooks/useBasicLayout/index.tsx b/packages/ui/src/hooks/useBasicLayout/index.tsx similarity index 100% rename from src/hooks/useBasicLayout/index.tsx rename to packages/ui/src/hooks/useBasicLayout/index.tsx diff --git a/src/hooks/useBasicLayout/styles.module.css b/packages/ui/src/hooks/useBasicLayout/styles.module.css similarity index 100% rename from src/hooks/useBasicLayout/styles.module.css rename to packages/ui/src/hooks/useBasicLayout/styles.module.css diff --git a/src/hooks/useBlurEffect.ts b/packages/ui/src/hooks/useBlurEffect.ts similarity index 100% rename from src/hooks/useBlurEffect.ts rename to packages/ui/src/hooks/useBlurEffect.ts diff --git a/src/hooks/useBooleanState.ts b/packages/ui/src/hooks/useBooleanState.ts similarity index 100% rename from src/hooks/useBooleanState.ts rename to packages/ui/src/hooks/useBooleanState.ts diff --git a/src/hooks/useFloatPlacement.ts b/packages/ui/src/hooks/useFloatPlacement.ts similarity index 100% rename from src/hooks/useFloatPlacement.ts rename to packages/ui/src/hooks/useFloatPlacement.ts diff --git a/src/hooks/useKeyboard.ts b/packages/ui/src/hooks/useKeyboard.ts similarity index 100% rename from src/hooks/useKeyboard.ts rename to packages/ui/src/hooks/useKeyboard.ts diff --git a/src/hooks/useSizeTracking.ts b/packages/ui/src/hooks/useSizeTracking.ts similarity index 100% rename from src/hooks/useSizeTracking.ts rename to packages/ui/src/hooks/useSizeTracking.ts diff --git a/src/hooks/useSpacingTokens.ts b/packages/ui/src/hooks/useSpacingTokens.ts similarity index 100% rename from src/hooks/useSpacingTokens.ts rename to packages/ui/src/hooks/useSpacingTokens.ts diff --git a/src/hooks/useTranslation.ts b/packages/ui/src/hooks/useTranslation.ts similarity index 100% rename from src/hooks/useTranslation.ts rename to packages/ui/src/hooks/useTranslation.ts diff --git a/src/index.css b/packages/ui/src/index.css similarity index 92% rename from src/index.css rename to packages/ui/src/index.css index e261d8b79e..5d87b58c61 100644 --- a/src/index.css +++ b/packages/ui/src/index.css @@ -217,8 +217,6 @@ --go-ui-saturate-150: 1.5; --go-ui-saturate-200: 2; - --go-ui-color-hazard-fi: #b7c992; - --go-ui-color-map-dot-appeals: #f5333f; --go-ui-color-map-dot-dref: #ff9e00; --go-ui-color-map-dot-fba: #ff6b00; @@ -231,44 +229,3 @@ --go-ui-export-page-margin: 10mm 10mm 16mm 10mm; } - -* { - box-sizing: border-box; -} - -html { - @media screen { - margin: 0; - padding: 0; - scrollbar-gutter: stable; - } -} - -body { - line-height: var(--go-ui-line-height-md); - color: var(--go-ui-color-text); - font-family: var(--go-ui-font-family-sans-serif); - font-size: var(--go-ui-font-size-md); - font-weight: var(--go-ui-font-weight-normal); - - @media screen { - margin: 0; - background-color: var(--go-ui-color-background); - padding: 0; - } -} - -ul, ol, p { - margin: 0; -} - -@media print { - @page { - size: portrait A4; - margin: 10mm 10mm 16mm 10mm; - } - - body { - font-family: 'Open Sans', sans-serif; - } -} diff --git a/packages/ui/src/index.tsx b/packages/ui/src/index.tsx new file mode 100644 index 0000000000..aba0e660a7 --- /dev/null +++ b/packages/ui/src/index.tsx @@ -0,0 +1,169 @@ +import './index.css'; + +export { default as RawButton } from './components/RawButton'; +export type { Props as RawButtonProps } from './components/RawButton'; +export { default as Button } from './components/Button'; +export type { ButtonFeatureProps } from './components/Button'; + +export { default as Alert } from './components/Alert'; +export type { Props as AlertProps } from './components/Alert'; +export { default as AlertContainer } from './components/AlertContainer'; +export type { Props as AlertContainerProps } from './components/AlertContainer'; +export { default as BarChart } from './components/BarChart'; +export type { Props as BarChartProps } from './components/BarChart'; +export { default as BlockLoading } from './components/BlockLoading'; +export type { Props as BlockLoadingProps } from './components/BlockLoading'; +export { default as BodyOverlay } from './components/BodyOverlay'; +export type { Props as BodyOverlayProps } from './components/BodyOverlay'; +export { default as BooleanInput } from './components/BooleanInput'; +export { default as BooleanOutput } from './components/BooleanOutput'; +export type { Props as BooleanOutputProps } from './components/BooleanOutput'; +export { default as Breadcrumbs } from './components/Breadcrumbs'; + +export type { Props as ButtonProps } from './components/Button'; +export type { ButtonVariant } from './components/Button'; +export { default as ChartAxes } from './components/ChartAxes'; +export { default as ChartAxisX } from './components/ChartAxisX'; +export { default as ChartAxisY } from './components/ChartAxisY'; +export { default as Checkbox } from './components/Checkbox'; +export type { Props as CheckboxProps } from './components/Checkbox'; +export { default as Checklist } from './components/Checklist'; +export type { Props as ChecklistProps } from './components/Checklist'; +export { default as ConfirmButton } from './components/ConfirmButton'; +export type { Props as ConfirmButtonProps } from './components/ConfirmButton'; +export { default as Container } from './components/Container'; +export type { Props as ContainerProps } from './components/Container'; +export { default as DateInput } from './components/DateInput'; +export type { Props as DateInputProps } from './components/DateInput'; +export { default as DateOutput } from './components/DateOutput'; +export type { Props as DateOutputProps } from './components/DateOutput'; +export { default as DateRangeOutput } from './components/DateRangeOutput'; +export type { Props as DateRangeOutputProps } from './components/DateRangeOutput'; +export { default as DropdownMenu } from './components/DropdownMenu'; +export type { Props as DropdownMenuProps } from './components/DropdownMenu'; +export { default as ExpandableContainer } from './components/ExpandableContainer'; +export type { Props as ExpandableContainerProps } from './components/ExpandableContainer'; +export { default as Footer } from './components/Footer'; +export { default as Grid } from './components/Grid'; +export type { Props as GridProps } from './components/Grid'; +export { default as Header } from './components/Header'; +export type { Props as HeaderProps } from './components/Header'; +export { default as Heading } from './components/Heading'; +export type { Props as HeadingProps } from './components/Heading'; +export { default as HtmlOutput } from './components/HtmlOutput'; +export type { Props as HtmlOutputProps } from './components/HtmlOutput'; +export { default as IconButton } from './components/IconButton'; +export type { Props as IconButtonProps } from './components/IconButton'; +export { default as Image } from './components/Image'; +export { default as InfoPopup } from './components/InfoPopup'; +export { default as InputContainer } from './components/InputContainer'; +export type { Props as InputContainerProps } from './components/InputContainer'; +export { default as InputError } from './components/InputError'; +export type { Props as InputErrorProps } from './components/InputError'; +export { default as InputHint } from './components/InputHint'; +export type { Props as InputHintProps } from './components/InputHint'; +export { default as InputLabel } from './components/InputLabel'; +export type { Props as InputLabelProps } from './components/InputLabel'; +export { default as InputSection } from './components/InputSection'; +export type { Props as InputSectionProps } from './components/InputSection'; +export { default as KeyFigure } from './components/KeyFigure'; +export { default as LegendItem } from './components/LegendItem'; +export { default as List } from './components/List'; +export type { Props as ListProps } from './components/List'; +export { default as Message } from './components/Message'; +export type { Props as MessageProps } from './components/Message'; +export { default as Modal } from './components/Modal'; +export type { Props as ModalProps } from './components/Modal'; +export { default as MultiSelectInput } from './components/MultiSelectInput'; +export { default as NavigationTabList } from './components/NavigationTabList'; +export type { Props as NavigationTabListProps } from './components/NavigationTabList'; +export { default as NumberInput } from './components/NumberInput'; +export type { Props as NumberInputProps } from './components/NumberInput'; +export { default as NumberOutput } from './components/NumberOutput'; +export type { Props as NumberOutputProps } from './components/NumberOutput'; +export { default as Overlay } from './components/Overlay'; +export { default as PageContainer } from './components/PageContainer'; +export { default as PageHeader } from './components/PageHeader'; +export { default as Pager } from './components/Pager'; +export type { Props as PagerProps } from './components/Pager'; +export { default as PasswordInput } from './components/PasswordInput'; +export type { Props as PasswordInputProps } from './components/PasswordInput'; +export { default as PieChart } from './components/PieChart'; +export { default as Popup } from './components/Popup'; +export { default as Portal } from './components/Portal'; +export type { Props as PortalProps } from './components/Portal'; +export { default as ProgressBar } from './components/ProgressBar'; +export type { Props as ProgressBarProps } from './components/ProgressBar'; +export { default as RadioInput } from './components/RadioInput'; +export type { Props as RadioInputProps } from './components/RadioInput'; +export { default as Radio } from './components/RadioInput/Radio'; +export type { Props as RadioProps } from './components/RadioInput/Radio'; + +export { default as RawFileInput } from './components/RawFileInput'; +export { default as RawInput } from './components/RawInput'; +export type { Props as RawInputProps } from './components/RawInput'; +export { default as RawList } from './components/RawList'; +export type { Props as RawListProps } from './components/RawList'; +export { default as RawTextArea } from './components/RawTextArea'; +export type { Props as RawTextAreaProps } from './components/RawTextArea'; +export { default as ReducedListDisplay } from './components/ReducedListDisplay'; +export type { Props as ReducedListDisplayProps } from './components/ReducedListDisplay'; +export { default as SearchMultiSelectInput } from './components/SearchMultiSelectInput'; +export type { SearchMultiSelectInputProps } from './components/SearchMultiSelectInput'; +export { default as SearchSelectInput } from './components/SearchSelectInput'; +export type { Props as SearchSelectInputProps } from './components/SearchSelectInput'; +export { default as SegmentInput } from './components/SegmentInput'; +export type { Props as SegmentInputProps } from './components/SegmentInput'; +export { default as SelectInput } from './components/SelectInput'; +export type { Props as SelectInputProps } from './components/SelectInput'; +export { default as SelectInputContainer } from './components/SelectInputContainer'; +export type { SelectInputContainerProps } from './components/SelectInputContainer'; +export { default as Spinner } from './components/Spinner'; +export { default as StackedProgressBar } from './components/StackedProgressBar'; +export { default as Switch } from './components/Switch'; +export { default as Table } from './components/Table'; +export type { TableProps } from './components/Table'; +export { default as TableActions } from './components/Table/TableActions'; +export type { Props as TableActionsProps } from './components/Table/TableActions'; +export { default as HeaderCell } from './components/Table/HeaderCell'; +export type { HeaderCellProps } from './components/Table/HeaderCell'; +export { default as Cell } from './components/Table/Cell'; +export { default as TableBodyContent } from './components/Table/TableBodyContent'; +export { default as TableData } from './components/Table/TableData'; +export type { Props as TableDataProps } from './components/Table/TableData'; +export { default as TableRow } from './components/Table/TableRow'; +export type { Props as TableRowProps } from './components/Table/TableRow'; +export { default as Tabs } from './components/Tabs'; +export type { Props as TabsProps } from './components/Tabs'; +export { default as TabList } from './components/Tabs/TabList'; +export type { Props as TabListProps } from './components/Tabs/TabList'; +export { default as TabPanel } from './components/Tabs/TabPanel'; +export type { Props as TabPanelProps } from './components/Tabs/TabPanel'; +export { default as Tab } from './components/Tabs/Tab'; +export type { Props as TabProps } from './components/Tabs/Tab'; +export { default as TextArea } from './components/TextArea'; +export type { Props as TextAreaProps } from './components/TextArea'; +export { default as TextInput } from './components/TextInput'; +export type { Props as TextInputProps } from './components/TextInput'; +export { default as TextOutput } from './components/TextOutput'; +export type { Props as TextOutputProps } from './components/TextOutput'; +export { default as TimeSeriesChart } from './components/TimeSeriesChart'; +export { default as ChartPoint } from './components/TimeSeriesChart/ChartPoint'; +export { default as Tooltip } from './components/Tooltip'; +export { default as TopBanner } from './components/parked/TopBanner'; + +export type { + NameType, + ValueType, + OptionKey, + SpacingType, + SpacingVariant, +} from '#components/types'; +export type { + SortDirection, + BaseHeader, + BaseCell, + Column, + VerifyColumn, + RowOptions, +} from '#components/Table/types'; diff --git a/src/utils/chart.test.ts b/packages/ui/src/utils/chart.test.ts similarity index 100% rename from src/utils/chart.test.ts rename to packages/ui/src/utils/chart.test.ts diff --git a/src/utils/chart.ts b/packages/ui/src/utils/chart.ts similarity index 97% rename from src/utils/chart.ts rename to packages/ui/src/utils/chart.ts index ccb84c9227..eb42025f34 100644 --- a/src/utils/chart.ts +++ b/packages/ui/src/utils/chart.ts @@ -1,8 +1,9 @@ import { isNotDefined, isDefined } from '@togglecorp/fujs'; -import { isCallable } from '@togglecorp/toggle-form'; import { maxSafe, minSafe, splitList } from '#utils/common'; import type { UnsafeNumberList } from '#utils/common'; +export type ChartScale = 'linear' | 'exponential' | 'log10' | 'sqrt' | 'cbrt'; + export interface Size { width: number; height: number; @@ -25,7 +26,59 @@ export interface Bounds { max: number; } -export type ChartScale = 'linear' | 'exponential' | 'log10' | 'sqrt' | 'cbrt'; +interface UnsafePoint { + x: number | undefined; + y: number | undefined; +} +// eslint-disable-next-line @typescript-eslint/no-explicit-any +type Func = (...args: any[]) => any; +export function isCallable(value: T | X): value is X { + return typeof value === 'function'; +} + +// TODO: Add test +export function getBounds(numList: UnsafeNumberList, bounds?: Bounds) { + if (isNotDefined(numList) || numList.length === 0) { + const min = bounds?.min ?? 0; + const max = bounds?.max ?? (min + 1); + + return { + min, + max, + }; + } + + let newList = [...numList]; + if (isDefined(bounds)) { + newList = [...numList, bounds.min, bounds.max]; + } + + const min = minSafe(newList) ?? 0; + const max = maxSafe(newList) ?? (min + 5); + + return { + min, + max: max === min ? min + 5 : max, + }; +} + +// TODO: Add test +export function getPathData(pointList: undefined): undefined; +export function getPathData(pointList: Point[]): string; +export function getPathData(pointList: Point[] | undefined) { + if (isNotDefined(pointList) || pointList.length < 2) { + return undefined; + } + + return pointList.map((point, i) => { + if (i === 0) { + return `M${point.x} ${point.y}`; + } + + return `L${point.x} ${point.y}`; + }).join(' '); +} + // TODO: Add test function scaleNormalizedValue(normalizedValue: number, type: ChartScale) { if (type === 'exponential') { @@ -81,32 +134,6 @@ export function getScaleFunction( }; } -// TODO: Add test -export function getBounds(numList: UnsafeNumberList, bounds?: Bounds) { - if (isNotDefined(numList) || numList.length === 0) { - const min = bounds?.min ?? 0; - const max = bounds?.max ?? (min + 1); - - return { - min, - max, - }; - } - - let newList = [...numList]; - if (isDefined(bounds)) { - newList = [...numList, bounds.min, bounds.max]; - } - - const min = minSafe(newList) ?? 0; - const max = maxSafe(newList) ?? (min + 5); - - return { - min, - max: max === min ? min + 5 : max, - }; -} - // TODO: Add test export function getDatesSeparatedByYear(startDate: Date, endDate: Date) { const currentDate = new Date(startDate); @@ -149,28 +176,6 @@ export function getDatesSeparatedByMonths(startDate: Date, endDate: Date) { return dates; } -// TODO: Add test -export function getPathData(pointList: undefined): undefined; -export function getPathData(pointList: Point[]): string; -export function getPathData(pointList: Point[] | undefined) { - if (isNotDefined(pointList) || pointList.length < 2) { - return undefined; - } - - return pointList.map((point, i) => { - if (i === 0) { - return `M${point.x} ${point.y}`; - } - - return `L${point.x} ${point.y}`; - }).join(' '); -} - -interface UnsafePoint { - x: number | undefined; - y: number | undefined; -} - function isUnsafePoint(point: Point | UnsafePoint): point is UnsafePoint { return isNotDefined(point.x) || isNotDefined(point.y); } diff --git a/src/utils/common.test.ts b/packages/ui/src/utils/common.test.ts similarity index 100% rename from src/utils/common.test.ts rename to packages/ui/src/utils/common.test.ts diff --git a/src/utils/common.ts b/packages/ui/src/utils/common.ts similarity index 97% rename from src/utils/common.ts rename to packages/ui/src/utils/common.ts index e7d6ee6fee..71ee7bf598 100644 --- a/src/utils/common.ts +++ b/packages/ui/src/utils/common.ts @@ -15,16 +15,11 @@ import { bound, } from '@togglecorp/fujs'; import { type Language } from '#contexts/language'; -import type { GoApiResponse } from '#utils/restRequest'; import { DEFAULT_DATE_FORMAT, KEY_DATE_FORMAT } from './constants'; export type UnsafeNumberList = Maybe[]>; -type SearchResponse = GoApiResponse<'/api/v1/search/'>; - -type SearchResponseKeys = keyof SearchResponse; - type DeepNonNullable = T extends object ? ( T extends (infer K)[] ? ( DeepNonNullable[] @@ -614,20 +609,6 @@ export const languageNameMapEn: Record = { ar: 'Arabic', }; -// eslint-disable-next-line react-refresh/only-export-components -export const defaultRanking: Record = { - regions: 1, - countries: 2, - district_province_response: 3, - - emergencies: 4, - projects: 5, - surge_alerts: 6, - surge_deployments: 7, - reports: 8, - rapid_response_deployments: 9, -}; - // Convert date string to datetime string respective to the user export function toDateTimeString(value: string | undefined) { if (isFalsyString(value)) { diff --git a/packages/ui/src/utils/constants.ts b/packages/ui/src/utils/constants.ts new file mode 100644 index 0000000000..bce86c5d69 --- /dev/null +++ b/packages/ui/src/utils/constants.ts @@ -0,0 +1,9 @@ +export const DEFAULT_DATE_FORMAT = 'yyyy-MM-dd'; +export const DEFAULT_PRINT_DATE_FORMAT = 'dd-MM-yyyy'; +export const KEY_DATE_FORMAT = 'yyyy-MM'; + +// Alert +export const DURATION_DEFAULT_ALERT_DISMISS = 4500; + +// Table +export const WIDTH_DEFAULT_TABLE_COLUMN = 108; diff --git a/packages/ui/src/utils/index.ts b/packages/ui/src/utils/index.ts new file mode 100644 index 0000000000..4f7419d88f --- /dev/null +++ b/packages/ui/src/utils/index.ts @@ -0,0 +1,7 @@ +export * from './chart'; +export * from './common'; +export * from './constants'; +export * from './selectors'; +export * from './translation'; + +export * from '../components/Table/ColumnShortcuts'; diff --git a/src/utils/selectors.ts b/packages/ui/src/utils/selectors.ts similarity index 100% rename from src/utils/selectors.ts rename to packages/ui/src/utils/selectors.ts diff --git a/src/utils/translation.tsx b/packages/ui/src/utils/translation.tsx similarity index 100% rename from src/utils/translation.tsx rename to packages/ui/src/utils/translation.tsx diff --git a/packages/ui/stylelint.config.cjs b/packages/ui/stylelint.config.cjs new file mode 100644 index 0000000000..4772297aec --- /dev/null +++ b/packages/ui/stylelint.config.cjs @@ -0,0 +1,31 @@ +module.exports = { + plugins: [ + 'stylelint-no-unused-selectors', + 'stylelint-value-no-unknown-custom-properties', + ], + extends: [ + 'stylelint-config-recommended', + 'stylelint-config-concentric', + ], + rules: { + // https://stylelint.io/migration-guide/to-15 + // indentation: 4, + 'plugin/no-unused-selectors': { + 'suffixesToStrip': ['.module'], + 'documents': [ + '{cssDir}/{cssName}.tsx', + ], + }, + 'csstools/value-no-unknown-custom-properties': [ + true, { + importFrom: ['./src/index.css'] + }, + ], + 'selector-pseudo-class-no-unknown': [ + true, + { + ignorePseudoClasses: ['global'], + }, + ], + }, +}; diff --git a/packages/ui/tsconfig.json b/packages/ui/tsconfig.json new file mode 100644 index 0000000000..16d47b31c7 --- /dev/null +++ b/packages/ui/tsconfig.json @@ -0,0 +1,33 @@ +{ + "compilerOptions": { + "paths" :{ + "#components/*": ["./src/components/*"], + "#contexts/*": ["./src/contexts/*"], + "#hooks/*": ["./src/hooks/*"], + "#utils/*": ["./src/utils/*"] + }, + "target": "ESNext", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "declaration": true, + "baseUrl": "." + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/packages/ui/tsconfig.node.json b/packages/ui/tsconfig.node.json new file mode 100644 index 0000000000..e6b9717b2a --- /dev/null +++ b/packages/ui/tsconfig.node.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts", "package.json"] +} diff --git a/packages/ui/vite.config.ts b/packages/ui/vite.config.ts new file mode 100644 index 0000000000..2ebb39e0c5 --- /dev/null +++ b/packages/ui/vite.config.ts @@ -0,0 +1,61 @@ +import { extname, relative } from 'path'; +import tsconfigPaths from 'vite-tsconfig-paths'; +import { defineConfig } from 'vite'; +import { fileURLToPath, URL } from 'node:url'; +import { glob } from 'glob'; +import dts from 'vite-plugin-dts'; +import { libInjectCss } from 'vite-plugin-lib-inject-css'; +import reactSwc from '@vitejs/plugin-react-swc'; +import { peerDependencies } from './package.json'; + +export default defineConfig(({ mode }) => { + const isProd = mode === 'production'; + return { + plugins: [ + reactSwc(), + tsconfigPaths(), + dts({ tsconfigPath: './tsconfig.json' }), + libInjectCss() + ], + css: { + devSourcemap: isProd, + modules: { + scopeBehaviour: 'local', + localsConvention: 'camelCaseOnly', + }, + }, + build: { + lib: { + entry: './src/index.tsx', + name: '@ifrc-go/ui', + formats: ['es'], + }, + rollupOptions: { + external: ['react/jsx-runtime', ...Object.keys(peerDependencies)], + input: Object.fromEntries( + glob.sync( + 'src/**/*.{ts,tsx}', + { 'ignore': [ + 'src/**/*.test.{ts,tsx}', + 'src/**/*.d.ts', + 'src/**/.json', + ]} + ).map((file) => ([ + relative( + 'src', + file.slice(0, file.length - extname(file).length), + ), + fileURLToPath(new URL(file, import.meta.url)) + ]))), + output: { + entryFileNames: '[name].js', + globals: { + 'react': 'React', + 'react-dom': 'ReactDom', + '@ifrc-go/icons': 'GoIcons', + } + } + } + } + } +}) diff --git a/yarn.lock b/yarn.lock index 486126e9ec..c852442c30 100644 --- a/yarn.lock +++ b/yarn.lock @@ -20,82 +20,73 @@ resolved "https://registry.yarnpkg.com/@antfu/utils/-/utils-0.7.7.tgz#26ea493a831b4f3a85475e7157be02fb4eab51fb" integrity sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg== -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" - integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" + integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== dependencies: - "@babel/highlight" "^7.22.5" + "@babel/highlight" "^7.23.4" + chalk "^2.4.2" -"@babel/compat-data@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" - integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== +"@babel/compat-data@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" + integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== "@babel/core@^7.21.3": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.9.tgz#bd96492c68822198f33e8a256061da3cf391f58f" - integrity sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w== + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.7.tgz#4d8016e06a14b5f92530a13ed0561730b5c6483f" + integrity sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.5" - "@babel/generator" "^7.22.9" - "@babel/helper-compilation-targets" "^7.22.9" - "@babel/helper-module-transforms" "^7.22.9" - "@babel/helpers" "^7.22.6" - "@babel/parser" "^7.22.7" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.8" - "@babel/types" "^7.22.5" - convert-source-map "^1.7.0" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.23.7" + "@babel/parser" "^7.23.6" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.7" + "@babel/types" "^7.23.6" + convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" - json5 "^2.2.2" + json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.22.7": - version "7.22.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.7.tgz#a6b8152d5a621893f2c9dacf9a4e286d520633d5" - integrity sha512-p+jPjMG+SI8yvIaxGgeW24u7q9+5+TGpZh8/CuB7RhBKd7RCy8FayNEFNNKrNK/eUcY/4ExQqLmyrvBXKsIcwQ== +"@babel/generator@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e" + integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== dependencies: - "@babel/types" "^7.22.5" + "@babel/types" "^7.23.6" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" -"@babel/generator@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.9.tgz#572ecfa7a31002fa1de2a9d91621fd895da8493d" - integrity sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw== +"@babel/helper-compilation-targets@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" + integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== dependencies: - "@babel/types" "^7.22.5" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - -"@babel/helper-compilation-targets@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz#f9d0a7aaaa7cd32a3f31c9316a69f5a9bcacb892" - integrity sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw== - dependencies: - "@babel/compat-data" "^7.22.9" - "@babel/helper-validator-option" "^7.22.5" - browserslist "^4.21.9" + "@babel/compat-data" "^7.23.5" + "@babel/helper-validator-option" "^7.23.5" + browserslist "^4.22.2" lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-environment-visitor@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" - integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== +"@babel/helper-environment-visitor@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== -"@babel/helper-function-name@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" - integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ== +"@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== dependencies: - "@babel/template" "^7.22.5" - "@babel/types" "^7.22.5" + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" "@babel/helper-hoist-variables@^7.22.5": version "7.22.5" @@ -104,23 +95,23 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-module-imports@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" - integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== +"@babel/helper-module-imports@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" + integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== dependencies: - "@babel/types" "^7.22.5" + "@babel/types" "^7.22.15" -"@babel/helper-module-transforms@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz#92dfcb1fbbb2bc62529024f72d942a8c97142129" - integrity sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ== +"@babel/helper-module-transforms@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" + integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.22.15" "@babel/helper-simple-access" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/helper-validator-identifier" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" "@babel/helper-simple-access@^7.22.5": version "7.22.5" @@ -136,91 +127,91 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-string-parser@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" - integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== +"@babel/helper-string-parser@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" + integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== -"@babel/helper-validator-identifier@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" - integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== -"@babel/helper-validator-option@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" - integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== +"@babel/helper-validator-option@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" + integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== -"@babel/helpers@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.6.tgz#8e61d3395a4f0c5a8060f309fb008200969b5ecd" - integrity sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA== +"@babel/helpers@^7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.7.tgz#eb543c36f81da2873e47b76ee032343ac83bba60" + integrity sha512-6AMnjCoC8wjqBzDHkuqpa7jAKwvMo4dC+lr/TFBz+ucfulO1XMpDnwWPGBNwClOKZ8h6xn5N81W/R5OrcKtCbQ== dependencies: - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.6" - "@babel/types" "^7.22.5" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.7" + "@babel/types" "^7.23.6" -"@babel/highlight@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" - integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== +"@babel/highlight@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" + integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== dependencies: - "@babel/helper-validator-identifier" "^7.22.5" - chalk "^2.0.0" + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.22.5", "@babel/parser@^7.22.7", "@babel/parser@^7.4.4": - version "7.22.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae" - integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q== +"@babel/parser@^7.22.15", "@babel/parser@^7.23.6", "@babel/parser@^7.4.4": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b" + integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ== "@babel/runtime-corejs3@^7.22.3", "@babel/runtime-corejs3@^7.22.6": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.22.10.tgz#5ecc3d32faa70009f084cc2e087d79e5f5cdcca9" - integrity sha512-IcixfV2Jl3UrqZX4c81+7lVg5++2ufYJyAFW3Aux/ZTvY6LVYYhJ9rMgnbX0zGVq6eqfVpnoatTjZdVki/GmWA== + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.23.7.tgz#2c3d323d21569f2950c9126780bfa400632360bd" + integrity sha512-ER55qzLREVA5YxeyQ3Qu48tgsF2ZrFjFjUS6V6wF0cikSw+goBJgB9PBRM1T6+Ah4iiM+sxmfS/Sy/jdzFfhiQ== dependencies: core-js-pure "^3.30.2" regenerator-runtime "^0.14.0" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.13", "@babel/runtime@^7.19.0", "@babel/runtime@^7.20.7": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.6.tgz#57d64b9ae3cff1d67eb067ae117dac087f5bd438" - integrity sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ== +"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.13", "@babel/runtime@^7.23.2": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.7.tgz#dd7c88deeb218a0f8bd34d5db1aa242e0f203193" + integrity sha512-w06OXVOFso7LcbzMiDGt+3X7Rh7Ho8MmgPoWU3rarH+8upf+wSU/grlGbWzQyr3DkdN6ZeuMFjpdwW0Q+HxobA== dependencies: - regenerator-runtime "^0.13.11" + regenerator-runtime "^0.14.0" -"@babel/template@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" - integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw== +"@babel/template@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" + integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== dependencies: - "@babel/code-frame" "^7.22.5" - "@babel/parser" "^7.22.5" - "@babel/types" "^7.22.5" + "@babel/code-frame" "^7.22.13" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" -"@babel/traverse@^7.22.6", "@babel/traverse@^7.22.8", "@babel/traverse@^7.4.4": - version "7.22.8" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.8.tgz#4d4451d31bc34efeae01eac222b514a77aa4000e" - integrity sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw== +"@babel/traverse@^7.23.7", "@babel/traverse@^7.4.4": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.7.tgz#9a7bf285c928cb99b5ead19c3b1ce5b310c9c305" + integrity sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg== dependencies: - "@babel/code-frame" "^7.22.5" - "@babel/generator" "^7.22.7" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@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.22.6" - "@babel/parser" "^7.22.7" - "@babel/types" "^7.22.5" - debug "^4.1.0" + "@babel/parser" "^7.23.6" + "@babel/types" "^7.23.6" + debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.21.3", "@babel/types@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" - integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== +"@babel/types@^7.21.3", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd" + integrity sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg== dependencies: - "@babel/helper-string-parser" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.5" + "@babel/helper-string-parser" "^7.23.4" + "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" "@colors/colors@1.5.0": @@ -228,53 +219,53 @@ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== -"@csstools/cascade-layer-name-parser@^1.0.2", "@csstools/cascade-layer-name-parser@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-1.0.3.tgz#7f049a670c1e071102243ab6c392174844ca6cd7" - integrity sha512-ks9ysPP8012j90EQCCFtDsQIXOTCOpTQFIyyoRku06y8CXtUQ+8bXI8KVm9Q9ovwDUVthWuWKZWJD3u1rwnEfw== +"@csstools/cascade-layer-name-parser@^1.0.2", "@csstools/cascade-layer-name-parser@^1.0.5", "@csstools/cascade-layer-name-parser@^1.0.7": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-1.0.7.tgz#9cfc36de9716d219492eb0e5ee75348b2213a8fd" + integrity sha512-9J4aMRJ7A2WRjaRLvsMeWrL69FmEuijtiW1XlK/sG+V0UJiHVYUyvj9mY4WAXfU/hGIiGOgL8e0jJcRyaZTjDQ== "@csstools/color-helpers@^2.1.0": version "2.1.0" resolved "https://registry.yarnpkg.com/@csstools/color-helpers/-/color-helpers-2.1.0.tgz#b27d8376e9e8a947878f10967481c22bf046976a" integrity sha512-OWkqBa7PDzZuJ3Ha7T5bxdSVfSCfTq6K1mbAhbO1MD+GSULGjrp45i5RudyJOedstSarN/3mdwu9upJE7gDXfw== -"@csstools/color-helpers@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@csstools/color-helpers/-/color-helpers-3.0.0.tgz#b64a9d86663b6d843b169f5da300f78c0242efc2" - integrity sha512-rBODd1rY01QcenD34QxbQxLc1g+Uh7z1X/uzTHNQzJUnFCT9/EZYI7KWq+j0YfWMXJsRJ8lVkqBcB0R/qLr+yg== +"@csstools/color-helpers@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@csstools/color-helpers/-/color-helpers-4.0.0.tgz#a1d6ffcefe5c1d389cbcca15f46da3cdaf241443" + integrity sha512-wjyXB22/h2OvxAr3jldPB7R7kjTUEzopvjitS8jWtyd8fN6xJ8vy1HnHu0ZNfEkqpBJgQ76Q+sBDshWcMvTa/w== -"@csstools/css-calc@^1.1.1", "@csstools/css-calc@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@csstools/css-calc/-/css-calc-1.1.2.tgz#bf2c376bbb9a43de4851a7efcde1818d18e0fe7d" - integrity sha512-qzBPhzWz4tUNk2tM1fk6tOSGaWlrhmH66w6WyUDoB+2Pj7pxvu6mlvXVwOGODGJBIF158aPWPheVQgcoBTszkg== +"@csstools/css-calc@^1.1.1", "@csstools/css-calc@^1.1.6": + version "1.1.6" + resolved "https://registry.yarnpkg.com/@csstools/css-calc/-/css-calc-1.1.6.tgz#2d4e16725c3f981f7c6e469c306bcb1f490e1082" + integrity sha512-YHPAuFg5iA4qZGzMzvrQwzkvJpesXXyIUyaONflQrjtHB+BcFFbgltJkIkb31dMGO4SE9iZFA4HYpdk7+hnYew== "@csstools/css-color-parser@^1.2.0": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@csstools/css-color-parser/-/css-color-parser-1.2.2.tgz#730e69eb72efdcfd644f8b14fcdb816b69a4c290" - integrity sha512-okEA/PWwtUn/7Koy0QoDs85jGOO0293kDyYdVoLgpwt2QmMJECYZotxVjRZ5SdReVGPwecUyeHeViw1uLewcpA== + version "1.5.1" + resolved "https://registry.yarnpkg.com/@csstools/css-color-parser/-/css-color-parser-1.5.1.tgz#bddf5513a7327c511c9e1ec682419dcad1f91869" + integrity sha512-x+SajGB2paGrTjPOUorGi8iCztF008YMKXTn+XzGVDBEIVJ/W1121pPerpneJYGOe1m6zWLPLnzOPaznmQxKFw== dependencies: - "@csstools/color-helpers" "^3.0.0" - "@csstools/css-calc" "^1.1.2" + "@csstools/color-helpers" "^4.0.0" + "@csstools/css-calc" "^1.1.6" -"@csstools/css-parser-algorithms@^2.1.1", "@csstools/css-parser-algorithms@^2.2.0", "@csstools/css-parser-algorithms@^2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.0.tgz#0cc3a656dc2d638370ecf6f98358973bfbd00141" - integrity sha512-dTKSIHHWc0zPvcS5cqGP+/TPFUJB0ekJ9dGKvMAFoNuBFhDPBt9OMGNZiIA5vTiNdGHHBeScYPXIGBMnVOahsA== +"@csstools/css-parser-algorithms@^2.1.1", "@csstools/css-parser-algorithms@^2.2.0", "@csstools/css-parser-algorithms@^2.3.1", "@csstools/css-parser-algorithms@^2.3.2", "@csstools/css-parser-algorithms@^2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.5.0.tgz#0c03cd5418a9f404a05ff2ffcb1b69d04e8ec532" + integrity sha512-abypo6m9re3clXA00eu5syw+oaPHbJTPapu9C4pzNsJ4hdZDzushT50Zhu+iIYXgEe1CxnRMn7ngsbV+MLrlpQ== -"@csstools/css-tokenizer@^2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-2.1.1.tgz#07ae11a0a06365d7ec686549db7b729bc036528e" - integrity sha512-GbrTj2Z8MCTUv+52GE0RbFGM527xuXZ0Xa5g0Z+YN573uveS4G0qi6WNOMyz3yrFM/jaILTTwJ0+umx81EzqfA== +"@csstools/css-tokenizer@^2.1.1", "@csstools/css-tokenizer@^2.2.0", "@csstools/css-tokenizer@^2.2.1", "@csstools/css-tokenizer@^2.2.3": + version "2.2.3" + resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-2.2.3.tgz#b099d543ea57b64f495915a095ead583866c50c6" + integrity sha512-pp//EvZ9dUmGuGtG1p+n17gTHEOqu9jO+FiCUjNN3BDmyhdA2Jq9QsVeR7K8/2QCK17HSsioPlTW9ZkzoWb3Lg== -"@csstools/media-query-list-parser@^2.1.1", "@csstools/media-query-list-parser@^2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.2.tgz#6ef642b728d30c1009bfbba3211c7e4c11302728" - integrity sha512-M8cFGGwl866o6++vIY7j1AKuq9v57cf+dGepScwCcbut9ypJNr4Cj+LLTWligYUZ0uyhEoJDKt5lvyBfh2L3ZQ== +"@csstools/media-query-list-parser@^2.1.1", "@csstools/media-query-list-parser@^2.1.4", "@csstools/media-query-list-parser@^2.1.7": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.7.tgz#a4836e3dbd693081a30b32ce9c2a781e1be16788" + integrity sha512-lHPKJDkPUECsyAvD60joYfDmp8UERYxHGkFfyLJFTVK/ERJe0sVlIFLXU5XFxdjNDTerp5L4KeaKG+Z5S94qxQ== "@csstools/normalize.css@*": - version "12.0.0" - resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-12.0.0.tgz#a9583a75c3f150667771f30b60d9f059473e62c4" - integrity sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg== + version "12.1.1" + resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-12.1.1.tgz#f0ad221b7280f3fc814689786fd9ee092776ef8f" + integrity sha512-YAYeJ+Xqh7fUou1d1j9XHl44BmsuThiTr4iNrgCQ3J27IbhXsxXDGZ1cXv8Qvs99d4rBbLiSKy3+WZiet32PcQ== "@csstools/postcss-cascade-layers@^3.0.1": version "3.0.1" @@ -366,14 +357,14 @@ "@csstools/css-tokenizer" "^2.1.1" "@csstools/postcss-media-minmax@^1.0.4": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@csstools/postcss-media-minmax/-/postcss-media-minmax-1.0.5.tgz#4a645b4ea16634412845cdae58fb7dacfc4918fe" - integrity sha512-gKwnAgX8wM3cNJ+nn2st8Cu25H/ZT43Z3CQE54rJPn4aD2gi4/ibXga+IZNwRUSGR7/zJtsoWrq9aHf4qXgYRg== + version "1.1.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-media-minmax/-/postcss-media-minmax-1.1.2.tgz#3c7ad7bebde6b329c40c96c3a78073aaa0714bb8" + integrity sha512-7qTRTJxW96u2yiEaTep1+8nto1O/rEDacewKqH+Riq5E6EsHTOmGHxkB4Se5Ic5xgDC4I05lLZxzzxnlnSypxA== dependencies: - "@csstools/css-calc" "^1.1.2" - "@csstools/css-parser-algorithms" "^2.3.0" - "@csstools/css-tokenizer" "^2.1.1" - "@csstools/media-query-list-parser" "^2.1.2" + "@csstools/css-calc" "^1.1.6" + "@csstools/css-parser-algorithms" "^2.5.0" + "@csstools/css-tokenizer" "^2.2.3" + "@csstools/media-query-list-parser" "^2.1.7" "@csstools/postcss-media-queries-aspect-ratio-number-values@^1.0.4": version "1.0.4" @@ -469,124 +460,124 @@ integrity sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw== "@csstools/selector-specificity@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-3.0.0.tgz#798622546b63847e82389e473fd67f2707d82247" - integrity sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g== - -"@esbuild/aix-ppc64@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.10.tgz#fb3922a0183d27446de00cf60d4f7baaadf98d84" - integrity sha512-Q+mk96KJ+FZ30h9fsJl+67IjNJm3x2eX+GBWGmocAKgzp27cowCOOqSdscX80s0SpdFXZnIv/+1xD1EctFx96Q== - -"@esbuild/android-arm64@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.10.tgz#ef31015416dd79398082409b77aaaa2ade4d531a" - integrity sha512-1X4CClKhDgC3by7k8aOWZeBXQX8dHT5QAMCAQDArCLaYfkppoARvh0fit3X2Qs+MXDngKcHv6XXyQCpY0hkK1Q== - -"@esbuild/android-arm@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.10.tgz#1c23c7e75473aae9fb323be5d9db225142f47f52" - integrity sha512-7W0bK7qfkw1fc2viBfrtAEkDKHatYfHzr/jKAHNr9BvkYDXPcC6bodtm8AyLJNNuqClLNaeTLuwURt4PRT9d7w== - -"@esbuild/android-x64@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.10.tgz#df6a4e6d6eb8da5595cfce16d4e3f6bc24464707" - integrity sha512-O/nO/g+/7NlitUxETkUv/IvADKuZXyH4BHf/g/7laqKC4i/7whLpB0gvpPc2zpF0q9Q6FXS3TS75QHac9MvVWw== - -"@esbuild/darwin-arm64@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.10.tgz#8462a55db07c1b2fad61c8244ce04469ef1043be" - integrity sha512-YSRRs2zOpwypck+6GL3wGXx2gNP7DXzetmo5pHXLrY/VIMsS59yKfjPizQ4lLt5vEI80M41gjm2BxrGZ5U+VMA== - -"@esbuild/darwin-x64@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.10.tgz#d1de20bfd41bb75b955ba86a6b1004539e8218c1" - integrity sha512-alfGtT+IEICKtNE54hbvPg13xGBe4GkVxyGWtzr+yHO7HIiRJppPDhOKq3zstTcVf8msXb/t4eavW3jCDpMSmA== - -"@esbuild/freebsd-arm64@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.10.tgz#16904879e34c53a2e039d1284695d2db3e664d57" - integrity sha512-dMtk1wc7FSH8CCkE854GyGuNKCewlh+7heYP/sclpOG6Cectzk14qdUIY5CrKDbkA/OczXq9WesqnPl09mj5dg== - -"@esbuild/freebsd-x64@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.10.tgz#8ad9e5ca9786ca3f1ef1411bfd10b08dcd9d4cef" - integrity sha512-G5UPPspryHu1T3uX8WiOEUa6q6OlQh6gNl4CO4Iw5PS+Kg5bVggVFehzXBJY6X6RSOMS8iXDv2330VzaObm4Ag== - -"@esbuild/linux-arm64@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.10.tgz#d82cf2c590faece82d28bbf1cfbe36f22ae25bd2" - integrity sha512-QxaouHWZ+2KWEj7cGJmvTIHVALfhpGxo3WLmlYfJ+dA5fJB6lDEIg+oe/0//FuyVHuS3l79/wyBxbHr0NgtxJQ== - -"@esbuild/linux-arm@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.10.tgz#477b8e7c7bcd34369717b04dd9ee6972c84f4029" - integrity sha512-j6gUW5aAaPgD416Hk9FHxn27On28H4eVI9rJ4az7oCGTFW48+LcgNDBN+9f8rKZz7EEowo889CPKyeaD0iw9Kg== - -"@esbuild/linux-ia32@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.10.tgz#d55ff822cf5b0252a57112f86857ff23be6cab0e" - integrity sha512-4ub1YwXxYjj9h1UIZs2hYbnTZBtenPw5NfXCRgEkGb0b6OJ2gpkMvDqRDYIDRjRdWSe/TBiZltm3Y3Q8SN1xNg== - -"@esbuild/linux-loong64@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.10.tgz#a9ad057d7e48d6c9f62ff50f6f208e331c4543c7" - integrity sha512-lo3I9k+mbEKoxtoIbM0yC/MZ1i2wM0cIeOejlVdZ3D86LAcFXFRdeuZmh91QJvUTW51bOK5W2BznGNIl4+mDaA== - -"@esbuild/linux-mips64el@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.10.tgz#b011a96924773d60ebab396fbd7a08de66668179" - integrity sha512-J4gH3zhHNbdZN0Bcr1QUGVNkHTdpijgx5VMxeetSk6ntdt+vR1DqGmHxQYHRmNb77tP6GVvD+K0NyO4xjd7y4A== - -"@esbuild/linux-ppc64@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.10.tgz#5d8b59929c029811e473f2544790ea11d588d4dd" - integrity sha512-tgT/7u+QhV6ge8wFMzaklOY7KqiyitgT1AUHMApau32ZlvTB/+efeCtMk4eXS+uEymYK249JsoiklZN64xt6oQ== - -"@esbuild/linux-riscv64@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.10.tgz#292b06978375b271bd8bc0a554e0822957508d22" - integrity sha512-0f/spw0PfBMZBNqtKe5FLzBDGo0SKZKvMl5PHYQr3+eiSscfJ96XEknCe+JoOayybWUFQbcJTrk946i3j9uYZA== - -"@esbuild/linux-s390x@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.10.tgz#d30af63530f8d4fa96930374c9dd0d62bf59e069" - integrity sha512-pZFe0OeskMHzHa9U38g+z8Yx5FNCLFtUnJtQMpwhS+r4S566aK2ci3t4NCP4tjt6d5j5uo4h7tExZMjeKoehAA== - -"@esbuild/linux-x64@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.10.tgz#898c72eeb74d9f2fb43acf316125b475548b75ce" - integrity sha512-SpYNEqg/6pZYoc+1zLCjVOYvxfZVZj6w0KROZ3Fje/QrM3nfvT2llI+wmKSrWuX6wmZeTapbarvuNNK/qepSgA== - -"@esbuild/netbsd-x64@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.10.tgz#fd473a5ae261b43eab6dad4dbd5a3155906e6c91" - integrity sha512-ACbZ0vXy9zksNArWlk2c38NdKg25+L9pr/mVaj9SUq6lHZu/35nx2xnQVRGLrC1KKQqJKRIB0q8GspiHI3J80Q== - -"@esbuild/openbsd-x64@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.10.tgz#96eb8992e526717b5272321eaad3e21f3a608e46" - integrity sha512-PxcgvjdSjtgPMiPQrM3pwSaG4kGphP+bLSb+cihuP0LYdZv1epbAIecHVl5sD3npkfYBZ0ZnOjR878I7MdJDFg== - -"@esbuild/sunos-x64@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.10.tgz#c16ee1c167f903eaaa6acf7372bee42d5a89c9bc" - integrity sha512-ZkIOtrRL8SEJjr+VHjmW0znkPs+oJXhlJbNwfI37rvgeMtk3sxOQevXPXjmAPZPigVTncvFqLMd+uV0IBSEzqA== - -"@esbuild/win32-arm64@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.10.tgz#7e417d1971dbc7e469b4eceb6a5d1d667b5e3dcc" - integrity sha512-+Sa4oTDbpBfGpl3Hn3XiUe4f8TU2JF7aX8cOfqFYMMjXp6ma6NJDztl5FDG8Ezx0OjwGikIHw+iA54YLDNNVfw== - -"@esbuild/win32-ia32@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.10.tgz#2b52dfec6cd061ecb36171c13bae554888b439e5" - integrity sha512-EOGVLK1oWMBXgfttJdPHDTiivYSjX6jDNaATeNOaCOFEVcfMjtbx7WVQwPSE1eIfCp/CaSF2nSrDtzc4I9f8TQ== - -"@esbuild/win32-x64@0.19.10": - version "0.19.10" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.10.tgz#bd123a74f243d2f3a1f046447bb9b363ee25d072" - integrity sha512-whqLG6Sc70AbU73fFYvuYzaE4MNMBIlR1Y/IrUeOXFrWHxBEjjbZaQ3IXIQS8wJdAzue2GwYZCjOrgrU1oUHoA== + version "3.0.1" + resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-3.0.1.tgz#d84597fbc0f897240c12fc0a31e492b036c70e40" + integrity sha512-NPljRHkq4a14YzZ3YD406uaxh7s0g6eAq3L9aLOWywoqe8PkYamAvtsh7KNX6c++ihDrJ0RiU+/z7rGnhlZ5ww== + +"@esbuild/aix-ppc64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.11.tgz#2acd20be6d4f0458bc8c784103495ff24f13b1d3" + integrity sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g== + +"@esbuild/android-arm64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.11.tgz#b45d000017385c9051a4f03e17078abb935be220" + integrity sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q== + +"@esbuild/android-arm@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.11.tgz#f46f55414e1c3614ac682b29977792131238164c" + integrity sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw== + +"@esbuild/android-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.11.tgz#bfc01e91740b82011ef503c48f548950824922b2" + integrity sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg== + +"@esbuild/darwin-arm64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.11.tgz#533fb7f5a08c37121d82c66198263dcc1bed29bf" + integrity sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ== + +"@esbuild/darwin-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.11.tgz#62f3819eff7e4ddc656b7c6815a31cf9a1e7d98e" + integrity sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g== + +"@esbuild/freebsd-arm64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.11.tgz#d478b4195aa3ca44160272dab85ef8baf4175b4a" + integrity sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA== + +"@esbuild/freebsd-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.11.tgz#7bdcc1917409178257ca6a1a27fe06e797ec18a2" + integrity sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw== + +"@esbuild/linux-arm64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.11.tgz#58ad4ff11685fcc735d7ff4ca759ab18fcfe4545" + integrity sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg== + +"@esbuild/linux-arm@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.11.tgz#ce82246d873b5534d34de1e5c1b33026f35e60e3" + integrity sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q== + +"@esbuild/linux-ia32@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.11.tgz#cbae1f313209affc74b80f4390c4c35c6ab83fa4" + integrity sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA== + +"@esbuild/linux-loong64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.11.tgz#5f32aead1c3ec8f4cccdb7ed08b166224d4e9121" + integrity sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg== + +"@esbuild/linux-mips64el@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.11.tgz#38eecf1cbb8c36a616261de858b3c10d03419af9" + integrity sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg== + +"@esbuild/linux-ppc64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.11.tgz#9c5725a94e6ec15b93195e5a6afb821628afd912" + integrity sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA== + +"@esbuild/linux-riscv64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.11.tgz#2dc4486d474a2a62bbe5870522a9a600e2acb916" + integrity sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ== + +"@esbuild/linux-s390x@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.11.tgz#4ad8567df48f7dd4c71ec5b1753b6f37561a65a8" + integrity sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q== + +"@esbuild/linux-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.11.tgz#b7390c4d5184f203ebe7ddaedf073df82a658766" + integrity sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA== + +"@esbuild/netbsd-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.11.tgz#d633c09492a1721377f3bccedb2d821b911e813d" + integrity sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ== + +"@esbuild/openbsd-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.11.tgz#17388c76e2f01125bf831a68c03a7ffccb65d1a2" + integrity sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw== + +"@esbuild/sunos-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.11.tgz#e320636f00bb9f4fdf3a80e548cb743370d41767" + integrity sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ== + +"@esbuild/win32-arm64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.11.tgz#c778b45a496e90b6fc373e2a2bb072f1441fe0ee" + integrity sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ== + +"@esbuild/win32-ia32@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.11.tgz#481a65fee2e5cce74ec44823e6b09ecedcc5194c" + integrity sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg== + +"@esbuild/win32-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.11.tgz#a5d300008960bb39677c46bf16f53ec70d8dee04" + integrity sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw== "@eslint-community/eslint-utils@^4.2.0": version "4.4.0" @@ -595,15 +586,15 @@ dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.4.0": - version "4.5.1" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" - integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== +"@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.6.1": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" + integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== -"@eslint/eslintrc@^2.0.3", "@eslint/eslintrc@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.0.tgz#82256f164cc9e0b59669efc19d57f8092706841d" - integrity sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A== +"@eslint/eslintrc@^2.0.3", "@eslint/eslintrc@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -615,10 +606,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.44.0": - version "8.44.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.44.0.tgz#961a5903c74139390478bdc808bcde3fc45ab7af" - integrity sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw== +"@eslint/js@8.56.0": + version "8.56.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b" + integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A== "@fast-csv/format@4.3.5": version "4.3.5" @@ -645,12 +636,17 @@ lodash.isundefined "^3.0.1" lodash.uniq "^4.5.0" -"@humanwhocodes/config-array@^0.11.10": - version "0.11.10" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" - integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ== +"@fastify/busboy@^2.0.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.0.tgz#0709e9f4cb252351c609c6e6d8d6779a8d25edff" + integrity sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA== + +"@humanwhocodes/config-array@^0.11.13": + version "0.11.13" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297" + integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ== dependencies: - "@humanwhocodes/object-schema" "^1.2.1" + "@humanwhocodes/object-schema" "^2.0.1" debug "^4.1.1" minimatch "^3.0.5" @@ -659,16 +655,28 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@humanwhocodes/object-schema@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" + integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== "@ifrc-go/icons@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@ifrc-go/icons/-/icons-1.2.0.tgz#413a49fc2c7acb66c80a83d29b347962d89426c9" integrity sha512-zUeODc9Uq5xA9DLEWRt52U1fXdKE5/sPl6M3g5j8HuzUumVEilnxXc8gBXXSPpz/65MKMwLXqjlW8Ucp9eH3qQ== +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + "@jest/schemas@^29.6.3": version "29.6.3" resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" @@ -685,33 +693,28 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/resolve-uri@3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== "@jridgewell/set-array@^1.0.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== -"@jridgewell/sourcemap-codec@1.4.14": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.15": +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": version "1.4.15" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.18" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" - integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== + version "0.3.20" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" + integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" "@julr/vite-plugin-validate-env@^1.0.1": version "1.0.1" @@ -788,9 +791,9 @@ integrity sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ== "@mapbox/mapbox-gl-draw@^1.2.0": - version "1.4.2" - resolved "https://registry.yarnpkg.com/@mapbox/mapbox-gl-draw/-/mapbox-gl-draw-1.4.2.tgz#3ec71d496f056313707c67e62728945563336a85" - integrity sha512-Zvl5YN+tIuYZlzPmuzOgkoJsZX6sHMQsnFI+O3ox8EwYkpLO2w0U2FvVhQuVnq1Yys12x6UnF+0IPoEdBy2UfA== + version "1.4.3" + resolved "https://registry.yarnpkg.com/@mapbox/mapbox-gl-draw/-/mapbox-gl-draw-1.4.3.tgz#3f95362fdeabcffcb46f3392f24bf5914e7be817" + integrity sha512-03qIJgyGmm0IoTZbV/cfODru9jRGogi4LcQ3maxIJDKccq1gY3ofgt2UYPkeU143ElxitZahEythNQv1NpsLhg== dependencies: "@mapbox/geojson-area" "^0.2.2" "@mapbox/geojson-extent" "^1.0.1" @@ -832,6 +835,48 @@ resolved "https://registry.yarnpkg.com/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz#497c67a1cef50d1a2459ba60f315e448d2ad87fe" integrity sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q== +"@microsoft/api-extractor-model@7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@microsoft/api-extractor-model/-/api-extractor-model-7.28.3.tgz#f6a213e41a2274d5195366b646954daee39e8493" + integrity sha512-wT/kB2oDbdZXITyDh2SQLzaWwTOFbV326fP0pUwNW00WeliARs0qjmXBWmGWardEzp2U3/axkO3Lboqun6vrig== + dependencies: + "@microsoft/tsdoc" "0.14.2" + "@microsoft/tsdoc-config" "~0.16.1" + "@rushstack/node-core-library" "3.62.0" + +"@microsoft/api-extractor@7.39.0": + version "7.39.0" + resolved "https://registry.yarnpkg.com/@microsoft/api-extractor/-/api-extractor-7.39.0.tgz#41c25f7f522e8b9376debda07364ff234e602eff" + integrity sha512-PuXxzadgnvp+wdeZFPonssRAj/EW4Gm4s75TXzPk09h3wJ8RS3x7typf95B4vwZRrPTQBGopdUl+/vHvlPdAcg== + dependencies: + "@microsoft/api-extractor-model" "7.28.3" + "@microsoft/tsdoc" "0.14.2" + "@microsoft/tsdoc-config" "~0.16.1" + "@rushstack/node-core-library" "3.62.0" + "@rushstack/rig-package" "0.5.1" + "@rushstack/ts-command-line" "4.17.1" + colors "~1.2.1" + lodash "~4.17.15" + resolve "~1.22.1" + semver "~7.5.4" + source-map "~0.6.1" + typescript "5.3.3" + +"@microsoft/tsdoc-config@~0.16.1": + version "0.16.2" + resolved "https://registry.yarnpkg.com/@microsoft/tsdoc-config/-/tsdoc-config-0.16.2.tgz#b786bb4ead00d54f53839a458ce626c8548d3adf" + integrity sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw== + dependencies: + "@microsoft/tsdoc" "0.14.2" + ajv "~6.12.6" + jju "~1.4.0" + resolve "~1.19.0" + +"@microsoft/tsdoc@0.14.2": + version "0.14.2" + resolved "https://registry.yarnpkg.com/@microsoft/tsdoc/-/tsdoc-0.14.2.tgz#c3ec604a0b54b9a9b87e9735dfc59e1a5da6a5fb" + integrity sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -853,22 +898,15 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@pkgr/utils@^2.3.1": - version "2.4.2" - resolved "https://registry.yarnpkg.com/@pkgr/utils/-/utils-2.4.2.tgz#9e638bbe9a6a6f165580dc943f138fd3309a2cbc" - integrity sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw== - dependencies: - cross-spawn "^7.0.3" - fast-glob "^3.3.0" - is-glob "^4.0.3" - open "^9.1.0" - picocolors "^1.0.0" - tslib "^2.6.0" +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== "@poppinss/cliui@^6.2.1": - version "6.2.3" - resolved "https://registry.yarnpkg.com/@poppinss/cliui/-/cliui-6.2.3.tgz#9256cc9baa69ae96c3dd91cb0cdb849abead2a70" - integrity sha512-4XE7/u9869Casnjwg8/TQXOrU42gmGZHFNy++nbX1K15ZRTFBl3IV3iihONCB8x+AOB5TK9LUgEl9vQoYGghLA== + version "6.3.0" + resolved "https://registry.yarnpkg.com/@poppinss/cliui/-/cliui-6.3.0.tgz#03304e36b4fb7189384b606c552d0c186f3caf7c" + integrity sha512-GEu/IsJ9SanzAGa9NaHsHneumwlScLfhBJHU8uYcB6GyaTvQQg38OuiGnn5U95Wk3a/roUOSsrEVU1bnVvYtoQ== dependencies: "@poppinss/colors" "^4.1.2" cli-boxes "^3.0.0" @@ -895,21 +933,12 @@ dependencies: validator "^13.9.0" -"@remix-run/router@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.11.0.tgz#e0e45ac3fff9d8a126916f166809825537e9f955" - integrity sha512-BHdhcWgeiudl91HvVa2wxqZjSHbheSgIiDvxrF1VjFzBzpTtuDPkOdOi3Iqvc08kXtFkLjhbS+ML9aM8mJS+wQ== - -"@rollup/pluginutils@^5.0.2": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.2.tgz#012b8f53c71e4f6f9cb317e311df1404f56e7a33" - integrity sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA== - dependencies: - "@types/estree" "^1.0.0" - estree-walker "^2.0.2" - picomatch "^2.3.1" +"@remix-run/router@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.14.1.tgz#6d2dd03d52e604279c38911afc1079d58c50a755" + integrity sha512-Qg4DMQsfPNAs88rb2xkdk03N3bjK4jgX5fR24eHCTR9q6PrhZQZ4UJBPzCHJkIpTRN1UKxx2DzjZmnC+7Lj0Ow== -"@rollup/pluginutils@^5.0.5": +"@rollup/pluginutils@^5.0.2", "@rollup/pluginutils@^5.0.5", "@rollup/pluginutils@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz#7e53eddc8c7f483a4ad0b94afb1f7f5fd3c771e0" integrity sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g== @@ -918,130 +947,171 @@ estree-walker "^2.0.2" picomatch "^2.3.1" -"@rollup/rollup-android-arm-eabi@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.1.tgz#beaf518ee45a196448e294ad3f823d2d4576cf35" - integrity sha512-6vMdBZqtq1dVQ4CWdhFwhKZL6E4L1dV6jUjuBvsavvNJSppzi6dLBbuV+3+IyUREaj9ZFvQefnQm28v4OCXlig== - -"@rollup/rollup-android-arm64@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.1.tgz#6f76cfa759c2d0fdb92122ffe28217181a1664eb" - integrity sha512-Jto9Fl3YQ9OLsTDWtLFPtaIMSL2kwGyGoVCmPC8Gxvym9TCZm4Sie+cVeblPO66YZsYH8MhBKDMGZ2NDxuk/XQ== - -"@rollup/rollup-darwin-arm64@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.1.tgz#9aaefe33a5481d66322d1c62f368171c03eabe2b" - integrity sha512-LtYcLNM+bhsaKAIGwVkh5IOWhaZhjTfNOkGzGqdHvhiCUVuJDalvDxEdSnhFzAn+g23wgsycmZk1vbnaibZwwA== - -"@rollup/rollup-darwin-x64@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.1.tgz#707dcaadcdc6bd3fd6c69f55d9456cd4446306a3" - integrity sha512-KyP/byeXu9V+etKO6Lw3E4tW4QdcnzDG/ake031mg42lob5tN+5qfr+lkcT/SGZaH2PdW4Z1NX9GHEkZ8xV7og== - -"@rollup/rollup-linux-arm-gnueabihf@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.1.tgz#7a4dbbd1dd98731d88a55aefcef0ec4c578fa9c7" - integrity sha512-Yqz/Doumf3QTKplwGNrCHe/B2p9xqDghBZSlAY0/hU6ikuDVQuOUIpDP/YcmoT+447tsZTmirmjgG3znvSCR0Q== - -"@rollup/rollup-linux-arm64-gnu@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.1.tgz#967ba8e6f68a5f21bd00cd97773dcdd6107e94ed" - integrity sha512-u3XkZVvxcvlAOlQJ3UsD1rFvLWqu4Ef/Ggl40WAVCuogf4S1nJPHh5RTgqYFpCOvuGJ7H5yGHabjFKEZGExk5Q== - -"@rollup/rollup-linux-arm64-musl@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.1.tgz#d3a4e1c9f21eef3b9f4e4989f334a519a1341462" - integrity sha512-0XSYN/rfWShW+i+qjZ0phc6vZ7UWI8XWNz4E/l+6edFt+FxoEghrJHjX1EY/kcUGCnZzYYRCl31SNdfOi450Aw== - -"@rollup/rollup-linux-riscv64-gnu@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.1.tgz#415c0533bb752164effd05f5613858e8f6779bc9" - integrity sha512-LmYIO65oZVfFt9t6cpYkbC4d5lKHLYv5B4CSHRpnANq0VZUQXGcCPXHzbCXCz4RQnx7jvlYB1ISVNCE/omz5cw== - -"@rollup/rollup-linux-x64-gnu@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.1.tgz#0983385dd753a2e0ecaddea7a81dd37fea5114f5" - integrity sha512-kr8rEPQ6ns/Lmr/hiw8sEVj9aa07gh1/tQF2Y5HrNCCEPiCBGnBUt9tVusrcBBiJfIt1yNaXN6r1CCmpbFEDpg== - -"@rollup/rollup-linux-x64-musl@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.1.tgz#eb7494ebc5199cbd2e5c38c2b8acbe2603f35e03" - integrity sha512-t4QSR7gN+OEZLG0MiCgPqMWZGwmeHhsM4AkegJ0Kiy6TnJ9vZ8dEIwHw1LcZKhbHxTY32hp9eVCMdR3/I8MGRw== - -"@rollup/rollup-win32-arm64-msvc@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.1.tgz#5bebc66e3a7f82d4b9aa9ff448e7fc13a69656e9" - integrity sha512-7XI4ZCBN34cb+BH557FJPmh0kmNz2c25SCQeT9OiFWEgf8+dL6ZwJ8f9RnUIit+j01u07Yvrsuu1rZGxJCc51g== - -"@rollup/rollup-win32-ia32-msvc@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.1.tgz#34156ebf8b4de3b20e6497260fe519a30263f8cf" - integrity sha512-yE5c2j1lSWOH5jp+Q0qNL3Mdhr8WuqCNVjc6BxbVfS5cAS6zRmdiw7ktb8GNpDCEUJphILY6KACoFoRtKoqNQg== - -"@rollup/rollup-win32-x64-msvc@4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.1.tgz#d146db7a5949e10837b323ce933ed882ac878262" - integrity sha512-PyJsSsafjmIhVgaI1Zdj7m8BB8mMckFah/xbpplObyHfiXzKcI5UOUXRyOdHW7nz4DpMCuzLnF7v5IWHenCwYA== - -"@sentry-internal/tracing@7.81.1": - version "7.81.1" - resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.81.1.tgz#1180365cd8a9e18cb0f92e1ea970161840ec0e2e" - integrity sha512-E5xm27xrLXL10knH2EWDQsQYh5nb4SxxZzJ3sJwDGG9XGKzBdlp20UUhKqx00wixooVX9uCj3e4Jg8SvNB1hKg== - dependencies: - "@sentry/core" "7.81.1" - "@sentry/types" "7.81.1" - "@sentry/utils" "7.81.1" - -"@sentry/browser@7.81.1": - version "7.81.1" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.81.1.tgz#5ee6ae3679ee80f444d2e8c5662430e7a734ae50" - integrity sha512-DNtS7bZEnFPKVoGazKs5wHoWC0FwsOFOOMNeDvEfouUqKKbjO7+RDHbr7H6Bo83zX4qmZWRBf8V+3n3YPIiJFw== - dependencies: - "@sentry-internal/tracing" "7.81.1" - "@sentry/core" "7.81.1" - "@sentry/replay" "7.81.1" - "@sentry/types" "7.81.1" - "@sentry/utils" "7.81.1" - -"@sentry/core@7.81.1": - version "7.81.1" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.81.1.tgz#082fd9122bf9a488c8e05b1754724ddbc2d5cf30" - integrity sha512-tU37yAmckOGCw/moWKSwekSCWWJP15O6luIq+u7wal22hE88F3Vc5Avo8SeF3upnPR+4ejaOFH+BJTr6bgrs6Q== - dependencies: - "@sentry/types" "7.81.1" - "@sentry/utils" "7.81.1" +"@rollup/rollup-android-arm-eabi@4.9.4": + version "4.9.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.4.tgz#b1094962742c1a0349587040bc06185e2a667c9b" + integrity sha512-ub/SN3yWqIv5CWiAZPHVS1DloyZsJbtXmX4HxUTIpS0BHm9pW5iYBo2mIZi+hE3AeiTzHz33blwSnhdUo+9NpA== + +"@rollup/rollup-android-arm64@4.9.4": + version "4.9.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.4.tgz#96eb86fb549e05b187f2ad06f51d191a23cb385a" + integrity sha512-ehcBrOR5XTl0W0t2WxfTyHCR/3Cq2jfb+I4W+Ch8Y9b5G+vbAecVv0Fx/J1QKktOrgUYsIKxWAKgIpvw56IFNA== + +"@rollup/rollup-darwin-arm64@4.9.4": + version "4.9.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.4.tgz#2456630c007cc5905cb368acb9ff9fc04b2d37be" + integrity sha512-1fzh1lWExwSTWy8vJPnNbNM02WZDS8AW3McEOb7wW+nPChLKf3WG2aG7fhaUmfX5FKw9zhsF5+MBwArGyNM7NA== + +"@rollup/rollup-darwin-x64@4.9.4": + version "4.9.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.4.tgz#97742214fc7dfd47a0f74efba6f5ae264e29c70c" + integrity sha512-Gc6cukkF38RcYQ6uPdiXi70JB0f29CwcQ7+r4QpfNpQFVHXRd0DfWFidoGxjSx1DwOETM97JPz1RXL5ISSB0pA== + +"@rollup/rollup-linux-arm-gnueabihf@4.9.4": + version "4.9.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.4.tgz#cd933e61d6f689c9cdefde424beafbd92cfe58e2" + integrity sha512-g21RTeFzoTl8GxosHbnQZ0/JkuFIB13C3T7Y0HtKzOXmoHhewLbVTFBQZu+z5m9STH6FZ7L/oPgU4Nm5ErN2fw== + +"@rollup/rollup-linux-arm64-gnu@4.9.4": + version "4.9.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.4.tgz#33b09bf462f1837afc1e02a1b352af6b510c78a6" + integrity sha512-TVYVWD/SYwWzGGnbfTkrNpdE4HON46orgMNHCivlXmlsSGQOx/OHHYiQcMIOx38/GWgwr/po2LBn7wypkWw/Mg== + +"@rollup/rollup-linux-arm64-musl@4.9.4": + version "4.9.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.4.tgz#50257fb248832c2308064e3764a16273b6ee4615" + integrity sha512-XcKvuendwizYYhFxpvQ3xVpzje2HHImzg33wL9zvxtj77HvPStbSGI9czrdbfrf8DGMcNNReH9pVZv8qejAQ5A== + +"@rollup/rollup-linux-riscv64-gnu@4.9.4": + version "4.9.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.4.tgz#09589e4e1a073cf56f6249b77eb6c9a8e9b613a8" + integrity sha512-LFHS/8Q+I9YA0yVETyjonMJ3UA+DczeBd/MqNEzsGSTdNvSJa1OJZcSH8GiXLvcizgp9AlHs2walqRcqzjOi3A== + +"@rollup/rollup-linux-x64-gnu@4.9.4": + version "4.9.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.4.tgz#bd312bb5b5f02e54d15488605d15cfd3f90dda7c" + integrity sha512-dIYgo+j1+yfy81i0YVU5KnQrIJZE8ERomx17ReU4GREjGtDW4X+nvkBak2xAUpyqLs4eleDSj3RrV72fQos7zw== + +"@rollup/rollup-linux-x64-musl@4.9.4": + version "4.9.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.4.tgz#25b3bede85d86438ce28cc642842d10d867d40e9" + integrity sha512-RoaYxjdHQ5TPjaPrLsfKqR3pakMr3JGqZ+jZM0zP2IkDtsGa4CqYaWSfQmZVgFUCgLrTnzX+cnHS3nfl+kB6ZQ== + +"@rollup/rollup-win32-arm64-msvc@4.9.4": + version "4.9.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.4.tgz#95957067eb107f571da1d81939f017d37b4958d3" + integrity sha512-T8Q3XHV+Jjf5e49B4EAaLKV74BbX7/qYBRQ8Wop/+TyyU0k+vSjiLVSHNWdVd1goMjZcbhDmYZUYW5RFqkBNHQ== + +"@rollup/rollup-win32-ia32-msvc@4.9.4": + version "4.9.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.4.tgz#71b6facad976db527863f698692c6964c0b6e10e" + integrity sha512-z+JQ7JirDUHAsMecVydnBPWLwJjbppU+7LZjffGf+Jvrxq+dVjIE7By163Sc9DKc3ADSU50qPVw0KonBS+a+HQ== + +"@rollup/rollup-win32-x64-msvc@4.9.4": + version "4.9.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.4.tgz#16295ccae354707c9bc6842906bdeaad4f3ba7a5" + integrity sha512-LfdGXCV9rdEify1oxlN9eamvDSjv9md9ZVMAbNHA87xqIfFCxImxan9qZ8+Un54iK2nnqPlbnSi4R54ONtbWBw== + +"@rushstack/node-core-library@3.62.0": + version "3.62.0" + resolved "https://registry.yarnpkg.com/@rushstack/node-core-library/-/node-core-library-3.62.0.tgz#a30a44a740b522944165f0faa6644134eb95be1d" + integrity sha512-88aJn2h8UpSvdwuDXBv1/v1heM6GnBf3RjEy6ZPP7UnzHNCqOHA2Ut+ScYUbXcqIdfew9JlTAe3g+cnX9xQ/Aw== + dependencies: + colors "~1.2.1" + fs-extra "~7.0.1" + import-lazy "~4.0.0" + jju "~1.4.0" + resolve "~1.22.1" + semver "~7.5.4" + z-schema "~5.0.2" + +"@rushstack/rig-package@0.5.1": + version "0.5.1" + resolved "https://registry.yarnpkg.com/@rushstack/rig-package/-/rig-package-0.5.1.tgz#6c9c283cc96b5bb1eae9875946d974ac5429bb21" + integrity sha512-pXRYSe29TjRw7rqxD4WS3HN/sRSbfr+tJs4a9uuaSIBAITbUggygdhuG0VrO0EO+QqH91GhYMN4S6KRtOEmGVA== + dependencies: + resolve "~1.22.1" + strip-json-comments "~3.1.1" + +"@rushstack/ts-command-line@4.17.1": + version "4.17.1" + resolved "https://registry.yarnpkg.com/@rushstack/ts-command-line/-/ts-command-line-4.17.1.tgz#c78db928ce5b93f2e98fd9e14c24f3f3876e57f1" + integrity sha512-2jweO1O57BYP5qdBGl6apJLB+aRIn5ccIRTPDyULh0KMwVzFqWtw6IZWt1qtUoZD/pD2RNkIOosH6Cq45rIYeg== + dependencies: + "@types/argparse" "1.0.38" + argparse "~1.0.9" + colors "~1.2.1" + string-argv "~0.3.1" + +"@sentry-internal/feedback@7.92.0": + version "7.92.0" + resolved "https://registry.yarnpkg.com/@sentry-internal/feedback/-/feedback-7.92.0.tgz#1293b0a332f81cdf3970abd36894b9d25670c4e6" + integrity sha512-/jEALRtVqboxB9kcK2tag8QCO6XANTlGBb9RV3oeGXJe0DDNJXRq6wVZbfgztXJRrfgx4XVDcNt1pRVoGGG++g== + dependencies: + "@sentry/core" "7.92.0" + "@sentry/types" "7.92.0" + "@sentry/utils" "7.92.0" + +"@sentry-internal/tracing@7.92.0": + version "7.92.0" + resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.92.0.tgz#505d94a93b5df965ec6bfb35da43389988259d4d" + integrity sha512-ur55vPcUUUWFUX4eVLNP71ohswK7ZZpleNZw9Y1GfLqyI+0ILQUwjtzqItJrdClvVsdRZJMRmDV40Hp9Lbb9mA== + dependencies: + "@sentry/core" "7.92.0" + "@sentry/types" "7.92.0" + "@sentry/utils" "7.92.0" + +"@sentry/browser@7.92.0": + version "7.92.0" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.92.0.tgz#f4c65f2af6f38c2dd5e32153e9b358c0c80275f2" + integrity sha512-loMr02/zQ38u8aQhYLtIBg0i5n3ps2e3GUXrt3CdsJQdkRYfa62gcrE7SzvoEpMVHTk7VOI4fWGht8cWw/1k3A== + dependencies: + "@sentry-internal/feedback" "7.92.0" + "@sentry-internal/tracing" "7.92.0" + "@sentry/core" "7.92.0" + "@sentry/replay" "7.92.0" + "@sentry/types" "7.92.0" + "@sentry/utils" "7.92.0" + +"@sentry/core@7.92.0": + version "7.92.0" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.92.0.tgz#4e74c1959348b698226c49ead7a24e165502b55c" + integrity sha512-1Tly7YB2I1byI5xb0Cwrxs56Rhww+6mQ7m9P7rTmdC3/ijOzbEoohtYIUPwcooCEarpbEJe/tAayRx6BrH2UbQ== + dependencies: + "@sentry/types" "7.92.0" + "@sentry/utils" "7.92.0" "@sentry/react@^7.81.1": - version "7.81.1" - resolved "https://registry.yarnpkg.com/@sentry/react/-/react-7.81.1.tgz#6a94e8e373a5bf27330cea2eb1a603ae0eb0b8ba" - integrity sha512-kk0plP/mf8KgVLOiImIpp1liYysmh3Un8uXcVAToomSuHZPGanelFAdP0XhY+0HlWU9KIfxTjhMte1iSwQ8pYw== + version "7.92.0" + resolved "https://registry.yarnpkg.com/@sentry/react/-/react-7.92.0.tgz#be49d59c3ba18beab9cd03c86a5bd587fda7d1b6" + integrity sha512-lTvrLuvxtGEZbkW6NHru03K6eyixKyBliwiLwO+k37FK7Ha8Bwat2m77weyizWCdQ6DKlVazJNppkNeAlACIvQ== dependencies: - "@sentry/browser" "7.81.1" - "@sentry/types" "7.81.1" - "@sentry/utils" "7.81.1" + "@sentry/browser" "7.92.0" + "@sentry/types" "7.92.0" + "@sentry/utils" "7.92.0" hoist-non-react-statics "^3.3.2" -"@sentry/replay@7.81.1": - version "7.81.1" - resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-7.81.1.tgz#a656d55e2a00b34e42be6eeb79018d21efc223af" - integrity sha512-4ueT0C4bYjngN/9p0fEYH10dTMLovHyk9HxJ6zSTgePvGVexhg+cSEHXisoBDwHeRZVnbIvsVM0NA7rmEDXJJw== +"@sentry/replay@7.92.0": + version "7.92.0" + resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-7.92.0.tgz#d94e9f6b72e540e73378a74ca1190068edd447f2" + integrity sha512-G1t9Uvc9cR8VpNkElwvHIMGzykjIKikb10n0tfVd3e+rBPMCCjCPWOduwG6jZYxcvCjTpqmJh6NSLXxL/Mt4JA== dependencies: - "@sentry-internal/tracing" "7.81.1" - "@sentry/core" "7.81.1" - "@sentry/types" "7.81.1" - "@sentry/utils" "7.81.1" + "@sentry-internal/tracing" "7.92.0" + "@sentry/core" "7.92.0" + "@sentry/types" "7.92.0" + "@sentry/utils" "7.92.0" -"@sentry/types@7.81.1": - version "7.81.1" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.81.1.tgz#2b2551fc291e1089651fd574a68f7c4175878bd5" - integrity sha512-dvJvGyctiaPMIQqa46k56Re5IODWMDxiHJ1UjBs/WYDLrmWFPGrEbyJ8w8CYLhYA+7qqrCyIZmHbWSTRIxstHw== +"@sentry/types@7.92.0": + version "7.92.0" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.92.0.tgz#4c308fdb316c0272f55f0816230fe87e7b9b551a" + integrity sha512-APmSOuZuoRGpbPpPeYIbMSplPjiWNLZRQa73QiXuTflW4Tu/ItDlU8hOa2+A6JKVkJCuD2EN6yUrxDGSMyNXeg== -"@sentry/utils@7.81.1": - version "7.81.1" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.81.1.tgz#42f3e77baf90205cec1f8599eb8445a6918030bd" - integrity sha512-gq+MDXIirHKxNZ+c9/lVvCXd6y2zaZANujwlFggRH2u9SRiPaIXVilLpvMm4uJqmqBMEcY81ArujExtHvkbCqg== +"@sentry/utils@7.92.0": + version "7.92.0" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.92.0.tgz#20ed29742594eab007f9ff72e008b5262456a319" + integrity sha512-3nEfrQ1z28b/2zgFGANPh5yMVtgwXmrasZxTvKbrAj+KWJpjrJHrIR84r9W277J44NMeZ5RhRW2uoDmuBslPnA== dependencies: - "@sentry/types" "7.81.1" + "@sentry/types" "7.92.0" "@sinclair/typebox@^0.27.8": version "0.27.8" @@ -1131,74 +1201,74 @@ "@svgr/hast-util-to-babel-ast" "8.0.0" svg-parser "^2.0.4" -"@swc/core-darwin-arm64@1.3.101": - version "1.3.101" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.101.tgz#9ffdc0e77c31b20877fa7405c82905e0c76738d0" - integrity sha512-mNFK+uHNPRXSnfTOG34zJOeMl2waM4hF4a2NY7dkMXrPqw9CoJn4MwTXJcyMiSz1/BnNjjTCHF3Yhj0jPxmkzQ== - -"@swc/core-darwin-x64@1.3.101": - version "1.3.101" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.101.tgz#e50130e21e3cfd3029fd6cea43e8309b58ad9fa6" - integrity sha512-B085j8XOx73Fg15KsHvzYWG262bRweGr3JooO1aW5ec5pYbz5Ew9VS5JKYS03w2UBSxf2maWdbPz2UFAxg0whw== - -"@swc/core-linux-arm-gnueabihf@1.3.101": - version "1.3.101" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.101.tgz#8cd36328e794b3c42b6c8e578bb1f42e59ba0231" - integrity sha512-9xLKRb6zSzRGPqdz52Hy5GuB1lSjmLqa0lST6MTFads3apmx4Vgs8Y5NuGhx/h2I8QM4jXdLbpqQlifpzTlSSw== - -"@swc/core-linux-arm64-gnu@1.3.101": - version "1.3.101" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.101.tgz#d15e3885eb13a1512ba62f00ce4f5bb19f710a0c" - integrity sha512-oE+r1lo7g/vs96Weh2R5l971dt+ZLuhaUX+n3BfDdPxNHfObXgKMjO7E+QS5RbGjv/AwiPCxQmbdCp/xN5ICJA== - -"@swc/core-linux-arm64-musl@1.3.101": - version "1.3.101" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.101.tgz#851d4cc1079b091fee36f5f64335232210749d7a" - integrity sha512-OGjYG3H4BMOTnJWJyBIovCez6KiHF30zMIu4+lGJTCrxRI2fAjGLml3PEXj8tC3FMcud7U2WUn6TdG0/te2k6g== - -"@swc/core-linux-x64-gnu@1.3.101": - version "1.3.101" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.101.tgz#3a2a7c584db2e05a798e28361440424914563fa3" - integrity sha512-/kBMcoF12PRO/lwa8Z7w4YyiKDcXQEiLvM+S3G9EvkoKYGgkkz4Q6PSNhF5rwg/E3+Hq5/9D2R+6nrkF287ihg== - -"@swc/core-linux-x64-musl@1.3.101": - version "1.3.101" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.101.tgz#45d1d53945994f08e93703b8de24ccac88538d0c" - integrity sha512-kDN8lm4Eew0u1p+h1l3JzoeGgZPQ05qDE0czngnjmfpsH2sOZxVj1hdiCwS5lArpy7ktaLu5JdRnx70MkUzhXw== - -"@swc/core-win32-arm64-msvc@1.3.101": - version "1.3.101" - resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.101.tgz#b2610b8354e5fbca7cc5be3f728e61b046227fa8" - integrity sha512-9Wn8TTLWwJKw63K/S+jjrZb9yoJfJwCE2RV5vPCCWmlMf3U1AXj5XuWOLUX+Rp2sGKau7wZKsvywhheWm+qndQ== - -"@swc/core-win32-ia32-msvc@1.3.101": - version "1.3.101" - resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.101.tgz#c919175bb4cd5e9fcfa56fbd3708167c1d445c68" - integrity sha512-onO5KvICRVlu2xmr4//V2je9O2XgS1SGKpbX206KmmjcJhXN5EYLSxW9qgg+kgV5mip+sKTHTAu7IkzkAtElYA== - -"@swc/core-win32-x64-msvc@1.3.101": - version "1.3.101" - resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.101.tgz#17743fe425caffc596fde5965c9c4cf9a48aa26a" - integrity sha512-T3GeJtNQV00YmiVw/88/nxJ/H43CJvFnpvBHCVn17xbahiVUOPOduh3rc9LgAkKiNt/aV8vU3OJR+6PhfMR7UQ== +"@swc/core-darwin-arm64@1.3.102": + version "1.3.102" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.102.tgz#2bbd90a8751e6eee981f857ec3f0b6233208da37" + integrity sha512-CJDxA5Wd2cUMULj3bjx4GEoiYyyiyL8oIOu4Nhrs9X+tlg8DnkCm4nI57RJGP8Mf6BaXPIJkHX8yjcefK2RlDA== + +"@swc/core-darwin-x64@1.3.102": + version "1.3.102" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.102.tgz#df16d51f45771d3c9cca8554b28a3190cdb075cf" + integrity sha512-X5akDkHwk6oAer49oER0qZMjNMkLH3IOZaV1m98uXIasAGyjo5WH1MKPeMLY1sY6V6TrufzwiSwD4ds571ytcg== + +"@swc/core-linux-arm-gnueabihf@1.3.102": + version "1.3.102" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.102.tgz#eb71697590c56ea261fa9a4b198c45304c7ece39" + integrity sha512-kJH3XtZP9YQdjq/wYVBeFuiVQl4HaC4WwRrIxAHwe2OyvrwUI43dpW3LpxSggBnxXcVCXYWf36sTnv8S75o2Gw== + +"@swc/core-linux-arm64-gnu@1.3.102": + version "1.3.102" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.102.tgz#75d72d5253d56723fa7054e1a8f313bf3d17b1a2" + integrity sha512-flQP2WDyCgO24WmKA1wjjTx+xfCmavUete2Kp6yrM+631IHLGnr17eu7rYJ/d4EnDBId/ytMyrnWbTVkaVrpbQ== + +"@swc/core-linux-arm64-musl@1.3.102": + version "1.3.102" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.102.tgz#7db86022fec57c1e06c573d45cef5e911bcc420e" + integrity sha512-bQEQSnC44DyoIGLw1+fNXKVGoCHi7eJOHr8BdH0y1ooy9ArskMjwobBFae3GX4T1AfnrTaejyr0FvLYIb0Zkog== + +"@swc/core-linux-x64-gnu@1.3.102": + version "1.3.102" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.102.tgz#298a25aa854924bedc7e4b69da52da19f84fc7a8" + integrity sha512-dFvnhpI478svQSxqISMt00MKTDS0e4YtIr+ioZDG/uJ/q+RpcNy3QI2KMm05Fsc8Y0d4krVtvCKWgfUMsJZXAg== + +"@swc/core-linux-x64-musl@1.3.102": + version "1.3.102" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.102.tgz#1bcd911aaa88b96f3bb665b0fd84ef4d21adf886" + integrity sha512-+a0M3CvjeIRNA/jTCzWEDh2V+mhKGvLreHOL7J97oULZy5yg4gf7h8lQX9J8t9QLbf6fsk+0F8bVH1Ie/PbXjA== + +"@swc/core-win32-arm64-msvc@1.3.102": + version "1.3.102" + resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.102.tgz#59084786364d03fa4a120bdd589a557a00caedeb" + integrity sha512-w76JWLjkZNOfkB25nqdWUNCbt0zJ41CnWrJPZ+LxEai3zAnb2YtgB/cCIrwxDebRuMgE9EJXRj7gDDaTEAMOOQ== + +"@swc/core-win32-ia32-msvc@1.3.102": + version "1.3.102" + resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.102.tgz#27954889d940a63796d58ff7753f5f27ed381a1f" + integrity sha512-vlDb09HiGqKwz+2cxDS9T5/461ipUQBplvuhW+cCbzzGuPq8lll2xeyZU0N1E4Sz3MVdSPx1tJREuRvlQjrwNg== + +"@swc/core-win32-x64-msvc@1.3.102": + version "1.3.102" + resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.102.tgz#477da542e6b01b3eb64476ec9a78f497a9b87807" + integrity sha512-E/jfSD7sShllxBwwgDPeXp1UxvIqehj/ShSUqq1pjR/IDRXngcRSXKJK92mJkNFY7suH6BcCWwzrxZgkO7sWmw== "@swc/core@^1.3.96": - version "1.3.101" - resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.101.tgz#4e8f1583094a73c410e48a0bebdeccdc6c66d4a5" - integrity sha512-w5aQ9qYsd/IYmXADAnkXPGDMTqkQalIi+kfFf/MHRKTpaOL7DHjMXwPp/n8hJ0qNjRvchzmPtOqtPBiER50d8A== + version "1.3.102" + resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.102.tgz#870874bcf1d78cd7bb1bc66b31bf2b1a87c1a667" + integrity sha512-OAjNLY/f6QWKSDzaM3bk31A+OYHu6cPa9P/rFIx8X5d24tHXUpRiiq6/PYI6SQRjUPlB72GjsjoEU8F+ALadHg== dependencies: "@swc/counter" "^0.1.1" "@swc/types" "^0.1.5" optionalDependencies: - "@swc/core-darwin-arm64" "1.3.101" - "@swc/core-darwin-x64" "1.3.101" - "@swc/core-linux-arm-gnueabihf" "1.3.101" - "@swc/core-linux-arm64-gnu" "1.3.101" - "@swc/core-linux-arm64-musl" "1.3.101" - "@swc/core-linux-x64-gnu" "1.3.101" - "@swc/core-linux-x64-musl" "1.3.101" - "@swc/core-win32-arm64-msvc" "1.3.101" - "@swc/core-win32-ia32-msvc" "1.3.101" - "@swc/core-win32-x64-msvc" "1.3.101" + "@swc/core-darwin-arm64" "1.3.102" + "@swc/core-darwin-x64" "1.3.102" + "@swc/core-linux-arm-gnueabihf" "1.3.102" + "@swc/core-linux-arm64-gnu" "1.3.102" + "@swc/core-linux-arm64-musl" "1.3.102" + "@swc/core-linux-x64-gnu" "1.3.102" + "@swc/core-linux-x64-musl" "1.3.102" + "@swc/core-win32-arm64-msvc" "1.3.102" + "@swc/core-win32-ia32-msvc" "1.3.102" + "@swc/core-win32-x64-msvc" "1.3.102" "@swc/counter@^0.1.1": version "0.1.2" @@ -1211,24 +1281,17 @@ integrity sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw== "@tinymce/tinymce-react@^4.3.0": - version "4.3.0" - resolved "https://registry.yarnpkg.com/@tinymce/tinymce-react/-/tinymce-react-4.3.0.tgz#5e2f5a58526a1bba9710f54f5fcf16abd4c742a1" - integrity sha512-iB4cUsYfcJL4NGuKhqCGYuTmFTje3nPxyPv1HxprTsp/YMGuuiiSNWrv3zwI31QX5Cn8qeq9MrMDnbxuRugHyg== + version "4.3.2" + resolved "https://registry.yarnpkg.com/@tinymce/tinymce-react/-/tinymce-react-4.3.2.tgz#fbe05e35e948b0e577eddf639bfe7ee2158fdc10" + integrity sha512-wJHZhPf2Mk3yTtdVC/uIGh+kvDgKuTw/qV13uzdChTNo68JI1l7jYMrSQOpyimDyn5LHAw0E1zFByrm1WHAVeA== dependencies: prop-types "^15.6.2" - tinymce "^6.3.1" + tinymce "^6.0.0 || ^5.5.1" -"@togglecorp/fujs@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@togglecorp/fujs/-/fujs-2.0.0.tgz#b1834326a173e568a226d956271b1b532b5f1f30" - integrity sha512-Fx5SF9kusbf35uT2WYlI6gdqqSL/e3JN4urAyB2O+jPz1VkG2I85VRqFxGjrg4m/ZZH+HRyGgLhSDn2V8LNdjA== - dependencies: - "@babel/runtime" "^7.19.0" - -"@togglecorp/fujs@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@togglecorp/fujs/-/fujs-2.1.0.tgz#6ada85f6b9fa85109913e0f5529ff7ff1fc2a5db" - integrity sha512-CdIBUqtfE5wj9Z/C5avKDQZQYPwAtDbmqhbFLils77D7rAfp4fGRLOH3IL90KmJ2sj8KSHyk8dXWq7p+5LPk+g== +"@togglecorp/fujs@^2.1.0", "@togglecorp/fujs@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@togglecorp/fujs/-/fujs-2.1.1.tgz#af3a202e42d9bd9f74e3aa5e48e3f3a65f83f6bf" + integrity sha512-2ofMs9xZxlctFqNAHERMqW436nqjSZdiDNJjsTquSVOXu9kFJzbIakhVXcZ5+UWJgrCbn8k7wcj1N5eO0OWFQA== dependencies: "@babel/runtime-corejs3" "^7.22.6" @@ -1240,13 +1303,13 @@ "@babel/runtime-corejs3" "^7.22.3" "@togglecorp/fujs" "^2.1.0" -"@togglecorp/toggle-form@2.0.3": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@togglecorp/toggle-form/-/toggle-form-2.0.3.tgz#4867900b11aef8a9a53833535530fa911264b762" - integrity sha512-43JytRKdqWu9LrRDAbVxyaDjmFWsjEwWfG3UdFl8lbdE/M/BCU/yZIYTq8B8Xavf6ryUhcFIjWbSEAEBdc0K2A== +"@togglecorp/toggle-form@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@togglecorp/toggle-form/-/toggle-form-2.0.4.tgz#2098ae24d6a37020d19a60162fff457e7a9eedf3" + integrity sha512-+EzRzXK/PKlisu44yARpxOkoeowz+0oKk2Rl3CdhxtBfTVfzG28aHAklDTubTBssS8hneGBTav2aInCqmwChfg== dependencies: - "@babel/runtime" "^7.19.0" - "@togglecorp/fujs" "^2.0.0" + "@babel/runtime-corejs3" "^7.22.3" + "@togglecorp/fujs" "^2.1.1" "@togglecorp/toggle-request@^1.0.0-beta.2": version "1.0.0-beta.2" @@ -1313,20 +1376,25 @@ "@turf/helpers" "^6.5.0" "@turf/meta" "^6.5.0" -"@types/estree@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" - integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== +"@types/argparse@1.0.38": + version "1.0.38" + resolved "https://registry.yarnpkg.com/@types/argparse/-/argparse-1.0.38.tgz#a81fd8606d481f873a3800c6ebae4f1d768a56a9" + integrity sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA== + +"@types/estree@1.0.5", "@types/estree@^1.0.0": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== "@types/file-saver@^2.0.5": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@types/file-saver/-/file-saver-2.0.5.tgz#9ee342a5d1314bb0928375424a2f162f97c310c7" - integrity sha512-zv9kNf3keYegP5oThGLaPk8E081DFDuwfqjtiTzm6PoxChdJ1raSuADf2YGCVIyrSynLrgc8JWv296s7Q7pQSQ== + version "2.0.7" + resolved "https://registry.yarnpkg.com/@types/file-saver/-/file-saver-2.0.7.tgz#8dbb2f24bdc7486c54aa854eb414940bbd056f7d" + integrity sha512-dNKVfHd/jk0SkR/exKGj2ggkB45MAkzvWCaqLUUgkyjITkGNzH8H+yUwr+BLJUBjZOe9w8X3wgmXhZDRg1ED6A== "@types/geojson@*": - version "7946.0.10" - resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.10.tgz#6dfbf5ea17142f7f9a043809f1cd4c448cb68249" - integrity sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA== + version "7946.0.13" + resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.13.tgz#e6e77ea9ecf36564980a861e24e62a095988775e" + integrity sha512-bmrNrgKMOhM3WsafmbGmC+6dsF2Z308vLFsQ3a/bT8X8Sv5clVYpPars/UPq+sAaJP+5OoLAYgwbkS5QEJdLUQ== "@types/html2canvas@^1.0.0": version "1.0.0" @@ -1336,9 +1404,9 @@ html2canvas "*" "@types/json-schema@^7.0.9": - version "7.0.12" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" - integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== "@types/json5@^0.0.29": version "0.0.29" @@ -1346,86 +1414,88 @@ integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== "@types/mapbox-gl@^1.13.0": - version "1.13.6" - resolved "https://registry.yarnpkg.com/@types/mapbox-gl/-/mapbox-gl-1.13.6.tgz#734088719cb43713758d94cd5f20815e1f4847be" - integrity sha512-CONmQCVgzLOseiDa0s8EXwgc3z9FQcc8U/KsIBiaNBY1sIxPen14k9z3eMeYgpx1vo7k0cq9xxxk3/xSZkW0TQ== + version "1.13.10" + resolved "https://registry.yarnpkg.com/@types/mapbox-gl/-/mapbox-gl-1.13.10.tgz#d1370a93ab52da239a88231ea896f42a75057377" + integrity sha512-0oUy5d5nT3L480MRviAnaBUEXuWCG/7M4ZQo0n8eJ/LLMgJ0nMbjv7M+qoPl4TAj6yVVWKTvkukXvW9QHH1GVw== dependencies: "@types/geojson" "*" "@types/minimist@^1.2.2": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" - integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== + version "1.2.5" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e" + integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== "@types/node@*", "@types/node@^20.1.3": - version "20.4.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.4.0.tgz#01d637d1891e419bc85763b46f42809cd2d5addb" - integrity sha512-jfT7iTf/4kOQ9S7CHV9BIyRaQqHu67mOjsIQBC3BKZvzvUB6zLxEwJ6sBE3ozcvP8kF6Uk5PXN0Q+c0dfhGX0g== + version "20.10.7" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.7.tgz#40fe8faf25418a75de9fe68a8775546732a3a901" + integrity sha512-fRbIKb8C/Y2lXxB5eVMj4IU7xpdox0Lh8bUPEdtLysaylsml1hOOx1+STloRs/B9nf7C6kPRmmg/V7aQW7usNg== + dependencies: + undici-types "~5.26.4" "@types/node@^14.0.1": - version "14.18.59" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.59.tgz#2b61a51d875e2a4deb0c6b498ff21a78e691edc6" - integrity sha512-NWJMpBL2Xs3MY93yrD6YrrTKep8eIA6iMnfG4oIc6LrTRlBZgiSCGiY3V/Owlp6umIBLyKb4F8Q7hxWatjYH5A== + version "14.18.63" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.63.tgz#1788fa8da838dbb5f9ea994b834278205db6ca2b" + integrity sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ== "@types/normalize-package-data@^2.4.0": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" - integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== + version "2.4.4" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" + integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== "@types/papaparse@^5.3.8": - version "5.3.8" - resolved "https://registry.yarnpkg.com/@types/papaparse/-/papaparse-5.3.8.tgz#6b4b5156183987b4d1816fec45bbc6aad40e337e" - integrity sha512-ArKIEOOWULbhi53wkAiRy1ze4wvrTfhpAj7Yfzva+EkmX2sV8PpFB+xqzJfzXNzK4me95FJH9QZt5NXFVGzOoQ== + version "5.3.14" + resolved "https://registry.yarnpkg.com/@types/papaparse/-/papaparse-5.3.14.tgz#345cc2a675a90106ff1dc33b95500dfb30748031" + integrity sha512-LxJ4iEFcpqc6METwp9f6BV6VVc43m6MfH0VqFosHvrUgfXiFe6ww7R3itkOQ+TCK6Y+Iv/+RnnvtRZnkc5Kc9g== dependencies: "@types/node" "*" "@types/prop-types@*": - version "15.7.5" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" - integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== + version "15.7.11" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.11.tgz#2596fb352ee96a1379c657734d4b913a613ad563" + integrity sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng== "@types/react-dom@^18.0.11": - version "18.2.6" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.6.tgz#ad621fa71a8db29af7c31b41b2ea3d8a6f4144d1" - integrity sha512-2et4PDvg6PVCyS7fuTc4gPoksV58bW0RwSxWKcPRcHZf0PRUGq03TKcD/rUHe3azfV6/5/biUBJw+HhCQjaP0A== + version "18.2.18" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.18.tgz#16946e6cd43971256d874bc3d0a72074bb8571dd" + integrity sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw== dependencies: "@types/react" "*" "@types/react@*", "@types/react@^18.0.28": - version "18.2.14" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.14.tgz#fa7a6fecf1ce35ca94e74874f70c56ce88f7a127" - integrity sha512-A0zjq+QN/O0Kpe30hA1GidzyFjatVvrpIvWLxD+xv67Vt91TWWgco9IvrJBkeyHm1trGaFS/FSGqPlhyeZRm0g== + version "18.2.47" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.47.tgz#85074b27ab563df01fbc3f68dc64bf7050b0af40" + integrity sha512-xquNkkOirwyCgoClNk85BjP+aqnIS+ckAJ8i37gAbDs14jfW/J23f2GItAf33oiUPQnqNMALiFeoM9Y5mbjpVQ== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" csstype "^3.0.2" "@types/sanitize-html@^2.9.0": - version "2.9.0" - resolved "https://registry.yarnpkg.com/@types/sanitize-html/-/sanitize-html-2.9.0.tgz#5b609f7592de22ef80a0930c39670329753dca1b" - integrity sha512-4fP/kEcKNj2u39IzrxWYuf/FnCCwwQCpif6wwY6ROUS1EPRIfWJjGkY3HIowY1EX/VbX5e86yq8AAE7UPMgATg== + version "2.9.5" + resolved "https://registry.yarnpkg.com/@types/sanitize-html/-/sanitize-html-2.9.5.tgz#e8b2214c8afc7bb88d62f9c3bbbc5b4ecc80a25d" + integrity sha512-2Sr1vd8Dw+ypsg/oDDfZ57OMSG2Befs+l2CMyCC5bVSK3CpE7lTB2aNlbbWzazgVA+Qqfuholwom6x/mWd1qmw== dependencies: htmlparser2 "^8.0.0" "@types/scheduler@*": - version "0.16.3" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5" - integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ== + version "0.16.8" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.8.tgz#ce5ace04cfeabe7ef87c0091e50752e36707deff" + integrity sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A== "@types/semver@^7.3.12": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" - integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== + version "7.5.6" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.6.tgz#c65b2bfce1bec346582c07724e3f8c1017a20339" + integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A== "@typescript-eslint/eslint-plugin@^5.59.5": - version "5.61.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.61.0.tgz#a1a5290cf33863b4db3fb79350b3c5275a7b1223" - integrity sha512-A5l/eUAug103qtkwccSCxn8ZRwT+7RXWkFECdA4Cvl1dOlDUgTpAOfSEElZn2uSUxhdDpnCdetrf0jvU4qrL+g== + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz#aeef0328d172b9e37d9bab6dbc13b87ed88977db" + integrity sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag== dependencies: "@eslint-community/regexpp" "^4.4.0" - "@typescript-eslint/scope-manager" "5.61.0" - "@typescript-eslint/type-utils" "5.61.0" - "@typescript-eslint/utils" "5.61.0" + "@typescript-eslint/scope-manager" "5.62.0" + "@typescript-eslint/type-utils" "5.62.0" + "@typescript-eslint/utils" "5.62.0" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.0" @@ -1434,73 +1504,78 @@ tsutils "^3.21.0" "@typescript-eslint/parser@^5.27.1", "@typescript-eslint/parser@^5.59.5": - version "5.61.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.61.0.tgz#7fbe3e2951904bb843f8932ebedd6e0635bffb70" - integrity sha512-yGr4Sgyh8uO6fSi9hw3jAFXNBHbCtKKFMdX2IkT3ZqpKmtAq3lHS4ixB/COFuAIJpwl9/AqF7j72ZDWYKmIfvg== + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.62.0.tgz#1b63d082d849a2fcae8a569248fbe2ee1b8a56c7" + integrity sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA== dependencies: - "@typescript-eslint/scope-manager" "5.61.0" - "@typescript-eslint/types" "5.61.0" - "@typescript-eslint/typescript-estree" "5.61.0" + "@typescript-eslint/scope-manager" "5.62.0" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/typescript-estree" "5.62.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.61.0": - version "5.61.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.61.0.tgz#b670006d069c9abe6415c41f754b1b5d949ef2b2" - integrity sha512-W8VoMjoSg7f7nqAROEmTt6LoBpn81AegP7uKhhW5KzYlehs8VV0ZW0fIDVbcZRcaP3aPSW+JZFua+ysQN+m/Nw== +"@typescript-eslint/scope-manager@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c" + integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w== dependencies: - "@typescript-eslint/types" "5.61.0" - "@typescript-eslint/visitor-keys" "5.61.0" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/visitor-keys" "5.62.0" -"@typescript-eslint/type-utils@5.61.0": - version "5.61.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.61.0.tgz#e90799eb2045c4435ea8378cb31cd8a9fddca47a" - integrity sha512-kk8u//r+oVK2Aj3ph/26XdH0pbAkC2RiSjUYhKD+PExemG4XSjpGFeyZ/QM8lBOa7O8aGOU+/yEbMJgQv/DnCg== +"@typescript-eslint/type-utils@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz#286f0389c41681376cdad96b309cedd17d70346a" + integrity sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew== dependencies: - "@typescript-eslint/typescript-estree" "5.61.0" - "@typescript-eslint/utils" "5.61.0" + "@typescript-eslint/typescript-estree" "5.62.0" + "@typescript-eslint/utils" "5.62.0" debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.61.0": - version "5.61.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.61.0.tgz#e99ff11b5792d791554abab0f0370936d8ca50c0" - integrity sha512-ldyueo58KjngXpzloHUog/h9REmHl59G1b3a5Sng1GfBo14BkS3ZbMEb3693gnP1k//97lh7bKsp6/V/0v1veQ== +"@typescript-eslint/types@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" + integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== -"@typescript-eslint/typescript-estree@5.61.0", "@typescript-eslint/typescript-estree@^5.27.1": - version "5.61.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.61.0.tgz#4c7caca84ce95bb41aa585d46a764bcc050b92f3" - integrity sha512-Fud90PxONnnLZ36oR5ClJBLTLfU4pIWBmnvGwTbEa2cXIqj70AEDEmOmpkFComjBZ/037ueKrOdHuYmSFVD7Rw== +"@typescript-eslint/typescript-estree@5.62.0", "@typescript-eslint/typescript-estree@^5.27.1": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b" + integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA== dependencies: - "@typescript-eslint/types" "5.61.0" - "@typescript-eslint/visitor-keys" "5.61.0" + "@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" -"@typescript-eslint/utils@5.61.0": - version "5.61.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.61.0.tgz#5064838a53e91c754fffbddd306adcca3fe0af36" - integrity sha512-mV6O+6VgQmVE6+xzlA91xifndPW9ElFW8vbSF0xCT/czPXVhwDewKila1jOyRwa9AE19zKnrr7Cg5S3pJVrTWQ== +"@typescript-eslint/utils@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86" + integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@types/json-schema" "^7.0.9" "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.61.0" - "@typescript-eslint/types" "5.61.0" - "@typescript-eslint/typescript-estree" "5.61.0" + "@typescript-eslint/scope-manager" "5.62.0" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/typescript-estree" "5.62.0" eslint-scope "^5.1.1" semver "^7.3.7" -"@typescript-eslint/visitor-keys@5.61.0": - version "5.61.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.61.0.tgz#c79414fa42158fd23bd2bb70952dc5cdbb298140" - integrity sha512-50XQ5VdbWrX06mQXhy93WywSFZZGsv3EOjq+lqp6WC2t+j3mb6A9xYVdrRxafvK88vg9k9u+CT4l6D8PEatjKg== +"@typescript-eslint/visitor-keys@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e" + integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw== dependencies: - "@typescript-eslint/types" "5.61.0" + "@typescript-eslint/types" "5.62.0" eslint-visitor-keys "^3.3.0" +"@ungap/structured-clone@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + "@vitejs/plugin-react-swc@^3.5.0": version "3.5.0" resolved "https://registry.yarnpkg.com/@vitejs/plugin-react-swc/-/plugin-react-swc-3.5.0.tgz#1fadff5148003e8091168c431e44c850f9a39e74" @@ -1508,49 +1583,111 @@ dependencies: "@swc/core" "^1.3.96" -"@vitest/expect@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-1.1.0.tgz#f58eef7de090ad65f30bb93ec54fa9f94c9d1d5d" - integrity sha512-9IE2WWkcJo2BR9eqtY5MIo3TPmS50Pnwpm66A6neb2hvk/QSLfPXBz2qdiwUOQkwyFuuXEUj5380CbwfzW4+/w== +"@vitest/expect@1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-1.1.3.tgz#9667719dffa82e7350dcca7b95f9ec30426d037e" + integrity sha512-MnJqsKc1Ko04lksF9XoRJza0bGGwTtqfbyrsYv5on4rcEkdo+QgUdITenBQBUltKzdxW7K3rWh+nXRULwsdaVg== dependencies: - "@vitest/spy" "1.1.0" - "@vitest/utils" "1.1.0" + "@vitest/spy" "1.1.3" + "@vitest/utils" "1.1.3" chai "^4.3.10" -"@vitest/runner@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-1.1.0.tgz#b3bf60f4a78f4324ca09811dd0f87b721a96b534" - integrity sha512-zdNLJ00pm5z/uhbWF6aeIJCGMSyTyWImy3Fcp9piRGvueERFlQFbUwCpzVce79OLm2UHk9iwaMSOaU9jVHgNVw== +"@vitest/runner@1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-1.1.3.tgz#c71e0ab6aad0a6a75c804e060c295852dc052beb" + integrity sha512-Va2XbWMnhSdDEh/OFxyUltgQuuDRxnarK1hW5QNN4URpQrqq6jtt8cfww/pQQ4i0LjoYxh/3bYWvDFlR9tU73g== dependencies: - "@vitest/utils" "1.1.0" + "@vitest/utils" "1.1.3" p-limit "^5.0.0" pathe "^1.1.1" -"@vitest/snapshot@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-1.1.0.tgz#b9924e4303382b43bb2c31061b173e69a6fb3437" - integrity sha512-5O/wyZg09V5qmNmAlUgCBqflvn2ylgsWJRRuPrnHEfDNT6tQpQ8O1isNGgo+VxofISHqz961SG3iVvt3SPK/QQ== +"@vitest/snapshot@1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-1.1.3.tgz#94f321f80c9fb9e10b83dabb83a0d09f034a74b0" + integrity sha512-U0r8pRXsLAdxSVAyGNcqOU2H3Z4Y2dAAGGelL50O0QRMdi1WWeYHdrH/QWpN1e8juWfVKsb8B+pyJwTC+4Gy9w== dependencies: magic-string "^0.30.5" pathe "^1.1.1" pretty-format "^29.7.0" -"@vitest/spy@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-1.1.0.tgz#7f40697e4fc217ac8c3cc89a865d1751b263f561" - integrity sha512-sNOVSU/GE+7+P76qYo+VXdXhXffzWZcYIPQfmkiRxaNCSPiLANvQx5Mx6ZURJ/ndtEkUJEpvKLXqAYTKEY+lTg== +"@vitest/spy@1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-1.1.3.tgz#244e4e049cd0a5b126a475af327df8b7ffa6b3b5" + integrity sha512-Ec0qWyGS5LhATFQtldvChPTAHv08yHIOZfiNcjwRQbFPHpkih0md9KAbs7TfeIfL7OFKoe7B/6ukBTqByubXkQ== dependencies: tinyspy "^2.2.0" -"@vitest/utils@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-1.1.0.tgz#d177a5f41bdb484bbb43c8d73a77ca782df068b5" - integrity sha512-z+s510fKmYz4Y41XhNs3vcuFTFhcij2YF7F8VQfMEYAAUfqQh0Zfg7+w9xdgFGhPf3tX3TicAe+8BDITk6ampQ== +"@vitest/utils@1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-1.1.3.tgz#1f82122f916b0b6feb5e85fc854cfa1fbd522b55" + integrity sha512-Dyt3UMcdElTll2H75vhxfpZu03uFpXRCHxWnzcrFjZxT1kTbq8ALUYIeBgGolo1gldVdI0YSlQRacsqxTwNqwg== dependencies: diff-sequences "^29.6.3" + estree-walker "^3.0.3" loupe "^2.3.7" pretty-format "^29.7.0" +"@volar/language-core@1.11.1", "@volar/language-core@~1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-1.11.1.tgz#ecdf12ea8dc35fb8549e517991abcbf449a5ad4f" + integrity sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw== + dependencies: + "@volar/source-map" "1.11.1" + +"@volar/source-map@1.11.1", "@volar/source-map@~1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-1.11.1.tgz#535b0328d9e2b7a91dff846cab4058e191f4452f" + integrity sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg== + dependencies: + muggle-string "^0.3.1" + +"@volar/typescript@~1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-1.11.1.tgz#ba86c6f326d88e249c7f5cfe4b765be3946fd627" + integrity sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ== + dependencies: + "@volar/language-core" "1.11.1" + path-browserify "^1.0.1" + +"@vue/compiler-core@3.4.5": + version "3.4.5" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.5.tgz#9565aebaadef8649eb7c8e150a5f4f4e2542667d" + integrity sha512-Daka7P1z2AgKjzuueWXhwzIsKu0NkLB6vGbNVEV2iJ8GJTrzraZo/Sk4GWCMRtd/qVi3zwnk+Owbd/xSZbwHtQ== + dependencies: + "@babel/parser" "^7.23.6" + "@vue/shared" "3.4.5" + entities "^4.5.0" + estree-walker "^2.0.2" + source-map-js "^1.0.2" + +"@vue/compiler-dom@^3.3.0": + version "3.4.5" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.5.tgz#c53c9d7715b777b1d6d2adcbc491bfd4f9510edd" + integrity sha512-J8YlxknJVd90SXFJ4HwGANSAXsx5I0lK30sO/zvYV7s5gXf7gZR7r/1BmZ2ju7RGH1lnc6bpBc6nL61yW+PsAQ== + dependencies: + "@vue/compiler-core" "3.4.5" + "@vue/shared" "3.4.5" + +"@vue/language-core@1.8.27", "@vue/language-core@^1.8.26": + version "1.8.27" + resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-1.8.27.tgz#2ca6892cb524e024a44e554e4c55d7a23e72263f" + integrity sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA== + dependencies: + "@volar/language-core" "~1.11.1" + "@volar/source-map" "~1.11.1" + "@vue/compiler-dom" "^3.3.0" + "@vue/shared" "^3.3.0" + computeds "^0.0.1" + minimatch "^9.0.3" + muggle-string "^0.3.1" + path-browserify "^1.0.1" + vue-template-compiler "^2.7.14" + +"@vue/shared@3.4.5", "@vue/shared@^3.3.0": + version "3.4.5" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.5.tgz#c8b4eb6399a7fc986565ea736d938b3a1579256d" + integrity sha512-6XptuzlMvN4l4cDnDw36pdGEV+9njYkQ1ZE0Q6iZLwrKefKaOJyiFmcP3/KBDHbt72cJZGtllAc1GaHe6XGAyg== + "@yarnpkg/lockfile@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" @@ -1579,7 +1716,7 @@ acorn-walk@^6.0.1: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== -acorn-walk@^8.3.0: +acorn-walk@^8.3.1: version "8.3.1" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.1.tgz#2f10f5b69329d90ae18c58bf1fa8fccd8b959a43" integrity sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw== @@ -1594,17 +1731,12 @@ acorn@^7.1.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.10.0: - version "8.11.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" - integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== - -acorn@^8.9.0: - version "8.10.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" - integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== +acorn@^8.10.0, acorn@^8.9.0: + version "8.11.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== -ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4: +ajv@^6.12.3, ajv@^6.12.4, ajv@~6.12.6: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -1697,7 +1829,7 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== -ansi-styles@^6.0.0, ansi-styles@^6.2.1: +ansi-styles@^6.0.0, ansi-styles@^6.1.0, ansi-styles@^6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== @@ -1760,6 +1892,13 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== +argparse@~1.0.9: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + aria-hidden@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/aria-hidden/-/aria-hidden-1.2.3.tgz#14aeb7fb692bbb72d69bebfa47279c1fd725e954" @@ -1767,7 +1906,7 @@ aria-hidden@^1.2.2: dependencies: tslib "^2.0.0" -aria-query@^5.1.3: +aria-query@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== @@ -1783,19 +1922,19 @@ array-buffer-byte-length@^1.0.0: is-array-buffer "^3.0.1" array-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" - integrity sha512-H3LU5RLiSsGXPhN+Nipar0iR0IofH+8r89G2y1tBKxQ/agagKyAjhkAFDRBfodP2caPrNKHpAWNIM/c9yeL7uA== + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.2.tgz#a8572e64e822358271250b9156d20d96ef5dec04" + integrity sha512-gUHx76KtnhEgB3HOuFYiCm3FIdEs6ocM2asHvNTkfu/Y09qQVrrVVaOKENmS2KkSaGoxgXNqC+ZVtR/n0MOkSA== -array-includes@^3.1.6: - version "3.1.6" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" - integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== +array-includes@^3.1.6, array-includes@^3.1.7: + version "3.1.7" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" + integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - get-intrinsic "^1.1.3" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" is-string "^1.0.7" array-union@^2.1.0: @@ -1803,36 +1942,60 @@ array-union@^2.1.0: resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array.prototype.flat@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" - integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== +array.prototype.findlastindex@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz#b37598438f97b579166940814e2c0493a4f50207" + integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" + get-intrinsic "^1.2.1" -array.prototype.flatmap@^1.2.1, array.prototype.flatmap@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" - integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== +array.prototype.flat@^1.3.1, array.prototype.flat@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" + integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +array.prototype.flatmap@^1.2.1, array.prototype.flatmap@^1.3.1, array.prototype.flatmap@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" + integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" array.prototype.tosorted@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz#ccf44738aa2b5ac56578ffda97c03fd3e23dd532" - integrity sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ== + version "1.1.2" + resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz#620eff7442503d66c799d95503f82b475745cefd" + integrity sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" - get-intrinsic "^1.1.3" + get-intrinsic "^1.2.1" + +arraybuffer.prototype.slice@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" + integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" + is-array-buffer "^3.0.2" + is-shared-array-buffer "^1.0.2" arrify@^1.0.1: version "1.0.1" @@ -1856,10 +2019,10 @@ assertion-error@^1.1.0: resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== -ast-types-flow@^0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" - integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag== +ast-types-flow@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.8.tgz#0a85e1c92695769ac13a428bb653e7538bea27d6" + integrity sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ== astral-regex@^2.0.0: version "2.0.0" @@ -1867,9 +2030,16 @@ astral-regex@^2.0.0: integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== async@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" - integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== + version "3.2.5" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" + integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== + +asynciterator.prototype@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz#8c5df0514936cdd133604dfcc9d3fb93f09b2b62" + integrity sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg== + dependencies: + has-symbols "^1.0.3" asynckit@^0.4.0: version "0.4.0" @@ -1881,14 +2051,14 @@ at-least-node@^1.0.0: resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -autoprefixer@^10.4.14: - version "10.4.14" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.14.tgz#e28d49902f8e759dd25b153264e862df2705f79d" - integrity sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ== +autoprefixer@^10.4.14, autoprefixer@^10.4.16: + version "10.4.16" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.16.tgz#fad1411024d8670880bdece3970aa72e3572feb8" + integrity sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ== dependencies: - browserslist "^4.21.5" - caniuse-lite "^1.0.30001464" - fraction.js "^4.2.0" + browserslist "^4.21.10" + caniuse-lite "^1.0.30001538" + fraction.js "^4.3.6" normalize-range "^0.1.2" picocolors "^1.0.0" postcss-value-parser "^4.2.0" @@ -1908,21 +2078,21 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3" integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== -axe-core@^4.6.2: - version "4.7.2" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.2.tgz#040a7342b20765cb18bb50b628394c21bccc17a0" - integrity sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g== +axe-core@=4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.0.tgz#34ba5a48a8b564f67e103f0aa5768d76e15bbbbf" + integrity sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ== axios@^1: - version "1.6.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.2.tgz#de67d42c755b571d3e698df1b6504cde9b0ee9f2" - integrity sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A== + version "1.6.5" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.5.tgz#2c090da14aeeab3770ad30c3a1461bc970fb0cd8" + integrity sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg== dependencies: - follow-redirects "^1.15.0" + follow-redirects "^1.15.4" form-data "^4.0.0" proxy-from-env "^1.1.0" -axobject-query@^3.1.1: +axobject-query@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.2.1.tgz#39c378a6e3b06ca679f29138151e45b2b32da62a" integrity sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg== @@ -2635,10 +2805,10 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -big-integer@^1.6.17, big-integer@^1.6.44: - version "1.6.51" - resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" - integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== +big-integer@^1.6.17: + version "1.6.52" + resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.52.tgz#60a887f3047614a8e1bffe5d7173490a97dc8c85" + integrity sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg== binary-extensions@^2.0.0: version "2.2.0" @@ -2674,13 +2844,6 @@ bluebird@~3.4.1: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" integrity sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA== -bplist-parser@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e" - integrity sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw== - dependencies: - big-integer "^1.6.44" - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -2708,15 +2871,15 @@ browser-process-hrtime@^1.0.0: resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -browserslist@^4.21.5, browserslist@^4.21.9: - version "4.21.9" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.9.tgz#e11bdd3c313d7e2a9e87e8b4b0c7872b13897635" - integrity sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg== +browserslist@^4.21.10, browserslist@^4.21.9, browserslist@^4.22.2: + version "4.22.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" + integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== dependencies: - caniuse-lite "^1.0.30001503" - electron-to-chromium "^1.4.431" - node-releases "^2.0.12" - update-browserslist-db "^1.0.11" + caniuse-lite "^1.0.30001565" + electron-to-chromium "^1.4.601" + node-releases "^2.0.14" + update-browserslist-db "^1.0.13" buffer-crc32@^0.2.1, buffer-crc32@^0.2.13: version "0.2.13" @@ -2741,32 +2904,19 @@ buffers@~0.1.1: resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" integrity sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ== -bundle-name@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-3.0.0.tgz#ba59bcc9ac785fb67ccdbf104a2bf60c099f0e1a" - integrity sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw== - dependencies: - run-applescript "^5.0.0" - -busboy@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" - integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== - dependencies: - streamsearch "^1.1.0" - cac@^6.7.14: version "6.7.14" resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== +call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" + integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" + function-bind "^1.1.2" + get-intrinsic "^1.2.1" + set-function-length "^1.1.1" callsites@^3.0.0: version "3.1.0" @@ -2788,10 +2938,10 @@ camelcase@^6.2.0, camelcase@^6.3.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.30001503: - version "1.0.30001512" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001512.tgz#7450843fb581c39f290305a83523c7a9ef0d4cb4" - integrity sha512-2S9nK0G/mE+jasCUsMPlARhRCts1ebcp2Ji8Y8PWi4NDE1iRdLCnEPHkEfeBrGC45L4isBx5ur3IQ6yTE2mRZw== +caniuse-lite@^1.0.30001538, caniuse-lite@^1.0.30001565: + version "1.0.30001576" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz#893be772cf8ee6056d6c1e2d07df365b9ec0a5c4" + integrity sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg== caseless@~0.12.0: version "0.12.0" @@ -2799,9 +2949,9 @@ caseless@~0.12.0: integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== chai@^4.3.10: - version "4.3.10" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.10.tgz#d784cec635e3b7e2ffb66446a63b4e33bd390384" - integrity sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g== + version "4.4.0" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.4.0.tgz#f9ac79f26726a867ac9d90a9b382120479d5f55b" + integrity sha512-x9cHNq1uvkCdU+5xTkNh5WtgD4e4yDFCsp9jVc7N7qVeKeftv3gO/ZrviX5d+3ZfxdYnZXZYujjRInu1RogU6A== dependencies: assertion-error "^1.1.0" check-error "^1.0.3" @@ -2829,7 +2979,7 @@ chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.4.2: +chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -2874,9 +3024,9 @@ chokidar@^3.5.1: fsevents "~2.3.2" ci-info@^3.7.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91" - integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== + version "3.9.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== clean-css@^5: version "5.3.3" @@ -2912,9 +3062,9 @@ cli-cursor@^4.0.0: restore-cursor "^4.0.0" cli-spinners@^2.5.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.0.tgz#5881d0ad96381e117bbe07ad91f2008fe6ffd8db" - integrity sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g== + version "2.9.2" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== cli-table3@^0.5.1: version "0.5.1" @@ -3005,6 +3155,11 @@ colors@1.4.0, colors@^1.1.2: resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== +colors@~1.2.1: + version "1.2.5" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.2.5.tgz#89c7ad9a374bc030df8013241f68136ed8835afc" + integrity sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg== + combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -3012,6 +3167,11 @@ combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" +commander@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== + commander@^8.0.0: version "8.3.0" resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" @@ -3027,6 +3187,11 @@ compress-commons@^4.1.2: normalize-path "^3.0.0" readable-stream "^3.6.0" +computeds@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/computeds/-/computeds-0.0.1.tgz#215b08a4ba3e08a11ff6eee5d6d8d7166a97ce2e" + integrity sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q== + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -3037,15 +3202,20 @@ confusing-browser-globals@^1.0.10: resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81" integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA== -convert-source-map@^1.5.1, convert-source-map@^1.7.0: +convert-source-map@^1.5.1: version "1.9.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + core-js-pure@^3.30.2: - version "3.31.1" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.31.1.tgz#73d154958881873bc19381df80bddb20c8d0cdb5" - integrity sha512-w+C62kvWti0EPs4KPMCMVv9DriHSXfQOCQ94bGGBiEW5rrbtt/Rz8n5Krhfw9cpFyzXBjf3DB3QnPdEzGDY4Fw== + version "3.35.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.35.0.tgz#4660033304a050215ae82e476bd2513a419fbb34" + integrity sha512-f+eRYmkou59uh7BPcyJ8MC76DiGhspj1KMxVIcF24tzP8NA9HVa1uC7BTW2tgx7E1QVCzDzsgp7kArrzhlz8Ew== core-js@^2.4.0, core-js@^2.5.0: version "2.6.12" @@ -3063,13 +3233,13 @@ core-util-is@~1.0.0: integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== cosmiconfig@^8.1.3, cosmiconfig@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.2.0.tgz#f7d17c56a590856cd1e7cee98734dca272b0d8fd" - integrity sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ== + version "8.3.6" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" + integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== dependencies: - import-fresh "^3.2.1" + import-fresh "^3.3.0" js-yaml "^4.1.0" - parse-json "^5.0.0" + parse-json "^5.2.0" path-type "^4.0.0" crc-32@^1.2.0: @@ -3094,7 +3264,7 @@ cross-spawn@^5.0.1: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -3121,10 +3291,10 @@ css-blank-pseudo@^5.0.2: dependencies: postcss-selector-parser "^6.0.10" -css-functions-list@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/css-functions-list/-/css-functions-list-3.1.0.tgz#cf5b09f835ad91a00e5959bcfc627cd498e1321b" - integrity sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w== +css-functions-list@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/css-functions-list/-/css-functions-list-3.2.1.tgz#2eb205d8ce9f9ce74c5c1d7490b66b77c45ce3ea" + integrity sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ== css-has-pseudo@^5.0.2: version "5.0.2" @@ -3166,9 +3336,9 @@ csscolorparser@~1.0.3: integrity sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w== cssdb@^7.6.0: - version "7.6.0" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.6.0.tgz#beac8f7a5f676db62d3c33da517ef4c9eb008f8b" - integrity sha512-Nna7rph8V0jC6+JBY4Vk4ndErUmfJfV6NJCaZdurL0omggabiy+QB2HCQtu5c/ACLZ0I7REv7A4QyPIoYzZx0w== + version "7.10.0" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.10.0.tgz#08816db7b793f088263e8f61dfe8d7f11a3459f2" + integrity sha512-yGZ5tmA57gWh/uvdQBHs45wwFY0IBh3ypABk5sEubPBPSzXzkNgsWReqx7gdx6uhC+QoFBe+V8JwBB9/hQ6cIA== cssesc@^3.0.0: version "3.0.0" @@ -3193,9 +3363,9 @@ cssstyle@^2.0.0: cssom "~0.3.6" csstype@^3.0.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" - integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== + version "3.1.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== d3-array@1: version "1.2.4" @@ -3231,9 +3401,14 @@ data-urls@^1.1.0: whatwg-url "^7.0.0" dayjs@^1.8.34: - version "1.11.9" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.9.tgz#9ca491933fadd0a60a2c19f6c237c03517d71d1a" - integrity sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA== + version "1.11.10" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.10.tgz#68acea85317a6e164457d6d6947564029a6a16a0" + integrity sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ== + +de-indent@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" + integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg== debug@^2.6.8, debug@^2.6.9: version "2.6.9" @@ -3249,7 +3424,7 @@ debug@^3.2.7: dependencies: ms "^2.1.1" -debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: +debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -3291,24 +3466,6 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== -default-browser-id@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-3.0.0.tgz#bee7bbbef1f4e75d31f98f4d3f1556a14cea790c" - integrity sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA== - dependencies: - bplist-parser "^0.2.0" - untildify "^4.0.0" - -default-browser@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-4.0.0.tgz#53c9894f8810bf86696de117a6ce9085a3cbc7da" - integrity sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA== - dependencies: - bundle-name "^3.0.0" - default-browser-id "^3.0.0" - execa "^7.1.1" - titleize "^3.0.0" - defaults@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" @@ -3316,28 +3473,33 @@ defaults@^1.0.3: dependencies: clone "^1.0.2" +define-data-property@^1.0.1, define-data-property@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" + integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== + dependencies: + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + define-lazy-prop@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== -define-lazy-prop@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" - integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== - -define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" - integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== +define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== dependencies: + define-data-property "^1.0.1" has-property-descriptors "^1.0.0" object-keys "^1.1.1" defu@^6.1.2: - version "6.1.2" - resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.2.tgz#1217cba167410a1765ba93893c6dbac9ed9d9e5c" - integrity sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ== + version "6.1.4" + resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.4.tgz#4e0c9cf9ff68fe5f3d7f2765cc1a012dfdcb0479" + integrity sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg== delayed-stream@~1.0.0: version "1.0.0" @@ -3433,12 +3595,12 @@ dot-case@^3.0.4: tslib "^2.0.3" dotenv-cli@^7.2.1: - version "7.2.1" - resolved "https://registry.yarnpkg.com/dotenv-cli/-/dotenv-cli-7.2.1.tgz#e595afd9ebfb721df9da809a435b9aa966c92062" - integrity sha512-ODHbGTskqRtXAzZapDPvgNuDVQApu4oKX8lZW7Y0+9hKA6le1ZJlyRS687oU9FXjOVEDU/VFV6zI125HzhM1UQ== + version "7.3.0" + resolved "https://registry.yarnpkg.com/dotenv-cli/-/dotenv-cli-7.3.0.tgz#21e33e7944713001677658d68856063968edfbd2" + integrity sha512-314CA4TyK34YEJ6ntBf80eUY+t1XaFLyem1k9P0sX1gn30qThZ5qZr/ZwE318gEnzyYP9yj9HJk6SqwE0upkfw== dependencies: cross-spawn "^7.0.3" - dotenv "^16.0.0" + dotenv "^16.3.0" dotenv-expand "^10.0.0" minimist "^1.2.6" @@ -3447,7 +3609,7 @@ dotenv-expand@^10.0.0: resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-10.0.0.tgz#12605d00fb0af6d0a592e6558585784032e4ef37" integrity sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A== -dotenv@^16.0.0: +dotenv@^16.3.0: version "16.3.1" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.3.1.tgz#369034de7d7e5b120972693352a3bf112172cc3e" integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ== @@ -3464,6 +3626,11 @@ earcut@^2.2.2: resolved "https://registry.yarnpkg.com/earcut/-/earcut-2.2.4.tgz#6d02fd4d68160c114825d06890a92ecaae60343a" integrity sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ== +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -3472,10 +3639,10 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" -electron-to-chromium@^1.4.431: - version "1.4.451" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.451.tgz#12b63ee5c82cbbc7b4ddd91e90f5a0dfc10de26e" - integrity sha512-YYbXHIBxAHe3KWvGOJOuWa6f3tgow44rBW+QAuwVp2DvGqNZeE//K2MowNdWS7XE8li5cgQDrX1LdBr41LufkA== +electron-to-chromium@^1.4.601: + version "1.4.623" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.623.tgz#0f7400114ac3425500e9244d2b0e9c3107c331cb" + integrity sha512-lKoz10iCYlP1WtRYdh5MvocQPWVRoI7ysp6qf18bmeBgR8abE6+I2CsfyNKztRDZvhdWc+krKT6wS7Neg8sw3A== emoji-regex@^10.3.0: version "10.3.0" @@ -3519,25 +3686,26 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.19.0, es-abstract@^1.20.4: - version "1.21.2" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" - integrity sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg== +es-abstract@^1.22.1: + version "1.22.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" + integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== dependencies: array-buffer-byte-length "^1.0.0" + arraybuffer.prototype.slice "^1.0.2" available-typed-arrays "^1.0.5" - call-bind "^1.0.2" + call-bind "^1.0.5" es-set-tostringtag "^2.0.1" es-to-primitive "^1.2.1" - function.prototype.name "^1.1.5" - get-intrinsic "^1.2.0" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.2" get-symbol-description "^1.0.0" globalthis "^1.0.3" gopd "^1.0.1" - has "^1.0.3" has-property-descriptors "^1.0.0" has-proto "^1.0.1" has-symbols "^1.0.3" + hasown "^2.0.0" internal-slot "^1.0.5" is-array-buffer "^3.0.2" is-callable "^1.2.7" @@ -3545,35 +3713,59 @@ es-abstract@^1.19.0, es-abstract@^1.20.4: is-regex "^1.1.4" is-shared-array-buffer "^1.0.2" is-string "^1.0.7" - is-typed-array "^1.1.10" + is-typed-array "^1.1.12" is-weakref "^1.0.2" - object-inspect "^1.12.3" + object-inspect "^1.13.1" object-keys "^1.1.1" object.assign "^4.1.4" - regexp.prototype.flags "^1.4.3" + regexp.prototype.flags "^1.5.1" + safe-array-concat "^1.0.1" safe-regex-test "^1.0.0" - string.prototype.trim "^1.2.7" - string.prototype.trimend "^1.0.6" - string.prototype.trimstart "^1.0.6" + string.prototype.trim "^1.2.8" + string.prototype.trimend "^1.0.7" + string.prototype.trimstart "^1.0.7" + typed-array-buffer "^1.0.0" + typed-array-byte-length "^1.0.0" + typed-array-byte-offset "^1.0.0" typed-array-length "^1.0.4" unbox-primitive "^1.0.2" - which-typed-array "^1.1.9" + which-typed-array "^1.1.13" + +es-iterator-helpers@^1.0.12, es-iterator-helpers@^1.0.15: + version "1.0.15" + resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz#bd81d275ac766431d19305923707c3efd9f1ae40" + integrity sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g== + dependencies: + asynciterator.prototype "^1.0.0" + call-bind "^1.0.2" + define-properties "^1.2.1" + es-abstract "^1.22.1" + es-set-tostringtag "^2.0.1" + function-bind "^1.1.1" + get-intrinsic "^1.2.1" + globalthis "^1.0.3" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.5" + iterator.prototype "^1.1.2" + safe-array-concat "^1.0.1" es-set-tostringtag@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" - integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== + version "2.0.2" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" + integrity sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q== dependencies: - get-intrinsic "^1.1.3" - has "^1.0.3" + get-intrinsic "^1.2.2" has-tostringtag "^1.0.0" + hasown "^2.0.0" es-shim-unscopables@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" - integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== + version "1.0.2" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" + integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== dependencies: - has "^1.0.3" + hasown "^2.0.0" es-to-primitive@^1.2.1: version "1.2.1" @@ -3585,33 +3777,33 @@ es-to-primitive@^1.2.1: is-symbol "^1.0.2" esbuild@^0.19.3: - version "0.19.10" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.10.tgz#55e83e4a6b702e3498b9f872d84bfb4ebcb6d16e" - integrity sha512-S1Y27QGt/snkNYrRcswgRFqZjaTG5a5xM3EQo97uNBnH505pdzSNe/HLBq1v0RO7iK/ngdbhJB6mDAp0OK+iUA== + version "0.19.11" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.11.tgz#4a02dca031e768b5556606e1b468fe72e3325d96" + integrity sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA== optionalDependencies: - "@esbuild/aix-ppc64" "0.19.10" - "@esbuild/android-arm" "0.19.10" - "@esbuild/android-arm64" "0.19.10" - "@esbuild/android-x64" "0.19.10" - "@esbuild/darwin-arm64" "0.19.10" - "@esbuild/darwin-x64" "0.19.10" - "@esbuild/freebsd-arm64" "0.19.10" - "@esbuild/freebsd-x64" "0.19.10" - "@esbuild/linux-arm" "0.19.10" - "@esbuild/linux-arm64" "0.19.10" - "@esbuild/linux-ia32" "0.19.10" - "@esbuild/linux-loong64" "0.19.10" - "@esbuild/linux-mips64el" "0.19.10" - "@esbuild/linux-ppc64" "0.19.10" - "@esbuild/linux-riscv64" "0.19.10" - "@esbuild/linux-s390x" "0.19.10" - "@esbuild/linux-x64" "0.19.10" - "@esbuild/netbsd-x64" "0.19.10" - "@esbuild/openbsd-x64" "0.19.10" - "@esbuild/sunos-x64" "0.19.10" - "@esbuild/win32-arm64" "0.19.10" - "@esbuild/win32-ia32" "0.19.10" - "@esbuild/win32-x64" "0.19.10" + "@esbuild/aix-ppc64" "0.19.11" + "@esbuild/android-arm" "0.19.11" + "@esbuild/android-arm64" "0.19.11" + "@esbuild/android-x64" "0.19.11" + "@esbuild/darwin-arm64" "0.19.11" + "@esbuild/darwin-x64" "0.19.11" + "@esbuild/freebsd-arm64" "0.19.11" + "@esbuild/freebsd-x64" "0.19.11" + "@esbuild/linux-arm" "0.19.11" + "@esbuild/linux-arm64" "0.19.11" + "@esbuild/linux-ia32" "0.19.11" + "@esbuild/linux-loong64" "0.19.11" + "@esbuild/linux-mips64el" "0.19.11" + "@esbuild/linux-ppc64" "0.19.11" + "@esbuild/linux-riscv64" "0.19.11" + "@esbuild/linux-s390x" "0.19.11" + "@esbuild/linux-x64" "0.19.11" + "@esbuild/netbsd-x64" "0.19.11" + "@esbuild/openbsd-x64" "0.19.11" + "@esbuild/sunos-x64" "0.19.11" + "@esbuild/win32-arm64" "0.19.11" + "@esbuild/win32-ia32" "0.19.11" + "@esbuild/win32-x64" "0.19.11" escalade@^3.1.1: version "3.1.1" @@ -3650,7 +3842,7 @@ eslint-config-airbnb-base@^15.0.0: object.entries "^1.1.5" semver "^6.3.0" -eslint-config-airbnb@^19.0.4: +eslint-config-airbnb@19.0.4, eslint-config-airbnb@^19.0.4: version "19.0.4" resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-19.0.4.tgz#84d4c3490ad70a0ffa571138ebcdea6ab085fdc3" integrity sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew== @@ -3659,80 +3851,86 @@ eslint-config-airbnb@^19.0.4: object.assign "^4.1.2" object.entries "^1.1.5" -eslint-import-resolver-node@^0.3.7: - version "0.3.7" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" - integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== +eslint-import-resolver-node@^0.3.9: + version "0.3.9" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" + integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== dependencies: debug "^3.2.7" - is-core-module "^2.11.0" - resolve "^1.22.1" + is-core-module "^2.13.0" + resolve "^1.22.4" eslint-import-resolver-typescript@^3.5.5: - version "3.5.5" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.5.tgz#0a9034ae7ed94b254a360fbea89187b60ea7456d" - integrity sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw== + version "3.6.1" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz#7b983680edd3f1c5bce1a5829ae0bc2d57fe9efa" + integrity sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg== dependencies: debug "^4.3.4" enhanced-resolve "^5.12.0" eslint-module-utils "^2.7.4" + fast-glob "^3.3.1" get-tsconfig "^4.5.0" - globby "^13.1.3" is-core-module "^2.11.0" is-glob "^4.0.3" - synckit "^0.8.5" -eslint-module-utils@^2.7.4: +eslint-module-utils@^2.7.4, eslint-module-utils@^2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== dependencies: debug "^3.2.7" -eslint-plugin-import@^2.27.5: - version "2.27.5" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65" - integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== +eslint-plugin-import-newlines@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/eslint-plugin-import-newlines/-/eslint-plugin-import-newlines-1.3.4.tgz#c3917ae478b1dcce2a920637eaa8af001b8e1477" + integrity sha512-Lmf/BbK+EQKUfjKPcZpslE/KTGYlgaI8ZJ/sYzdbb3BVTg5+GmLBLHBjsUKNEVRM1SEhDTF/didtOSYKi4tSnQ== + +eslint-plugin-import@^2.25.3, eslint-plugin-import@^2.27.5: + version "2.29.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643" + integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== dependencies: - array-includes "^3.1.6" - array.prototype.flat "^1.3.1" - array.prototype.flatmap "^1.3.1" + array-includes "^3.1.7" + array.prototype.findlastindex "^1.2.3" + array.prototype.flat "^1.3.2" + array.prototype.flatmap "^1.3.2" debug "^3.2.7" doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.7" - eslint-module-utils "^2.7.4" - has "^1.0.3" - is-core-module "^2.11.0" + eslint-import-resolver-node "^0.3.9" + eslint-module-utils "^2.8.0" + hasown "^2.0.0" + is-core-module "^2.13.1" is-glob "^4.0.3" minimatch "^3.1.2" - object.values "^1.1.6" - resolve "^1.22.1" - semver "^6.3.0" - tsconfig-paths "^3.14.1" - -eslint-plugin-jsx-a11y@^6.7.1: - version "6.7.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz#fca5e02d115f48c9a597a6894d5bcec2f7a76976" - integrity sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA== - dependencies: - "@babel/runtime" "^7.20.7" - aria-query "^5.1.3" - array-includes "^3.1.6" - array.prototype.flatmap "^1.3.1" - ast-types-flow "^0.0.7" - axe-core "^4.6.2" - axobject-query "^3.1.1" + object.fromentries "^2.0.7" + object.groupby "^1.0.1" + object.values "^1.1.7" + semver "^6.3.1" + tsconfig-paths "^3.15.0" + +eslint-plugin-jsx-a11y@^6.5.1, eslint-plugin-jsx-a11y@^6.7.1: + version "6.8.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz#2fa9c701d44fcd722b7c771ec322432857fcbad2" + integrity sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA== + dependencies: + "@babel/runtime" "^7.23.2" + aria-query "^5.3.0" + array-includes "^3.1.7" + array.prototype.flatmap "^1.3.2" + ast-types-flow "^0.0.8" + axe-core "=4.7.0" + axobject-query "^3.2.1" damerau-levenshtein "^1.0.8" emoji-regex "^9.2.2" - has "^1.0.3" - jsx-ast-utils "^3.3.3" - language-tags "=1.0.5" + es-iterator-helpers "^1.0.15" + hasown "^2.0.0" + jsx-ast-utils "^3.3.5" + language-tags "^1.0.9" minimatch "^3.1.2" - object.entries "^1.1.6" - object.fromentries "^2.0.6" - semver "^6.3.0" + object.entries "^1.1.7" + object.fromentries "^2.0.7" -eslint-plugin-react-hooks@^4.6.0: +eslint-plugin-react-hooks@^4.3.0, eslint-plugin-react-hooks@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== @@ -3742,15 +3940,16 @@ eslint-plugin-react-refresh@^0.3.4: resolved "https://registry.yarnpkg.com/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.3.5.tgz#0121e3f05f940250d3544bfaeff52e1c6adf4117" integrity sha512-61qNIsc7fo9Pp/mju0J83kzvLm0Bsayu7OQSLEoJxLDCBjIIyb87bkzufoOvdDxLkSlMfkF7UxomC4+eztUBSA== -eslint-plugin-react@^7.32.2: - version "7.32.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz#e71f21c7c265ebce01bcbc9d0955170c55571f10" - integrity sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg== +eslint-plugin-react@^7.28.0, eslint-plugin-react@^7.32.2: + version "7.33.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz#69ee09443ffc583927eafe86ffebb470ee737608" + integrity sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw== dependencies: array-includes "^3.1.6" array.prototype.flatmap "^1.3.1" array.prototype.tosorted "^1.1.1" doctrine "^2.1.0" + es-iterator-helpers "^1.0.12" estraverse "^5.3.0" jsx-ast-utils "^2.4.1 || ^3.0.0" minimatch "^3.1.2" @@ -3760,9 +3959,14 @@ eslint-plugin-react@^7.32.2: object.values "^1.1.6" prop-types "^15.8.1" resolve "^2.0.0-next.4" - semver "^6.3.0" + semver "^6.3.1" string.prototype.matchall "^4.0.8" +eslint-plugin-simple-import-sort@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-10.0.0.tgz#cc4ceaa81ba73252427062705b64321946f61351" + integrity sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw== + eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" @@ -3771,40 +3975,41 @@ eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-scope@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" - integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" - integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@^8.40.0: - version "8.44.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.44.0.tgz#51246e3889b259bbcd1d7d736a0c10add4f0e500" - integrity sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A== +eslint@^8.2.0, eslint@^8.40.0: + version "8.56.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15" + integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.4.0" - "@eslint/eslintrc" "^2.1.0" - "@eslint/js" "8.44.0" - "@humanwhocodes/config-array" "^0.11.10" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.56.0" + "@humanwhocodes/config-array" "^0.11.13" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" - ajv "^6.10.0" + "@ungap/structured-clone" "^1.2.0" + ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.3.2" doctrine "^3.0.0" escape-string-regexp "^4.0.0" - eslint-scope "^7.2.0" - eslint-visitor-keys "^3.4.1" - espree "^9.6.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -3814,7 +4019,6 @@ eslint@^8.40.0: globals "^13.19.0" graphemer "^1.4.0" ignore "^5.2.0" - import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" is-path-inside "^3.0.3" @@ -3826,13 +4030,12 @@ eslint@^8.40.0: natural-compare "^1.4.0" optionator "^0.9.3" strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" text-table "^0.2.0" -espree@^9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.0.tgz#80869754b1c6560f32e3b6929194a3fe07c5b82f" - integrity sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A== +espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== dependencies: acorn "^8.9.0" acorn-jsx "^5.3.2" @@ -3872,56 +4075,33 @@ estree-walker@^2.0.2: resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== +estree-walker@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" + integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== + dependencies: + "@types/estree" "^1.0.0" + esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== exceljs@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/exceljs/-/exceljs-4.3.0.tgz#939bc0d4c59c200acadb7051be34d25c109853c4" - integrity sha512-hTAeo5b5TPvf8Z02I2sKIT4kSfCnOO2bCxYX8ABqODCdAjppI3gI9VYiGCQQYVcBaBSKlFDMKlAQRqC+kV9O8w== + version "4.4.0" + resolved "https://registry.yarnpkg.com/exceljs/-/exceljs-4.4.0.tgz#cfb1cb8dcc82c760a9fc9faa9e52dadab66b0156" + integrity sha512-XctvKaEMaj1Ii9oDOqbW/6e1gXknSY4g/aLCDicOXqBE4M0nRWkUu0PTp++UPNzoFY12BNHMfs/VadKIS6llvg== dependencies: archiver "^5.0.0" dayjs "^1.8.34" fast-csv "^4.3.1" - jszip "^3.5.0" + jszip "^3.10.1" readable-stream "^3.6.0" saxes "^5.0.1" tmp "^0.2.0" unzipper "^0.10.11" uuid "^8.3.0" -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -execa@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-7.1.1.tgz#3eb3c83d239488e7b409d48e8813b76bb55c9c43" - integrity sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.1" - human-signals "^4.3.0" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^3.0.7" - strip-final-newline "^3.0.0" - execa@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c" @@ -3979,21 +4159,10 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^3.2.7, fast-glob@^3.2.9, fast-glob@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.0.tgz#7c40cb491e1e2ed5664749e87bfb516dbe8727c0" - integrity sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-glob@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" - integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== +fast-glob@^3.2.7, fast-glob@^3.2.9, fast-glob@^3.3.0, fast-glob@^3.3.1, fast-glob@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -4017,9 +4186,9 @@ fastest-levenshtein@^1.0.16: integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== fastq@^1.6.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" - integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + version "1.16.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.16.0.tgz#83b9a9375692db77a822df081edb6a9cf6839320" + integrity sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA== dependencies: reusify "^1.0.4" @@ -4037,6 +4206,13 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" +file-entry-cache@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-7.0.2.tgz#2d61bb70ba89b9548e3035b7c9173fe91deafff0" + integrity sha512-TfW7/1iI4Cy7Y8L6iqNdZQVvdXn0f8B4QcIXmkIbtTIe/Okm/nSlHb4IwGzRVOd3WfSieCgvf5cMzEfySAIl0g== + dependencies: + flat-cache "^3.2.0" + file-saver@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/file-saver/-/file-saver-2.0.5.tgz#d61cfe2ce059f414d899e9dd6d4107ee25670c38" @@ -4072,7 +4248,7 @@ find-yarn-workspace-root@^2.0.0: dependencies: micromatch "^4.0.2" -flat-cache@^3: +flat-cache@^3, flat-cache@^3.0.4, flat-cache@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== @@ -4081,19 +4257,6 @@ flat-cache@^3: keyv "^4.5.3" rimraf "^3.0.2" -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flatted@^3.1.0: - version "3.2.7" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" - integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== - flatted@^3.2.9: version "3.2.9" resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" @@ -4113,17 +4276,17 @@ flow-remove-types@2.156.0: pirates "^3.0.2" vlq "^0.2.1" -focus-lock@^0.11.6: - version "0.11.6" - resolved "https://registry.yarnpkg.com/focus-lock/-/focus-lock-0.11.6.tgz#e8821e21d218f03e100f7dc27b733f9c4f61e683" - integrity sha512-KSuV3ur4gf2KqMNoZx3nXNVhqCkn42GuTYCX4tXPEwf0MjpFQmNMiN6m7dXaUXgIoivL6/65agoUMg4RLS0Vbg== +focus-lock@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/focus-lock/-/focus-lock-1.0.0.tgz#2c50d8ce59d3d6608cda2672be9e65812459206c" + integrity sha512-a8Ge6cdKh9za/GZR/qtigTAk7SrGore56EFcoMshClsh7FLk1zwszc/ltuMfKhx56qeuyL/jWQ4J4axou0iJ9w== dependencies: tslib "^2.0.3" -follow-redirects@^1.15.0: - version "1.15.2" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" - integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== +follow-redirects@^1.15.4: + version "1.15.4" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.4.tgz#cdc7d308bf6493126b17ea2191ea0ccf3e535adf" + integrity sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw== for-each@^0.3.3: version "0.3.3" @@ -4132,6 +4295,14 @@ for-each@^0.3.3: dependencies: is-callable "^1.1.3" +foreground-child@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" + integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" @@ -4155,10 +4326,10 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" -fraction.js@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950" - integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== +fraction.js@^4.3.6: + version "4.3.7" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" + integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== fs-constants@^1.0.0: version "1.0.0" @@ -4166,9 +4337,9 @@ fs-constants@^1.0.0: integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== fs-extra@^11.1.0: - version "11.1.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d" - integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== + version "11.2.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b" + integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== dependencies: graceful-fs "^4.2.0" jsonfile "^6.0.1" @@ -4184,17 +4355,21 @@ fs-extra@^9.0.0: jsonfile "^6.0.1" universalify "^2.0.0" +fs-extra@~7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -fsevents@~2.3.3: +fsevents@~2.3.2, fsevents@~2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== @@ -4209,22 +4384,22 @@ fstream@>=1.0.12, fstream@^1.0.12: mkdirp ">=0.5 0" rimraf "2" -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.1, function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -function.prototype.name@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" - integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== +function.prototype.name@^1.1.5, function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - functions-have-names "^1.2.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" -functions-have-names@^1.2.2, functions-have-names@^1.2.3: +functions-have-names@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== @@ -4254,32 +4429,27 @@ get-east-asian-width@^1.0.0: resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz#5e6ebd9baee6fb8b7b6bd505221065f0cd91f64e" integrity sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA== -get-func-name@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" - integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== - get-func-name@^2.0.1, get-func-name@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" - integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" + integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== dependencies: - function-bind "^1.1.1" - has "^1.0.3" + function-bind "^1.1.2" has-proto "^1.0.1" has-symbols "^1.0.3" + hasown "^2.0.0" get-nonce@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/get-nonce/-/get-nonce-1.0.1.tgz#fdf3f0278073820d2ce9426c18f07481b1e0cdf3" integrity sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q== -get-stream@^6.0.0, get-stream@^6.0.1: +get-stream@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== @@ -4298,9 +4468,9 @@ get-symbol-description@^1.0.0: get-intrinsic "^1.1.1" get-tsconfig@^4.5.0: - version "4.6.2" - resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.6.2.tgz#831879a5e6c2aa24fe79b60340e2233a1e0f472e" - integrity sha512-E5XrT4CbbXcXWy+1jChlZmrmCwd5KGx502kDCXJJ7y898TtWW9FwoG5HfOLVRKmlmDGkWN2HM9Ho+/Y8F0sJDg== + version "4.7.2" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.2.tgz#0dcd6fb330391d46332f4c6c1bf89a6514c2ddce" + integrity sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A== dependencies: resolve-pkg-maps "^1.0.0" @@ -4330,6 +4500,17 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" +glob@^10.3.10: + version "10.3.10" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" + integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== + dependencies: + foreground-child "^3.1.0" + jackspeak "^2.3.5" + minimatch "^9.0.1" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-scurry "^1.10.1" + glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.3: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" @@ -4364,9 +4545,9 @@ globals@^11.1.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.19.0: - version "13.20.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" - integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== + version "13.24.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== dependencies: type-fest "^0.20.2" @@ -4394,17 +4575,6 @@ globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -globby@^13.1.3: - version "13.2.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-13.2.2.tgz#63b90b1bf68619c2135475cbd4e71e66aa090592" - integrity sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w== - dependencies: - dir-glob "^3.0.1" - fast-glob "^3.3.0" - ignore "^5.2.4" - merge2 "^1.4.1" - slash "^4.0.0" - globjoin@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43" @@ -4490,11 +4660,11 @@ has-flag@^4.0.0: integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340" + integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== dependencies: - get-intrinsic "^1.1.1" + get-intrinsic "^1.2.2" has-proto@^1.0.1: version "1.0.1" @@ -4513,18 +4683,23 @@ has-tostringtag@^1.0.0: dependencies: has-symbols "^1.0.2" -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== +hasown@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" + integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== dependencies: - function-bind "^1.1.1" + function-bind "^1.1.2" hat@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/hat/-/hat-0.0.3.tgz#bb014a9e64b3788aed8005917413d4ff3d502d8a" integrity sha512-zpImx2GoKXy42fVDSEad2BPKuSQdLcqsCYa48K3zHSzM/ugWuYjLDr8IXxpVuL7uCLHw56eaiLxCRthhOzf5ug== +he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + hoist-non-react-statics@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" @@ -4596,16 +4771,6 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -human-signals@^4.3.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" - integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== - human-signals@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" @@ -4631,16 +4796,16 @@ ieee754@^1.1.12, ieee754@^1.1.13: integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== ignore@^5.2.0, ignore@^5.2.4: - version "5.2.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" - integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== + version "5.3.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" + integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== immediate@~3.0.5: version "3.0.6" resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ== -import-fresh@^3.0.0, import-fresh@^3.2.1: +import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -4648,7 +4813,7 @@ import-fresh@^3.0.0, import-fresh@^3.2.1: parent-module "^1.0.0" resolve-from "^4.0.0" -import-lazy@^4.0.0: +import-lazy@^4.0.0, import-lazy@~4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== @@ -4700,13 +4865,13 @@ inquirer@^6.2.2: strip-ansi "^5.1.0" through "^2.3.6" -internal-slot@^1.0.3, internal-slot@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" - integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== +internal-slot@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" + integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== dependencies: - get-intrinsic "^1.2.0" - has "^1.0.3" + get-intrinsic "^1.2.2" + hasown "^2.0.0" side-channel "^1.0.4" invariant@^2.2.2, invariant@^2.2.4: @@ -4735,6 +4900,13 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== +is-async-function@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646" + integrity sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA== + dependencies: + has-tostringtag "^1.0.0" + is-bigint@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" @@ -4762,14 +4934,14 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.11.0, is-core-module@^2.5.0, is-core-module@^2.9.0: - version "2.12.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" - integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== +is-core-module@^2.1.0, is-core-module@^2.11.0, is-core-module@^2.13.0, is-core-module@^2.13.1, is-core-module@^2.5.0: + version "2.13.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== dependencies: - has "^1.0.3" + hasown "^2.0.0" -is-date-object@^1.0.1: +is-date-object@^1.0.1, is-date-object@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== @@ -4781,11 +4953,6 @@ is-docker@^2.0.0, is-docker@^2.1.1: resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== -is-docker@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" - integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== - is-domain@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/is-domain/-/is-domain-0.0.1.tgz#7ffb288d5cced6b07c4f2df91c9be9153511348e" @@ -4796,6 +4963,13 @@ is-extglob@^2.1.1: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== +is-finalizationregistry@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz#c8749b65f17c133313e661b1289b95ad3dbd62e6" + integrity sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw== + dependencies: + call-bind "^1.0.2" + is-finite@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" @@ -4823,6 +4997,13 @@ is-fullwidth-code-point@^5.0.0: dependencies: get-east-asian-width "^1.0.0" +is-generator-function@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" @@ -4830,18 +5011,16 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" -is-inside-container@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" - integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== - dependencies: - is-docker "^3.0.0" - is-interactive@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== +is-map@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" + integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== + is-negative-zero@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" @@ -4882,6 +5061,11 @@ is-regex@^1.1.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" +is-set@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" + integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== + is-shared-array-buffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" @@ -4889,11 +5073,6 @@ is-shared-array-buffer@^1.0.2: dependencies: call-bind "^1.0.2" -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - is-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" @@ -4913,16 +5092,12 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typed-array@^1.1.10, is-typed-array@^1.1.9: - version "1.1.10" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" - integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== +is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: + version "1.1.12" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" + integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" + which-typed-array "^1.1.11" is-typedarray@~1.0.0: version "1.0.0" @@ -4934,6 +5109,11 @@ is-unicode-supported@^0.1.0: resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== +is-weakmap@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" + integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== + is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" @@ -4941,6 +5121,14 @@ is-weakref@^1.0.2: dependencies: call-bind "^1.0.2" +is-weakset@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" + integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + is-wsl@^2.1.1, is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" @@ -4948,6 +5136,11 @@ is-wsl@^2.1.1, is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -4963,11 +5156,36 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== +iterator.prototype@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.2.tgz#5e29c8924f01916cb9335f1ff80619dcff22b0c0" + integrity sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w== + dependencies: + define-properties "^1.2.1" + get-intrinsic "^1.2.1" + has-symbols "^1.0.3" + reflect.getprototypeof "^1.0.4" + set-function-name "^2.0.1" + +jackspeak@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" + integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + jiti@^1.20.0: version "1.21.0" resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== +jju@~1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/jju/-/jju-1.4.0.tgz#a3abe2718af241a2b2904f84a625970f389ae32a" + integrity sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA== + "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -5067,6 +5285,16 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== +json-stable-stringify@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.1.0.tgz#43d39c7c8da34bfaf785a61a56808b0def9f747d" + integrity sha512-zfA+5SuwYN2VWqN1/5HZaDzQKLJHaBVMZIIM+wuYjdptkaQsqzDdqjqf+lZZJUuJq1aanHiY8LhH8LmH+qBYJA== + dependencies: + call-bind "^1.0.5" + isarray "^2.0.5" + jsonify "^0.0.1" + object-keys "^1.1.1" + json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -5084,7 +5312,7 @@ json5@^1.0.2: dependencies: minimist "^1.2.0" -json5@^2.2.0, json5@^2.2.2: +json5@^2.2.0, json5@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== @@ -5094,6 +5322,13 @@ jsonc-parser@^3.2.0: resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + optionalDependencies: + graceful-fs "^4.1.6" + jsonfile@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" @@ -5103,6 +5338,11 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" +jsonify@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.1.tgz#2aa3111dae3d34a0f151c63f3a45d995d9420978" + integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== + jsprim@^1.2.2: version "1.4.2" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" @@ -5113,17 +5353,17 @@ jsprim@^1.2.2: json-schema "0.4.0" verror "1.10.0" -"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.3: - version "3.3.4" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.4.tgz#b896535fed5b867650acce5a9bd4135ffc7b3bf9" - integrity sha512-fX2TVdCViod6HwKEtSWGHs57oFhVfCMwieb9PuRDgjDPh5XeqJiHFFFJCHxU5cnTc3Bu/GRL+kPiFmw8XWOfKw== +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.5: + version "3.3.5" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz#4766bd05a8e2a11af222becd19e15575e52a853a" + integrity sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ== dependencies: array-includes "^3.1.6" array.prototype.flat "^1.3.1" object.assign "^4.1.4" object.values "^1.1.6" -jszip@^3.5.0: +jszip@^3.10.1: version "3.10.1" resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.10.1.tgz#34aee70eb18ea1faec2f589208a157d1feb091c2" integrity sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g== @@ -5162,22 +5402,27 @@ kleur@^4.1.5: resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== -known-css-properties@^0.27.0: - version "0.27.0" - resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.27.0.tgz#82a9358dda5fe7f7bd12b5e7142c0a205393c0c5" - integrity sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg== +known-css-properties@^0.29.0: + version "0.29.0" + resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.29.0.tgz#e8ba024fb03886f23cb882e806929f32d814158f" + integrity sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ== -language-subtag-registry@~0.3.2: +kolorist@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/kolorist/-/kolorist-1.8.0.tgz#edddbbbc7894bc13302cdf740af6374d4a04743c" + integrity sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ== + +language-subtag-registry@^0.3.20: version "0.3.22" resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d" integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w== -language-tags@=1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" - integrity sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ== +language-tags@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.9.tgz#1ffdcd0ec0fafb4b1be7f8b11f306ad0f9c08777" + integrity sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA== dependencies: - language-subtag-registry "~0.3.2" + language-subtag-registry "^0.3.20" lazystream@^1.0.0: version "1.0.1" @@ -5266,6 +5511,11 @@ lodash.flatten@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g== +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== + lodash.groupby@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.groupby/-/lodash.groupby-4.6.0.tgz#0b08a1dcf68397c397855c3239783832df7403d1" @@ -5331,7 +5581,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== -lodash@^4.17.10, lodash@^4.17.12, lodash@^4.17.19, lodash@^4.17.4: +lodash@^4.17.10, lodash@^4.17.12, lodash@^4.17.19, lodash@^4.17.4, lodash@~4.17.15: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -5362,14 +5612,7 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" -loupe@^2.3.6: - version "2.3.6" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.6.tgz#76e4af498103c532d1ecc9be102036a21f787b53" - integrity sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA== - dependencies: - get-func-name "^2.0.0" - -loupe@^2.3.7: +loupe@^2.3.6, loupe@^2.3.7: version "2.3.7" resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697" integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== @@ -5405,7 +5648,12 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -magic-string@^0.30.5: +"lru-cache@^9.1.1 || ^10.0.0": + version "10.1.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484" + integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag== + +magic-string@^0.30.2, magic-string@^0.30.5: version "0.30.5" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9" integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA== @@ -5542,6 +5790,13 @@ minimatch@^5.1.0: dependencies: brace-expansion "^2.0.1" +minimatch@^9.0.1, minimatch@^9.0.3: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + minimist-options@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" @@ -5561,6 +5816,11 @@ minimist@^1.2.0, minimist@^1.2.6: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": + version "7.0.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" + integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== + "mkdirp@>=0.5 0", mkdirp@^0.5.1: version "0.5.6" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" @@ -5568,17 +5828,7 @@ minimist@^1.2.0, minimist@^1.2.6: dependencies: minimist "^1.2.6" -mlly@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.4.0.tgz#830c10d63f1f97bd8785377b24dc2a15d972832b" - integrity sha512-ua8PAThnTwpprIaU47EPeZ/bPUVp2QYBbWMphUQpVdBI3Lgqzm5KZQ45Agm3YJedHXaIHl6pBGabaLSUPPSptg== - dependencies: - acorn "^8.9.0" - pathe "^1.1.1" - pkg-types "^1.0.3" - ufo "^1.1.2" - -mlly@^1.4.2: +mlly@^1.2.0, mlly@^1.4.2: version "1.4.2" resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.4.2.tgz#7cf406aa319ff6563d25da6b36610a93f2a8007e" integrity sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg== @@ -5608,6 +5858,11 @@ ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +muggle-string@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/muggle-string/-/muggle-string-0.3.1.tgz#e524312eb1728c63dd0b2ac49e3282e6ed85963a" + integrity sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg== + murmurhash-js@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/murmurhash-js/-/murmurhash-js-1.0.0.tgz#b06278e21fc6c37fa5313732b0412bcb6ae15f51" @@ -5623,11 +5878,6 @@ mute-stream@~0.0.4: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -nanoid@^3.3.6: - version "3.3.6" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" - integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== - nanoid@^3.3.7: version "3.3.7" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" @@ -5661,10 +5911,10 @@ node-modules-regexp@^1.0.0: resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" integrity sha512-JMaRS9L4wSRIR+6PTVEikTrq/lMGEZR43a48ETeilY0Q0iMwVnccMFrUM1k+tNzmYuIU0Vh710bCUqHX+/+ctQ== -node-releases@^2.0.12: - version "2.0.12" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.12.tgz#35627cc224a23bfb06fb3380f2b3afaaa7eb1039" - integrity sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ== +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== normalize-package-data@^2.5.0: version "2.5.0" @@ -5704,9 +5954,9 @@ npm-run-path@^4.0.1: path-key "^3.0.0" npm-run-path@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" - integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== + version "5.2.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.2.0.tgz#224cdd22c755560253dd71b83a1ef2f758b2e955" + integrity sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg== dependencies: path-key "^4.0.0" @@ -5725,10 +5975,10 @@ object-assign@^4.1.0, object-assign@^4.1.1: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.12.3, object-inspect@^1.9.0: - version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== +object-inspect@^1.13.1, object-inspect@^1.9.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" + integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== object-keys@^1.1.1: version "1.1.1" @@ -5736,49 +5986,59 @@ object-keys@^1.1.1: integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object.assign@^4.1.2, object.assign@^4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" - integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + version "4.1.5" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" + call-bind "^1.0.5" + define-properties "^1.2.1" has-symbols "^1.0.3" object-keys "^1.1.1" -object.entries@^1.1.5, object.entries@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.6.tgz#9737d0e5b8291edd340a3e3264bb8a3b00d5fa23" - integrity sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w== +object.entries@^1.1.5, object.entries@^1.1.6, object.entries@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.7.tgz#2b47760e2a2e3a752f39dd874655c61a7f03c131" + integrity sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" -object.fromentries@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73" - integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg== +object.fromentries@^2.0.6, object.fromentries@^2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" + integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +object.groupby@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.1.tgz#d41d9f3c8d6c778d9cbac86b4ee9f5af103152ee" + integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" object.hasown@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.2.tgz#f919e21fad4eb38a57bc6345b3afd496515c3f92" - integrity sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw== + version "1.1.3" + resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.3.tgz#6a5f2897bb4d3668b8e79364f98ccf971bda55ae" + integrity sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA== dependencies: - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" -object.values@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" - integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== +object.values@^1.1.6, object.values@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" + integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" once@^1.3.0, once@^1.4.0: version "1.4.0" @@ -5794,7 +6054,7 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" -onetime@^5.1.0, onetime@^5.1.2: +onetime@^5.1.0: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== @@ -5825,26 +6085,16 @@ open@^8.4.0: is-docker "^2.1.1" is-wsl "^2.2.0" -open@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/open/-/open-9.1.0.tgz#684934359c90ad25742f5a26151970ff8c6c80b6" - integrity sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg== - dependencies: - default-browser "^4.0.0" - define-lazy-prop "^3.0.0" - is-inside-container "^1.0.0" - is-wsl "^2.2.0" - -openapi-typescript@^6.5.5: - version "6.5.5" - resolved "https://registry.yarnpkg.com/openapi-typescript/-/openapi-typescript-6.5.5.tgz#5f30dbc60e9137e61e729e14121ac774727423fd" - integrity sha512-pMsA8GrMQKtNOPPjKnJbDotA2UpKsIcTHecMw2Bl3M/2eWTVs8zAYBm/cgaE9Qz5GrcVCDIru9GQX/P9vxtUFg== +openapi-typescript@^6.7.3: + version "6.7.3" + resolved "https://registry.yarnpkg.com/openapi-typescript/-/openapi-typescript-6.7.3.tgz#7fe131a28551c8996e4a680e4698d0e1206635ba" + integrity sha512-es3mGcDXV6TKPo6n3aohzHm0qxhLyR39MhF6mkD1FwFGjhxnqMqfSIgM0eCpInZvqatve4CxmXcMZw3jnnsaXw== dependencies: ansi-colors "^4.1.3" - fast-glob "^3.3.1" + fast-glob "^3.3.2" js-yaml "^4.1.0" supports-color "^9.4.0" - undici "^5.23.0" + undici "^5.28.2" yargs-parser "^21.1.1" option-t@^20.0.0: @@ -5979,9 +6229,29 @@ parse5@5.1.0: integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== patch-package@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-7.0.0.tgz#5c646b6b4b4bf37e5184a6950777b21dea6bb66e" - integrity sha512-eYunHbnnB2ghjTNc5iL1Uo7TsGMuXk0vibX3RFcE/CdVdXzmdbMsG/4K4IgoSuIkLTI5oHrMQk4+NkFqSed0BQ== + version "7.0.2" + resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-7.0.2.tgz#c01589bb6964854b5210506a5845d47900641f5a" + integrity sha512-PMYfL8LXxGIRmxXLqlEaBxzKPu7/SdP13ld6GSfAUJUZRmBDPp8chZs0dpzaAFn9TSPnFiMwkC6PJt6pBiAl8Q== + dependencies: + "@yarnpkg/lockfile" "^1.1.0" + chalk "^4.1.2" + ci-info "^3.7.0" + cross-spawn "^7.0.3" + find-yarn-workspace-root "^2.0.0" + fs-extra "^9.0.0" + klaw-sync "^6.0.0" + minimist "^1.2.6" + open "^7.4.2" + rimraf "^2.6.3" + semver "^7.5.3" + slash "^2.0.0" + tmp "^0.0.33" + yaml "^2.2.2" + +patch-package@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-8.0.0.tgz#d191e2f1b6e06a4624a0116bcb88edd6714ede61" + integrity sha512-da8BVIhzjtgScwDJ2TtKsfT5JFWz1hYoBl9rUQ1f38MC2HwnEIkK8VN3dKMKcP7P7bvvgzNDbfNHtx3MsQb5vA== dependencies: "@yarnpkg/lockfile" "^1.1.0" chalk "^4.1.2" @@ -5989,15 +6259,21 @@ patch-package@^7.0.0: cross-spawn "^7.0.3" find-yarn-workspace-root "^2.0.0" fs-extra "^9.0.0" + json-stable-stringify "^1.0.2" klaw-sync "^6.0.0" minimist "^1.2.6" open "^7.4.2" rimraf "^2.6.3" - semver "^5.6.0" + semver "^7.5.3" slash "^2.0.0" tmp "^0.0.33" yaml "^2.2.2" +path-browserify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" + integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== + path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" @@ -6018,11 +6294,19 @@ path-key@^4.0.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== -path-parse@^1.0.7: +path-parse@^1.0.6, path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-scurry@^1.10.1: + version "1.10.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" + integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== + dependencies: + lru-cache "^9.1.1 || ^10.0.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" @@ -6115,9 +6399,9 @@ postcss-color-functional-notation@^5.1.0: postcss-value-parser "^4.2.0" postcss-color-hex-alpha@^9.0.2: - version "9.0.2" - resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-9.0.2.tgz#6d3ed50342802469880981a1999515d003ff7d79" - integrity sha512-SfPjgr//VQ/DOCf80STIAsdAs7sbIbxATvVmd+Ec7JvR8onz9pjawhq3BJM3Pie40EE3TyB0P6hft16D33Nlyg== + version "9.0.3" + resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-9.0.3.tgz#b7f0d3829218608c0d219e25aa06b1216393c69e" + integrity sha512-7sEHU4tAS6htlxun8AB9LDrCXoljxaC34tFVRlYKcvO+18r5fvGiXgv5bQzN40+4gXLCyWSMRK5FK31244WcCA== dependencies: postcss-value-parser "^4.2.0" @@ -6139,23 +6423,23 @@ postcss-custom-media@^9.1.5: "@csstools/media-query-list-parser" "^2.1.1" postcss-custom-properties@^13.2.0: - version "13.2.1" - resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-13.2.1.tgz#82452ea09b796bf0271cc945badcca18ef59df1c" - integrity sha512-Z8UmzwVkRh8aITyeZoZnT4McSSPmS2EFl+OyPspfvx7v+N36V2UseMAODp3oBriZvcf/tQpzag9165x/VcC3kg== + version "13.3.4" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-13.3.4.tgz#0ad5be700b692e0288ce3b2b406eac964244f197" + integrity sha512-9YN0gg9sG3OH+Z9xBrp2PWRb+O4msw+5Sbp3ZgqrblrwKspXVQe5zr5sVqi43gJGwW/Rv1A483PRQUzQOEewvA== dependencies: - "@csstools/cascade-layer-name-parser" "^1.0.3" - "@csstools/css-parser-algorithms" "^2.3.0" - "@csstools/css-tokenizer" "^2.1.1" + "@csstools/cascade-layer-name-parser" "^1.0.7" + "@csstools/css-parser-algorithms" "^2.5.0" + "@csstools/css-tokenizer" "^2.2.3" postcss-value-parser "^4.2.0" postcss-custom-selectors@^7.1.3: - version "7.1.4" - resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-7.1.4.tgz#5980972353119af0d9725bdcccad46be8cfc9011" - integrity sha512-TU2xyUUBTlpiLnwyE2ZYMUIYB41MKMkBZ8X8ntkqRDQ8sdBLhFFsPgNcOliBd5+/zcK51C9hRnSE7hKUJMxQSw== + version "7.1.6" + resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-7.1.6.tgz#6d28812998dcd48f61a6a538141fc16cf2c42123" + integrity sha512-svsjWRaxqL3vAzv71dV0/65P24/FB8TbPX+lWyyf9SZ7aZm4S4NhCn7N3Bg+Z5sZunG3FS8xQ80LrCU9hb37cw== dependencies: - "@csstools/cascade-layer-name-parser" "^1.0.3" - "@csstools/css-parser-algorithms" "^2.3.0" - "@csstools/css-tokenizer" "^2.1.1" + "@csstools/cascade-layer-name-parser" "^1.0.5" + "@csstools/css-parser-algorithms" "^2.3.2" + "@csstools/css-tokenizer" "^2.2.1" postcss-selector-parser "^6.0.13" postcss-dir-pseudo-class@^7.0.2: @@ -6366,9 +6650,9 @@ postcss-selector-not@^7.0.1: postcss-selector-parser "^6.0.10" postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.13: - version "6.0.13" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" - integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== + version "6.0.15" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz#11cc2b21eebc0b99ea374ffb9887174855a01535" + integrity sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" @@ -6394,19 +6678,10 @@ postcss@^7.0.0, postcss@^7.0.2: picocolors "^0.2.1" source-map "^0.6.1" -postcss@^8.3.0, postcss@^8.3.11, postcss@^8.4.24: - version "8.4.25" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.25.tgz#4a133f5e379eda7f61e906c3b1aaa9b81292726f" - integrity sha512-7taJ/8t2av0Z+sQEvNzCkpDynl0tX3uJMCODi6nT3PfASC7dYCWV9aQ+uiCf+KBD4SEFcu+GvJdGdwzQ6OSjCw== - dependencies: - nanoid "^3.3.6" - picocolors "^1.0.0" - source-map-js "^1.0.2" - -postcss@^8.4.32: - version "8.4.32" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.32.tgz#1dac6ac51ab19adb21b8b34fd2d93a86440ef6c9" - integrity sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw== +postcss@^8.3.0, postcss@^8.3.11, postcss@^8.4.28, postcss@^8.4.32: + version "8.4.33" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.33.tgz#1378e859c9f69bf6f638b990a0212f43e2aaa742" + integrity sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg== dependencies: nanoid "^3.3.7" picocolors "^1.0.0" @@ -6491,9 +6766,9 @@ psl@^1.1.28: integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== punycode@^2.1.0, punycode@^2.1.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" - integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== qs@~6.5.2: version "6.5.3" @@ -6531,21 +6806,21 @@ react-dom@^18.2.0: scheduler "^0.23.0" react-focus-lock@^2.9.4: - version "2.9.4" - resolved "https://registry.yarnpkg.com/react-focus-lock/-/react-focus-lock-2.9.4.tgz#4753f6dcd167c39050c9d84f9c63c71b3ff8462e" - integrity sha512-7pEdXyMseqm3kVjhdVH18sovparAzLg5h6WvIx7/Ck3ekjhrrDMEegHSa3swwC8wgfdd7DIdUVRGeiHT9/7Sgg== + version "2.9.6" + resolved "https://registry.yarnpkg.com/react-focus-lock/-/react-focus-lock-2.9.6.tgz#cad168a150fdd72d5ab2419ba8e62780788011b1" + integrity sha512-B7gYnCjHNrNYwY2juS71dHbf0+UpXXojt02svxybj8N5bxceAkzPChKEncHuratjUHkIFNCn06k2qj1DRlzTug== dependencies: "@babel/runtime" "^7.0.0" - focus-lock "^0.11.6" + focus-lock "^1.0.0" prop-types "^15.6.2" react-clientside-effect "^1.2.6" use-callback-ref "^1.3.0" use-sidecar "^1.1.2" -react-focus-on@^3.8.1: - version "3.9.0" - resolved "https://registry.yarnpkg.com/react-focus-on/-/react-focus-on-3.9.0.tgz#0e1b7ea898365f1e7b63455c869153426725a9db" - integrity sha512-4HA8zeMgK5hzR7ffXr/ser3cY3XJBIU1Z8eZI9r3lunMDxIZ5/m9Q2YaHq1I0NFzev1nFsMERZX/JovTYk+GtQ== +react-focus-on@^3.8.1, react-focus-on@^3.9.1: + version "3.9.1" + resolved "https://registry.yarnpkg.com/react-focus-on/-/react-focus-on-3.9.1.tgz#449a34ebb487c458d9d5526a74214c408544cfec" + integrity sha512-IYo2j4mgNpZEJNv+/XzZs3S3xhJbR+AFop092h4OMW7sbFpIMVWxp/Z61V/gfpsgOi7VnoSFXP2bfOWWkjjtOw== dependencies: aria-hidden "^1.2.2" react-focus-lock "^2.9.4" @@ -6574,9 +6849,9 @@ react-remove-scroll-bar@^2.3.4: tslib "^2.0.0" react-remove-scroll@^2.5.6: - version "2.5.6" - resolved "https://registry.yarnpkg.com/react-remove-scroll/-/react-remove-scroll-2.5.6.tgz#7510b8079e9c7eebe00e65a33daaa3aa29a10336" - integrity sha512-bO856ad1uDYLefgArk559IzUNeQ6SWH4QnrevIUjH+GczV56giDfl3h0Idptf2oIKxQmd1p9BN25jleKodTALg== + version "2.5.7" + resolved "https://registry.yarnpkg.com/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz#15a1fd038e8497f65a695bf26a4a57970cac1ccb" + integrity sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA== dependencies: react-remove-scroll-bar "^2.3.4" react-style-singleton "^2.2.1" @@ -6585,19 +6860,19 @@ react-remove-scroll@^2.5.6: use-sidecar "^1.1.2" react-router-dom@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.18.0.tgz#0a50c167209d6e7bd2ed9de200a6579ea4fb1dca" - integrity sha512-Ubrue4+Ercc/BoDkFQfc6og5zRQ4A8YxSO3Knsne+eRbZ+IepAsK249XBH/XaFuOYOYr3L3r13CXTLvYt5JDjw== + version "6.21.1" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.21.1.tgz#58b459d2fe1841388c95bb068f85128c45e27349" + integrity sha512-QCNrtjtDPwHDO+AO21MJd7yIcr41UetYt5jzaB9Y1UYaPTCnVuJq6S748g1dE11OQlCFIQg+RtAA1SEZIyiBeA== dependencies: - "@remix-run/router" "1.11.0" - react-router "6.18.0" + "@remix-run/router" "1.14.1" + react-router "6.21.1" -react-router@6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.18.0.tgz#32e2bedc318e095a48763b5ed7758e54034cd36a" - integrity sha512-vk2y7Dsy8wI02eRRaRmOs9g2o+aE72YCx5q9VasT1N9v+lrdB79tIqrjMfByHiY5+6aYkH2rUa5X839nwWGPDg== +react-router@6.21.1: + version "6.21.1" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.21.1.tgz#8db7ee8d7cfc36513c9a66b44e0897208c33be34" + integrity sha512-W0l13YlMTm1YrpVIOpjCADJqEUpz1vm+CMo47RuFX4Ftegwm6KOYsL5G3eiE52jnJpKvzm6uB/vTKTPKM8dmkA== dependencies: - "@remix-run/router" "1.11.0" + "@remix-run/router" "1.14.1" react-style-singleton@^2.2.0, react-style-singleton@^2.2.1: version "2.2.1" @@ -6704,6 +6979,18 @@ redent@^4.0.0: indent-string "^5.0.0" strip-indent "^4.0.0" +reflect.getprototypeof@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz#aaccbf41aca3821b87bb71d9dcbc7ad0ba50a3f3" + integrity sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" + globalthis "^1.0.3" + which-builtin-type "^1.1.3" + regenerate@^1.2.1: version "1.4.2" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" @@ -6714,15 +7001,10 @@ regenerator-runtime@^0.11.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== -regenerator-runtime@^0.13.11: - version "0.13.11" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" - integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== - regenerator-runtime@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" - integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== regenerator-transform@^0.10.0: version "0.10.1" @@ -6733,14 +7015,14 @@ regenerator-transform@^0.10.0: babel-types "^6.19.0" private "^0.1.6" -regexp.prototype.flags@^1.4.3: - version "1.5.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" - integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== +regexp.prototype.flags@^1.5.0, regexp.prototype.flags@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" + integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== dependencies: call-bind "^1.0.2" define-properties "^1.2.0" - functions-have-names "^1.2.3" + set-function-name "^2.0.0" regexpu-core@^2.0.0: version "2.0.0" @@ -6844,24 +7126,32 @@ resolve-protobuf-schema@^2.1.0: dependencies: protocol-buffers-schema "^3.3.1" -resolve@^1.10.0, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.22.1: - version "1.22.2" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" - integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== +resolve@^1.10.0, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.22.4, resolve@~1.22.1: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== dependencies: - is-core-module "^2.11.0" + is-core-module "^2.13.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" resolve@^2.0.0-next.4: - version "2.0.0-next.4" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" - integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== + version "2.0.0-next.5" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.5.tgz#6b0ec3107e671e52b68cd068ef327173b90dc03c" + integrity sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA== dependencies: - is-core-module "^2.9.0" + is-core-module "^2.13.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +resolve@~1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" + integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== + dependencies: + is-core-module "^2.1.0" + path-parse "^1.0.6" + restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" @@ -6906,9 +7196,9 @@ rimraf@^3.0.0, rimraf@^3.0.2: glob "^7.1.3" rollup-plugin-visualizer@^5.9.0: - version "5.9.2" - resolved "https://registry.yarnpkg.com/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.9.2.tgz#f1aa2d9b1be8ebd6869223c742324897464d8891" - integrity sha512-waHktD5mlWrYFrhOLbti4YgQCn1uR24nYsNuXxg7LkPH8KdTXVWR9DNY1WU0QqokyMixVXJS4J04HNrVTMP01A== + version "5.12.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.12.0.tgz#661542191ce78ee4f378995297260d0c1efb1302" + integrity sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ== dependencies: open "^8.4.0" picomatch "^2.3.1" @@ -6916,32 +7206,27 @@ rollup-plugin-visualizer@^5.9.0: yargs "^17.5.1" rollup@^4.2.0: - version "4.9.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.9.1.tgz#351d6c03e4e6bcd7a0339df3618d2aeeb108b507" - integrity sha512-pgPO9DWzLoW/vIhlSoDByCzcpX92bKEorbgXuZrqxByte3JFk2xSW2JEeAcyLc9Ru9pqcNNW+Ob7ntsk2oT/Xw== + version "4.9.4" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.9.4.tgz#37bc0c09ae6b4538a9c974f4d045bb64b2e7c27c" + integrity sha512-2ztU7pY/lrQyXSCnnoU4ICjT/tCG9cdH3/G25ERqE3Lst6vl2BCM5hL2Nw+sslAvAf+ccKsAq1SkKQALyqhR7g== + dependencies: + "@types/estree" "1.0.5" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.9.1" - "@rollup/rollup-android-arm64" "4.9.1" - "@rollup/rollup-darwin-arm64" "4.9.1" - "@rollup/rollup-darwin-x64" "4.9.1" - "@rollup/rollup-linux-arm-gnueabihf" "4.9.1" - "@rollup/rollup-linux-arm64-gnu" "4.9.1" - "@rollup/rollup-linux-arm64-musl" "4.9.1" - "@rollup/rollup-linux-riscv64-gnu" "4.9.1" - "@rollup/rollup-linux-x64-gnu" "4.9.1" - "@rollup/rollup-linux-x64-musl" "4.9.1" - "@rollup/rollup-win32-arm64-msvc" "4.9.1" - "@rollup/rollup-win32-ia32-msvc" "4.9.1" - "@rollup/rollup-win32-x64-msvc" "4.9.1" + "@rollup/rollup-android-arm-eabi" "4.9.4" + "@rollup/rollup-android-arm64" "4.9.4" + "@rollup/rollup-darwin-arm64" "4.9.4" + "@rollup/rollup-darwin-x64" "4.9.4" + "@rollup/rollup-linux-arm-gnueabihf" "4.9.4" + "@rollup/rollup-linux-arm64-gnu" "4.9.4" + "@rollup/rollup-linux-arm64-musl" "4.9.4" + "@rollup/rollup-linux-riscv64-gnu" "4.9.4" + "@rollup/rollup-linux-x64-gnu" "4.9.4" + "@rollup/rollup-linux-x64-musl" "4.9.4" + "@rollup/rollup-win32-arm64-msvc" "4.9.4" + "@rollup/rollup-win32-ia32-msvc" "4.9.4" + "@rollup/rollup-win32-x64-msvc" "4.9.4" fsevents "~2.3.2" -run-applescript@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-5.0.0.tgz#e11e1c932e055d5c6b40d98374e0268d9b11899c" - integrity sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg== - dependencies: - execa "^5.0.0" - run-async@^2.2.0: version "2.4.1" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" @@ -6971,6 +7256,16 @@ rxjs@^6.4.0: dependencies: tslib "^1.9.0" +safe-array-concat@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" + integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + has-symbols "^1.0.3" + isarray "^2.0.5" + safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" @@ -6995,7 +7290,7 @@ safe-regex-test@^1.0.0: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sanitize-html@^2.10.0: +sanitize-html@^2.10.0, sanitize-html@^2.11.0: version "2.11.0" resolved "https://registry.yarnpkg.com/sanitize-html/-/sanitize-html-2.11.0.tgz#9a6434ee8fcaeddc740d8ae7cd5dd71d3981f8f6" integrity sha512-BG68EDHRaGKqlsNjJ2xUB7gpInPA8gVx/mvjO743hZaeMCZ2DwzW7xvsqZ+KNU4QKwj86HJ3uu2liISf2qBBUA== @@ -7033,28 +7328,42 @@ scheduler@^0.23.0: dependencies: loose-envify "^1.1.0" -"semver@2 || 3 || 4 || 5", semver@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +"semver@2 || 3 || 4 || 5": + version "5.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@^6.3.1: +semver@^6.3.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.4, semver@^7.3.7, semver@^7.5.0: - version "7.5.3" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.3.tgz#161ce8c2c6b4b3bdca6caadc9fa3317a4c4fe88e" - integrity sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ== +semver@^7.3.4, semver@^7.3.7, semver@^7.5.0, semver@^7.5.3, semver@^7.5.4, semver@~7.5.4: + version "7.5.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== dependencies: lru-cache "^6.0.0" +set-function-length@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" + integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== + dependencies: + define-data-property "^1.1.1" + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + +set-function-name@^2.0.0, set-function-name@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" + integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== + dependencies: + define-data-property "^1.0.1" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.0" + setimmediate@^1.0.5, setimmediate@~1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" @@ -7098,25 +7407,20 @@ siginfo@^2.0.0: resolved "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30" integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g== -signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: +signal-exit@^3.0.2: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -signal-exit@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.0.2.tgz#ff55bb1d9ff2114c13b400688fa544ac63c36967" - integrity sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q== - -signal-exit@^4.1.0: +signal-exit@^4.0.1, signal-exit@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== -simple-git@^3.18.0: - version "3.19.1" - resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-3.19.1.tgz#ff9c021961a3d876a1b115b1893bed9a28855d30" - integrity sha512-Ck+rcjVaE1HotraRAS8u/+xgTvToTuoMkT9/l9lvuP5jftwnYUp6DwuJzsKErHgfyRk8IB8pqGHWEbM3tLgV1w== +simple-git@^3.7.1: + version "3.22.0" + resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-3.22.0.tgz#616d41c661e30f9c65778956317d422b1729a242" + integrity sha512-6JujwSs0ac82jkGjMHiCnTifvf1crOiY/+tfs/Pqih6iow7VrpNKRRNdWm6RtaXpvvv/JGNYhlUtLhGFqHF+Yw== dependencies: "@kwsites/file-exists" "^1.1.1" "@kwsites/promise-deferred" "^1.1.1" @@ -7137,11 +7441,6 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -slash@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" - integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== - slice-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" @@ -7224,9 +7523,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.13" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz#7189a474c46f8d47c7b0da4b987bb45e908bd2d5" - integrity sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w== + version "3.0.16" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz#a14f64e0954f6e25cc6587bd4f392522db0d998f" + integrity sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw== split@0.3.1: version "0.3.1" @@ -7235,10 +7534,15 @@ split@0.3.1: dependencies: through "2" +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + sshpk@^1.7.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" - integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== + version "1.18.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.18.0.tgz#1663e55cddf4d688b86a46b77f0d5fe363aba028" + integrity sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ== dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -7265,16 +7569,25 @@ stealthy-require@^1.1.1: resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" integrity sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g== -streamsearch@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" - integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== +string-argv@~0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" + integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== string-template@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/string-template/-/string-template-1.0.0.tgz#9e9f2233dc00f218718ec379a28a5673ecca8b96" integrity sha512-SLqR3GBUXuoPP5MmYtD7ompvXiG87QjT6lzOszyXjTM86Uu7At7vNnt2xgyTLq5o9T4IxTYFyGxcULqpsmsfdg== +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + string-width@^2.1.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" @@ -7283,14 +7596,14 @@ string-width@^2.1.0, string-width@^2.1.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" string-width@^7.0.0: version "7.0.0" @@ -7302,45 +7615,46 @@ string-width@^7.0.0: strip-ansi "^7.1.0" string.prototype.matchall@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" - integrity sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg== + version "4.0.10" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz#a1553eb532221d4180c51581d6072cd65d1ee100" + integrity sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - get-intrinsic "^1.1.3" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" has-symbols "^1.0.3" - internal-slot "^1.0.3" - regexp.prototype.flags "^1.4.3" + internal-slot "^1.0.5" + regexp.prototype.flags "^1.5.0" + set-function-name "^2.0.0" side-channel "^1.0.4" -string.prototype.trim@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" - integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== +string.prototype.trim@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" + integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" -string.prototype.trimend@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" - integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== +string.prototype.trimend@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" + integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" -string.prototype.trimstart@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" - integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== +string.prototype.trimstart@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" + integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" string_decoder@^1.1.1: version "1.3.0" @@ -7356,6 +7670,13 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-ansi@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" @@ -7377,14 +7698,7 @@ strip-ansi@^5.1.0: dependencies: ansi-regex "^4.1.0" -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^7.1.0: +strip-ansi@^7.0.1, strip-ansi@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== @@ -7396,11 +7710,6 @@ strip-bom@^3.0.0: resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - strip-final-newline@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" @@ -7413,7 +7722,7 @@ strip-indent@^4.0.0: dependencies: min-indent "^1.0.1" -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@^3.1.1, strip-json-comments@~3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -7473,23 +7782,23 @@ stylelint-value-no-unknown-custom-properties@^4.0.0: resolve "^1.22.0" stylelint@^15.6.1: - version "15.10.1" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-15.10.1.tgz#93f189958687e330c106b010cbec0c41dcae506d" - integrity sha512-CYkzYrCFfA/gnOR+u9kJ1PpzwG10WLVnoxHDuBA/JiwGqdM9+yx9+ou6SE/y9YHtfv1mcLo06fdadHTOx4gBZQ== + version "15.11.0" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-15.11.0.tgz#3ff8466f5f5c47362bc7c8c9d382741c58bc3292" + integrity sha512-78O4c6IswZ9TzpcIiQJIN49K3qNoXTM8zEJzhaTE/xRTCZswaovSEVIa/uwbOltZrk16X4jAxjaOhzz/hTm1Kw== dependencies: - "@csstools/css-parser-algorithms" "^2.3.0" - "@csstools/css-tokenizer" "^2.1.1" - "@csstools/media-query-list-parser" "^2.1.2" + "@csstools/css-parser-algorithms" "^2.3.1" + "@csstools/css-tokenizer" "^2.2.0" + "@csstools/media-query-list-parser" "^2.1.4" "@csstools/selector-specificity" "^3.0.0" balanced-match "^2.0.0" colord "^2.9.3" cosmiconfig "^8.2.0" - css-functions-list "^3.1.0" + css-functions-list "^3.2.1" css-tree "^2.3.1" debug "^4.3.4" - fast-glob "^3.3.0" + fast-glob "^3.3.1" fastest-levenshtein "^1.0.16" - file-entry-cache "^6.0.1" + file-entry-cache "^7.0.0" global-modules "^2.0.0" globby "^11.1.0" globjoin "^0.1.4" @@ -7498,13 +7807,13 @@ stylelint@^15.6.1: import-lazy "^4.0.0" imurmurhash "^0.1.4" is-plain-object "^5.0.0" - known-css-properties "^0.27.0" + known-css-properties "^0.29.0" mathml-tag-names "^2.1.3" meow "^10.1.5" micromatch "^4.0.5" normalize-path "^3.0.0" picocolors "^1.0.0" - postcss "^8.4.24" + postcss "^8.4.28" postcss-resolve-nested-selector "^0.1.1" postcss-safe-parser "^6.0.0" postcss-selector-parser "^6.0.13" @@ -7612,14 +7921,6 @@ symbol-tree@^3.2.2: resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== -synckit@^0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.5.tgz#b7f4358f9bb559437f9f167eb6bc46b3c9818fa3" - integrity sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q== - dependencies: - "@pkgr/utils" "^2.3.1" - tslib "^2.5.0" - table@^6.8.1: version "6.8.1" resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" @@ -7693,10 +7994,10 @@ tinybench@^2.5.1: resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.5.1.tgz#3408f6552125e53a5a48adee31261686fd71587e" integrity sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg== -tinymce@^6.3.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/tinymce/-/tinymce-6.5.1.tgz#f228bf2dc1abf28565523f359b849dad1706357d" - integrity sha512-J67fxJiX3tjvVqer1dg1+cOxMeE2P55ESGhaakvqGPbAUU45HnCMLSioaOsxV1KfcXustw9WJo0rtn1SNQlVKQ== +"tinymce@^6.0.0 || ^5.5.1": + version "6.8.2" + resolved "https://registry.yarnpkg.com/tinymce/-/tinymce-6.8.2.tgz#567b1a0d922555b535de4c74b7c74af6964016ea" + integrity sha512-Lho79o2Y1Yn+XdlTEkHTEkEmzwYWTXz7IUsvPwxJF3VTtgHUIAAuBab29kik+f2KED3rZvQavr9D7sHVMJ9x4A== tinypool@^0.8.1: version "0.8.1" @@ -7713,11 +8014,6 @@ tinyspy@^2.2.0: resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-2.2.0.tgz#9dc04b072746520b432f77ea2c2d17933de5d6ce" integrity sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg== -titleize@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/titleize/-/titleize-3.0.0.tgz#71c12eb7fdd2558aa8a44b0be83b8a76694acd53" - integrity sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ== - tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -7779,9 +8075,9 @@ tr46@^1.0.1: integrity sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ== traverse@~0.6.6: - version "0.6.7" - resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.7.tgz#46961cd2d57dd8706c36664acde06a248f1173fe" - integrity sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg== + version "0.6.8" + resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.8.tgz#5e5e0c41878b57e4b73ad2f3d1e36a715ea4ab15" + integrity sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA== trim-newlines@^4.0.2: version "4.1.1" @@ -7794,14 +8090,14 @@ trim-right@^1.0.1: integrity sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw== tsconfck@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/tsconfck/-/tsconfck-2.1.1.tgz#9b51603d2712d1f4740fa14748ca886a2e1893e5" - integrity sha512-ZPCkJBKASZBmBUNqGHmRhdhM8pJYDdOXp4nRgj/O0JwUwsMq50lCDRQP/M5GBNAA0elPrq4gAeu4dkaVCuKWww== + version "2.1.2" + resolved "https://registry.yarnpkg.com/tsconfck/-/tsconfck-2.1.2.tgz#f667035874fa41d908c1fe4d765345fcb1df6e35" + integrity sha512-ghqN1b0puy3MhhviwO2kGF8SeMDNhEbnKxjK7h6+fvY9JAxqvXi8y5NAHSQv687OVboS2uZIByzGd45/YxrRHg== -tsconfig-paths@^3.14.1: - version "3.14.2" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" - integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== +tsconfig-paths@^3.15.0: + version "3.15.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" + integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== dependencies: "@types/json5" "^0.0.29" json5 "^1.0.2" @@ -7813,10 +8109,10 @@ tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.5.0, tslib@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.0.tgz#b295854684dbda164e181d259a22cd779dcd7bc3" - integrity sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA== +tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== tsutils@^3.21.0: version "3.21.0" @@ -7891,6 +8187,36 @@ type-fest@^3.0.0: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.13.1.tgz#bb744c1f0678bea7543a2d1ec24e83e68e8c8706" integrity sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g== +typed-array-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" + integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + is-typed-array "^1.1.10" + +typed-array-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" + integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" + integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + typed-array-length@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" @@ -7900,21 +8226,16 @@ typed-array-length@^1.0.4: for-each "^0.3.3" is-typed-array "^1.1.9" +typescript@5.3.3, typescript@^5.0.4, typescript@^5.2.2: + version "5.3.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" + integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== + typescript@^4.3.5: version "4.9.5" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== -typescript@^5.0.4: - version "5.1.6" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.6.tgz#02f8ac202b6dad2c0dd5e0913745b47a37998274" - integrity sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA== - -ufo@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.1.2.tgz#d0d9e0fa09dece0c31ffd57bd363f030a35cfe76" - integrity sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ== - ufo@^1.3.0: version "1.3.2" resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.3.2.tgz#c7d719d0628a1c80c006d2240e0d169f6e3c0496" @@ -7940,17 +8261,22 @@ unconfig@^0.3.11: jiti "^1.20.0" mlly "^1.4.2" -undici@^5.23.0: - version "5.23.0" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.23.0.tgz#e7bdb0ed42cebe7b7aca87ced53e6eaafb8f8ca0" - integrity sha512-1D7w+fvRsqlQ9GscLBwcAJinqcZGHUKjbOmXdlE/v8BvEGXjeWAax+341q44EuTcHXXnfyKNbKRq4Lg7OzhMmg== +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +undici@^5.28.2: + version "5.28.2" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.2.tgz#fea200eac65fc7ecaff80a023d1a0543423b4c91" + integrity sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w== dependencies: - busboy "^1.6.0" + "@fastify/busboy" "^2.0.0" -unimported@^1.28.0: - version "1.29.2" - resolved "https://registry.yarnpkg.com/unimported/-/unimported-1.29.2.tgz#70c15ddacb8022ec84c92e45c0b38e546fadcca9" - integrity sha512-wJFzlt0X86Xgo6RHlKDpydMifJhKRj4H8i6H3m+PH+c478kbvqQ/uMJ2Qz14HS2ZQqG1yuKE5rWknTLD4kIdTA== +unimported@1.28.0: + version "1.28.0" + resolved "https://registry.yarnpkg.com/unimported/-/unimported-1.28.0.tgz#4dd7b95ae227a03e5d5ac45eefd651a3b75bada1" + integrity sha512-t3n40wM1mgs9u0S7R+Jg08Cc4DVYDOVDgjdeLQfDBo1tIoCnSvXkQdiDLv/STi49uKR8IBxkcwkXKtTxBpv5aw== dependencies: "@typescript-eslint/parser" "^5.27.1" "@typescript-eslint/typescript-estree" "^5.27.1" @@ -7963,20 +8289,20 @@ unimported@^1.28.0: ora "^5.3.0" read-pkg-up "^7.0.1" resolve "^1.20.0" - simple-git "^3.18.0" + simple-git "^3.7.1" term-size "^2.2.1" typescript "^4.3.5" yargs "^16.2.0" -universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== -untildify@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" - integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== +universalify@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== unzipper@^0.10.11: version "0.10.14" @@ -7994,10 +8320,10 @@ unzipper@^0.10.11: readable-stream "~2.3.6" setimmediate "~1.0.4" -update-browserslist-db@^1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" - integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== +update-browserslist-db@^1.0.13: + version "1.0.13" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== dependencies: escalade "^3.1.1" picocolors "^1.0.0" @@ -8015,9 +8341,9 @@ url-parse-as-address@1.0.0: integrity sha512-1WJ8YX1Kcec9wgxy8d/ATzGP1ayO6BRnd3iB6NlM+7cOnn6U8p5PKppRTCPLobh3CSdJ4d0TdPjopzyU2KcVFw== use-callback-ref@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/use-callback-ref/-/use-callback-ref-1.3.0.tgz#772199899b9c9a50526fedc4993fc7fa1f7e32d5" - integrity sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w== + version "1.3.1" + resolved "https://registry.yarnpkg.com/use-callback-ref/-/use-callback-ref-1.3.1.tgz#9be64c3902cbd72b07fe55e56408ae3a26036fd0" + integrity sha512-Lg4Vx1XZQauB42Hw3kK7JM6yjVjgFmFC5/Ab797s79aARomD2nEErc4mCgM8EZrARLmmbWpi5DGCadmK50DcAQ== dependencies: tslib "^2.0.0" @@ -8059,10 +8385,10 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" -validator@^13.9.0: - version "13.9.0" - resolved "https://registry.yarnpkg.com/validator/-/validator-13.9.0.tgz#33e7b85b604f3bbce9bb1a05d5c3e22e1c2ff855" - integrity sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA== +validator@^13.7.0, validator@^13.9.0: + version "13.11.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-13.11.0.tgz#23ab3fd59290c61248364eabf4067f04955fbb1b" + integrity sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ== verror@1.10.0: version "1.10.0" @@ -8073,10 +8399,10 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -vite-node@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-1.1.0.tgz#0ebcb7398692e378954786dfba28e905e28a76b4" - integrity sha512-jV48DDUxGLEBdHCQvxL1mEh7+naVy+nhUUUaPAZLd3FJgXuxQiewHcfeZebbJ6onDqNGkP4r3MhQ342PRlG81Q== +vite-node@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-1.1.3.tgz#196de20a7c2e0467a07da0dd1fe67994f5b79695" + integrity sha512-BLSO72YAkIUuNrOx+8uznYICJfTEbvBAmWClY3hpath5+h1mbPS5OMn42lrTxXuyCazVyZoDkSRnju78GiVCqA== dependencies: cac "^6.7.14" debug "^4.3.4" @@ -8114,6 +8440,26 @@ vite-plugin-compression2@^0.11.0: dependencies: "@rollup/pluginutils" "^5.0.2" +vite-plugin-dts@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/vite-plugin-dts/-/vite-plugin-dts-3.7.0.tgz#654ee7c38c0cdd4589b9bc198a264f34172bd870" + integrity sha512-np1uPaYzu98AtPReB8zkMnbjwcNHOABsLhqVOf81b3ol9b5M2wPcAVs8oqPnOpr6Us+7yDXVauwkxsk5+ldmRA== + dependencies: + "@microsoft/api-extractor" "7.39.0" + "@rollup/pluginutils" "^5.1.0" + "@vue/language-core" "^1.8.26" + debug "^4.3.4" + kolorist "^1.8.0" + vue-tsc "^1.8.26" + +vite-plugin-lib-inject-css@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/vite-plugin-lib-inject-css/-/vite-plugin-lib-inject-css-1.3.0.tgz#d62e098d220076127282c5a9670a2e7826a69b63" + integrity sha512-Rldq36U9TDlpDom3yoLybfJtzn897+oMKdX0+fxbVYnYjRGnTtaFfnMmfOckH8GQ3cvGAKv9Ai1PWyE0amIbjg== + dependencies: + magic-string "^0.30.2" + picocolors "^1.0.0" + vite-plugin-radar@^0.9.2: version "0.9.2" resolved "https://registry.yarnpkg.com/vite-plugin-radar/-/vite-plugin-radar-0.9.2.tgz#e1e0acaf08be956d22b001b05edd2962a6b4286e" @@ -8138,19 +8484,19 @@ vite-plugin-webfont-dl@^3.9.1: flat-cache "^3" picocolors "^1" -vite-tsconfig-paths@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/vite-tsconfig-paths/-/vite-tsconfig-paths-4.2.2.tgz#fee5a59c885687ae046e1d5a394bdcfdb12d9361" - integrity sha512-dq0FjyxHHDnp0uS3P12WEOX2W7NeuLzX9AWP38D7Zw2CTbFErapwQVlCiT5DMJcVWKQ1MMdTe92PZl/rBQ7qcw== +vite-tsconfig-paths@^4.2.2, vite-tsconfig-paths@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/vite-tsconfig-paths/-/vite-tsconfig-paths-4.2.3.tgz#af31ba11e828c0b2b5426304294c88edd7a1071a" + integrity sha512-xVsA2xe6QSlzBujtWF8q2NYexh7PAUYfzJ4C8Axpe/7d2pcERYxuxGgph9F4f0iQO36g5tyGq6eBUYIssdUrVw== dependencies: debug "^4.1.1" globrex "^0.1.2" tsconfck "^2.1.0" -vite@^5.0.0, vite@^5.0.10: - version "5.0.10" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.0.10.tgz#1e13ef5c3cf5aa4eed81f5df6d107b3c3f1f6356" - integrity sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw== +vite@^5.0.0, vite@^5.0.10, vite@^5.0.8: + version "5.0.11" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.0.11.tgz#31562e41e004cb68e1d51f5d2c641ab313b289e4" + integrity sha512-XBMnDjZcNAw/G1gEiskiM1v6yzM4GE5aMGvhWTlHAYYhxb7S3/V1s3m2LDHa8Vh6yIWYYB0iJwsEaS523c4oYA== dependencies: esbuild "^0.19.3" postcss "^8.4.32" @@ -8158,17 +8504,17 @@ vite@^5.0.0, vite@^5.0.10: optionalDependencies: fsevents "~2.3.3" -vitest@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/vitest/-/vitest-1.1.0.tgz#47ba67c564aa137b53b0197d2a992908e7f5b04d" - integrity sha512-oDFiCrw7dd3Jf06HoMtSRARivvyjHJaTxikFxuqJjO76U436PqlVw1uLn7a8OSPrhSfMGVaRakKpA2lePdw79A== - dependencies: - "@vitest/expect" "1.1.0" - "@vitest/runner" "1.1.0" - "@vitest/snapshot" "1.1.0" - "@vitest/spy" "1.1.0" - "@vitest/utils" "1.1.0" - acorn-walk "^8.3.0" +vitest@^1.1.0, vitest@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-1.1.3.tgz#c911bcbcfd2266d44db6ecb08273b91e0ec20dc7" + integrity sha512-2l8om1NOkiA90/Y207PsEvJLYygddsOyr81wLQ20Ra8IlLKbyQncWsGZjnbkyG2KwwuTXLQjEPOJuxGMG8qJBQ== + dependencies: + "@vitest/expect" "1.1.3" + "@vitest/runner" "1.1.3" + "@vitest/snapshot" "1.1.3" + "@vitest/spy" "1.1.3" + "@vitest/utils" "1.1.3" + acorn-walk "^8.3.1" cac "^6.7.14" chai "^4.3.10" debug "^4.3.4" @@ -8182,7 +8528,7 @@ vitest@^1.1.0: tinybench "^2.5.1" tinypool "^0.8.1" vite "^5.0.0" - vite-node "1.1.0" + vite-node "1.1.3" why-is-node-running "^2.2.2" vlq@^0.2.1: @@ -8213,9 +8559,9 @@ vscode-languageserver-protocol@3.16.0: vscode-languageserver-types "3.16.0" vscode-languageserver-textdocument@^1.0.1: - version "1.0.8" - resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz#9eae94509cbd945ea44bca8dcfe4bb0c15bb3ac0" - integrity sha512-1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q== + version "1.0.11" + resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.11.tgz#0822a000e7d4dc083312580d7575fe9e3ba2e2bf" + integrity sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA== vscode-languageserver-types@3.16.0: version "3.16.0" @@ -8230,9 +8576,9 @@ vscode-languageserver@^7.0.0: vscode-languageserver-protocol "3.16.0" vscode-uri@^3.0.2: - version "3.0.7" - resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.7.tgz#6d19fef387ee6b46c479e5fb00870e15e58c1eb8" - integrity sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA== + version "3.0.8" + resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.8.tgz#1770938d3e72588659a172d0fd4642780083ff9f" + integrity sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw== vt-pbf@^3.1.1: version "3.1.3" @@ -8243,6 +8589,23 @@ vt-pbf@^3.1.1: "@mapbox/vector-tile" "^1.3.1" pbf "^3.2.1" +vue-template-compiler@^2.7.14: + version "2.7.16" + resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz#c81b2d47753264c77ac03b9966a46637482bb03b" + integrity sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ== + dependencies: + de-indent "^1.0.2" + he "^1.2.0" + +vue-tsc@^1.8.26: + version "1.8.27" + resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-1.8.27.tgz#feb2bb1eef9be28017bb9e95e2bbd1ebdd48481c" + integrity sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg== + dependencies: + "@volar/typescript" "~1.11.1" + "@vue/language-core" "1.8.27" + semver "^7.5.4" + w3c-hr-time@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" @@ -8325,17 +8688,44 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-typed-array@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" - integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== +which-builtin-type@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.1.3.tgz#b1b8443707cc58b6e9bf98d32110ff0c2cbd029b" + integrity sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw== + dependencies: + function.prototype.name "^1.1.5" + has-tostringtag "^1.0.0" + is-async-function "^2.0.0" + is-date-object "^1.0.5" + is-finalizationregistry "^1.0.2" + is-generator-function "^1.0.10" + is-regex "^1.1.4" + is-weakref "^1.0.2" + isarray "^2.0.5" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.9" + +which-collection@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" + integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== + dependencies: + is-map "^2.0.1" + is-set "^2.0.1" + is-weakmap "^2.0.1" + is-weakset "^2.0.1" + +which-typed-array@^1.1.11, which-typed-array@^1.1.13, which-typed-array@^1.1.9: + version "1.1.13" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" + integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== dependencies: available-typed-arrays "^1.0.5" - call-bind "^1.0.2" + call-bind "^1.0.4" for-each "^0.3.3" gopd "^1.0.1" has-tostringtag "^1.0.0" - is-typed-array "^1.1.10" which@^1.2.9, which@^1.3.1: version "1.3.1" @@ -8360,16 +8750,16 @@ why-is-node-running@^2.2.2: stackback "0.0.2" word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + version "1.2.5" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== wordwrap@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== -wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -8378,6 +8768,15 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + wrap-ansi@^9.0.0: version "9.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-9.0.0.tgz#1a3dc8b70d85eeb8398ddfb1e4a02cd186e58b3e" @@ -8441,9 +8840,9 @@ yallist@^4.0.0: integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yaml@^2.2.2: - version "2.3.1" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.1.tgz#02fe0975d23cd441242aa7204e09fc28ac2ac33b" - integrity sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ== + version "2.3.4" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2" + integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== yargs-parser@^20.2.2, yargs-parser@^20.2.9: version "20.2.9" @@ -8491,6 +8890,17 @@ yocto-queue@^1.0.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== +z-schema@~5.0.2: + version "5.0.6" + resolved "https://registry.yarnpkg.com/z-schema/-/z-schema-5.0.6.tgz#46d6a687b15e4a4369e18d6cb1c7b8618fc256c5" + integrity sha512-+XR1GhnWklYdfr8YaZv/iu+vY+ux7V5DS5zH1DQf6bO5ufrt/5cgNhVO5qyhsjFXvsqQb/f08DWE9b6uPscyAg== + dependencies: + lodash.get "^4.4.2" + lodash.isequal "^4.5.0" + validator "^13.7.0" + optionalDependencies: + commander "^10.0.0" + zip-stream@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.1.tgz#1337fe974dbaffd2fa9a1ba09662a66932bd7135"