@argusoft/medplat-core 1.0.32 → 1.0.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{AccessRights-DBjTQA1-.js → AccessRights-BC43Jhml.js} +264 -199
- package/dist/AccessRights-BC43Jhml.js.map +1 -0
- package/dist/{BrandsPage-CdcAvaml-ZtVTX6vX.js → BrandsPage-CdcAvaml-CYT80CMH.js} +3 -3
- package/dist/{BrandsPage-CdcAvaml-ZtVTX6vX.js.map → BrandsPage-CdcAvaml-CYT80CMH.js.map} +1 -1
- package/dist/{CategoriesPage-BprQEYJw-CclreTv1.js → CategoriesPage-BprQEYJw-BRAukJB1.js} +3 -3
- package/dist/{CategoriesPage-BprQEYJw-CclreTv1.js.map → CategoriesPage-BprQEYJw-BRAukJB1.js.map} +1 -1
- package/dist/ChangePasswordModalCore-rypTxA2O.js +238 -0
- package/dist/ChangePasswordModalCore-rypTxA2O.js.map +1 -0
- package/dist/{DashboardPage-CTiGSx71-CsYohJ5e.js → DashboardPage-CTiGSx71-DX-TzGOH.js} +3 -3
- package/dist/{DashboardPage-CTiGSx71-CsYohJ5e.js.map → DashboardPage-CTiGSx71-DX-TzGOH.js.map} +1 -1
- package/dist/{FacilityPicker-BXa2VF7i-Dab_Jwa5.js → FacilityPicker-BXa2VF7i-D0JUIqLv.js} +2 -2
- package/dist/{FacilityPicker-BXa2VF7i-Dab_Jwa5.js.map → FacilityPicker-BXa2VF7i-D0JUIqLv.js.map} +1 -1
- package/dist/FaqList-CeDEuhU_.js +237 -0
- package/dist/FaqList-CeDEuhU_.js.map +1 -0
- package/dist/FaqSkeletons-hLCEcRr-.js +19 -0
- package/dist/FaqSkeletons-hLCEcRr-.js.map +1 -0
- package/dist/FaqView-sDzBVyXV.js +617 -0
- package/dist/FaqView-sDzBVyXV.js.map +1 -0
- package/dist/{FeatureMenu-Kc73yPHH.js → FeatureMenu-CaI-ZhSZ.js} +2 -2
- package/dist/{FeatureMenu-Kc73yPHH.js.map → FeatureMenu-CaI-ZhSZ.js.map} +1 -1
- package/dist/{ImmunizationConfigurationBase-lKsJZMak.js → ImmunizationConfigurationBase-Clkk0-n6.js} +2352 -2332
- package/dist/{ImmunizationConfigurationBase-lKsJZMak.js.map → ImmunizationConfigurationBase-Clkk0-n6.js.map} +1 -1
- package/dist/{InventoryPage-JadYMCzU-CzJQfQ2A.js → InventoryPage-JadYMCzU-CWcCauMI.js} +4 -4
- package/dist/{InventoryPage-JadYMCzU-CzJQfQ2A.js.map → InventoryPage-JadYMCzU-CWcCauMI.js.map} +1 -1
- package/dist/ManageFaq-4cT6bntx.js +1583 -0
- package/dist/ManageFaq-4cT6bntx.js.map +1 -0
- package/dist/ManageFaq.css +1 -0
- package/dist/{ManageUser-Dm0l833u.js → ManageUser-DchUMAyC.js} +2 -2
- package/dist/{ManageUser-Dm0l833u.js.map → ManageUser-DchUMAyC.js.map} +1 -1
- package/dist/{MemberProfileCard-01d_jz3w-DYHtbgMX.js → MemberProfileCard-01d_jz3w-CQi_zu6x.js} +3 -3
- package/dist/{MemberProfileCard-01d_jz3w-DYHtbgMX.js.map → MemberProfileCard-01d_jz3w-CQi_zu6x.js.map} +1 -1
- package/dist/{PaymentCreatePage-D6NZBUC3-DxXf2kvH.js → PaymentCreatePage-D6NZBUC3-_98S21Sa.js} +4 -4
- package/dist/{PaymentCreatePage-D6NZBUC3-DxXf2kvH.js.map → PaymentCreatePage-D6NZBUC3-_98S21Sa.js.map} +1 -1
- package/dist/{PaymentsPage-CHieGNrn-BnYCtqHd.js → PaymentsPage-CHieGNrn-ChCXEyck.js} +3 -3
- package/dist/{PaymentsPage-CHieGNrn-BnYCtqHd.js.map → PaymentsPage-CHieGNrn-ChCXEyck.js.map} +1 -1
- package/dist/{PickupBatchLinesEditor-QPaqFtUO-CY7BShYh.js → PickupBatchLinesEditor-QPaqFtUO-BEtI5mIU.js} +2 -2
- package/dist/{PickupBatchLinesEditor-QPaqFtUO-CY7BShYh.js.map → PickupBatchLinesEditor-QPaqFtUO-BEtI5mIU.js.map} +1 -1
- package/dist/{PickupCreatePage-C7_67u_u-OId8-e2a.js → PickupCreatePage-C7_67u_u-DbDIZ1WC.js} +5 -5
- package/dist/{PickupCreatePage-C7_67u_u-OId8-e2a.js.map → PickupCreatePage-C7_67u_u-DbDIZ1WC.js.map} +1 -1
- package/dist/{PickupsPage-BWblMlic-CWkgeBw0.js → PickupsPage-BWblMlic-KehDMebm.js} +4 -4
- package/dist/{PickupsPage-BWblMlic-CWkgeBw0.js.map → PickupsPage-BWblMlic-KehDMebm.js.map} +1 -1
- package/dist/{PmGuard-BvUUbU80-BpYNaDzl.js → PmGuard-BvUUbU80-DJipZoSg.js} +2 -2
- package/dist/{PmGuard-BvUUbU80-BpYNaDzl.js.map → PmGuard-BvUUbU80-DJipZoSg.js.map} +1 -1
- package/dist/{ProductEditPage-Dbq4vUAA-BoBmTPPL.js → ProductEditPage-Dbq4vUAA-DusAdAvm.js} +4 -4
- package/dist/{ProductEditPage-Dbq4vUAA-BoBmTPPL.js.map → ProductEditPage-Dbq4vUAA-DusAdAvm.js.map} +1 -1
- package/dist/{ProductsPage-BI22nPb4-CQBjnc-n.js → ProductsPage-BI22nPb4-D3GnWz34.js} +4 -4
- package/dist/{ProductsPage-BI22nPb4-CQBjnc-n.js.map → ProductsPage-BI22nPb4-D3GnWz34.js.map} +1 -1
- package/dist/{PurchaseCreatePage-C0EK9z4w-BQMTsjE7.js → PurchaseCreatePage-C0EK9z4w-D4PlZsOH.js} +4 -4
- package/dist/{PurchaseCreatePage-C0EK9z4w-BQMTsjE7.js.map → PurchaseCreatePage-C0EK9z4w-D4PlZsOH.js.map} +1 -1
- package/dist/{PurchaseRequestDetailPage-DhBuOGHZ-CWZPqzt9.js → PurchaseRequestDetailPage-DhBuOGHZ-CAmlL4fP.js} +3 -3
- package/dist/{PurchaseRequestDetailPage-DhBuOGHZ-CWZPqzt9.js.map → PurchaseRequestDetailPage-DhBuOGHZ-CAmlL4fP.js.map} +1 -1
- package/dist/{PurchaseRequestsPage-Bj9HUMxb-B7-AxT8m.js → PurchaseRequestsPage-Bj9HUMxb-BCAhEEkL.js} +3 -3
- package/dist/{PurchaseRequestsPage-Bj9HUMxb-B7-AxT8m.js.map → PurchaseRequestsPage-Bj9HUMxb-BCAhEEkL.js.map} +1 -1
- package/dist/{PurchasesPage-Djl1AqD_-DXeYFMrX.js → PurchasesPage-Djl1AqD_-DxBRFRDy.js} +3 -3
- package/dist/{PurchasesPage-Djl1AqD_-DXeYFMrX.js.map → PurchasesPage-Djl1AqD_-DxBRFRDy.js.map} +1 -1
- package/dist/{SaleCreatePage-DHBLmlBr-BlgjVsq6.js → SaleCreatePage-DHBLmlBr-aEGmvJQq.js} +4 -4
- package/dist/{SaleCreatePage-DHBLmlBr-BlgjVsq6.js.map → SaleCreatePage-DHBLmlBr-aEGmvJQq.js.map} +1 -1
- package/dist/{SalesPage-eF9Yr42z-BQ9FlXC3.js → SalesPage-eF9Yr42z-CvOr82vo.js} +3 -3
- package/dist/{SalesPage-eF9Yr42z-BQ9FlXC3.js.map → SalesPage-eF9Yr42z-CvOr82vo.js.map} +1 -1
- package/dist/{SettingsPage-Cre-UE3r-9ntnLYsQ.js → SettingsPage-Cre-UE3r-CGTVp5Zw.js} +3 -3
- package/dist/{SettingsPage-Cre-UE3r-9ntnLYsQ.js.map → SettingsPage-Cre-UE3r-CGTVp5Zw.js.map} +1 -1
- package/dist/{StorageUnitsPage-CTEVuemZ-B4osG74N.js → StorageUnitsPage-CTEVuemZ-C7zkwKMz.js} +5 -5
- package/dist/{StorageUnitsPage-CTEVuemZ-B4osG74N.js.map → StorageUnitsPage-CTEVuemZ-C7zkwKMz.js.map} +1 -1
- package/dist/{SubMenu-OO2zhKiu.js → SubMenu-DZIhur09.js} +2 -2
- package/dist/{SubMenu-OO2zhKiu.js.map → SubMenu-DZIhur09.js.map} +1 -1
- package/dist/{TransactionsPage-Zuu7sjID-B-ACzvd1.js → TransactionsPage-Zuu7sjID-BDmUK7s1.js} +3 -3
- package/dist/{TransactionsPage-Zuu7sjID-B-ACzvd1.js.map → TransactionsPage-Zuu7sjID-BDmUK7s1.js.map} +1 -1
- package/dist/{TransferCreatePage-DlT0nCDj-B2SdPgYB.js → TransferCreatePage-DlT0nCDj-evHPJc99.js} +4 -4
- package/dist/{TransferCreatePage-DlT0nCDj-B2SdPgYB.js.map → TransferCreatePage-DlT0nCDj-evHPJc99.js.map} +1 -1
- package/dist/{TransfersPage-DqaSvHda-G2tFa5Jq.js → TransfersPage-DqaSvHda-DAUn5SSr.js} +3 -3
- package/dist/{TransfersPage-DqaSvHda-G2tFa5Jq.js.map → TransfersPage-DqaSvHda-DAUn5SSr.js.map} +1 -1
- package/dist/{VaccineEducation-T_UE57Ef.js → VaccineEducation-DWkNNasF.js} +2 -2
- package/dist/{VaccineEducation-T_UE57Ef.js.map → VaccineEducation-DWkNNasF.js.map} +1 -1
- package/dist/VaccineEducationConfigurator-BFCvu5Mw.js +1450 -0
- package/dist/VaccineEducationConfigurator-BFCvu5Mw.js.map +1 -0
- package/dist/VaccineEducationConfigurator.css +1 -4
- package/dist/{VaccineEducationList-Ok7_5EFb.js → VaccineEducationList-BxZHahCh.js} +2 -2
- package/dist/{VaccineEducationList-Ok7_5EFb.js.map → VaccineEducationList-BxZHahCh.js.map} +1 -1
- package/dist/{VialsPage-LoDaUqVv-DmMXbK8j.js → VialsPage-LoDaUqVv-Dw00Zc06.js} +4 -4
- package/dist/{VialsPage-LoDaUqVv-DmMXbK8j.js.map → VialsPage-LoDaUqVv-Dw00Zc06.js.map} +1 -1
- package/dist/{VaccineEducationConfigurator-CWc20_rv.js → ckeditor5-_x14lrzc.js} +4014 -5372
- package/dist/ckeditor5-_x14lrzc.js.map +1 -0
- package/dist/ckeditor5.css +4 -0
- package/dist/faqMedia-FDpje7v0.js +234 -0
- package/dist/faqMedia-FDpje7v0.js.map +1 -0
- package/dist/index.css +1 -1
- package/dist/index.js +1 -1
- package/dist/{index.lib-BySa9-Z-.js → index.lib-QDEODnRT.js} +343 -303
- package/dist/index.lib-QDEODnRT.js.map +1 -0
- package/dist/{listValueStore-5d4vNGQM-WclZ5nBG.js → listValueStore-5d4vNGQM-DB08drLf.js} +2 -2
- package/dist/{listValueStore-5d4vNGQM-WclZ5nBG.js.map → listValueStore-5d4vNGQM-DB08drLf.js.map} +1 -1
- package/dist/proxy-C4gcRXzG.js +5265 -0
- package/dist/proxy-C4gcRXzG.js.map +1 -0
- package/package.json +3 -2
- package/dist/AccessRights-DBjTQA1-.js.map +0 -1
- package/dist/ChangePasswordModalCore-DZGOkbRY.js +0 -5494
- package/dist/ChangePasswordModalCore-DZGOkbRY.js.map +0 -1
- package/dist/VaccineEducationConfigurator-CWc20_rv.js.map +0 -1
- package/dist/index.lib-BySa9-Z-.js.map +0 -1
|
@@ -7,7 +7,7 @@ import { FontAwesomeIcon as m } from "@fortawesome/react-fontawesome";
|
|
|
7
7
|
import { faSearch as B, faChevronRight as G, faShieldHalved as ve, faPlus as ge, faFileLines as fe, faClock as U, faBan as H, faCircleCheck as xe, faSyringe as ye, faPen as Ne } from "@fortawesome/free-solid-svg-icons";
|
|
8
8
|
import { getAssignedFeatures as be } from "@/utils/feature";
|
|
9
9
|
import Ce from "@/common/services/util/GeneralUtil.js";
|
|
10
|
-
import { l as J, c as W, a as we, S as Se } from "./VaccineEducation-
|
|
10
|
+
import { l as J, c as W, a as we, S as Se } from "./VaccineEducation-DWkNNasF.js";
|
|
11
11
|
function Q({ open: s, onClose: o, onStarted: p }) {
|
|
12
12
|
const [c, v] = h([]), [r, x] = h("");
|
|
13
13
|
A(() => {
|
|
@@ -331,4 +331,4 @@ K.propTypes = {
|
|
|
331
331
|
export {
|
|
332
332
|
Fe as default
|
|
333
333
|
};
|
|
334
|
-
//# sourceMappingURL=VaccineEducationList-
|
|
334
|
+
//# sourceMappingURL=VaccineEducationList-BxZHahCh.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VaccineEducationList-Ok7_5EFb.js","sources":["../src/views/VaccineEducation/components/AddVaccineEducationDialog.jsx","../src/views/VaccineEducation/components/VaccineEducationList.jsx"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Dialog,\n DialogTitle,\n DialogContent,\n Box,\n TextField,\n InputAdornment,\n Typography,\n} from \"@mui/material\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faSearch, faChevronRight } from \"@fortawesome/free-solid-svg-icons\";\nimport { listVaccinesWithoutEducation } from \"../services/vaccineEducationService\";\n\nexport default function AddVaccineEducationDialog({ open, onClose, onStarted }) {\n const [vaccines, setVaccines] = useState([]);\n const [search, setSearch] = useState(\"\");\n\n useEffect(() => {\n if (!open) return;\n setSearch(\"\");\n listVaccinesWithoutEducation().then(setVaccines);\n }, [open]);\n\n const filtered = vaccines.filter((v) => v.name.toLowerCase().includes(search.toLowerCase()));\n\n // No DB write here — picking a vaccine just opens the configurator against it.\n // FETCH_VACCINE_EDUCATION's LEFT JOIN already returns an empty record for a\n // vaccine with no row yet, and the first real INSERT only happens on Save.\n const handlePick = (vaccine) => {\n onStarted(vaccine.id);\n };\n\n return (\n <Dialog open={open} onClose={onClose} maxWidth=\"sm\" fullWidth>\n <DialogTitle>\n Add Vaccine Education\n <Typography variant=\"body2\" sx={{ color: \"text.secondary\", fontWeight: 400, mt: 0.5 }}>\n Choose a configured vaccine that doesn't have education content yet.\n </Typography>\n </DialogTitle>\n <DialogContent dividers>\n <TextField\n size=\"small\"\n fullWidth\n autoFocus\n placeholder=\"Search vaccines…\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n InputProps={{\n startAdornment: (\n <InputAdornment position=\"start\">\n <FontAwesomeIcon icon={faSearch} size=\"xs\" />\n </InputAdornment>\n ),\n }}\n />\n\n <Box sx={{ display: \"flex\", flexDirection: \"column\", gap: 1, mt: 1.5 }}>\n {filtered.length === 0 && (\n <Typography variant=\"body2\" sx={{ color: \"text.secondary\", textAlign: \"center\", py: 3 }}>\n {vaccines.length === 0\n ? \"Every configured vaccine already has education content.\"\n : `No vaccines match \"${search}\".`}\n </Typography>\n )}\n {filtered.map((vaccine) => (\n <Box\n key={vaccine.id}\n onClick={() => handlePick(vaccine)}\n role=\"button\"\n tabIndex={0}\n sx={{\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n gap: 1.5,\n p: 1.25,\n border: \"1px solid var(--color-gray3)\",\n borderRadius: \"8px\",\n cursor: \"pointer\",\n \"&:hover\": { borderColor: \"var(--ve-accent)\", background: \"var(--ve-accent-soft)\" },\n }}\n >\n <Box>\n <Typography variant=\"body2\" sx={{ fontWeight: 600 }}>\n {vaccine.name}\n </Typography>\n <Typography variant=\"caption\" sx={{ color: \"text.secondary\" }}>\n {vaccine.category}\n </Typography>\n </Box>\n <FontAwesomeIcon icon={faChevronRight} size=\"xs\" style={{ color: \"var(--color-gray2)\" }} />\n </Box>\n ))}\n </Box>\n </DialogContent>\n </Dialog>\n );\n}\n\nAddVaccineEducationDialog.propTypes = {\n open: PropTypes.bool.isRequired,\n onClose: PropTypes.func.isRequired,\n onStarted: PropTypes.func.isRequired,\n};\n","import { useEffect, useMemo, useState } from \"react\";\nimport { useNavigate } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport {\n Box,\n Typography,\n TextField,\n InputAdornment,\n Button,\n Card,\n Skeleton,\n Pagination,\n Select,\n MenuItem,\n IconButton,\n Tooltip,\n} from \"@mui/material\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport {\n faSearch,\n faPlus,\n faPen,\n faSyringe,\n faShieldHalved,\n faFileLines,\n faClock,\n faBan,\n faCircleCheck,\n faChevronRight,\n} from \"@fortawesome/free-solid-svg-icons\";\nimport { getAssignedFeatures } from \"@/utils/feature\";\nimport GeneralUtil from \"@/common/services/util/GeneralUtil.js\";\nimport { listEducationRecords, listVaccinesWithoutEducation } from \"../services/vaccineEducationService\";\nimport { countCompletedSections, SECTION_DEFS } from \"../constants/sectionDefs\";\nimport AddVaccineEducationDialog from \"./AddVaccineEducationDialog\";\nimport \"../styles/VaccineEducation.scss\";\n\n// Same feature as Immunization Configuration (ImmunizationSummary.jsx) — not a\n// separate registration. The entry button there is already gated by\n// view.admin.immunizationConfiguration.vaccineEducation; this is the same feature's\n// update right, gating Add/Edit once you're actually on this screen.\nconst FEATURE_CODE = \"techo.manage.immunizationConfiguration\";\nconst EDIT_RIGHT = \"update.admin.immunizationConfiguration.vaccineEducation\";\n\nconst TOTAL_SECTIONS = SECTION_DEFS.length;\nconst ROWS_PER_PAGE_OPTIONS = [10, 25, 50];\n\nconst statusOf = (completed) => {\n if (completed === 0) return { key: \"empty\", label: \"Not started\", className: \"is-empty\", icon: faBan };\n if (completed >= TOTAL_SECTIONS) {\n return { key: \"complete\", label: \"Complete\", className: \"is-complete\", icon: faCircleCheck };\n }\n return { key: \"partial\", label: \"In progress\", className: \"is-partial\", icon: faClock };\n};\n\nconst formatUpdatedOn = (value) => {\n if (!value) return null;\n const date = new Date(value);\n if (Number.isNaN(date.getTime())) return null;\n const datePart = date.toLocaleDateString(undefined, { day: \"numeric\", month: \"short\", year: \"numeric\" });\n const timePart = date.toLocaleTimeString(undefined, { hour: \"numeric\", minute: \"2-digit\" });\n return `${datePart} · ${timePart}`;\n};\n\nexport default function VaccineEducationList() {\n const navigate = useNavigate();\n const [rows, setRows] = useState([]);\n const [search, setSearch] = useState(\"\");\n const [isLoading, setIsLoading] = useState(true);\n const [addOpen, setAddOpen] = useState(false);\n const [rights, setRights] = useState(null);\n const [page, setPage] = useState(1);\n const [rowsPerPage, setRowsPerPage] = useState(ROWS_PER_PAGE_OPTIONS[0]);\n // \"complete\" | \"partial\" | null — set by clicking the matching stat tile below.\n // There's no \"empty\" option here: those vaccines have no row in this table at all,\n // so that tile opens the Add dialog instead of filtering to nothing.\n const [statusFilter, setStatusFilter] = useState(null);\n // Vaccines that exist in Immunization Configuration but have no education record at\n // all — the actual remaining work, which the table itself can't show since those\n // vaccines have no row here yet.\n const [notStartedCount, setNotStartedCount] = useState(null);\n\n const load = async () => {\n setIsLoading(true);\n const [data, assignedFeatures] = await Promise.all([\n listEducationRecords(),\n getAssignedFeatures(FEATURE_CODE),\n ]);\n setRows(data);\n setRights(JSON.parse(assignedFeatures?.data || \"{}\"));\n setIsLoading(false);\n listVaccinesWithoutEducation()\n .then((pending) => setNotStartedCount(pending.length))\n .catch(() => setNotStartedCount(null));\n };\n\n useEffect(() => {\n load();\n }, []);\n\n const filteredRows = useMemo(\n () =>\n rows\n .filter((r) => r.vaccine?.name?.toLowerCase().includes(search.toLowerCase()))\n .filter((r) => !statusFilter || statusOf(countCompletedSections(r.record)).key === statusFilter),\n [rows, search, statusFilter],\n );\n\n // Reset to page 1 whenever the result set changes shape, so a stale page number\n // can't leave the list showing an out-of-range (empty-looking) slice.\n useEffect(() => {\n setPage(1);\n }, [search, rowsPerPage, statusFilter, rows.length]);\n\n const totalResults = filteredRows.length;\n const totalPages = Math.max(1, Math.ceil(totalResults / rowsPerPage));\n const pagedRows = filteredRows.slice((page - 1) * rowsPerPage, page * rowsPerPage);\n const rangeFrom = totalResults === 0 ? 0 : (page - 1) * rowsPerPage + 1;\n const rangeTo = Math.min(totalResults, page * rowsPerPage);\n\n const canEdit = GeneralUtil.hasCheckRights(rights?.[EDIT_RIGHT]);\n\n // Same statusOf() the filter itself uses — computing these independently (e.g.\n // inProgress = total - complete) previously miscounted \"not started\" (0/12) rows as\n // \"in progress\", so a tile's own count didn't match what clicking it actually filtered to.\n const rowStatusCounts = rows.reduce((acc, { record }) => {\n const key = statusOf(countCompletedSections(record)).key;\n acc[key] = (acc[key] || 0) + 1;\n return acc;\n }, {});\n const completeCount = rowStatusCounts.complete || 0;\n const inProgressCount = rowStatusCounts.partial || 0;\n\n return (\n <Box className=\"ve-list-page\">\n <Box sx={{ display: \"flex\", justifyContent: \"space-between\", alignItems: \"flex-start\", gap: 2, mb: 3, flexWrap: \"wrap\" }}>\n <Box sx={{ display: \"flex\", gap: 2, alignItems: \"flex-start\" }}>\n <Box className=\"ve-header-icon\">\n <FontAwesomeIcon icon={faShieldHalved} />\n </Box>\n <Box>\n <Typography variant=\"h5\" sx={{ fontWeight: 700, mb: 0.5 }}>\n Vaccine Education\n </Typography>\n <Typography variant=\"body2\" sx={{ color: \"text.secondary\", maxWidth: \"62ch\" }}>\n Write the education content stored against each vaccine — overview, safety\n guidance, FAQs, images and videos.\n </Typography>\n </Box>\n </Box>\n {canEdit && (\n <Button\n variant=\"contained\"\n className=\"normal-case\"\n startIcon={<FontAwesomeIcon icon={faPlus} />}\n onClick={() => setAddOpen(true)}\n data-testid=\"vaccineEducation-button-add\"\n >\n Add Vaccine Education\n </Button>\n )}\n </Box>\n\n {!isLoading && rows.length > 0 && (\n <Box className=\"ve-stat-strip\">\n <StatTile\n value={completeCount}\n label={completeCount === 1 ? \"vaccine fully written\" : \"vaccines fully written\"}\n tone=\"complete\"\n icon={faFileLines}\n active={statusFilter === \"complete\"}\n onClick={() => setStatusFilter((cur) => (cur === \"complete\" ? null : \"complete\"))}\n />\n <StatTile\n value={inProgressCount}\n label=\"still in progress\"\n tone=\"partial\"\n icon={faClock}\n active={statusFilter === \"partial\"}\n onClick={() => setStatusFilter((cur) => (cur === \"partial\" ? null : \"partial\"))}\n />\n <StatTile\n value={notStartedCount === null ? \"—\" : notStartedCount}\n label={notStartedCount === 1 ? \"vaccine with no content yet\" : \"vaccines with no content yet\"}\n tone=\"empty\"\n icon={faBan}\n onClick={canEdit ? () => setAddOpen(true) : undefined}\n />\n </Box>\n )}\n\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: 1.5, mb: 2, flexWrap: \"wrap\" }}>\n <TextField\n size=\"small\"\n placeholder=\"Search vaccine name…\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n sx={{ minWidth: 260, maxWidth: 360, background: \"var(--color-background)\" }}\n InputProps={{\n startAdornment: (\n <InputAdornment position=\"start\">\n <FontAwesomeIcon icon={faSearch} size=\"xs\" />\n </InputAdornment>\n ),\n }}\n />\n {statusFilter && (\n <span className=\"ve-filter-chip\">\n {statusFilter === \"complete\" ? \"Complete\" : \"In progress\"} only\n <button type=\"button\" onClick={() => setStatusFilter(null)} aria-label=\"Clear filter\">\n ×\n </button>\n </span>\n )}\n </Box>\n\n {isLoading ? (\n <Card className=\"ve-list-table\" variant=\"outlined\">\n {[1, 2, 3].map((n) => (\n <Box key={n} className=\"ve-list-row\">\n <Skeleton variant=\"rounded\" width={40} height={40} sx={{ borderRadius: \"11px\", flexShrink: 0 }} />\n <Box>\n <Skeleton width=\"55%\" height={18} />\n <Skeleton width=\"35%\" height={14} />\n </Box>\n <Skeleton height={14} />\n <Skeleton variant=\"rounded\" height={20} sx={{ borderRadius: \"999px\" }} />\n <Skeleton height={14} />\n <Skeleton variant=\"rounded\" height={32} sx={{ borderRadius: \"8px\" }} />\n </Box>\n ))}\n </Card>\n ) : filteredRows.length === 0 ? (\n <Card sx={{ p: 6, textAlign: \"center\", boxShadow: \"none\", border: \"1px solid var(--color-gray3)\" }}>\n <Typography variant=\"subtitle1\" sx={{ fontWeight: 600, mb: 1 }}>\n {rows.length === 0\n ? \"No vaccine education configured yet\"\n : search\n ? `No vaccines match \"${search}\"`\n : \"No vaccines match this filter\"}\n </Typography>\n {rows.length === 0 && (\n <>\n <Typography variant=\"body2\" sx={{ color: \"text.secondary\", mb: 2 }}>\n Add education content for a vaccine to get started.\n </Typography>\n {canEdit && (\n <Button variant=\"contained\" className=\"normal-case\" onClick={() => setAddOpen(true)}>\n Add Vaccine Education\n </Button>\n )}\n </>\n )}\n </Card>\n ) : (\n <>\n <Card className=\"ve-list-table\" variant=\"outlined\">\n <Box className=\"ve-list-head\">\n <span className=\"ve-list-head-vaccine\">Vaccine</span>\n <span className=\"ve-list-head-progress\">Completeness</span>\n <span className=\"ve-list-head-status\">Status</span>\n <span className=\"ve-list-head-updated\">Last updated</span>\n <span className=\"ve-list-head-actions\">Actions</span>\n </Box>\n {pagedRows.map(({ vaccine, record }) => (\n <VaccineRow key={vaccine.id} vaccine={vaccine} record={record} navigate={navigate} canEdit={canEdit} />\n ))}\n </Card>\n\n <Box className=\"ve-list-footer\">\n <Typography variant=\"body2\" className=\"ve-list-footer-count\">\n Showing {rangeFrom} to {rangeTo} of {totalResults} results\n </Typography>\n\n <Pagination\n page={page}\n count={totalPages}\n onChange={(_e, value) => setPage(value)}\n shape=\"rounded\"\n size=\"small\"\n className=\"ve-list-pagination\"\n />\n\n <Select\n size=\"small\"\n value={rowsPerPage}\n onChange={(e) => setRowsPerPage(Number(e.target.value))}\n className=\"ve-list-rows-select\"\n >\n {ROWS_PER_PAGE_OPTIONS.map((n) => (\n <MenuItem key={n} value={n}>\n {n} / page\n </MenuItem>\n ))}\n </Select>\n </Box>\n </>\n )}\n\n <AddVaccineEducationDialog\n open={addOpen}\n onClose={() => setAddOpen(false)}\n onStarted={(vaccineId) => navigate(`/ui/medplat/manage/vaccineEducation/${vaccineId}`)}\n />\n </Box>\n );\n}\n\nfunction VaccineRow({ vaccine, record, navigate, canEdit }) {\n const completed = countCompletedSections(record);\n const pct = Math.round((completed / TOTAL_SECTIONS) * 100);\n const updated = formatUpdatedOn(record.updatedOn);\n const status = statusOf(completed);\n\n return (\n <Box className=\"ve-list-row\">\n <Box className=\"ve-list-avatar\">\n <FontAwesomeIcon icon={faSyringe} />\n </Box>\n\n <Box className=\"ve-list-vaccine\">\n <Typography sx={{ fontWeight: 700, fontSize: 14 }}>{vaccine.name}</Typography>\n <Typography variant=\"caption\" sx={{ color: \"text.secondary\" }}>{vaccine.category || \"—\"}</Typography>\n </Box>\n\n <Box className=\"ve-list-progress\">\n <Typography variant=\"caption\" className=\"ve-list-progress-label\">{completed}/{TOTAL_SECTIONS}</Typography>\n <Box className=\"ve-progress-track\">\n <Box className={`ve-progress-fill ${status.className}`} sx={{ width: `${pct}%` }} />\n </Box>\n <Typography variant=\"caption\" className=\"ve-list-progress-pct\">{pct}%</Typography>\n </Box>\n\n <Box className=\"ve-list-status\">\n <span className={`ve-status-pill ${status.className}`}>\n <FontAwesomeIcon icon={status.icon} />\n {status.label}\n </span>\n </Box>\n\n <Box className=\"ve-list-updated\">\n {updated || <span className=\"ve-list-updated-empty\">—</span>}\n </Box>\n\n <Box className=\"ve-list-actions\">\n {canEdit && (\n <Tooltip title=\"Edit\" arrow>\n <IconButton\n size=\"small\"\n className=\"ve-list-icon-btn\"\n onClick={() => navigate(`/ui/medplat/manage/vaccineEducation/${vaccine.id}`)}\n >\n <FontAwesomeIcon icon={faPen} size=\"xs\" />\n </IconButton>\n </Tooltip>\n )}\n </Box>\n </Box>\n );\n}\n\nfunction StatTile({ value, label, tone, icon, active, onClick }) {\n return (\n <Box\n className={`ve-stat-tile tone-${tone} ${active ? \"is-active\" : \"\"} ${onClick ? \"is-clickable\" : \"\"}`}\n onClick={onClick}\n role={onClick ? \"button\" : undefined}\n tabIndex={onClick ? 0 : undefined}\n >\n <Box className=\"ve-stat-icon\">\n <FontAwesomeIcon icon={icon} />\n </Box>\n <Box sx={{ flex: 1, minWidth: 0 }}>\n <span className=\"ve-stat-value\">{value}</span>\n <span className=\"ve-stat-label\">{label}</span>\n </Box>\n {onClick && <FontAwesomeIcon icon={faChevronRight} className=\"ve-stat-chevron\" />}\n </Box>\n );\n}\n\nStatTile.propTypes = {\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n label: PropTypes.string.isRequired,\n tone: PropTypes.oneOf([\"complete\", \"partial\", \"empty\"]).isRequired,\n icon: PropTypes.object.isRequired,\n active: PropTypes.bool,\n onClick: PropTypes.func,\n};\n\nVaccineRow.propTypes = {\n vaccine: PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n name: PropTypes.string,\n category: PropTypes.string,\n }).isRequired,\n record: PropTypes.object.isRequired,\n navigate: PropTypes.func.isRequired,\n canEdit: PropTypes.bool,\n};\n"],"names":["AddVaccineEducationDialog","open","onClose","onStarted","vaccines","setVaccines","useState","search","setSearch","useEffect","listVaccinesWithoutEducation","filtered","v","handlePick","vaccine","Dialog","jsxs","DialogTitle","jsx","Typography","DialogContent","TextField","e","InputAdornment","FontAwesomeIcon","faSearch","Box","faChevronRight","PropTypes","FEATURE_CODE","EDIT_RIGHT","TOTAL_SECTIONS","SECTION_DEFS","ROWS_PER_PAGE_OPTIONS","statusOf","completed","faBan","faCircleCheck","faClock","formatUpdatedOn","value","date","datePart","timePart","VaccineEducationList","navigate","useNavigate","rows","setRows","isLoading","setIsLoading","addOpen","setAddOpen","rights","setRights","page","setPage","rowsPerPage","setRowsPerPage","statusFilter","setStatusFilter","notStartedCount","setNotStartedCount","load","data","assignedFeatures","listEducationRecords","getAssignedFeatures","pending","filteredRows","useMemo","r","_b","_a","countCompletedSections","totalResults","totalPages","pagedRows","rangeFrom","rangeTo","canEdit","GeneralUtil","rowStatusCounts","acc","record","key","completeCount","inProgressCount","faShieldHalved","Button","faPlus","StatTile","faFileLines","cur","Card","n","Skeleton","Fragment","VaccineRow","Pagination","_e","Select","MenuItem","vaccineId","pct","updated","status","faSyringe","Tooltip","IconButton","faPen","label","tone","icon","active","onClick"],"mappings":";;;;;;;;;;AAeA,SAAwBA,EAA0B,EAAE,MAAAC,GAAM,SAAAC,GAAS,WAAAC,KAAa;AAC9E,QAAM,CAACC,GAAUC,CAAW,IAAIC,EAAS,CAAA,CAAE,GACrC,CAACC,GAAQC,CAAS,IAAIF,EAAS,EAAE;AAEvC,EAAAG,EAAU,MAAM;AACd,IAAKR,MACLO,EAAU,EAAE,GACZE,EAAA,EAA+B,KAAKL,CAAW;AAAA,EACjD,GAAG,CAACJ,CAAI,CAAC;AAET,QAAMU,IAAWP,EAAS,OAAO,CAACQ,MAAMA,EAAE,KAAK,YAAA,EAAc,SAASL,EAAO,YAAA,CAAa,CAAC,GAKrFM,IAAa,CAACC,MAAY;AAC9B,IAAAX,EAAUW,EAAQ,EAAE;AAAA,EACtB;AAEA,2BACGC,IAAA,EAAO,MAAAd,GAAY,SAAAC,GAAkB,UAAS,MAAK,WAAS,IAC3D,UAAA;AAAA,IAAA,gBAAAc,EAACC,IAAA,EAAY,UAAA;AAAA,MAAA;AAAA,MAEX,gBAAAC,EAACC,GAAA,EAAW,SAAQ,SAAQ,IAAI,EAAE,OAAO,kBAAkB,YAAY,KAAK,IAAI,IAAA,GAAO,UAAA,uEAAA,CAEvF;AAAA,IAAA,GACF;AAAA,IACA,gBAAAH,EAACI,IAAA,EAAc,UAAQ,IACrB,UAAA;AAAA,MAAA,gBAAAF;AAAA,QAACG;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAS;AAAA,UACT,WAAS;AAAA,UACT,aAAY;AAAA,UACZ,OAAOd;AAAA,UACP,UAAU,CAACe,MAAMd,EAAUc,EAAE,OAAO,KAAK;AAAA,UACzC,YAAY;AAAA,YACV,gBACE,gBAAAJ,EAACK,GAAA,EAAe,UAAS,SACvB,UAAA,gBAAAL,EAACM,GAAA,EAAgB,MAAMC,GAAU,MAAK,KAAA,CAAK,EAAA,CAC7C;AAAA,UAAA;AAAA,QAEJ;AAAA,MAAA;AAAA,MAGF,gBAAAT,EAACU,GAAA,EAAI,IAAI,EAAE,SAAS,QAAQ,eAAe,UAAU,KAAK,GAAG,IAAI,IAAA,GAC9D,UAAA;AAAA,QAAAf,EAAS,WAAW,KACnB,gBAAAO,EAACC,GAAA,EAAW,SAAQ,SAAQ,IAAI,EAAE,OAAO,kBAAkB,WAAW,UAAU,IAAI,KACjF,UAAAf,EAAS,WAAW,IACjB,4DACA,sBAAsBG,CAAM,KAAA,CAClC;AAAA,QAEDI,EAAS,IAAI,CAACG,MACb,gBAAAE;AAAA,UAACU;AAAA,UAAA;AAAA,YAEC,SAAS,MAAMb,EAAWC,CAAO;AAAA,YACjC,MAAK;AAAA,YACL,UAAU;AAAA,YACV,IAAI;AAAA,cACF,SAAS;AAAA,cACT,gBAAgB;AAAA,cAChB,YAAY;AAAA,cACZ,KAAK;AAAA,cACL,GAAG;AAAA,cACH,QAAQ;AAAA,cACR,cAAc;AAAA,cACd,QAAQ;AAAA,cACR,WAAW,EAAE,aAAa,oBAAoB,YAAY,wBAAA;AAAA,YAAwB;AAAA,YAGpF,UAAA;AAAA,cAAA,gBAAAE,EAACU,GAAA,EACC,UAAA;AAAA,gBAAA,gBAAAR,EAACC,GAAA,EAAW,SAAQ,SAAQ,IAAI,EAAE,YAAY,IAAA,GAC3C,UAAAL,EAAQ,KAAA,CACX;AAAA,gBACA,gBAAAI,EAACC,GAAA,EAAW,SAAQ,WAAU,IAAI,EAAE,OAAO,iBAAA,GACxC,UAAAL,EAAQ,SAAA,CACX;AAAA,cAAA,GACF;AAAA,cACA,gBAAAI,EAACM,GAAA,EAAgB,MAAMG,GAAgB,MAAK,MAAK,OAAO,EAAE,OAAO,uBAAqB,CAAG;AAAA,YAAA;AAAA,UAAA;AAAA,UAxBpFb,EAAQ;AAAA,QAAA,CA0BhB;AAAA,MAAA,EAAA,CACH;AAAA,IAAA,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;AAEAd,EAA0B,YAAY;AAAA,EACpC,MAAM4B,EAAU,KAAK;AAAA,EACrB,SAASA,EAAU,KAAK;AAAA,EACxB,WAAWA,EAAU,KAAK;AAC5B;ACjEA,MAAMC,KAAe,0CACfC,KAAa,2DAEbC,IAAiBC,GAAa,QAC9BC,IAAwB,CAAC,IAAI,IAAI,EAAE,GAEnCC,IAAW,CAACC,MACZA,MAAc,IAAU,EAAE,KAAK,SAAS,OAAO,eAAe,WAAW,YAAY,MAAMC,EAAA,IAC3FD,KAAaJ,IACR,EAAE,KAAK,YAAY,OAAO,YAAY,WAAW,eAAe,MAAMM,GAAA,IAExE,EAAE,KAAK,WAAW,OAAO,eAAe,WAAW,cAAc,MAAMC,EAAA,GAG1EC,KAAkB,CAACC,MAAU;AACjC,MAAI,CAACA,EAAO,QAAO;AACnB,QAAMC,IAAO,IAAI,KAAKD,CAAK;AAC3B,MAAI,OAAO,MAAMC,EAAK,QAAA,CAAS,EAAG,QAAO;AACzC,QAAMC,IAAWD,EAAK,mBAAmB,QAAW,EAAE,KAAK,WAAW,OAAO,SAAS,MAAM,UAAA,CAAW,GACjGE,IAAWF,EAAK,mBAAmB,QAAW,EAAE,MAAM,WAAW,QAAQ,WAAW;AAC1F,SAAO,GAAGC,CAAQ,MAAMC,CAAQ;AAClC;AAEA,SAAwBC,KAAuB;AAC7C,QAAMC,IAAWC,GAAA,GACX,CAACC,GAAMC,CAAO,IAAI1C,EAAS,CAAA,CAAE,GAC7B,CAACC,GAAQC,CAAS,IAAIF,EAAS,EAAE,GACjC,CAAC2C,GAAWC,CAAY,IAAI5C,EAAS,EAAI,GACzC,CAAC6C,GAASC,CAAU,IAAI9C,EAAS,EAAK,GACtC,CAAC+C,GAAQC,CAAS,IAAIhD,EAAS,IAAI,GACnC,CAACiD,GAAMC,CAAO,IAAIlD,EAAS,CAAC,GAC5B,CAACmD,GAAaC,CAAc,IAAIpD,EAAS2B,EAAsB,CAAC,CAAC,GAIjE,CAAC0B,GAAcC,CAAe,IAAItD,EAAS,IAAI,GAI/C,CAACuD,GAAiBC,CAAkB,IAAIxD,EAAS,IAAI,GAErDyD,IAAO,YAAY;AACvB,IAAAb,EAAa,EAAI;AACjB,UAAM,CAACc,GAAMC,CAAgB,IAAI,MAAM,QAAQ,IAAI;AAAA,MACjDC,GAAA;AAAA,MACAC,GAAoBtC,EAAY;AAAA,IAAA,CACjC;AACD,IAAAmB,EAAQgB,CAAI,GACZV,EAAU,KAAK,OAAMW,KAAA,gBAAAA,EAAkB,SAAQ,IAAI,CAAC,GACpDf,EAAa,EAAK,GAClBxC,IACG,KAAK,CAAC0D,MAAYN,EAAmBM,EAAQ,MAAM,CAAC,EACpD,MAAM,MAAMN,EAAmB,IAAI,CAAC;AAAA,EACzC;AAEA,EAAArD,EAAU,MAAM;AACd,IAAAsD,EAAA;AAAA,EACF,GAAG,CAAA,CAAE;AAEL,QAAMM,IAAeC;AAAA,IACnB,MACEvB,EACG,OAAO,CAACwB;;AAAM,cAAAC,KAAAC,IAAAF,EAAE,YAAF,gBAAAE,EAAW,SAAX,gBAAAD,EAAiB,cAAc,SAASjE,EAAO,YAAA;AAAA,KAAc,EAC3E,OAAO,CAACgE,MAAM,CAACZ,KAAgBzB,EAASwC,EAAuBH,EAAE,MAAM,CAAC,EAAE,QAAQZ,CAAY;AAAA,IACnG,CAACZ,GAAMxC,GAAQoD,CAAY;AAAA,EAAA;AAK7B,EAAAlD,EAAU,MAAM;AACd,IAAA+C,EAAQ,CAAC;AAAA,EACX,GAAG,CAACjD,GAAQkD,GAAaE,GAAcZ,EAAK,MAAM,CAAC;AAEnD,QAAM4B,IAAeN,EAAa,QAC5BO,KAAa,KAAK,IAAI,GAAG,KAAK,KAAKD,IAAelB,CAAW,CAAC,GAC9DoB,KAAYR,EAAa,OAAOd,IAAO,KAAKE,GAAaF,IAAOE,CAAW,GAC3EqB,KAAYH,MAAiB,IAAI,KAAKpB,IAAO,KAAKE,IAAc,GAChEsB,KAAU,KAAK,IAAIJ,GAAcpB,IAAOE,CAAW,GAEnDuB,IAAUC,GAAY,eAAe5B,KAAA,gBAAAA,EAASvB,GAAW,GAKzDoD,IAAkBnC,EAAK,OAAO,CAACoC,GAAK,EAAE,QAAAC,QAAa;AACvD,UAAMC,IAAMnD,EAASwC,EAAuBU,CAAM,CAAC,EAAE;AACrD,WAAAD,EAAIE,CAAG,KAAKF,EAAIE,CAAG,KAAK,KAAK,GACtBF;AAAA,EACT,GAAG,CAAA,CAAE,GACCG,IAAgBJ,EAAgB,YAAY,GAC5CK,KAAkBL,EAAgB,WAAW;AAEnD,SACE,gBAAAlE,EAACU,GAAA,EAAI,WAAU,gBACb,UAAA;AAAA,IAAA,gBAAAV,EAACU,GAAA,EAAI,IAAI,EAAE,SAAS,QAAQ,gBAAgB,iBAAiB,YAAY,cAAc,KAAK,GAAG,IAAI,GAAG,UAAU,UAC9G,UAAA;AAAA,MAAA,gBAAAV,EAACU,GAAA,EAAI,IAAI,EAAE,SAAS,QAAQ,KAAK,GAAG,YAAY,aAAA,GAC9C,UAAA;AAAA,QAAA,gBAAAR,EAACQ,KAAI,WAAU,kBACb,4BAACF,GAAA,EAAgB,MAAMgE,IAAgB,EAAA,CACzC;AAAA,0BACC9D,GAAA,EACC,UAAA;AAAA,UAAA,gBAAAR,EAACC,GAAA,EAAW,SAAQ,MAAK,IAAI,EAAE,YAAY,KAAK,IAAI,IAAA,GAAO,UAAA,oBAAA,CAE3D;AAAA,UACA,gBAAAD,EAACC,GAAA,EAAW,SAAQ,SAAQ,IAAI,EAAE,OAAO,kBAAkB,UAAU,UAAU,UAAA,gHAAA,CAG/E;AAAA,QAAA,EAAA,CACF;AAAA,MAAA,GACF;AAAA,MACC6D,KACC,gBAAA9D;AAAA,QAACuE;AAAA,QAAA;AAAA,UACC,SAAQ;AAAA,UACR,WAAU;AAAA,UACV,WAAW,gBAAAvE,EAACM,GAAA,EAAgB,MAAMkE,GAAA,CAAQ;AAAA,UAC1C,SAAS,MAAMtC,EAAW,EAAI;AAAA,UAC9B,eAAY;AAAA,UACb,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAED,GAEJ;AAAA,IAEC,CAACH,KAAaF,EAAK,SAAS,KAC3B,gBAAA/B,EAACU,GAAA,EAAI,WAAU,iBACb,UAAA;AAAA,MAAA,gBAAAR;AAAA,QAACyE;AAAA,QAAA;AAAA,UACC,OAAOL;AAAA,UACP,OAAOA,MAAkB,IAAI,0BAA0B;AAAA,UACvD,MAAK;AAAA,UACL,MAAMM;AAAA,UACN,QAAQjC,MAAiB;AAAA,UACzB,SAAS,MAAMC,EAAgB,CAACiC,MAASA,MAAQ,aAAa,OAAO,UAAW;AAAA,QAAA;AAAA,MAAA;AAAA,MAElF,gBAAA3E;AAAA,QAACyE;AAAA,QAAA;AAAA,UACC,OAAOJ;AAAA,UACP,OAAM;AAAA,UACN,MAAK;AAAA,UACL,MAAMjD;AAAA,UACN,QAAQqB,MAAiB;AAAA,UACzB,SAAS,MAAMC,EAAgB,CAACiC,MAASA,MAAQ,YAAY,OAAO,SAAU;AAAA,QAAA;AAAA,MAAA;AAAA,MAEhF,gBAAA3E;AAAA,QAACyE;AAAA,QAAA;AAAA,UACC,OAAO9B,MAAoB,OAAO,MAAMA;AAAA,UACxC,OAAOA,MAAoB,IAAI,gCAAgC;AAAA,UAC/D,MAAK;AAAA,UACL,MAAMzB;AAAA,UACN,SAAS4C,IAAU,MAAM5B,EAAW,EAAI,IAAI;AAAA,QAAA;AAAA,MAAA;AAAA,IAC9C,GACF;AAAA,IAGF,gBAAApC,EAACU,GAAA,EAAI,IAAI,EAAE,SAAS,QAAQ,YAAY,UAAU,KAAK,KAAK,IAAI,GAAG,UAAU,UAC3E,UAAA;AAAA,MAAA,gBAAAR;AAAA,QAACG;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,aAAY;AAAA,UACZ,OAAOd;AAAA,UACP,UAAU,CAACe,MAAMd,EAAUc,EAAE,OAAO,KAAK;AAAA,UACzC,IAAI,EAAE,UAAU,KAAK,UAAU,KAAK,YAAY,0BAAA;AAAA,UAChD,YAAY;AAAA,YACV,gBACE,gBAAAJ,EAACK,GAAA,EAAe,UAAS,SACvB,UAAA,gBAAAL,EAACM,GAAA,EAAgB,MAAMC,GAAU,MAAK,KAAA,CAAK,EAAA,CAC7C;AAAA,UAAA;AAAA,QAEJ;AAAA,MAAA;AAAA,MAEDkC,KACC,gBAAA3C,EAAC,QAAA,EAAK,WAAU,kBACb,UAAA;AAAA,QAAA2C,MAAiB,aAAa,aAAa;AAAA,QAAc;AAAA,QAC1D,gBAAAzC,EAAC,UAAA,EAAO,MAAK,UAAS,SAAS,MAAM0C,EAAgB,IAAI,GAAG,cAAW,gBAAe,UAAA,IAAA,CAEtF;AAAA,MAAA,EAAA,CACF;AAAA,IAAA,GAEJ;AAAA,IAECX,IACC,gBAAA/B,EAAC4E,GAAA,EAAK,WAAU,iBAAgB,SAAQ,YACrC,UAAA,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAACC,MACd,gBAAA/E,EAACU,GAAA,EAAY,WAAU,eACrB,UAAA;AAAA,MAAA,gBAAAR,EAAC8E,GAAA,EAAS,SAAQ,WAAU,OAAO,IAAI,QAAQ,IAAI,IAAI,EAAE,cAAc,QAAQ,YAAY,KAAK;AAAA,wBAC/FtE,GAAA,EACC,UAAA;AAAA,QAAA,gBAAAR,EAAC8E,GAAA,EAAS,OAAM,OAAM,QAAQ,IAAI;AAAA,QAClC,gBAAA9E,EAAC8E,GAAA,EAAS,OAAM,OAAM,QAAQ,GAAA,CAAI;AAAA,MAAA,GACpC;AAAA,MACA,gBAAA9E,EAAC8E,GAAA,EAAS,QAAQ,GAAA,CAAI;AAAA,MACtB,gBAAA9E,EAAC8E,GAAA,EAAS,SAAQ,WAAU,QAAQ,IAAI,IAAI,EAAE,cAAc,QAAA,EAAQ,CAAG;AAAA,MACvE,gBAAA9E,EAAC8E,GAAA,EAAS,QAAQ,GAAA,CAAI;AAAA,MACtB,gBAAA9E,EAAC8E,GAAA,EAAS,SAAQ,WAAU,QAAQ,IAAI,IAAI,EAAE,cAAc,QAAM,CAAG;AAAA,IAAA,KAT7DD,CAUV,CACD,EAAA,CACH,IACE1B,EAAa,WAAW,IAC1B,gBAAArD,EAAC8E,GAAA,EAAK,IAAI,EAAE,GAAG,GAAG,WAAW,UAAU,WAAW,QAAQ,QAAQ,kCAChE,UAAA;AAAA,MAAA,gBAAA5E,EAACC,KAAW,SAAQ,aAAY,IAAI,EAAE,YAAY,KAAK,IAAI,EAAA,GACxD,UAAA4B,EAAK,WAAW,IACb,wCACAxC,IACE,sBAAsBA,CAAM,MAC5B,iCACR;AAAA,MACCwC,EAAK,WAAW,KACf,gBAAA/B,EAAAiF,GAAA,EACE,UAAA;AAAA,QAAA,gBAAA/E,EAACC,GAAA,EAAW,SAAQ,SAAQ,IAAI,EAAE,OAAO,kBAAkB,IAAI,EAAA,GAAK,UAAA,sDAAA,CAEpE;AAAA,QACC6D,KACC,gBAAA9D,EAACuE,GAAA,EAAO,SAAQ,aAAY,WAAU,eAAc,SAAS,MAAMrC,EAAW,EAAI,GAAG,UAAA,wBAAA,CAErF;AAAA,MAAA,EAAA,CAEJ;AAAA,IAAA,EAAA,CAEJ,IAEA,gBAAApC,EAAAiF,GAAA,EACE,UAAA;AAAA,MAAA,gBAAAjF,EAAC8E,GAAA,EAAK,WAAU,iBAAgB,SAAQ,YACtC,UAAA;AAAA,QAAA,gBAAA9E,EAACU,GAAA,EAAI,WAAU,gBACb,UAAA;AAAA,UAAA,gBAAAR,EAAC,QAAA,EAAK,WAAU,wBAAuB,UAAA,WAAO;AAAA,UAC9C,gBAAAA,EAAC,QAAA,EAAK,WAAU,yBAAwB,UAAA,gBAAY;AAAA,UACpD,gBAAAA,EAAC,QAAA,EAAK,WAAU,uBAAsB,UAAA,UAAM;AAAA,UAC5C,gBAAAA,EAAC,QAAA,EAAK,WAAU,wBAAuB,UAAA,gBAAY;AAAA,UACnD,gBAAAA,EAAC,QAAA,EAAK,WAAU,wBAAuB,UAAA,UAAA,CAAO;AAAA,QAAA,GAChD;AAAA,QACC2D,GAAU,IAAI,CAAC,EAAE,SAAA/D,GAAS,QAAAsE,EAAA,MACzB,gBAAAlE,EAACgF,GAAA,EAA4B,SAAApF,GAAkB,QAAAsE,GAAgB,UAAAvC,GAAoB,SAAAmC,EAAA,GAAlElE,EAAQ,EAA4E,CACtG;AAAA,MAAA,GACH;AAAA,MAEA,gBAAAE,EAACU,GAAA,EAAI,WAAU,kBACb,UAAA;AAAA,QAAA,gBAAAV,EAACG,GAAA,EAAW,SAAQ,SAAQ,WAAU,wBAAuB,UAAA;AAAA,UAAA;AAAA,UAClD2D;AAAA,UAAU;AAAA,UAAKC;AAAA,UAAQ;AAAA,UAAKJ;AAAA,UAAa;AAAA,QAAA,GACpD;AAAA,QAEA,gBAAAzD;AAAA,UAACiF;AAAA,UAAA;AAAA,YACC,MAAA5C;AAAA,YACA,OAAOqB;AAAA,YACP,UAAU,CAACwB,GAAI5D,MAAUgB,EAAQhB,CAAK;AAAA,YACtC,OAAM;AAAA,YACN,MAAK;AAAA,YACL,WAAU;AAAA,UAAA;AAAA,QAAA;AAAA,QAGZ,gBAAAtB;AAAA,UAACmF;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,OAAO5C;AAAA,YACP,UAAU,CAACnC,MAAMoC,EAAe,OAAOpC,EAAE,OAAO,KAAK,CAAC;AAAA,YACtD,WAAU;AAAA,YAET,YAAsB,IAAI,CAACyE,MAC1B,gBAAA/E,EAACsF,IAAA,EAAiB,OAAOP,GACtB,UAAA;AAAA,cAAAA;AAAA,cAAE;AAAA,YAAA,EAAA,GADUA,CAEf,CACD;AAAA,UAAA;AAAA,QAAA;AAAA,MACH,EAAA,CACF;AAAA,IAAA,GACF;AAAA,IAGF,gBAAA7E;AAAA,MAAClB;AAAA,MAAA;AAAA,QACC,MAAMmD;AAAA,QACN,SAAS,MAAMC,EAAW,EAAK;AAAA,QAC/B,WAAW,CAACmD,MAAc1D,EAAS,uCAAuC0D,CAAS,EAAE;AAAA,MAAA;AAAA,IAAA;AAAA,EACvF,GACF;AAEJ;AAEA,SAASL,EAAW,EAAE,SAAApF,GAAS,QAAAsE,GAAQ,UAAAvC,GAAU,SAAAmC,KAAW;AAC1D,QAAM7C,IAAYuC,EAAuBU,CAAM,GACzCoB,IAAM,KAAK,MAAOrE,IAAYJ,IAAkB,GAAG,GACnD0E,IAAUlE,GAAgB6C,EAAO,SAAS,GAC1CsB,IAASxE,EAASC,CAAS;AAEjC,SACE,gBAAAnB,EAACU,GAAA,EAAI,WAAU,eACb,UAAA;AAAA,IAAA,gBAAAR,EAACQ,KAAI,WAAU,kBACb,4BAACF,GAAA,EAAgB,MAAMmF,IAAW,EAAA,CACpC;AAAA,IAEA,gBAAA3F,EAACU,GAAA,EAAI,WAAU,mBACb,UAAA;AAAA,MAAA,gBAAAR,EAACC,GAAA,EAAW,IAAI,EAAE,YAAY,KAAK,UAAU,GAAA,GAAO,UAAAL,EAAQ,KAAA,CAAK;AAAA,MACjE,gBAAAI,EAACC,GAAA,EAAW,SAAQ,WAAU,IAAI,EAAE,OAAO,iBAAA,GAAqB,UAAAL,EAAQ,YAAY,IAAA,CAAI;AAAA,IAAA,GAC1F;AAAA,IAEA,gBAAAE,EAACU,GAAA,EAAI,WAAU,oBACb,UAAA;AAAA,MAAA,gBAAAV,EAACG,GAAA,EAAW,SAAQ,WAAU,WAAU,0BAA0B,UAAA;AAAA,QAAAgB;AAAA,QAAU;AAAA,QAAEJ;AAAA,MAAA,GAAe;AAAA,wBAC5FL,GAAA,EAAI,WAAU,qBACb,UAAA,gBAAAR,EAACQ,GAAA,EAAI,WAAW,oBAAoBgF,EAAO,SAAS,IAAI,IAAI,EAAE,OAAO,GAAGF,CAAG,OAAO,GACpF;AAAA,MACA,gBAAAxF,EAACG,GAAA,EAAW,SAAQ,WAAU,WAAU,wBAAwB,UAAA;AAAA,QAAAqF;AAAA,QAAI;AAAA,MAAA,EAAA,CAAC;AAAA,IAAA,GACvE;AAAA,IAEA,gBAAAtF,EAACQ,GAAA,EAAI,WAAU,kBACb,UAAA,gBAAAV,EAAC,UAAK,WAAW,kBAAkB0F,EAAO,SAAS,IACjD,UAAA;AAAA,MAAA,gBAAAxF,EAACM,GAAA,EAAgB,MAAMkF,EAAO,KAAA,CAAM;AAAA,MACnCA,EAAO;AAAA,IAAA,EAAA,CACV,EAAA,CACF;AAAA,IAEA,gBAAAxF,EAACQ,GAAA,EAAI,WAAU,mBACZ,UAAA+E,uBAAY,QAAA,EAAK,WAAU,yBAAwB,UAAA,IAAA,CAAC,EAAA,CACvD;AAAA,IAEA,gBAAAvF,EAACQ,GAAA,EAAI,WAAU,mBACZ,UAAAsD,uBACE4B,IAAA,EAAQ,OAAM,QAAO,OAAK,IACzB,UAAA,gBAAA1F;AAAA,MAAC2F;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,WAAU;AAAA,QACV,SAAS,MAAMhE,EAAS,uCAAuC/B,EAAQ,EAAE,EAAE;AAAA,QAE3E,UAAA,gBAAAI,EAACM,GAAA,EAAgB,MAAMsF,IAAO,MAAK,KAAA,CAAK;AAAA,MAAA;AAAA,IAAA,GAE5C,EAAA,CAEJ;AAAA,EAAA,GACF;AAEJ;AAEA,SAASnB,EAAS,EAAE,OAAAnD,GAAO,OAAAuE,GAAO,MAAAC,GAAM,MAAAC,GAAM,QAAAC,GAAQ,SAAAC,KAAW;AAC/D,SACE,gBAAAnG;AAAA,IAACU;AAAA,IAAA;AAAA,MACC,WAAW,qBAAqBsF,CAAI,IAAIE,IAAS,cAAc,EAAE,IAAIC,IAAU,iBAAiB,EAAE;AAAA,MAClG,SAAAA;AAAA,MACA,MAAMA,IAAU,WAAW;AAAA,MAC3B,UAAUA,IAAU,IAAI;AAAA,MAExB,UAAA;AAAA,QAAA,gBAAAjG,EAACQ,KAAI,WAAU,gBACb,UAAA,gBAAAR,EAACM,GAAA,EAAgB,MAAAyF,GAAY,GAC/B;AAAA,QACA,gBAAAjG,EAACU,KAAI,IAAI,EAAE,MAAM,GAAG,UAAU,KAC5B,UAAA;AAAA,UAAA,gBAAAR,EAAC,QAAA,EAAK,WAAU,iBAAiB,UAAAsB,GAAM;AAAA,UACvC,gBAAAtB,EAAC,QAAA,EAAK,WAAU,iBAAiB,UAAA6F,EAAA,CAAM;AAAA,QAAA,GACzC;AAAA,QACCI,KAAW,gBAAAjG,EAACM,GAAA,EAAgB,MAAMG,GAAgB,WAAU,kBAAA,CAAkB;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGrF;AAEAgE,EAAS,YAAY;AAAA,EACnB,OAAO/D,EAAU,UAAU,CAACA,EAAU,QAAQA,EAAU,MAAM,CAAC,EAAE;AAAA,EACjE,OAAOA,EAAU,OAAO;AAAA,EACxB,MAAMA,EAAU,MAAM,CAAC,YAAY,WAAW,OAAO,CAAC,EAAE;AAAA,EACxD,MAAMA,EAAU,OAAO;AAAA,EACvB,QAAQA,EAAU;AAAA,EAClB,SAASA,EAAU;AACrB;AAEAsE,EAAW,YAAY;AAAA,EACrB,SAAStE,EAAU,MAAM;AAAA,IACvB,IAAIA,EAAU,UAAU,CAACA,EAAU,QAAQA,EAAU,MAAM,CAAC,EAAE;AAAA,IAC9D,MAAMA,EAAU;AAAA,IAChB,UAAUA,EAAU;AAAA,EAAA,CACrB,EAAE;AAAA,EACH,QAAQA,EAAU,OAAO;AAAA,EACzB,UAAUA,EAAU,KAAK;AAAA,EACzB,SAASA,EAAU;AACrB;"}
|
|
1
|
+
{"version":3,"file":"VaccineEducationList-BxZHahCh.js","sources":["../src/views/VaccineEducation/components/AddVaccineEducationDialog.jsx","../src/views/VaccineEducation/components/VaccineEducationList.jsx"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Dialog,\n DialogTitle,\n DialogContent,\n Box,\n TextField,\n InputAdornment,\n Typography,\n} from \"@mui/material\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faSearch, faChevronRight } from \"@fortawesome/free-solid-svg-icons\";\nimport { listVaccinesWithoutEducation } from \"../services/vaccineEducationService\";\n\nexport default function AddVaccineEducationDialog({ open, onClose, onStarted }) {\n const [vaccines, setVaccines] = useState([]);\n const [search, setSearch] = useState(\"\");\n\n useEffect(() => {\n if (!open) return;\n setSearch(\"\");\n listVaccinesWithoutEducation().then(setVaccines);\n }, [open]);\n\n const filtered = vaccines.filter((v) => v.name.toLowerCase().includes(search.toLowerCase()));\n\n // No DB write here — picking a vaccine just opens the configurator against it.\n // FETCH_VACCINE_EDUCATION's LEFT JOIN already returns an empty record for a\n // vaccine with no row yet, and the first real INSERT only happens on Save.\n const handlePick = (vaccine) => {\n onStarted(vaccine.id);\n };\n\n return (\n <Dialog open={open} onClose={onClose} maxWidth=\"sm\" fullWidth>\n <DialogTitle>\n Add Vaccine Education\n <Typography variant=\"body2\" sx={{ color: \"text.secondary\", fontWeight: 400, mt: 0.5 }}>\n Choose a configured vaccine that doesn't have education content yet.\n </Typography>\n </DialogTitle>\n <DialogContent dividers>\n <TextField\n size=\"small\"\n fullWidth\n autoFocus\n placeholder=\"Search vaccines…\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n InputProps={{\n startAdornment: (\n <InputAdornment position=\"start\">\n <FontAwesomeIcon icon={faSearch} size=\"xs\" />\n </InputAdornment>\n ),\n }}\n />\n\n <Box sx={{ display: \"flex\", flexDirection: \"column\", gap: 1, mt: 1.5 }}>\n {filtered.length === 0 && (\n <Typography variant=\"body2\" sx={{ color: \"text.secondary\", textAlign: \"center\", py: 3 }}>\n {vaccines.length === 0\n ? \"Every configured vaccine already has education content.\"\n : `No vaccines match \"${search}\".`}\n </Typography>\n )}\n {filtered.map((vaccine) => (\n <Box\n key={vaccine.id}\n onClick={() => handlePick(vaccine)}\n role=\"button\"\n tabIndex={0}\n sx={{\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n gap: 1.5,\n p: 1.25,\n border: \"1px solid var(--color-gray3)\",\n borderRadius: \"8px\",\n cursor: \"pointer\",\n \"&:hover\": { borderColor: \"var(--ve-accent)\", background: \"var(--ve-accent-soft)\" },\n }}\n >\n <Box>\n <Typography variant=\"body2\" sx={{ fontWeight: 600 }}>\n {vaccine.name}\n </Typography>\n <Typography variant=\"caption\" sx={{ color: \"text.secondary\" }}>\n {vaccine.category}\n </Typography>\n </Box>\n <FontAwesomeIcon icon={faChevronRight} size=\"xs\" style={{ color: \"var(--color-gray2)\" }} />\n </Box>\n ))}\n </Box>\n </DialogContent>\n </Dialog>\n );\n}\n\nAddVaccineEducationDialog.propTypes = {\n open: PropTypes.bool.isRequired,\n onClose: PropTypes.func.isRequired,\n onStarted: PropTypes.func.isRequired,\n};\n","import { useEffect, useMemo, useState } from \"react\";\nimport { useNavigate } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport {\n Box,\n Typography,\n TextField,\n InputAdornment,\n Button,\n Card,\n Skeleton,\n Pagination,\n Select,\n MenuItem,\n IconButton,\n Tooltip,\n} from \"@mui/material\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport {\n faSearch,\n faPlus,\n faPen,\n faSyringe,\n faShieldHalved,\n faFileLines,\n faClock,\n faBan,\n faCircleCheck,\n faChevronRight,\n} from \"@fortawesome/free-solid-svg-icons\";\nimport { getAssignedFeatures } from \"@/utils/feature\";\nimport GeneralUtil from \"@/common/services/util/GeneralUtil.js\";\nimport { listEducationRecords, listVaccinesWithoutEducation } from \"../services/vaccineEducationService\";\nimport { countCompletedSections, SECTION_DEFS } from \"../constants/sectionDefs\";\nimport AddVaccineEducationDialog from \"./AddVaccineEducationDialog\";\nimport \"../styles/VaccineEducation.scss\";\n\n// Same feature as Immunization Configuration (ImmunizationSummary.jsx) — not a\n// separate registration. The entry button there is already gated by\n// view.admin.immunizationConfiguration.vaccineEducation; this is the same feature's\n// update right, gating Add/Edit once you're actually on this screen.\nconst FEATURE_CODE = \"techo.manage.immunizationConfiguration\";\nconst EDIT_RIGHT = \"update.admin.immunizationConfiguration.vaccineEducation\";\n\nconst TOTAL_SECTIONS = SECTION_DEFS.length;\nconst ROWS_PER_PAGE_OPTIONS = [10, 25, 50];\n\nconst statusOf = (completed) => {\n if (completed === 0) return { key: \"empty\", label: \"Not started\", className: \"is-empty\", icon: faBan };\n if (completed >= TOTAL_SECTIONS) {\n return { key: \"complete\", label: \"Complete\", className: \"is-complete\", icon: faCircleCheck };\n }\n return { key: \"partial\", label: \"In progress\", className: \"is-partial\", icon: faClock };\n};\n\nconst formatUpdatedOn = (value) => {\n if (!value) return null;\n const date = new Date(value);\n if (Number.isNaN(date.getTime())) return null;\n const datePart = date.toLocaleDateString(undefined, { day: \"numeric\", month: \"short\", year: \"numeric\" });\n const timePart = date.toLocaleTimeString(undefined, { hour: \"numeric\", minute: \"2-digit\" });\n return `${datePart} · ${timePart}`;\n};\n\nexport default function VaccineEducationList() {\n const navigate = useNavigate();\n const [rows, setRows] = useState([]);\n const [search, setSearch] = useState(\"\");\n const [isLoading, setIsLoading] = useState(true);\n const [addOpen, setAddOpen] = useState(false);\n const [rights, setRights] = useState(null);\n const [page, setPage] = useState(1);\n const [rowsPerPage, setRowsPerPage] = useState(ROWS_PER_PAGE_OPTIONS[0]);\n // \"complete\" | \"partial\" | null — set by clicking the matching stat tile below.\n // There's no \"empty\" option here: those vaccines have no row in this table at all,\n // so that tile opens the Add dialog instead of filtering to nothing.\n const [statusFilter, setStatusFilter] = useState(null);\n // Vaccines that exist in Immunization Configuration but have no education record at\n // all — the actual remaining work, which the table itself can't show since those\n // vaccines have no row here yet.\n const [notStartedCount, setNotStartedCount] = useState(null);\n\n const load = async () => {\n setIsLoading(true);\n const [data, assignedFeatures] = await Promise.all([\n listEducationRecords(),\n getAssignedFeatures(FEATURE_CODE),\n ]);\n setRows(data);\n setRights(JSON.parse(assignedFeatures?.data || \"{}\"));\n setIsLoading(false);\n listVaccinesWithoutEducation()\n .then((pending) => setNotStartedCount(pending.length))\n .catch(() => setNotStartedCount(null));\n };\n\n useEffect(() => {\n load();\n }, []);\n\n const filteredRows = useMemo(\n () =>\n rows\n .filter((r) => r.vaccine?.name?.toLowerCase().includes(search.toLowerCase()))\n .filter((r) => !statusFilter || statusOf(countCompletedSections(r.record)).key === statusFilter),\n [rows, search, statusFilter],\n );\n\n // Reset to page 1 whenever the result set changes shape, so a stale page number\n // can't leave the list showing an out-of-range (empty-looking) slice.\n useEffect(() => {\n setPage(1);\n }, [search, rowsPerPage, statusFilter, rows.length]);\n\n const totalResults = filteredRows.length;\n const totalPages = Math.max(1, Math.ceil(totalResults / rowsPerPage));\n const pagedRows = filteredRows.slice((page - 1) * rowsPerPage, page * rowsPerPage);\n const rangeFrom = totalResults === 0 ? 0 : (page - 1) * rowsPerPage + 1;\n const rangeTo = Math.min(totalResults, page * rowsPerPage);\n\n const canEdit = GeneralUtil.hasCheckRights(rights?.[EDIT_RIGHT]);\n\n // Same statusOf() the filter itself uses — computing these independently (e.g.\n // inProgress = total - complete) previously miscounted \"not started\" (0/12) rows as\n // \"in progress\", so a tile's own count didn't match what clicking it actually filtered to.\n const rowStatusCounts = rows.reduce((acc, { record }) => {\n const key = statusOf(countCompletedSections(record)).key;\n acc[key] = (acc[key] || 0) + 1;\n return acc;\n }, {});\n const completeCount = rowStatusCounts.complete || 0;\n const inProgressCount = rowStatusCounts.partial || 0;\n\n return (\n <Box className=\"ve-list-page\">\n <Box sx={{ display: \"flex\", justifyContent: \"space-between\", alignItems: \"flex-start\", gap: 2, mb: 3, flexWrap: \"wrap\" }}>\n <Box sx={{ display: \"flex\", gap: 2, alignItems: \"flex-start\" }}>\n <Box className=\"ve-header-icon\">\n <FontAwesomeIcon icon={faShieldHalved} />\n </Box>\n <Box>\n <Typography variant=\"h5\" sx={{ fontWeight: 700, mb: 0.5 }}>\n Vaccine Education\n </Typography>\n <Typography variant=\"body2\" sx={{ color: \"text.secondary\", maxWidth: \"62ch\" }}>\n Write the education content stored against each vaccine — overview, safety\n guidance, FAQs, images and videos.\n </Typography>\n </Box>\n </Box>\n {canEdit && (\n <Button\n variant=\"contained\"\n className=\"normal-case\"\n startIcon={<FontAwesomeIcon icon={faPlus} />}\n onClick={() => setAddOpen(true)}\n data-testid=\"vaccineEducation-button-add\"\n >\n Add Vaccine Education\n </Button>\n )}\n </Box>\n\n {!isLoading && rows.length > 0 && (\n <Box className=\"ve-stat-strip\">\n <StatTile\n value={completeCount}\n label={completeCount === 1 ? \"vaccine fully written\" : \"vaccines fully written\"}\n tone=\"complete\"\n icon={faFileLines}\n active={statusFilter === \"complete\"}\n onClick={() => setStatusFilter((cur) => (cur === \"complete\" ? null : \"complete\"))}\n />\n <StatTile\n value={inProgressCount}\n label=\"still in progress\"\n tone=\"partial\"\n icon={faClock}\n active={statusFilter === \"partial\"}\n onClick={() => setStatusFilter((cur) => (cur === \"partial\" ? null : \"partial\"))}\n />\n <StatTile\n value={notStartedCount === null ? \"—\" : notStartedCount}\n label={notStartedCount === 1 ? \"vaccine with no content yet\" : \"vaccines with no content yet\"}\n tone=\"empty\"\n icon={faBan}\n onClick={canEdit ? () => setAddOpen(true) : undefined}\n />\n </Box>\n )}\n\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: 1.5, mb: 2, flexWrap: \"wrap\" }}>\n <TextField\n size=\"small\"\n placeholder=\"Search vaccine name…\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n sx={{ minWidth: 260, maxWidth: 360, background: \"var(--color-background)\" }}\n InputProps={{\n startAdornment: (\n <InputAdornment position=\"start\">\n <FontAwesomeIcon icon={faSearch} size=\"xs\" />\n </InputAdornment>\n ),\n }}\n />\n {statusFilter && (\n <span className=\"ve-filter-chip\">\n {statusFilter === \"complete\" ? \"Complete\" : \"In progress\"} only\n <button type=\"button\" onClick={() => setStatusFilter(null)} aria-label=\"Clear filter\">\n ×\n </button>\n </span>\n )}\n </Box>\n\n {isLoading ? (\n <Card className=\"ve-list-table\" variant=\"outlined\">\n {[1, 2, 3].map((n) => (\n <Box key={n} className=\"ve-list-row\">\n <Skeleton variant=\"rounded\" width={40} height={40} sx={{ borderRadius: \"11px\", flexShrink: 0 }} />\n <Box>\n <Skeleton width=\"55%\" height={18} />\n <Skeleton width=\"35%\" height={14} />\n </Box>\n <Skeleton height={14} />\n <Skeleton variant=\"rounded\" height={20} sx={{ borderRadius: \"999px\" }} />\n <Skeleton height={14} />\n <Skeleton variant=\"rounded\" height={32} sx={{ borderRadius: \"8px\" }} />\n </Box>\n ))}\n </Card>\n ) : filteredRows.length === 0 ? (\n <Card sx={{ p: 6, textAlign: \"center\", boxShadow: \"none\", border: \"1px solid var(--color-gray3)\" }}>\n <Typography variant=\"subtitle1\" sx={{ fontWeight: 600, mb: 1 }}>\n {rows.length === 0\n ? \"No vaccine education configured yet\"\n : search\n ? `No vaccines match \"${search}\"`\n : \"No vaccines match this filter\"}\n </Typography>\n {rows.length === 0 && (\n <>\n <Typography variant=\"body2\" sx={{ color: \"text.secondary\", mb: 2 }}>\n Add education content for a vaccine to get started.\n </Typography>\n {canEdit && (\n <Button variant=\"contained\" className=\"normal-case\" onClick={() => setAddOpen(true)}>\n Add Vaccine Education\n </Button>\n )}\n </>\n )}\n </Card>\n ) : (\n <>\n <Card className=\"ve-list-table\" variant=\"outlined\">\n <Box className=\"ve-list-head\">\n <span className=\"ve-list-head-vaccine\">Vaccine</span>\n <span className=\"ve-list-head-progress\">Completeness</span>\n <span className=\"ve-list-head-status\">Status</span>\n <span className=\"ve-list-head-updated\">Last updated</span>\n <span className=\"ve-list-head-actions\">Actions</span>\n </Box>\n {pagedRows.map(({ vaccine, record }) => (\n <VaccineRow key={vaccine.id} vaccine={vaccine} record={record} navigate={navigate} canEdit={canEdit} />\n ))}\n </Card>\n\n <Box className=\"ve-list-footer\">\n <Typography variant=\"body2\" className=\"ve-list-footer-count\">\n Showing {rangeFrom} to {rangeTo} of {totalResults} results\n </Typography>\n\n <Pagination\n page={page}\n count={totalPages}\n onChange={(_e, value) => setPage(value)}\n shape=\"rounded\"\n size=\"small\"\n className=\"ve-list-pagination\"\n />\n\n <Select\n size=\"small\"\n value={rowsPerPage}\n onChange={(e) => setRowsPerPage(Number(e.target.value))}\n className=\"ve-list-rows-select\"\n >\n {ROWS_PER_PAGE_OPTIONS.map((n) => (\n <MenuItem key={n} value={n}>\n {n} / page\n </MenuItem>\n ))}\n </Select>\n </Box>\n </>\n )}\n\n <AddVaccineEducationDialog\n open={addOpen}\n onClose={() => setAddOpen(false)}\n onStarted={(vaccineId) => navigate(`/ui/medplat/manage/vaccineEducation/${vaccineId}`)}\n />\n </Box>\n );\n}\n\nfunction VaccineRow({ vaccine, record, navigate, canEdit }) {\n const completed = countCompletedSections(record);\n const pct = Math.round((completed / TOTAL_SECTIONS) * 100);\n const updated = formatUpdatedOn(record.updatedOn);\n const status = statusOf(completed);\n\n return (\n <Box className=\"ve-list-row\">\n <Box className=\"ve-list-avatar\">\n <FontAwesomeIcon icon={faSyringe} />\n </Box>\n\n <Box className=\"ve-list-vaccine\">\n <Typography sx={{ fontWeight: 700, fontSize: 14 }}>{vaccine.name}</Typography>\n <Typography variant=\"caption\" sx={{ color: \"text.secondary\" }}>{vaccine.category || \"—\"}</Typography>\n </Box>\n\n <Box className=\"ve-list-progress\">\n <Typography variant=\"caption\" className=\"ve-list-progress-label\">{completed}/{TOTAL_SECTIONS}</Typography>\n <Box className=\"ve-progress-track\">\n <Box className={`ve-progress-fill ${status.className}`} sx={{ width: `${pct}%` }} />\n </Box>\n <Typography variant=\"caption\" className=\"ve-list-progress-pct\">{pct}%</Typography>\n </Box>\n\n <Box className=\"ve-list-status\">\n <span className={`ve-status-pill ${status.className}`}>\n <FontAwesomeIcon icon={status.icon} />\n {status.label}\n </span>\n </Box>\n\n <Box className=\"ve-list-updated\">\n {updated || <span className=\"ve-list-updated-empty\">—</span>}\n </Box>\n\n <Box className=\"ve-list-actions\">\n {canEdit && (\n <Tooltip title=\"Edit\" arrow>\n <IconButton\n size=\"small\"\n className=\"ve-list-icon-btn\"\n onClick={() => navigate(`/ui/medplat/manage/vaccineEducation/${vaccine.id}`)}\n >\n <FontAwesomeIcon icon={faPen} size=\"xs\" />\n </IconButton>\n </Tooltip>\n )}\n </Box>\n </Box>\n );\n}\n\nfunction StatTile({ value, label, tone, icon, active, onClick }) {\n return (\n <Box\n className={`ve-stat-tile tone-${tone} ${active ? \"is-active\" : \"\"} ${onClick ? \"is-clickable\" : \"\"}`}\n onClick={onClick}\n role={onClick ? \"button\" : undefined}\n tabIndex={onClick ? 0 : undefined}\n >\n <Box className=\"ve-stat-icon\">\n <FontAwesomeIcon icon={icon} />\n </Box>\n <Box sx={{ flex: 1, minWidth: 0 }}>\n <span className=\"ve-stat-value\">{value}</span>\n <span className=\"ve-stat-label\">{label}</span>\n </Box>\n {onClick && <FontAwesomeIcon icon={faChevronRight} className=\"ve-stat-chevron\" />}\n </Box>\n );\n}\n\nStatTile.propTypes = {\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n label: PropTypes.string.isRequired,\n tone: PropTypes.oneOf([\"complete\", \"partial\", \"empty\"]).isRequired,\n icon: PropTypes.object.isRequired,\n active: PropTypes.bool,\n onClick: PropTypes.func,\n};\n\nVaccineRow.propTypes = {\n vaccine: PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n name: PropTypes.string,\n category: PropTypes.string,\n }).isRequired,\n record: PropTypes.object.isRequired,\n navigate: PropTypes.func.isRequired,\n canEdit: PropTypes.bool,\n};\n"],"names":["AddVaccineEducationDialog","open","onClose","onStarted","vaccines","setVaccines","useState","search","setSearch","useEffect","listVaccinesWithoutEducation","filtered","v","handlePick","vaccine","Dialog","jsxs","DialogTitle","jsx","Typography","DialogContent","TextField","e","InputAdornment","FontAwesomeIcon","faSearch","Box","faChevronRight","PropTypes","FEATURE_CODE","EDIT_RIGHT","TOTAL_SECTIONS","SECTION_DEFS","ROWS_PER_PAGE_OPTIONS","statusOf","completed","faBan","faCircleCheck","faClock","formatUpdatedOn","value","date","datePart","timePart","VaccineEducationList","navigate","useNavigate","rows","setRows","isLoading","setIsLoading","addOpen","setAddOpen","rights","setRights","page","setPage","rowsPerPage","setRowsPerPage","statusFilter","setStatusFilter","notStartedCount","setNotStartedCount","load","data","assignedFeatures","listEducationRecords","getAssignedFeatures","pending","filteredRows","useMemo","r","_b","_a","countCompletedSections","totalResults","totalPages","pagedRows","rangeFrom","rangeTo","canEdit","GeneralUtil","rowStatusCounts","acc","record","key","completeCount","inProgressCount","faShieldHalved","Button","faPlus","StatTile","faFileLines","cur","Card","n","Skeleton","Fragment","VaccineRow","Pagination","_e","Select","MenuItem","vaccineId","pct","updated","status","faSyringe","Tooltip","IconButton","faPen","label","tone","icon","active","onClick"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { A as ge, B as ve, z as fe, V as we, G as L, k as be, O as xe, f as ye, x as Ce, a2 as Re, a as x, ag as Te, ah as $e } from "./ImmunizationConfigurationBase-
|
|
1
|
+
import { A as ge, B as ve, z as fe, V as we, G as L, k as be, O as xe, f as ye, x as Ce, a2 as Re, a as x, ag as Te, ah as $e } from "./ImmunizationConfigurationBase-Clkk0-n6.js";
|
|
2
2
|
import { V as _, j as Me, z as Ve, D as Ne } from "./constants-BTpJFQe_-CYPZIqQF.js";
|
|
3
3
|
import { o as h, n as q } from "./format-UOyOu75i-D0GyylyQ.js";
|
|
4
4
|
import { r as Ie, C as Ee } from "./validation-BzlHnL-r-CCJm2utQ.js";
|
|
5
5
|
import { n as Oe } from "./useFieldErrors-hDG8ox_x-DbSAzrGo.js";
|
|
6
|
-
import { Q as We, Z as ke, $ as Ae, e as Pe, Y as ze } from "./PmGuard-BvUUbU80-
|
|
7
|
-
import { y as je } from "./listValueStore-5d4vNGQM-
|
|
6
|
+
import { Q as We, Z as ke, $ as Ae, e as Pe, Y as ze } from "./PmGuard-BvUUbU80-DJipZoSg.js";
|
|
7
|
+
import { y as je } from "./listValueStore-5d4vNGQM-DB08drLf.js";
|
|
8
8
|
import { useState as m } from "react";
|
|
9
9
|
import { jsxs as l, jsx as e } from "react/jsx-runtime";
|
|
10
10
|
import { Box as O, Alert as Se, LinearProgress as G, TableHead as Fe, TableRow as H, TableCell as r, TableBody as Be, Typography as c, Tooltip as De, Chip as Q, Stack as M, Button as p, Dialog as U, DialogTitle as Y, DialogContent as Z, TextField as W, DialogActions as J } from "@mui/material";
|
|
@@ -454,4 +454,4 @@ function tn() {
|
|
|
454
454
|
export {
|
|
455
455
|
tn as default
|
|
456
456
|
};
|
|
457
|
-
//# sourceMappingURL=VialsPage-LoDaUqVv-
|
|
457
|
+
//# sourceMappingURL=VialsPage-LoDaUqVv-Dw00Zc06.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VialsPage-LoDaUqVv-DmMXbK8j.js","sources":["../../productManagement/dist/VialsPage-LoDaUqVv.js"],"sourcesContent":["import { B as e, F as t, L as ee, R as te, k as ne, l as n, o as r, r as i } from \"./settingsStore-Df_wGo55.js\";\nimport { c as a, l as o, o as s, s as re, t as ie } from \"./PmTable-COZEuDAr.js\";\nimport { M as ae, N as oe, R as c, _ as se } from \"./constants-BTpJFQe_.js\";\nimport { n as l, r as u } from \"./format-UOyOu75i.js\";\nimport { m as ce, t as le } from \"./validation-BzlHnL-r.js\";\nimport { t as ue } from \"./useFieldErrors-hDG8ox_x.js\";\nimport { a as de, i as fe, n as pe, r as me, t as he } from \"./PmGuard-BvUUbU80.js\";\nimport { t as ge } from \"./listValueStore-5d4vNGQM.js\";\nimport { useState as d } from \"react\";\nimport { jsx as f, jsxs as p } from \"react/jsx-runtime\";\nimport { Alert as _e, Box as m, Button as h, Chip as g, Dialog as _, DialogActions as v, DialogContent as y, DialogTitle as b, LinearProgress as x, Stack as S, TableBody as ve, TableCell as C, TableHead as ye, TableRow as w, TextField as T, Tooltip as be, Typography as E } from \"@mui/material\";\nimport xe from \"@mui/icons-material/VaccinesRounded\";\nimport { v4 as D } from \"uuid\";\nimport Se from \"@mui/icons-material/RefreshRounded\";\n//#region src/views/VialsPage.jsx\nfunction O() {\n\tlet O = fe(), Ce = O.has(\"update.manage.productManagement.vial\"), [k, we] = d([]), [Te, Ee] = d([]), [De, Oe] = d([]), [ke, Ae] = d([]), [je, Me] = d([]), A = i(), { adjustmentReasons: Ne } = ge(), Pe = A?.allowManualAdjustment === !0 && O.has(\"update.manage.productManagement.adjustment\"), j = {\n\t\topen: !1,\n\t\tvial: null,\n\t\tnewVolumeMl: \"\",\n\t\treasonCode: \"\",\n\t\tcomments: \"\"\n\t}, [M, N] = d(j), [P, F] = d(!1);\n\tA?.allowPersonalPurchase;\n\tlet [I, L] = d(!1), [R, z] = d(\"\"), [B, V] = d({\n\t\topen: !1,\n\t\tvial: null,\n\t\treason: \"TIME_EXPIRATION\",\n\t\tcomments: \"\"\n\t}), H = ue();\n\tasync function U() {\n\t\tL(!0), z(\"\");\n\t\ttry {\n\t\t\tlet [n, r, i, a, o] = await Promise.all([\n\t\t\t\te(),\n\t\t\t\tt(),\n\t\t\t\tne(),\n\t\t\t\tee().catch(() => []),\n\t\t\t\tte().catch(() => [])\n\t\t\t]);\n\t\t\twe(n), Ee(r), Oe(i), Ae(a), Me(o);\n\t\t} catch (e) {\n\t\t\tz(e?.response?.data?.message ?? e?.message ?? \"Failed to load\"), o({\n\t\t\t\tmessage: e?.message || \"Failed to load\",\n\t\t\t\ttype: \"error\"\n\t\t\t});\n\t\t} finally {\n\t\t\tL(!1);\n\t\t}\n\t}\n\tme(\"view.manage.productManagement.vial\", () => {\n\t\tU();\n\t}, []);\n\tlet W = { wastageReason: ce(B.reason, \"Reason\") }, G = le(W), K = M.vial, q = K ? De.find((e) => e.id === K.productId) : null, J = q?.unit === \"DROPS\" ? \"drops\" : \"ml\", Y = Number(K?.volumeTotalMl ?? 0), X = Number(K?.volumeRemainingMl ?? 0), Z = Number(M.newVolumeMl), Q = M.newVolumeMl === \"\" || !Number.isFinite(Z) ? \"Enter the volume now in the vial.\" : Z < 0 || Z > Y ? `Enter a value between 0 and ${u(Y)} ${J}.` : Z === X ? \"That is already the recorded volume.\" : \"\", $ = !Q && !!M.reasonCode && !!M.comments.trim(), Fe = (() => {\n\t\tif (!q || !Number.isFinite(Z) || Z < 0) return \"\";\n\t\tlet e = [...new Set((q.vaccineConfig?.profiles ?? []).map((e) => Number(e.doseAmount)).filter((e) => e > 0))];\n\t\treturn e.length === 0 ? \"\" : e.map((e) => `${Math.floor(Z / e)} doses of ${u(e)} ${J}`).join(\", or \");\n\t})();\n\tasync function Ie() {\n\t\tif (!(!K || !$)) {\n\t\t\tF(!0);\n\t\t\ttry {\n\t\t\t\tawait r({\n\t\t\t\t\tid: D(),\n\t\t\t\t\topenVialId: K.id,\n\t\t\t\t\tnewVolumeMl: Z,\n\t\t\t\t\treasonCode: M.reasonCode,\n\t\t\t\t\tcomments: M.comments.trim()\n\t\t\t\t}), o({\n\t\t\t\t\tmessage: \"Vial volume corrected.\",\n\t\t\t\t\ttype: \"success\"\n\t\t\t\t}), N(j), await U();\n\t\t\t} catch (e) {\n\t\t\t\to({\n\t\t\t\t\tmessage: e?.response?.data?.message ?? e?.message ?? \"Failed to correct vial\",\n\t\t\t\t\ttype: \"error\"\n\t\t\t\t});\n\t\t\t} finally {\n\t\t\t\tF(!1);\n\t\t\t}\n\t\t}\n\t}\n\tasync function Le() {\n\t\tif (B.vial) {\n\t\t\tif (!G) {\n\t\t\t\tH.markAllTouched();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tawait n({\n\t\t\t\t\tid: D(),\n\t\t\t\t\topenVialId: B.vial.id,\n\t\t\t\t\twastageReason: B.reason,\n\t\t\t\t\tcomments: B.comments || null\n\t\t\t\t}), o({\n\t\t\t\t\tmessage: \"Vial closed.\",\n\t\t\t\t\ttype: \"success\"\n\t\t\t\t}), V({\n\t\t\t\t\topen: !1,\n\t\t\t\t\tvial: null,\n\t\t\t\t\treason: \"TIME_EXPIRATION\",\n\t\t\t\t\tcomments: \"\"\n\t\t\t\t}), await U();\n\t\t\t} catch (e) {\n\t\t\t\to({\n\t\t\t\t\tmessage: e?.response?.data?.message ?? e?.message ?? \"Failed\",\n\t\t\t\t\ttype: \"error\"\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\treturn /* @__PURE__ */ p(m, { children: [/* @__PURE__ */ f(pe, {}), /* @__PURE__ */ p(he, {\n\t\tperm: \"view.manage.productManagement.vial\",\n\t\tchildren: [\n\t\t\t/* @__PURE__ */ p(de, {\n\t\t\t\ttitle: \"Open Vials\",\n\t\t\t\tsubtitle: \"Open vaccine vials in use. Close them at the end of the day and record any waste.\",\n\t\t\t\tchips: [\"Vaccine\"],\n\t\t\t\tactions: /* @__PURE__ */ f(S, {\n\t\t\t\t\tdirection: \"row\",\n\t\t\t\t\tspacing: 1,\n\t\t\t\t\tchildren: /* @__PURE__ */ f(h, {\n\t\t\t\t\t\tvariant: \"outlined\",\n\t\t\t\t\t\tstartIcon: /* @__PURE__ */ f(Se, {}),\n\t\t\t\t\t\tonClick: () => void U(),\n\t\t\t\t\t\tchildren: \"Refresh\"\n\t\t\t\t\t})\n\t\t\t\t}),\n\t\t\t\tchildren: [\n\t\t\t\t\tR ? /* @__PURE__ */ f(_e, {\n\t\t\t\t\t\tseverity: \"error\",\n\t\t\t\t\t\tsx: { mb: 2 },\n\t\t\t\t\t\tchildren: R\n\t\t\t\t\t}) : null,\n\t\t\t\t\tI ? /* @__PURE__ */ f(x, { sx: { mb: 2 } }) : null,\n\t\t\t\t\t/* @__PURE__ */ f(a, {\n\t\t\t\t\t\teyebrow: \"In use\",\n\t\t\t\t\t\ttitle: \"Open vials\",\n\t\t\t\t\t\tsubtitle: I ? \"Loading…\" : `${k.length} ${k.length === 1 ? \"vial\" : \"vials\"} currently in use`,\n\t\t\t\t\t\tchildren: /* @__PURE__ */ p(re, {\n\t\t\t\t\t\t\tdense: !0,\n\t\t\t\t\t\t\tchildren: [/* @__PURE__ */ f(ye, { children: /* @__PURE__ */ p(w, { children: [\n\t\t\t\t\t\t\t\t/* @__PURE__ */ f(C, { children: \"Product\" }),\n\t\t\t\t\t\t\t\t/* @__PURE__ */ f(C, { children: \"Lot\" }),\n\t\t\t\t\t\t\t\t/* @__PURE__ */ f(C, { children: \"Owner\" }),\n\t\t\t\t\t\t\t\t/* @__PURE__ */ f(C, { children: \"Opened\" }),\n\t\t\t\t\t\t\t\t/* @__PURE__ */ f(C, { children: \"Expires\" }),\n\t\t\t\t\t\t\t\t/* @__PURE__ */ f(C, { children: \"Volume remaining\" }),\n\t\t\t\t\t\t\t\t/* @__PURE__ */ f(C, { children: \"Status\" }),\n\t\t\t\t\t\t\t\t/* @__PURE__ */ f(C, {\n\t\t\t\t\t\t\t\t\talign: \"right\",\n\t\t\t\t\t\t\t\t\tchildren: \"Action\"\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t] }) }), /* @__PURE__ */ f(ve, { children: k.length === 0 && !I ? /* @__PURE__ */ f(ie, {\n\t\t\t\t\t\t\t\tcolSpan: 8,\n\t\t\t\t\t\t\t\ticon: xe,\n\t\t\t\t\t\t\t\ttitle: \"No open vials\",\n\t\t\t\t\t\t\t\thint: \"Use Administer Vaccine to open and dose a vial.\"\n\t\t\t\t\t\t\t}) : k.map((e) => {\n\t\t\t\t\t\t\t\tlet t = e.volumeTotalMl ? (1 - Number(e.volumeRemainingMl) / Number(e.volumeTotalMl)) * 100 : 0;\n\t\t\t\t\t\t\t\treturn /* @__PURE__ */ p(w, {\n\t\t\t\t\t\t\t\t\thover: !0,\n\t\t\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t\t\t/* @__PURE__ */ f(C, { children: /* @__PURE__ */ f(E, {\n\t\t\t\t\t\t\t\t\t\t\tvariant: \"body2\",\n\t\t\t\t\t\t\t\t\t\t\tsx: { fontWeight: 700 },\n\t\t\t\t\t\t\t\t\t\t\tchildren: e.productName\n\t\t\t\t\t\t\t\t\t\t}) }),\n\t\t\t\t\t\t\t\t\t\t/* @__PURE__ */ f(C, { children: e.lotNumber ? /* @__PURE__ */ f(m, {\n\t\t\t\t\t\t\t\t\t\t\tcomponent: \"span\",\n\t\t\t\t\t\t\t\t\t\t\tsx: {\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"inline-flex\",\n\t\t\t\t\t\t\t\t\t\t\t\tpx: .7,\n\t\t\t\t\t\t\t\t\t\t\t\tpy: .1,\n\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: 1,\n\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"grey.100\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"monospace\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"0.72rem\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: 700\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tchildren: e.lotNumber\n\t\t\t\t\t\t\t\t\t\t}) : /* @__PURE__ */ f(E, {\n\t\t\t\t\t\t\t\t\t\t\tvariant: \"caption\",\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"text.disabled\",\n\t\t\t\t\t\t\t\t\t\t\tchildren: \"—\"\n\t\t\t\t\t\t\t\t\t\t}) }),\n\t\t\t\t\t\t\t\t\t\t/* @__PURE__ */ p(C, { children: [/* @__PURE__ */ f(E, {\n\t\t\t\t\t\t\t\t\t\t\tvariant: \"body2\",\n\t\t\t\t\t\t\t\t\t\t\tsx: { fontWeight: 700 },\n\t\t\t\t\t\t\t\t\t\t\tchildren: e.ownerName || c(se, e.ownerType)\n\t\t\t\t\t\t\t\t\t\t}), /* @__PURE__ */ f(E, {\n\t\t\t\t\t\t\t\t\t\t\tvariant: \"caption\",\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"text.secondary\",\n\t\t\t\t\t\t\t\t\t\t\tchildren: e.ownerType ?? \"—\"\n\t\t\t\t\t\t\t\t\t\t})] }),\n\t\t\t\t\t\t\t\t\t\t/* @__PURE__ */ f(C, { children: /* @__PURE__ */ f(E, {\n\t\t\t\t\t\t\t\t\t\t\tvariant: \"caption\",\n\t\t\t\t\t\t\t\t\t\t\tsx: { fontWeight: 600 },\n\t\t\t\t\t\t\t\t\t\t\tchildren: l(e.openedAt)\n\t\t\t\t\t\t\t\t\t\t}) }),\n\t\t\t\t\t\t\t\t\t\t/* @__PURE__ */ f(C, { children: /* @__PURE__ */ f(be, {\n\t\t\t\t\t\t\t\t\t\t\ttitle: e.expired ? \"Expired — close out immediately\" : \"\",\n\t\t\t\t\t\t\t\t\t\t\tchildren: /* @__PURE__ */ f(g, {\n\t\t\t\t\t\t\t\t\t\t\t\tsize: \"small\",\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: e.expired ? \"error\" : \"success\",\n\t\t\t\t\t\t\t\t\t\t\t\tlabel: l(e.expiresAt),\n\t\t\t\t\t\t\t\t\t\t\t\tsx: {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: 700,\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: 1.5,\n\t\t\t\t\t\t\t\t\t\t\t\t\theight: 22\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t}) }),\n\t\t\t\t\t\t\t\t\t\t/* @__PURE__ */ f(C, { children: /* @__PURE__ */ p(S, {\n\t\t\t\t\t\t\t\t\t\t\tdirection: \"row\",\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\tspacing: 1,\n\t\t\t\t\t\t\t\t\t\t\tchildren: [/* @__PURE__ */ p(E, {\n\t\t\t\t\t\t\t\t\t\t\t\tvariant: \"body2\",\n\t\t\t\t\t\t\t\t\t\t\t\tsx: {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: 800,\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontVariantNumeric: \"tabular-nums\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tminWidth: 80\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t\t\t\t\t\tu(e.volumeRemainingMl),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\" /\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\" \",\n\t\t\t\t\t\t\t\t\t\t\t\t\tu(e.volumeTotalMl),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\" ml\"\n\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t}), /* @__PURE__ */ f(m, {\n\t\t\t\t\t\t\t\t\t\t\t\tsx: { width: 80 },\n\t\t\t\t\t\t\t\t\t\t\t\tchildren: /* @__PURE__ */ f(x, {\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant: \"determinate\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: t,\n\t\t\t\t\t\t\t\t\t\t\t\t\tsx: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: 4,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: 2\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: t > 75 ? \"warning\" : \"primary\"\n\t\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t})]\n\t\t\t\t\t\t\t\t\t\t}) }),\n\t\t\t\t\t\t\t\t\t\t/* @__PURE__ */ f(C, { children: /* @__PURE__ */ f(g, {\n\t\t\t\t\t\t\t\t\t\t\tsize: \"small\",\n\t\t\t\t\t\t\t\t\t\t\tcolor: e.expired ? \"error\" : \"info\",\n\t\t\t\t\t\t\t\t\t\t\tlabel: e.expired ? \"Expired\" : c(ae, e.status),\n\t\t\t\t\t\t\t\t\t\t\tsx: {\n\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: 700,\n\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: 1.5,\n\t\t\t\t\t\t\t\t\t\t\t\theight: 22\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}) }),\n\t\t\t\t\t\t\t\t\t\t/* @__PURE__ */ p(C, {\n\t\t\t\t\t\t\t\t\t\t\talign: \"right\",\n\t\t\t\t\t\t\t\t\t\t\tchildren: [Ce ? /* @__PURE__ */ f(h, {\n\t\t\t\t\t\t\t\t\t\t\t\tsize: \"small\",\n\t\t\t\t\t\t\t\t\t\t\t\tvariant: \"outlined\",\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"error\",\n\t\t\t\t\t\t\t\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tH.reset(), V({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\topen: !0,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvial: e,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treason: \"TIME_EXPIRATION\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcomments: \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\tchildren: \"Close\"\n\t\t\t\t\t\t\t\t\t\t\t}) : null, Pe && !e.expired ? /* @__PURE__ */ f(h, {\n\t\t\t\t\t\t\t\t\t\t\t\tsize: \"small\",\n\t\t\t\t\t\t\t\t\t\t\t\tvariant: \"outlined\",\n\t\t\t\t\t\t\t\t\t\t\t\tsx: { ml: 1 },\n\t\t\t\t\t\t\t\t\t\t\t\tonClick: () => N({\n\t\t\t\t\t\t\t\t\t\t\t\t\t...j,\n\t\t\t\t\t\t\t\t\t\t\t\t\topen: !0,\n\t\t\t\t\t\t\t\t\t\t\t\t\tvial: e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewVolumeMl: String(e.volumeRemainingMl ?? \"\")\n\t\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t\t\tchildren: \"Adjust\"\n\t\t\t\t\t\t\t\t\t\t\t}) : null]\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}, e.id);\n\t\t\t\t\t\t\t}) })]\n\t\t\t\t\t\t})\n\t\t\t\t\t})\n\t\t\t\t]\n\t\t\t}),\n\t\t\t/* @__PURE__ */ p(_, {\n\t\t\t\topen: B.open,\n\t\t\t\tonClose: () => V({\n\t\t\t\t\topen: !1,\n\t\t\t\t\tvial: null,\n\t\t\t\t\treason: \"TIME_EXPIRATION\",\n\t\t\t\t\tcomments: \"\"\n\t\t\t\t}),\n\t\t\t\tfullWidth: !0,\n\t\t\t\tmaxWidth: \"sm\",\n\t\t\t\tchildren: [\n\t\t\t\t\t/* @__PURE__ */ f(b, { children: \"Close Vial (record remaining as wastage)\" }),\n\t\t\t\t\t/* @__PURE__ */ f(y, {\n\t\t\t\t\t\tdividers: !0,\n\t\t\t\t\t\tchildren: /* @__PURE__ */ p(S, {\n\t\t\t\t\t\t\tspacing: 2,\n\t\t\t\t\t\t\tsx: { pt: 1 },\n\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t/* @__PURE__ */ p(E, {\n\t\t\t\t\t\t\t\t\tvariant: \"body2\",\n\t\t\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t\t\tB.vial?.productName,\n\t\t\t\t\t\t\t\t\t\t\" ·\",\n\t\t\t\t\t\t\t\t\t\t\" \",\n\t\t\t\t\t\t\t\t\t\tu(B.vial?.volumeRemainingMl),\n\t\t\t\t\t\t\t\t\t\t\" ml will be marked as wasted.\"\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t/* @__PURE__ */ f(s, {\n\t\t\t\t\t\t\t\t\tlabel: \"Reason\",\n\t\t\t\t\t\t\t\t\trequired: !0,\n\t\t\t\t\t\t\t\t\tvalue: B.reason,\n\t\t\t\t\t\t\t\t\tonChange: (e) => V({\n\t\t\t\t\t\t\t\t\t\t...B,\n\t\t\t\t\t\t\t\t\t\treason: e\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\tonBlur: H.onBlur(\"wastageReason\"),\n\t\t\t\t\t\t\t\t\terror: H.show(\"wastageReason\") && !!W.wastageReason,\n\t\t\t\t\t\t\t\t\toptions: oe,\n\t\t\t\t\t\t\t\t\thelperText: H.show(\"wastageReason\") && W.wastageReason || \"\"\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t/* @__PURE__ */ f(T, {\n\t\t\t\t\t\t\t\t\tlabel: \"Comments\",\n\t\t\t\t\t\t\t\t\tsize: \"small\",\n\t\t\t\t\t\t\t\t\tmultiline: !0,\n\t\t\t\t\t\t\t\t\tminRows: 2,\n\t\t\t\t\t\t\t\t\tfullWidth: !0,\n\t\t\t\t\t\t\t\t\tvalue: B.comments,\n\t\t\t\t\t\t\t\t\tonChange: (e) => V({\n\t\t\t\t\t\t\t\t\t\t...B,\n\t\t\t\t\t\t\t\t\t\tcomments: e.target.value\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t})\n\t\t\t\t\t}),\n\t\t\t\t\t/* @__PURE__ */ p(v, { children: [/* @__PURE__ */ f(h, {\n\t\t\t\t\t\tonClick: () => V({\n\t\t\t\t\t\t\topen: !1,\n\t\t\t\t\t\t\tvial: null,\n\t\t\t\t\t\t\treason: \"TIME_EXPIRATION\",\n\t\t\t\t\t\t\tcomments: \"\"\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tchildren: \"Cancel\"\n\t\t\t\t\t}), /* @__PURE__ */ f(h, {\n\t\t\t\t\t\tvariant: \"contained\",\n\t\t\t\t\t\tcolor: \"error\",\n\t\t\t\t\t\tdisabled: !G,\n\t\t\t\t\t\tonClick: () => void Le(),\n\t\t\t\t\t\tchildren: \"Close Vial\"\n\t\t\t\t\t})] })\n\t\t\t\t]\n\t\t\t}),\n\t\t\t/* @__PURE__ */ p(_, {\n\t\t\t\topen: M.open,\n\t\t\t\tonClose: () => {\n\t\t\t\t\tP || N(j);\n\t\t\t\t},\n\t\t\t\tfullWidth: !0,\n\t\t\t\tmaxWidth: \"sm\",\n\t\t\t\tchildren: [\n\t\t\t\t\t/* @__PURE__ */ f(b, { children: \"Correct Vial Volume\" }),\n\t\t\t\t\t/* @__PURE__ */ f(y, {\n\t\t\t\t\t\tdividers: !0,\n\t\t\t\t\t\tchildren: K ? /* @__PURE__ */ p(S, {\n\t\t\t\t\t\t\tspacing: 2,\n\t\t\t\t\t\t\tsx: { pt: 1 },\n\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t/* @__PURE__ */ p(E, {\n\t\t\t\t\t\t\t\t\tvariant: \"body2\",\n\t\t\t\t\t\t\t\t\tcolor: \"text.secondary\",\n\t\t\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t\t\tK.productName,\n\t\t\t\t\t\t\t\t\t\tK.lotNumber ? ` · lot ${K.lotNumber}` : \"\",\n\t\t\t\t\t\t\t\t\t\t` · ${u(X)} of ${u(Y)} ${J} recorded`\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t/* @__PURE__ */ f(T, {\n\t\t\t\t\t\t\t\t\tlabel: `Volume now in the vial (${J})`,\n\t\t\t\t\t\t\t\t\ttype: \"number\",\n\t\t\t\t\t\t\t\t\tsize: \"small\",\n\t\t\t\t\t\t\t\t\trequired: !0,\n\t\t\t\t\t\t\t\t\tinputProps: {\n\t\t\t\t\t\t\t\t\t\tmin: 0,\n\t\t\t\t\t\t\t\t\t\tmax: Y,\n\t\t\t\t\t\t\t\t\t\tstep: \"0.01\"\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tvalue: M.newVolumeMl,\n\t\t\t\t\t\t\t\t\tonChange: (e) => N({\n\t\t\t\t\t\t\t\t\t\t...M,\n\t\t\t\t\t\t\t\t\t\tnewVolumeMl: e.target.value\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\terror: !!Q && M.newVolumeMl !== \"\",\n\t\t\t\t\t\t\t\t\thelperText: Q || [\n\t\t\t\t\t\t\t\t\t\tZ > X ? \"Correcting up.\" : \"Correcting down.\",\n\t\t\t\t\t\t\t\t\t\tFe ? `That is ${Fe}.` : \"\",\n\t\t\t\t\t\t\t\t\t\tZ === 0 ? \"The vial will be marked used up.\" : \"\"\n\t\t\t\t\t\t\t\t\t].filter(Boolean).join(\" \")\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t/* @__PURE__ */ f(s, {\n\t\t\t\t\t\t\t\t\tlabel: \"Reason\",\n\t\t\t\t\t\t\t\t\trequired: !0,\n\t\t\t\t\t\t\t\t\tvalue: M.reasonCode,\n\t\t\t\t\t\t\t\t\tonChange: (e) => N({\n\t\t\t\t\t\t\t\t\t\t...M,\n\t\t\t\t\t\t\t\t\t\treasonCode: e\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\toptions: Ne\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t/* @__PURE__ */ f(T, {\n\t\t\t\t\t\t\t\t\tlabel: \"What was corrected\",\n\t\t\t\t\t\t\t\t\trequired: !0,\n\t\t\t\t\t\t\t\t\tsize: \"small\",\n\t\t\t\t\t\t\t\t\tmultiline: !0,\n\t\t\t\t\t\t\t\t\tminRows: 2,\n\t\t\t\t\t\t\t\t\tfullWidth: !0,\n\t\t\t\t\t\t\t\t\tvalue: M.comments,\n\t\t\t\t\t\t\t\t\tonChange: (e) => N({\n\t\t\t\t\t\t\t\t\t\t...M,\n\t\t\t\t\t\t\t\t\t\tcomments: e.target.value\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\thelperText: \"Required. Recorded in the ledger with the reason.\"\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}) : null\n\t\t\t\t\t}),\n\t\t\t\t\t/* @__PURE__ */ p(v, { children: [/* @__PURE__ */ f(h, {\n\t\t\t\t\t\tonClick: () => N(j),\n\t\t\t\t\t\tdisabled: P,\n\t\t\t\t\t\tchildren: \"Cancel\"\n\t\t\t\t\t}), /* @__PURE__ */ f(h, {\n\t\t\t\t\t\tvariant: \"contained\",\n\t\t\t\t\t\tdisabled: !$ || P,\n\t\t\t\t\t\tonClick: () => void Ie(),\n\t\t\t\t\t\tchildren: P ? \"Saving…\" : \"Save Correction\"\n\t\t\t\t\t})] })\n\t\t\t\t]\n\t\t\t})\n\t\t]\n\t})] });\n}\n//#endregion\nexport { O as default };\n\n//# sourceMappingURL=VialsPage-LoDaUqVv.js.map"],"names":["O","fe","Ce","k","we","d","Te","Ee","De","Oe","ke","Ae","je","Me","A","i","Ne","ge","Pe","j","M","N","P","F","I","L","R","z","B","V","H","ue","U","n","r","a","o","e","t","ne","ee","te","_b","_a","me","W","ce","G","le","K","q","J","Y","X","Z","Q","u","$","Fe","Ie","D","Le","p","m","f","pe","he","de","S","h","Se","_e","x","re","ye","w","C","ve","ie","xe","E","c","se","l","be","g","ae","_","b","y","s","oe","T","v"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VialsPage-LoDaUqVv-Dw00Zc06.js","sources":["../../productManagement/dist/VialsPage-LoDaUqVv.js"],"sourcesContent":["import { B as e, F as t, L as ee, R as te, k as ne, l as n, o as r, r as i } from \"./settingsStore-Df_wGo55.js\";\nimport { c as a, l as o, o as s, s as re, t as ie } from \"./PmTable-COZEuDAr.js\";\nimport { M as ae, N as oe, R as c, _ as se } from \"./constants-BTpJFQe_.js\";\nimport { n as l, r as u } from \"./format-UOyOu75i.js\";\nimport { m as ce, t as le } from \"./validation-BzlHnL-r.js\";\nimport { t as ue } from \"./useFieldErrors-hDG8ox_x.js\";\nimport { a as de, i as fe, n as pe, r as me, t as he } from \"./PmGuard-BvUUbU80.js\";\nimport { t as ge } from \"./listValueStore-5d4vNGQM.js\";\nimport { useState as d } from \"react\";\nimport { jsx as f, jsxs as p } from \"react/jsx-runtime\";\nimport { Alert as _e, Box as m, Button as h, Chip as g, Dialog as _, DialogActions as v, DialogContent as y, DialogTitle as b, LinearProgress as x, Stack as S, TableBody as ve, TableCell as C, TableHead as ye, TableRow as w, TextField as T, Tooltip as be, Typography as E } from \"@mui/material\";\nimport xe from \"@mui/icons-material/VaccinesRounded\";\nimport { v4 as D } from \"uuid\";\nimport Se from \"@mui/icons-material/RefreshRounded\";\n//#region src/views/VialsPage.jsx\nfunction O() {\n\tlet O = fe(), Ce = O.has(\"update.manage.productManagement.vial\"), [k, we] = d([]), [Te, Ee] = d([]), [De, Oe] = d([]), [ke, Ae] = d([]), [je, Me] = d([]), A = i(), { adjustmentReasons: Ne } = ge(), Pe = A?.allowManualAdjustment === !0 && O.has(\"update.manage.productManagement.adjustment\"), j = {\n\t\topen: !1,\n\t\tvial: null,\n\t\tnewVolumeMl: \"\",\n\t\treasonCode: \"\",\n\t\tcomments: \"\"\n\t}, [M, N] = d(j), [P, F] = d(!1);\n\tA?.allowPersonalPurchase;\n\tlet [I, L] = d(!1), [R, z] = d(\"\"), [B, V] = d({\n\t\topen: !1,\n\t\tvial: null,\n\t\treason: \"TIME_EXPIRATION\",\n\t\tcomments: \"\"\n\t}), H = ue();\n\tasync function U() {\n\t\tL(!0), z(\"\");\n\t\ttry {\n\t\t\tlet [n, r, i, a, o] = await Promise.all([\n\t\t\t\te(),\n\t\t\t\tt(),\n\t\t\t\tne(),\n\t\t\t\tee().catch(() => []),\n\t\t\t\tte().catch(() => [])\n\t\t\t]);\n\t\t\twe(n), Ee(r), Oe(i), Ae(a), Me(o);\n\t\t} catch (e) {\n\t\t\tz(e?.response?.data?.message ?? e?.message ?? \"Failed to load\"), o({\n\t\t\t\tmessage: e?.message || \"Failed to load\",\n\t\t\t\ttype: \"error\"\n\t\t\t});\n\t\t} finally {\n\t\t\tL(!1);\n\t\t}\n\t}\n\tme(\"view.manage.productManagement.vial\", () => {\n\t\tU();\n\t}, []);\n\tlet W = { wastageReason: ce(B.reason, \"Reason\") }, G = le(W), K = M.vial, q = K ? De.find((e) => e.id === K.productId) : null, J = q?.unit === \"DROPS\" ? \"drops\" : \"ml\", Y = Number(K?.volumeTotalMl ?? 0), X = Number(K?.volumeRemainingMl ?? 0), Z = Number(M.newVolumeMl), Q = M.newVolumeMl === \"\" || !Number.isFinite(Z) ? \"Enter the volume now in the vial.\" : Z < 0 || Z > Y ? `Enter a value between 0 and ${u(Y)} ${J}.` : Z === X ? \"That is already the recorded volume.\" : \"\", $ = !Q && !!M.reasonCode && !!M.comments.trim(), Fe = (() => {\n\t\tif (!q || !Number.isFinite(Z) || Z < 0) return \"\";\n\t\tlet e = [...new Set((q.vaccineConfig?.profiles ?? []).map((e) => Number(e.doseAmount)).filter((e) => e > 0))];\n\t\treturn e.length === 0 ? \"\" : e.map((e) => `${Math.floor(Z / e)} doses of ${u(e)} ${J}`).join(\", or \");\n\t})();\n\tasync function Ie() {\n\t\tif (!(!K || !$)) {\n\t\t\tF(!0);\n\t\t\ttry {\n\t\t\t\tawait r({\n\t\t\t\t\tid: D(),\n\t\t\t\t\topenVialId: K.id,\n\t\t\t\t\tnewVolumeMl: Z,\n\t\t\t\t\treasonCode: M.reasonCode,\n\t\t\t\t\tcomments: M.comments.trim()\n\t\t\t\t}), o({\n\t\t\t\t\tmessage: \"Vial volume corrected.\",\n\t\t\t\t\ttype: \"success\"\n\t\t\t\t}), N(j), await U();\n\t\t\t} catch (e) {\n\t\t\t\to({\n\t\t\t\t\tmessage: e?.response?.data?.message ?? e?.message ?? \"Failed to correct vial\",\n\t\t\t\t\ttype: \"error\"\n\t\t\t\t});\n\t\t\t} finally {\n\t\t\t\tF(!1);\n\t\t\t}\n\t\t}\n\t}\n\tasync function Le() {\n\t\tif (B.vial) {\n\t\t\tif (!G) {\n\t\t\t\tH.markAllTouched();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tawait n({\n\t\t\t\t\tid: D(),\n\t\t\t\t\topenVialId: B.vial.id,\n\t\t\t\t\twastageReason: B.reason,\n\t\t\t\t\tcomments: B.comments || null\n\t\t\t\t}), o({\n\t\t\t\t\tmessage: \"Vial closed.\",\n\t\t\t\t\ttype: \"success\"\n\t\t\t\t}), V({\n\t\t\t\t\topen: !1,\n\t\t\t\t\tvial: null,\n\t\t\t\t\treason: \"TIME_EXPIRATION\",\n\t\t\t\t\tcomments: \"\"\n\t\t\t\t}), await U();\n\t\t\t} catch (e) {\n\t\t\t\to({\n\t\t\t\t\tmessage: e?.response?.data?.message ?? e?.message ?? \"Failed\",\n\t\t\t\t\ttype: \"error\"\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\treturn /* @__PURE__ */ p(m, { children: [/* @__PURE__ */ f(pe, {}), /* @__PURE__ */ p(he, {\n\t\tperm: \"view.manage.productManagement.vial\",\n\t\tchildren: [\n\t\t\t/* @__PURE__ */ p(de, {\n\t\t\t\ttitle: \"Open Vials\",\n\t\t\t\tsubtitle: \"Open vaccine vials in use. Close them at the end of the day and record any waste.\",\n\t\t\t\tchips: [\"Vaccine\"],\n\t\t\t\tactions: /* @__PURE__ */ f(S, {\n\t\t\t\t\tdirection: \"row\",\n\t\t\t\t\tspacing: 1,\n\t\t\t\t\tchildren: /* @__PURE__ */ f(h, {\n\t\t\t\t\t\tvariant: \"outlined\",\n\t\t\t\t\t\tstartIcon: /* @__PURE__ */ f(Se, {}),\n\t\t\t\t\t\tonClick: () => void U(),\n\t\t\t\t\t\tchildren: \"Refresh\"\n\t\t\t\t\t})\n\t\t\t\t}),\n\t\t\t\tchildren: [\n\t\t\t\t\tR ? /* @__PURE__ */ f(_e, {\n\t\t\t\t\t\tseverity: \"error\",\n\t\t\t\t\t\tsx: { mb: 2 },\n\t\t\t\t\t\tchildren: R\n\t\t\t\t\t}) : null,\n\t\t\t\t\tI ? /* @__PURE__ */ f(x, { sx: { mb: 2 } }) : null,\n\t\t\t\t\t/* @__PURE__ */ f(a, {\n\t\t\t\t\t\teyebrow: \"In use\",\n\t\t\t\t\t\ttitle: \"Open vials\",\n\t\t\t\t\t\tsubtitle: I ? \"Loading…\" : `${k.length} ${k.length === 1 ? \"vial\" : \"vials\"} currently in use`,\n\t\t\t\t\t\tchildren: /* @__PURE__ */ p(re, {\n\t\t\t\t\t\t\tdense: !0,\n\t\t\t\t\t\t\tchildren: [/* @__PURE__ */ f(ye, { children: /* @__PURE__ */ p(w, { children: [\n\t\t\t\t\t\t\t\t/* @__PURE__ */ f(C, { children: \"Product\" }),\n\t\t\t\t\t\t\t\t/* @__PURE__ */ f(C, { children: \"Lot\" }),\n\t\t\t\t\t\t\t\t/* @__PURE__ */ f(C, { children: \"Owner\" }),\n\t\t\t\t\t\t\t\t/* @__PURE__ */ f(C, { children: \"Opened\" }),\n\t\t\t\t\t\t\t\t/* @__PURE__ */ f(C, { children: \"Expires\" }),\n\t\t\t\t\t\t\t\t/* @__PURE__ */ f(C, { children: \"Volume remaining\" }),\n\t\t\t\t\t\t\t\t/* @__PURE__ */ f(C, { children: \"Status\" }),\n\t\t\t\t\t\t\t\t/* @__PURE__ */ f(C, {\n\t\t\t\t\t\t\t\t\talign: \"right\",\n\t\t\t\t\t\t\t\t\tchildren: \"Action\"\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t] }) }), /* @__PURE__ */ f(ve, { children: k.length === 0 && !I ? /* @__PURE__ */ f(ie, {\n\t\t\t\t\t\t\t\tcolSpan: 8,\n\t\t\t\t\t\t\t\ticon: xe,\n\t\t\t\t\t\t\t\ttitle: \"No open vials\",\n\t\t\t\t\t\t\t\thint: \"Use Administer Vaccine to open and dose a vial.\"\n\t\t\t\t\t\t\t}) : k.map((e) => {\n\t\t\t\t\t\t\t\tlet t = e.volumeTotalMl ? (1 - Number(e.volumeRemainingMl) / Number(e.volumeTotalMl)) * 100 : 0;\n\t\t\t\t\t\t\t\treturn /* @__PURE__ */ p(w, {\n\t\t\t\t\t\t\t\t\thover: !0,\n\t\t\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t\t\t/* @__PURE__ */ f(C, { children: /* @__PURE__ */ f(E, {\n\t\t\t\t\t\t\t\t\t\t\tvariant: \"body2\",\n\t\t\t\t\t\t\t\t\t\t\tsx: { fontWeight: 700 },\n\t\t\t\t\t\t\t\t\t\t\tchildren: e.productName\n\t\t\t\t\t\t\t\t\t\t}) }),\n\t\t\t\t\t\t\t\t\t\t/* @__PURE__ */ f(C, { children: e.lotNumber ? /* @__PURE__ */ f(m, {\n\t\t\t\t\t\t\t\t\t\t\tcomponent: \"span\",\n\t\t\t\t\t\t\t\t\t\t\tsx: {\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"inline-flex\",\n\t\t\t\t\t\t\t\t\t\t\t\tpx: .7,\n\t\t\t\t\t\t\t\t\t\t\t\tpy: .1,\n\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: 1,\n\t\t\t\t\t\t\t\t\t\t\t\tbgcolor: \"grey.100\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"monospace\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"0.72rem\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: 700\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tchildren: e.lotNumber\n\t\t\t\t\t\t\t\t\t\t}) : /* @__PURE__ */ f(E, {\n\t\t\t\t\t\t\t\t\t\t\tvariant: \"caption\",\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"text.disabled\",\n\t\t\t\t\t\t\t\t\t\t\tchildren: \"—\"\n\t\t\t\t\t\t\t\t\t\t}) }),\n\t\t\t\t\t\t\t\t\t\t/* @__PURE__ */ p(C, { children: [/* @__PURE__ */ f(E, {\n\t\t\t\t\t\t\t\t\t\t\tvariant: \"body2\",\n\t\t\t\t\t\t\t\t\t\t\tsx: { fontWeight: 700 },\n\t\t\t\t\t\t\t\t\t\t\tchildren: e.ownerName || c(se, e.ownerType)\n\t\t\t\t\t\t\t\t\t\t}), /* @__PURE__ */ f(E, {\n\t\t\t\t\t\t\t\t\t\t\tvariant: \"caption\",\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"text.secondary\",\n\t\t\t\t\t\t\t\t\t\t\tchildren: e.ownerType ?? \"—\"\n\t\t\t\t\t\t\t\t\t\t})] }),\n\t\t\t\t\t\t\t\t\t\t/* @__PURE__ */ f(C, { children: /* @__PURE__ */ f(E, {\n\t\t\t\t\t\t\t\t\t\t\tvariant: \"caption\",\n\t\t\t\t\t\t\t\t\t\t\tsx: { fontWeight: 600 },\n\t\t\t\t\t\t\t\t\t\t\tchildren: l(e.openedAt)\n\t\t\t\t\t\t\t\t\t\t}) }),\n\t\t\t\t\t\t\t\t\t\t/* @__PURE__ */ f(C, { children: /* @__PURE__ */ f(be, {\n\t\t\t\t\t\t\t\t\t\t\ttitle: e.expired ? \"Expired — close out immediately\" : \"\",\n\t\t\t\t\t\t\t\t\t\t\tchildren: /* @__PURE__ */ f(g, {\n\t\t\t\t\t\t\t\t\t\t\t\tsize: \"small\",\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: e.expired ? \"error\" : \"success\",\n\t\t\t\t\t\t\t\t\t\t\t\tlabel: l(e.expiresAt),\n\t\t\t\t\t\t\t\t\t\t\t\tsx: {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: 700,\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: 1.5,\n\t\t\t\t\t\t\t\t\t\t\t\t\theight: 22\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t}) }),\n\t\t\t\t\t\t\t\t\t\t/* @__PURE__ */ f(C, { children: /* @__PURE__ */ p(S, {\n\t\t\t\t\t\t\t\t\t\t\tdirection: \"row\",\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\tspacing: 1,\n\t\t\t\t\t\t\t\t\t\t\tchildren: [/* @__PURE__ */ p(E, {\n\t\t\t\t\t\t\t\t\t\t\t\tvariant: \"body2\",\n\t\t\t\t\t\t\t\t\t\t\t\tsx: {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: 800,\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontVariantNumeric: \"tabular-nums\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tminWidth: 80\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t\t\t\t\t\tu(e.volumeRemainingMl),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\" /\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\" \",\n\t\t\t\t\t\t\t\t\t\t\t\t\tu(e.volumeTotalMl),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\" ml\"\n\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t}), /* @__PURE__ */ f(m, {\n\t\t\t\t\t\t\t\t\t\t\t\tsx: { width: 80 },\n\t\t\t\t\t\t\t\t\t\t\t\tchildren: /* @__PURE__ */ f(x, {\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant: \"determinate\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: t,\n\t\t\t\t\t\t\t\t\t\t\t\t\tsx: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: 4,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: 2\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: t > 75 ? \"warning\" : \"primary\"\n\t\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t})]\n\t\t\t\t\t\t\t\t\t\t}) }),\n\t\t\t\t\t\t\t\t\t\t/* @__PURE__ */ f(C, { children: /* @__PURE__ */ f(g, {\n\t\t\t\t\t\t\t\t\t\t\tsize: \"small\",\n\t\t\t\t\t\t\t\t\t\t\tcolor: e.expired ? \"error\" : \"info\",\n\t\t\t\t\t\t\t\t\t\t\tlabel: e.expired ? \"Expired\" : c(ae, e.status),\n\t\t\t\t\t\t\t\t\t\t\tsx: {\n\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: 700,\n\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: 1.5,\n\t\t\t\t\t\t\t\t\t\t\t\theight: 22\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}) }),\n\t\t\t\t\t\t\t\t\t\t/* @__PURE__ */ p(C, {\n\t\t\t\t\t\t\t\t\t\t\talign: \"right\",\n\t\t\t\t\t\t\t\t\t\t\tchildren: [Ce ? /* @__PURE__ */ f(h, {\n\t\t\t\t\t\t\t\t\t\t\t\tsize: \"small\",\n\t\t\t\t\t\t\t\t\t\t\t\tvariant: \"outlined\",\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"error\",\n\t\t\t\t\t\t\t\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tH.reset(), V({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\topen: !0,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvial: e,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treason: \"TIME_EXPIRATION\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcomments: \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\tchildren: \"Close\"\n\t\t\t\t\t\t\t\t\t\t\t}) : null, Pe && !e.expired ? /* @__PURE__ */ f(h, {\n\t\t\t\t\t\t\t\t\t\t\t\tsize: \"small\",\n\t\t\t\t\t\t\t\t\t\t\t\tvariant: \"outlined\",\n\t\t\t\t\t\t\t\t\t\t\t\tsx: { ml: 1 },\n\t\t\t\t\t\t\t\t\t\t\t\tonClick: () => N({\n\t\t\t\t\t\t\t\t\t\t\t\t\t...j,\n\t\t\t\t\t\t\t\t\t\t\t\t\topen: !0,\n\t\t\t\t\t\t\t\t\t\t\t\t\tvial: e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewVolumeMl: String(e.volumeRemainingMl ?? \"\")\n\t\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t\t\tchildren: \"Adjust\"\n\t\t\t\t\t\t\t\t\t\t\t}) : null]\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}, e.id);\n\t\t\t\t\t\t\t}) })]\n\t\t\t\t\t\t})\n\t\t\t\t\t})\n\t\t\t\t]\n\t\t\t}),\n\t\t\t/* @__PURE__ */ p(_, {\n\t\t\t\topen: B.open,\n\t\t\t\tonClose: () => V({\n\t\t\t\t\topen: !1,\n\t\t\t\t\tvial: null,\n\t\t\t\t\treason: \"TIME_EXPIRATION\",\n\t\t\t\t\tcomments: \"\"\n\t\t\t\t}),\n\t\t\t\tfullWidth: !0,\n\t\t\t\tmaxWidth: \"sm\",\n\t\t\t\tchildren: [\n\t\t\t\t\t/* @__PURE__ */ f(b, { children: \"Close Vial (record remaining as wastage)\" }),\n\t\t\t\t\t/* @__PURE__ */ f(y, {\n\t\t\t\t\t\tdividers: !0,\n\t\t\t\t\t\tchildren: /* @__PURE__ */ p(S, {\n\t\t\t\t\t\t\tspacing: 2,\n\t\t\t\t\t\t\tsx: { pt: 1 },\n\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t/* @__PURE__ */ p(E, {\n\t\t\t\t\t\t\t\t\tvariant: \"body2\",\n\t\t\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t\t\tB.vial?.productName,\n\t\t\t\t\t\t\t\t\t\t\" ·\",\n\t\t\t\t\t\t\t\t\t\t\" \",\n\t\t\t\t\t\t\t\t\t\tu(B.vial?.volumeRemainingMl),\n\t\t\t\t\t\t\t\t\t\t\" ml will be marked as wasted.\"\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t/* @__PURE__ */ f(s, {\n\t\t\t\t\t\t\t\t\tlabel: \"Reason\",\n\t\t\t\t\t\t\t\t\trequired: !0,\n\t\t\t\t\t\t\t\t\tvalue: B.reason,\n\t\t\t\t\t\t\t\t\tonChange: (e) => V({\n\t\t\t\t\t\t\t\t\t\t...B,\n\t\t\t\t\t\t\t\t\t\treason: e\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\tonBlur: H.onBlur(\"wastageReason\"),\n\t\t\t\t\t\t\t\t\terror: H.show(\"wastageReason\") && !!W.wastageReason,\n\t\t\t\t\t\t\t\t\toptions: oe,\n\t\t\t\t\t\t\t\t\thelperText: H.show(\"wastageReason\") && W.wastageReason || \"\"\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t/* @__PURE__ */ f(T, {\n\t\t\t\t\t\t\t\t\tlabel: \"Comments\",\n\t\t\t\t\t\t\t\t\tsize: \"small\",\n\t\t\t\t\t\t\t\t\tmultiline: !0,\n\t\t\t\t\t\t\t\t\tminRows: 2,\n\t\t\t\t\t\t\t\t\tfullWidth: !0,\n\t\t\t\t\t\t\t\t\tvalue: B.comments,\n\t\t\t\t\t\t\t\t\tonChange: (e) => V({\n\t\t\t\t\t\t\t\t\t\t...B,\n\t\t\t\t\t\t\t\t\t\tcomments: e.target.value\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t})\n\t\t\t\t\t}),\n\t\t\t\t\t/* @__PURE__ */ p(v, { children: [/* @__PURE__ */ f(h, {\n\t\t\t\t\t\tonClick: () => V({\n\t\t\t\t\t\t\topen: !1,\n\t\t\t\t\t\t\tvial: null,\n\t\t\t\t\t\t\treason: \"TIME_EXPIRATION\",\n\t\t\t\t\t\t\tcomments: \"\"\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tchildren: \"Cancel\"\n\t\t\t\t\t}), /* @__PURE__ */ f(h, {\n\t\t\t\t\t\tvariant: \"contained\",\n\t\t\t\t\t\tcolor: \"error\",\n\t\t\t\t\t\tdisabled: !G,\n\t\t\t\t\t\tonClick: () => void Le(),\n\t\t\t\t\t\tchildren: \"Close Vial\"\n\t\t\t\t\t})] })\n\t\t\t\t]\n\t\t\t}),\n\t\t\t/* @__PURE__ */ p(_, {\n\t\t\t\topen: M.open,\n\t\t\t\tonClose: () => {\n\t\t\t\t\tP || N(j);\n\t\t\t\t},\n\t\t\t\tfullWidth: !0,\n\t\t\t\tmaxWidth: \"sm\",\n\t\t\t\tchildren: [\n\t\t\t\t\t/* @__PURE__ */ f(b, { children: \"Correct Vial Volume\" }),\n\t\t\t\t\t/* @__PURE__ */ f(y, {\n\t\t\t\t\t\tdividers: !0,\n\t\t\t\t\t\tchildren: K ? /* @__PURE__ */ p(S, {\n\t\t\t\t\t\t\tspacing: 2,\n\t\t\t\t\t\t\tsx: { pt: 1 },\n\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t/* @__PURE__ */ p(E, {\n\t\t\t\t\t\t\t\t\tvariant: \"body2\",\n\t\t\t\t\t\t\t\t\tcolor: \"text.secondary\",\n\t\t\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t\t\tK.productName,\n\t\t\t\t\t\t\t\t\t\tK.lotNumber ? ` · lot ${K.lotNumber}` : \"\",\n\t\t\t\t\t\t\t\t\t\t` · ${u(X)} of ${u(Y)} ${J} recorded`\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t/* @__PURE__ */ f(T, {\n\t\t\t\t\t\t\t\t\tlabel: `Volume now in the vial (${J})`,\n\t\t\t\t\t\t\t\t\ttype: \"number\",\n\t\t\t\t\t\t\t\t\tsize: \"small\",\n\t\t\t\t\t\t\t\t\trequired: !0,\n\t\t\t\t\t\t\t\t\tinputProps: {\n\t\t\t\t\t\t\t\t\t\tmin: 0,\n\t\t\t\t\t\t\t\t\t\tmax: Y,\n\t\t\t\t\t\t\t\t\t\tstep: \"0.01\"\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tvalue: M.newVolumeMl,\n\t\t\t\t\t\t\t\t\tonChange: (e) => N({\n\t\t\t\t\t\t\t\t\t\t...M,\n\t\t\t\t\t\t\t\t\t\tnewVolumeMl: e.target.value\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\terror: !!Q && M.newVolumeMl !== \"\",\n\t\t\t\t\t\t\t\t\thelperText: Q || [\n\t\t\t\t\t\t\t\t\t\tZ > X ? \"Correcting up.\" : \"Correcting down.\",\n\t\t\t\t\t\t\t\t\t\tFe ? `That is ${Fe}.` : \"\",\n\t\t\t\t\t\t\t\t\t\tZ === 0 ? \"The vial will be marked used up.\" : \"\"\n\t\t\t\t\t\t\t\t\t].filter(Boolean).join(\" \")\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t/* @__PURE__ */ f(s, {\n\t\t\t\t\t\t\t\t\tlabel: \"Reason\",\n\t\t\t\t\t\t\t\t\trequired: !0,\n\t\t\t\t\t\t\t\t\tvalue: M.reasonCode,\n\t\t\t\t\t\t\t\t\tonChange: (e) => N({\n\t\t\t\t\t\t\t\t\t\t...M,\n\t\t\t\t\t\t\t\t\t\treasonCode: e\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\toptions: Ne\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t/* @__PURE__ */ f(T, {\n\t\t\t\t\t\t\t\t\tlabel: \"What was corrected\",\n\t\t\t\t\t\t\t\t\trequired: !0,\n\t\t\t\t\t\t\t\t\tsize: \"small\",\n\t\t\t\t\t\t\t\t\tmultiline: !0,\n\t\t\t\t\t\t\t\t\tminRows: 2,\n\t\t\t\t\t\t\t\t\tfullWidth: !0,\n\t\t\t\t\t\t\t\t\tvalue: M.comments,\n\t\t\t\t\t\t\t\t\tonChange: (e) => N({\n\t\t\t\t\t\t\t\t\t\t...M,\n\t\t\t\t\t\t\t\t\t\tcomments: e.target.value\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\thelperText: \"Required. Recorded in the ledger with the reason.\"\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}) : null\n\t\t\t\t\t}),\n\t\t\t\t\t/* @__PURE__ */ p(v, { children: [/* @__PURE__ */ f(h, {\n\t\t\t\t\t\tonClick: () => N(j),\n\t\t\t\t\t\tdisabled: P,\n\t\t\t\t\t\tchildren: \"Cancel\"\n\t\t\t\t\t}), /* @__PURE__ */ f(h, {\n\t\t\t\t\t\tvariant: \"contained\",\n\t\t\t\t\t\tdisabled: !$ || P,\n\t\t\t\t\t\tonClick: () => void Ie(),\n\t\t\t\t\t\tchildren: P ? \"Saving…\" : \"Save Correction\"\n\t\t\t\t\t})] })\n\t\t\t\t]\n\t\t\t})\n\t\t]\n\t})] });\n}\n//#endregion\nexport { O as default };\n\n//# sourceMappingURL=VialsPage-LoDaUqVv.js.map"],"names":["O","fe","Ce","k","we","d","Te","Ee","De","Oe","ke","Ae","je","Me","A","i","Ne","ge","Pe","j","M","N","P","F","I","L","R","z","B","V","H","ue","U","n","r","a","o","e","t","ne","ee","te","_b","_a","me","W","ce","G","le","K","q","J","Y","X","Z","Q","u","$","Fe","Ie","D","Le","p","m","f","pe","he","de","S","h","Se","_e","x","re","ye","w","C","ve","ie","xe","E","c","se","l","be","g","ae","_","b","y","s","oe","T","v"],"mappings":"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"}
|