@kenyaemr/esm-bed-management-app 1.0.1-pre.4 → 1.0.1-pre.7
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/283.js +1 -1
- package/dist/283.js.map +1 -1
- package/dist/404.js +1 -1
- package/dist/404.js.map +1 -1
- package/dist/850.js +1 -0
- package/dist/850.js.map +1 -0
- package/dist/esm-kenyaemr-bed-management-app.js.buildmanifest.json +25 -25
- package/dist/main.js +1 -1
- package/dist/main.js.map +1 -1
- package/dist/routes.json +1 -1
- package/package.json +1 -1
- package/src/bed-administration/bed-administration-types.ts +8 -0
- package/src/bed-admission/bed-tag/bed-tag-administration-table.component.tsx +217 -0
- package/src/bed-admission/bed-tag/bed-tags-admin-form.component.tsx +131 -0
- package/src/bed-admission/bed-tag/edit-tag-form.component.tsx +80 -0
- package/src/bed-admission/bed-tag/new-tag-form.component.tsx +83 -0
- package/src/bed-admission/bed-type/bed-type-admin-form.component.tsx +173 -0
- package/src/bed-admission/bed-type/bed-type-administration-table.component.tsx +222 -0
- package/src/bed-admission/bed-type/edit-bed-type.component.tsx +80 -0
- package/src/bed-admission/bed-type/new-bed-type-form.component.tsx +87 -0
- package/src/index.ts +14 -1
- package/src/root.component.tsx +4 -0
- package/src/routes.json +10 -0
- package/src/summary/summary.resource.ts +89 -1
- package/src/types.ts +11 -0
- package/dist/959.js +0 -1
- package/dist/959.js.map +0 -1
- /package/.yarn/versions/{6816f0d4.yml → cb9a89ac.yml} +0 -0
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import React, { useEffect, useMemo, useState } from "react";
|
|
2
|
+
import { useTranslation } from "react-i18next";
|
|
3
|
+
import {
|
|
4
|
+
Button,
|
|
5
|
+
DataTable,
|
|
6
|
+
DataTableSkeleton,
|
|
7
|
+
InlineLoading,
|
|
8
|
+
Pagination,
|
|
9
|
+
Table,
|
|
10
|
+
TableBody,
|
|
11
|
+
TableCell,
|
|
12
|
+
TableContainer,
|
|
13
|
+
TableHead,
|
|
14
|
+
TableHeader,
|
|
15
|
+
TableRow,
|
|
16
|
+
Tile,
|
|
17
|
+
} from "@carbon/react";
|
|
18
|
+
import { Add, Edit } from "@carbon/react/icons";
|
|
19
|
+
import {
|
|
20
|
+
isDesktop as desktopLayout,
|
|
21
|
+
useConfig,
|
|
22
|
+
useLayoutType,
|
|
23
|
+
} from "@openmrs/esm-framework";
|
|
24
|
+
import { CardHeader, ErrorState } from "@openmrs/esm-patient-common-lib";
|
|
25
|
+
import type { BedTypeData } from "../../types";
|
|
26
|
+
import { useBedType } from "../../summary/summary.resource";
|
|
27
|
+
import Header from "../../header/header.component";
|
|
28
|
+
import BedTypeForm from "./new-bed-type-form.component";
|
|
29
|
+
import styles from "../../bed-administration/bed-administration-table.scss";
|
|
30
|
+
import EditBedTypeForm from "./edit-bed-type.component";
|
|
31
|
+
|
|
32
|
+
const BedTypeAdministrationTable: React.FC = () => {
|
|
33
|
+
const { t } = useTranslation();
|
|
34
|
+
const headerTitle = t("bedType", "Bed Type");
|
|
35
|
+
const layout = useLayoutType();
|
|
36
|
+
const isTablet = layout === "tablet";
|
|
37
|
+
const responsiveSize = isTablet ? "lg" : "sm";
|
|
38
|
+
const isDesktop = desktopLayout(layout);
|
|
39
|
+
const [showEditBedModal, setShowEditBedModal] = useState(false);
|
|
40
|
+
const [isBedDataLoading, setIsBedDataLoading] = useState(false);
|
|
41
|
+
const [showBedTypeModal, setAddBedTypeModal] = useState(false);
|
|
42
|
+
const [currentPage, setCurrentPage] = useState(1);
|
|
43
|
+
const [editData, setEditData] = useState<BedTypeData>();
|
|
44
|
+
const [pageSize] = useState(10);
|
|
45
|
+
const { bedTypeData, isError, loading, validate, mutate } = useBedType();
|
|
46
|
+
const [currentPageSize, setPageSize] = useState(10);
|
|
47
|
+
const pageSizes = [10, 20, 30, 40, 50];
|
|
48
|
+
const tableHeaders = [
|
|
49
|
+
{
|
|
50
|
+
header: t("name", "Name"),
|
|
51
|
+
key: "name",
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
header: t("displayName", "Display Name"),
|
|
55
|
+
key: "displayName",
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
header: t("description", "Description"),
|
|
59
|
+
key: "description",
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
key: "actions",
|
|
63
|
+
header: t("actions", "Actions"),
|
|
64
|
+
},
|
|
65
|
+
];
|
|
66
|
+
|
|
67
|
+
const tableRows = useMemo(() => {
|
|
68
|
+
return bedTypeData?.map((entry) => ({
|
|
69
|
+
id: entry.uuid,
|
|
70
|
+
name: entry?.name,
|
|
71
|
+
displayName: entry?.displayName,
|
|
72
|
+
description: entry?.description,
|
|
73
|
+
actions: (
|
|
74
|
+
<>
|
|
75
|
+
<Button
|
|
76
|
+
enterDelayMs={300}
|
|
77
|
+
renderIcon={Edit}
|
|
78
|
+
onClick={(e) => {
|
|
79
|
+
e.preventDefault();
|
|
80
|
+
setEditData(entry);
|
|
81
|
+
setShowEditBedModal(true);
|
|
82
|
+
setAddBedTypeModal(false);
|
|
83
|
+
}}
|
|
84
|
+
kind={"ghost"}
|
|
85
|
+
iconDescription={t("editBedType", "Edit Bed Type")}
|
|
86
|
+
hasIconOnly
|
|
87
|
+
size={responsiveSize}
|
|
88
|
+
tooltipAlignment="start"
|
|
89
|
+
/>
|
|
90
|
+
</>
|
|
91
|
+
),
|
|
92
|
+
}));
|
|
93
|
+
}, [responsiveSize, bedTypeData, t]);
|
|
94
|
+
|
|
95
|
+
if (isBedDataLoading || loading) {
|
|
96
|
+
return (
|
|
97
|
+
<>
|
|
98
|
+
<Header route="Bed Type" />
|
|
99
|
+
<div className={styles.widgetCard}>
|
|
100
|
+
<DataTableSkeleton role="progressbar" compact={isDesktop} zebra />
|
|
101
|
+
</div>
|
|
102
|
+
</>
|
|
103
|
+
);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
if (isError) {
|
|
107
|
+
return (
|
|
108
|
+
<>
|
|
109
|
+
<Header route="Bed Type" />
|
|
110
|
+
<div className={styles.widgetCard}>
|
|
111
|
+
<ErrorState error={isError} headerTitle={headerTitle} />
|
|
112
|
+
</div>
|
|
113
|
+
</>
|
|
114
|
+
);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
return (
|
|
118
|
+
<>
|
|
119
|
+
<Header route="Bed Type" />
|
|
120
|
+
|
|
121
|
+
<div className={styles.widgetCard}>
|
|
122
|
+
{showBedTypeModal ? (
|
|
123
|
+
<BedTypeForm
|
|
124
|
+
onModalChange={setAddBedTypeModal}
|
|
125
|
+
showModal={showBedTypeModal}
|
|
126
|
+
mutate={mutate}
|
|
127
|
+
/>
|
|
128
|
+
) : null}
|
|
129
|
+
{showEditBedModal ? (
|
|
130
|
+
<EditBedTypeForm
|
|
131
|
+
onModalChange={setShowEditBedModal}
|
|
132
|
+
showModal={showEditBedModal}
|
|
133
|
+
editData={editData}
|
|
134
|
+
mutate={mutate}
|
|
135
|
+
/>
|
|
136
|
+
) : null}
|
|
137
|
+
<CardHeader title={headerTitle}>
|
|
138
|
+
<span className={styles.backgroundDataFetchingIndicator}>
|
|
139
|
+
<span>{validate ? <InlineLoading /> : null}</span>
|
|
140
|
+
</span>
|
|
141
|
+
{bedTypeData?.length ? (
|
|
142
|
+
<Button
|
|
143
|
+
kind="ghost"
|
|
144
|
+
renderIcon={(props) => <Add size={16} {...props} />}
|
|
145
|
+
onClick={() => setAddBedTypeModal(true)}
|
|
146
|
+
>
|
|
147
|
+
{t("addBedtype", "Add Bed Type")}
|
|
148
|
+
</Button>
|
|
149
|
+
) : null}
|
|
150
|
+
</CardHeader>
|
|
151
|
+
<DataTable
|
|
152
|
+
rows={tableRows}
|
|
153
|
+
headers={tableHeaders}
|
|
154
|
+
isSortable
|
|
155
|
+
size={isTablet ? "lg" : "sm"}
|
|
156
|
+
useZebraStyles
|
|
157
|
+
>
|
|
158
|
+
{({ rows, headers, getTableProps }) => (
|
|
159
|
+
<TableContainer>
|
|
160
|
+
<Table {...getTableProps()}>
|
|
161
|
+
<TableHead>
|
|
162
|
+
<TableRow>
|
|
163
|
+
{headers.map((header) => (
|
|
164
|
+
<TableHeader>
|
|
165
|
+
{header.header?.content ?? header.header}
|
|
166
|
+
</TableHeader>
|
|
167
|
+
))}
|
|
168
|
+
</TableRow>
|
|
169
|
+
</TableHead>
|
|
170
|
+
<TableBody>
|
|
171
|
+
{rows.map((row) => (
|
|
172
|
+
<TableRow key={row.id}>
|
|
173
|
+
{row.cells.map((cell) => (
|
|
174
|
+
<TableCell key={cell.id}>
|
|
175
|
+
{cell.value?.content ?? cell.value}
|
|
176
|
+
</TableCell>
|
|
177
|
+
))}
|
|
178
|
+
</TableRow>
|
|
179
|
+
))}
|
|
180
|
+
</TableBody>
|
|
181
|
+
</Table>
|
|
182
|
+
{rows.length === 0 ? (
|
|
183
|
+
<div className={styles.tileContainer}>
|
|
184
|
+
<Tile className={styles.tile}>
|
|
185
|
+
<div className={styles.tileContent}>
|
|
186
|
+
<p className={styles.content}>
|
|
187
|
+
{t("No data", "No data to display")}
|
|
188
|
+
</p>
|
|
189
|
+
<p className={styles.helper}>
|
|
190
|
+
{t("checkFilters", "Check the filters above")}
|
|
191
|
+
</p>
|
|
192
|
+
</div>
|
|
193
|
+
<p className={styles.separator}>{t("or", "or")}</p>
|
|
194
|
+
<Button
|
|
195
|
+
kind="ghost"
|
|
196
|
+
size="sm"
|
|
197
|
+
renderIcon={(props) => <Add size={16} {...props} />}
|
|
198
|
+
onClick={() => setAddBedTypeModal(true)}
|
|
199
|
+
>
|
|
200
|
+
{t("bedType", "Add Bed Type")}
|
|
201
|
+
</Button>
|
|
202
|
+
</Tile>
|
|
203
|
+
</div>
|
|
204
|
+
) : null}
|
|
205
|
+
<Pagination
|
|
206
|
+
page={currentPage}
|
|
207
|
+
pageSize={pageSize}
|
|
208
|
+
pageSizes={[10, 20, 30, 40, 50]}
|
|
209
|
+
totalItems={bedTypeData.length}
|
|
210
|
+
onChange={({ page, pageSize }) => {
|
|
211
|
+
setCurrentPage(page);
|
|
212
|
+
setPageSize(pageSize);
|
|
213
|
+
}}
|
|
214
|
+
/>
|
|
215
|
+
</TableContainer>
|
|
216
|
+
)}
|
|
217
|
+
</DataTable>
|
|
218
|
+
</div>
|
|
219
|
+
</>
|
|
220
|
+
);
|
|
221
|
+
};
|
|
222
|
+
export default BedTypeAdministrationTable;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import React, { useCallback } from "react";
|
|
2
|
+
import { useTranslation } from "react-i18next";
|
|
3
|
+
import { showToast, showNotification, useConfig } from "@openmrs/esm-framework";
|
|
4
|
+
|
|
5
|
+
import { editBedType, useBedType } from "../../summary/summary.resource";
|
|
6
|
+
import { BedTypeDataAdministration } from "../../bed-administration/bed-administration-types";
|
|
7
|
+
import { BedTypeData, Mutator } from "../../types";
|
|
8
|
+
import BedTypeAdministrationForm from "./bed-type-admin-form.component";
|
|
9
|
+
|
|
10
|
+
interface EditBedTypeFormProps {
|
|
11
|
+
showModal: boolean;
|
|
12
|
+
onModalChange: (showModal: boolean) => void;
|
|
13
|
+
editData: BedTypeData;
|
|
14
|
+
mutate: Mutator;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const EditBedTypeForm: React.FC<EditBedTypeFormProps> = ({
|
|
18
|
+
showModal,
|
|
19
|
+
onModalChange,
|
|
20
|
+
editData,
|
|
21
|
+
mutate,
|
|
22
|
+
}) => {
|
|
23
|
+
const { t } = useTranslation();
|
|
24
|
+
const headerTitle = t("editBedType", "Edit Bed Type");
|
|
25
|
+
const { bedTypeData } = useBedType();
|
|
26
|
+
const availableBedTypes = bedTypeData ? bedTypeData : [];
|
|
27
|
+
const handleCreateQuestion = useCallback(
|
|
28
|
+
(formData: BedTypeDataAdministration) => {
|
|
29
|
+
const bedUuid = editData.uuid;
|
|
30
|
+
const { name, displayName, description } = formData;
|
|
31
|
+
const bedPayload = {
|
|
32
|
+
name,
|
|
33
|
+
displayName,
|
|
34
|
+
description,
|
|
35
|
+
};
|
|
36
|
+
editBedType({ bedPayload, bedTypeId: bedUuid })
|
|
37
|
+
.then(() => {
|
|
38
|
+
showToast({
|
|
39
|
+
title: t("formSaved", "Bed Type"),
|
|
40
|
+
kind: "success",
|
|
41
|
+
critical: true,
|
|
42
|
+
description:
|
|
43
|
+
bedPayload.name +
|
|
44
|
+
" " +
|
|
45
|
+
t("saveSuccessMessage", "was saved successfully."),
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
mutate();
|
|
49
|
+
onModalChange(false);
|
|
50
|
+
})
|
|
51
|
+
.catch((error) => {
|
|
52
|
+
showNotification({
|
|
53
|
+
title: t("errorCreatingForm", "Error creating bed"),
|
|
54
|
+
kind: "error",
|
|
55
|
+
critical: true,
|
|
56
|
+
description: error?.message,
|
|
57
|
+
});
|
|
58
|
+
onModalChange(false);
|
|
59
|
+
});
|
|
60
|
+
onModalChange(false);
|
|
61
|
+
},
|
|
62
|
+
[onModalChange, mutate, editData, t]
|
|
63
|
+
);
|
|
64
|
+
|
|
65
|
+
return (
|
|
66
|
+
<>
|
|
67
|
+
<BedTypeAdministrationForm
|
|
68
|
+
onModalChange={onModalChange}
|
|
69
|
+
availableBedTypes={availableBedTypes}
|
|
70
|
+
showModal={showModal}
|
|
71
|
+
handleCreateQuestion={handleCreateQuestion}
|
|
72
|
+
headerTitle={headerTitle}
|
|
73
|
+
initialData={editData}
|
|
74
|
+
allLocations={[]}
|
|
75
|
+
/>
|
|
76
|
+
</>
|
|
77
|
+
);
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
export default EditBedTypeForm;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import React, { useCallback } from "react";
|
|
2
|
+
import { useTranslation } from "react-i18next";
|
|
3
|
+
import { showToast, showNotification, useConfig } from "@openmrs/esm-framework";
|
|
4
|
+
import type { BedTypeData, Mutator } from "../../types";
|
|
5
|
+
import { useBedType } from "../../bed-administration/bed-administration.resource";
|
|
6
|
+
import { saveBedType, useLocationsByTag } from "../../summary/summary.resource";
|
|
7
|
+
import BedTypeAdministrationForm from "./bed-type-admin-form.component";
|
|
8
|
+
|
|
9
|
+
interface BedTypeFormProps {
|
|
10
|
+
showModal: boolean;
|
|
11
|
+
onModalChange: (showModal: boolean) => void;
|
|
12
|
+
mutate: Mutator;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const NewBedTypeForm: React.FC<BedTypeFormProps> = ({
|
|
16
|
+
showModal,
|
|
17
|
+
onModalChange,
|
|
18
|
+
mutate,
|
|
19
|
+
}) => {
|
|
20
|
+
const { t } = useTranslation();
|
|
21
|
+
const { admissionLocationTagUuid } = useConfig();
|
|
22
|
+
const { data: admissionLocations } = useLocationsByTag(
|
|
23
|
+
admissionLocationTagUuid
|
|
24
|
+
);
|
|
25
|
+
const headerTitle = t("addBedType", "Create Bed type");
|
|
26
|
+
const { bedTypes } = useBedType();
|
|
27
|
+
const availableBedTypes = bedTypes ? bedTypes : [];
|
|
28
|
+
|
|
29
|
+
const initialData: BedTypeData = {
|
|
30
|
+
uuid: "",
|
|
31
|
+
name: "",
|
|
32
|
+
displayName: "",
|
|
33
|
+
description: "",
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
const handleCreateQuestion = useCallback(
|
|
37
|
+
(formData: BedTypeData) => {
|
|
38
|
+
const { name, displayName, description } = formData;
|
|
39
|
+
|
|
40
|
+
const bedObject = {
|
|
41
|
+
name,
|
|
42
|
+
displayName,
|
|
43
|
+
description,
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
saveBedType({ bedPayload: bedObject })
|
|
47
|
+
.then(() => {
|
|
48
|
+
showToast({
|
|
49
|
+
title: t("formCreated", "Add bed Type"),
|
|
50
|
+
kind: "success",
|
|
51
|
+
critical: true,
|
|
52
|
+
description: `Bed ${name} was created successfully.`,
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
mutate();
|
|
56
|
+
onModalChange(false);
|
|
57
|
+
})
|
|
58
|
+
.catch((error) => {
|
|
59
|
+
showNotification({
|
|
60
|
+
title: t("errorCreatingForm", "Error creating bed"),
|
|
61
|
+
kind: "error",
|
|
62
|
+
critical: true,
|
|
63
|
+
description: error?.message,
|
|
64
|
+
});
|
|
65
|
+
onModalChange(false);
|
|
66
|
+
});
|
|
67
|
+
onModalChange(false);
|
|
68
|
+
},
|
|
69
|
+
[onModalChange, mutate, t]
|
|
70
|
+
);
|
|
71
|
+
|
|
72
|
+
return (
|
|
73
|
+
<>
|
|
74
|
+
<BedTypeAdministrationForm
|
|
75
|
+
onModalChange={onModalChange}
|
|
76
|
+
allLocations={admissionLocations}
|
|
77
|
+
availableBedTypes={availableBedTypes}
|
|
78
|
+
showModal={showModal}
|
|
79
|
+
handleCreateQuestion={handleCreateQuestion}
|
|
80
|
+
headerTitle={headerTitle}
|
|
81
|
+
initialData={initialData}
|
|
82
|
+
/>
|
|
83
|
+
</>
|
|
84
|
+
);
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
export default NewBedTypeForm;
|
package/src/index.ts
CHANGED
|
@@ -55,7 +55,20 @@ export const adminLeftPanelLink = getSyncLifecycle(
|
|
|
55
55
|
}),
|
|
56
56
|
options
|
|
57
57
|
);
|
|
58
|
-
|
|
58
|
+
export const bedTypeLeftPanelLink = getSyncLifecycle(
|
|
59
|
+
createLeftPanelLink({
|
|
60
|
+
name: "bed-type",
|
|
61
|
+
title: "Bed Type",
|
|
62
|
+
}),
|
|
63
|
+
options
|
|
64
|
+
);
|
|
65
|
+
export const bedTagLeftPanelLink = getSyncLifecycle(
|
|
66
|
+
createLeftPanelLink({
|
|
67
|
+
name: "bed-tag",
|
|
68
|
+
title: "Bed Tag",
|
|
69
|
+
}),
|
|
70
|
+
options
|
|
71
|
+
);
|
|
59
72
|
export const bedAdmissionDashboardLink = getSyncLifecycle(
|
|
60
73
|
createDashboardLink({
|
|
61
74
|
name: "bed-admission",
|
package/src/root.component.tsx
CHANGED
|
@@ -6,6 +6,8 @@ import Home from "./home.component";
|
|
|
6
6
|
import LeftPanel from "./left-panel/left-panel.component";
|
|
7
7
|
import WardWithBeds from "./ward-with-beds/ward-with-beds.component";
|
|
8
8
|
import styles from "./root.scss";
|
|
9
|
+
import BedTagAdministrationTable from "./bed-admission/bed-tag/bed-tag-administration-table.component";
|
|
10
|
+
import BedTypeAdministrationTable from "./bed-admission/bed-type/bed-type-administration-table.component";
|
|
9
11
|
|
|
10
12
|
const Root: React.FC = () => {
|
|
11
13
|
const spaBasePath = window.spaBase;
|
|
@@ -26,6 +28,8 @@ const Root: React.FC = () => {
|
|
|
26
28
|
<Route path="/" element={<Home />} />
|
|
27
29
|
<Route path="/location/:location" element={<WardWithBeds />} />
|
|
28
30
|
<Route path="/administration" element={<BedAdministrationTable />} />
|
|
31
|
+
<Route path="/bed-tag" element={<BedTagAdministrationTable />} />
|
|
32
|
+
<Route path="/bed-type" element={<BedTypeAdministrationTable />} />
|
|
29
33
|
</Routes>
|
|
30
34
|
</main>
|
|
31
35
|
</BrowserRouter>
|
package/src/routes.json
CHANGED
|
@@ -32,6 +32,16 @@
|
|
|
32
32
|
"name": "bed-admission-dashboard",
|
|
33
33
|
"slot": "bed-admission-dashboard-slot"
|
|
34
34
|
},
|
|
35
|
+
{
|
|
36
|
+
"component": "bedTypeLeftPanelLink",
|
|
37
|
+
"name": "bed-type-left-panel-link",
|
|
38
|
+
"slot": "bed-management-left-panel-slot"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"component": "bedTagLeftPanelLink",
|
|
42
|
+
"name": "bed-tag-left-panel-link",
|
|
43
|
+
"slot": "bed-management-left-panel-slot"
|
|
44
|
+
},
|
|
35
45
|
{
|
|
36
46
|
"name": "bed-admission-dashboard-link",
|
|
37
47
|
"component": "bedAdmissionDashboardLink",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import useSWR from "swr";
|
|
2
|
-
import { openmrsFetch } from "@openmrs/esm-framework";
|
|
2
|
+
import { FetchResponse, openmrsFetch } from "@openmrs/esm-framework";
|
|
3
3
|
import type { AdmissionLocation, Bed, MappedBedData } from "../types";
|
|
4
4
|
|
|
5
5
|
export const useLocationsByTag = (locationUuid: string) => {
|
|
@@ -121,3 +121,91 @@ export const useAdmissionLocationBedLayout = (locationUuid: string) => {
|
|
|
121
121
|
mutate,
|
|
122
122
|
};
|
|
123
123
|
};
|
|
124
|
+
export const useBedType = () => {
|
|
125
|
+
const url = `/ws/rest/v1/bedtype/`;
|
|
126
|
+
const { data, error, isLoading, isValidating, mutate } = useSWR<
|
|
127
|
+
{ data },
|
|
128
|
+
Error
|
|
129
|
+
>(url, openmrsFetch);
|
|
130
|
+
const results = data?.data?.results ? data?.data?.results : [];
|
|
131
|
+
return {
|
|
132
|
+
bedTypeData: results,
|
|
133
|
+
isError: error,
|
|
134
|
+
loading: isLoading,
|
|
135
|
+
validate: isValidating,
|
|
136
|
+
mutate,
|
|
137
|
+
};
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
export const useBedTag = () => {
|
|
141
|
+
const url = `/ws/rest/v1/bedTag/`;
|
|
142
|
+
const { data, error, isLoading, isValidating, mutate } = useSWR<
|
|
143
|
+
{ data },
|
|
144
|
+
Error
|
|
145
|
+
>(url, openmrsFetch);
|
|
146
|
+
const results = data?.data?.results ? data?.data?.results : [];
|
|
147
|
+
return {
|
|
148
|
+
bedTypeData: results,
|
|
149
|
+
isError: error,
|
|
150
|
+
loading: isLoading,
|
|
151
|
+
validate: isValidating,
|
|
152
|
+
mutate,
|
|
153
|
+
};
|
|
154
|
+
};
|
|
155
|
+
interface BedType {
|
|
156
|
+
name: string;
|
|
157
|
+
displayName: string;
|
|
158
|
+
description: string;
|
|
159
|
+
}
|
|
160
|
+
interface BedTag {
|
|
161
|
+
name: string;
|
|
162
|
+
}
|
|
163
|
+
export async function saveBedType({
|
|
164
|
+
bedPayload,
|
|
165
|
+
}): Promise<FetchResponse<BedType>> {
|
|
166
|
+
const response: FetchResponse = await openmrsFetch(`/ws/rest/v1/bedtype`, {
|
|
167
|
+
method: "POST",
|
|
168
|
+
headers: { "Content-Type": "application/json" },
|
|
169
|
+
body: bedPayload,
|
|
170
|
+
});
|
|
171
|
+
return response;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
export async function saveBedTag({
|
|
175
|
+
bedPayload,
|
|
176
|
+
}): Promise<FetchResponse<BedTag>> {
|
|
177
|
+
const response: FetchResponse = await openmrsFetch(`/ws/rest/v1/bedTag/`, {
|
|
178
|
+
method: "POST",
|
|
179
|
+
headers: { "Content-Type": "application/json" },
|
|
180
|
+
body: bedPayload,
|
|
181
|
+
});
|
|
182
|
+
return response;
|
|
183
|
+
}
|
|
184
|
+
export async function editBedType({
|
|
185
|
+
bedPayload,
|
|
186
|
+
bedTypeId,
|
|
187
|
+
}): Promise<FetchResponse<BedType>> {
|
|
188
|
+
const response: FetchResponse = await openmrsFetch(
|
|
189
|
+
`/ws/rest/v1/bedtype/${bedTypeId}`,
|
|
190
|
+
{
|
|
191
|
+
method: "POST",
|
|
192
|
+
headers: { "Content-Type": "application/json" },
|
|
193
|
+
body: bedPayload,
|
|
194
|
+
}
|
|
195
|
+
);
|
|
196
|
+
return response;
|
|
197
|
+
}
|
|
198
|
+
export async function editBedTag({
|
|
199
|
+
bedPayload,
|
|
200
|
+
bedTagId,
|
|
201
|
+
}): Promise<FetchResponse<BedType>> {
|
|
202
|
+
const response: FetchResponse = await openmrsFetch(
|
|
203
|
+
`/ws/rest/v1/bedTag/${bedTagId}`,
|
|
204
|
+
{
|
|
205
|
+
method: "POST",
|
|
206
|
+
headers: { "Content-Type": "application/json" },
|
|
207
|
+
body: bedPayload,
|
|
208
|
+
}
|
|
209
|
+
);
|
|
210
|
+
return response;
|
|
211
|
+
}
|
package/src/types.ts
CHANGED
|
@@ -150,3 +150,14 @@ export interface BedDetails extends Bed {
|
|
|
150
150
|
identifiers: Array<{ identifier: string }>;
|
|
151
151
|
};
|
|
152
152
|
}
|
|
153
|
+
export interface BedTypeData {
|
|
154
|
+
uuid: string;
|
|
155
|
+
name: string;
|
|
156
|
+
displayName: string;
|
|
157
|
+
description: string;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
export interface BedTagData {
|
|
161
|
+
uuid: string;
|
|
162
|
+
name: string;
|
|
163
|
+
}
|
package/dist/959.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(globalThis.webpackChunk_kenyaemr_esm_bed_management_app=globalThis.webpackChunk_kenyaemr_esm_bed_management_app||[]).push([[959],{2746:(e,t,n)=>{n.d(t,{Z:()=>l});var a=n(7537),r=n.n(a),o=n(3645),i=n.n(o)()(r());i.push([e.id,'.-esm-bed-management__bed-administration-table__widgetCard___C_FVH{border:1px solid #e0e0e0;margin:1.5rem}.-esm-bed-management__bed-administration-table__widgetCard___C_FVH .cds--modal-content{margin-bottom:unset}@media(min-width: 66rem){.-esm-bed-management__bed-administration-table__widgetCard___C_FVH .cds--modal-container{max-height:100%;width:60%}}@media(min-width: 42rem){.-esm-bed-management__bed-administration-table__widgetCard___C_FVH .cds--modal-container{max-height:100%}}.-esm-bed-management__bed-administration-table__flexContainer____vXa0{display:flex;justify-content:space-between;padding:0 1rem;margin-top:2rem;margin-left:.5rem}.-esm-bed-management__bed-administration-table__filterContainer____09gV{flex:1}.-esm-bed-management__bed-administration-table__filterContainer____09gV .cds--dropdown__wrapper--inline{gap:0}.-esm-bed-management__bed-administration-table__filterContainer____09gV .cds--list-box__menu-icon{height:1rem}.-esm-bed-management__bed-administration-table__backgroundDataFetchingIndicator___K4V9t{align-items:center;display:flex;justify-content:end}.-esm-bed-management__bed-administration-table__tileContainer___ezLCk{background-color:#fff;border-top:1px solid #e0e0e0;padding:3rem 0}.-esm-bed-management__bed-administration-table__tile___VExf6{margin:auto;width:fit-content;display:flex;flex-direction:column;align-items:center}.-esm-bed-management__bed-administration-table__tileContent___JFtwT{display:flex;flex-direction:column;align-items:center}.-esm-bed-management__bed-administration-table__content___px3wE{font-size:var(--cds-heading-compact-02-font-size, 1rem);font-weight:var(--cds-heading-compact-02-font-weight, 600);line-height:var(--cds-heading-compact-02-line-height, 1.375);letter-spacing:var(--cds-heading-compact-02-letter-spacing, 0);color:#525252;margin-bottom:.5rem}.-esm-bed-management__bed-administration-table__helper___CZLsU{font-size:var(--cds-body-compact-01-font-size, 0.875rem);font-weight:var(--cds-body-compact-01-font-weight, 400);line-height:var(--cds-body-compact-01-line-height, 1.28572);letter-spacing:var(--cds-body-compact-01-letter-spacing, 0.16px);color:#525252}.-esm-bed-management__bed-administration-table__separator___IPb7s{font-size:var(--cds-body-compact-02-font-size, 1rem);font-weight:var(--cds-body-compact-02-font-weight, 400);line-height:var(--cds-body-compact-02-line-height, 1.375);letter-spacing:var(--cds-body-compact-02-letter-spacing, 0);color:#525252;width:80%;margin:1.5rem auto;overflow:hidden;text-align:center}.-esm-bed-management__bed-administration-table__separator___IPb7s::before,.-esm-bed-management__bed-administration-table__separator___IPb7s::after{background-color:#a8a8a8;content:"";display:inline-block;height:1px;position:relative;vertical-align:middle;width:50%}.-esm-bed-management__bed-administration-table__separator___IPb7s::before{right:.5rem;margin-left:-50%}.-esm-bed-management__bed-administration-table__separator___IPb7s::after{left:.5rem;margin-right:-50%}',"",{version:3,sources:["webpack://./src/bed-administration/bed-administration-table.scss","webpack://./node_modules/@carbon/colors/index.scss","webpack://./node_modules/@carbon/type/scss/_styles.scss"],names:[],mappings:"AAGA,mEACE,wBAAA,CACA,aAAA,CAEA,uFACE,mBAAA,CAGF,yBACE,yFACE,eAAA,CACA,SAAA,CAAA,CAIJ,yBACE,yFACE,eAAA,CAAA,CAMN,sEACE,YAAA,CACA,6BAAA,CACA,cAAA,CACA,eAAA,CACA,iBAAA,CAGF,wEACE,MAAA,CAEA,wGACE,KAAA,CAGF,kGACE,WAAA,CAIJ,wFACE,kBAAA,CACA,YAAA,CACA,mBAAA,CAGF,sEACE,qBCqEQ,CDpER,4BAAA,CACA,cAAA,CAGF,6DACE,WAAA,CACA,iBAAA,CACA,YAAA,CACA,qBAAA,CACA,kBAAA,CAGF,oEACE,YAAA,CACA,qBAAA,CACA,kBAAA,CAGF,gEE0xBI,uDAAA,CAAA,0DAAA,CAAA,4DAAA,CAAA,8DAAA,CFxxBF,aC1BQ,CD2BR,mBAAA,CAGF,+DEoxBI,wDAAA,CAAA,uDAAA,CAAA,2DAAA,CAAA,gEAAA,CFlxBF,aChCQ,CDmCV,kEE+wBI,oDAAA,CAAA,uDAAA,CAAA,yDAAA,CAAA,2DAAA,CF7wBF,aCrCQ,CDsCR,SAAA,CACA,kBAAA,CACA,eAAA,CACA,iBAAA,CAEA,mJAEE,wBChDM,CDiDN,UAAA,CACA,oBAAA,CACA,UAAA,CACA,iBAAA,CACA,qBAAA,CACA,SAAA,CAGF,0EACE,WAAA,CACA,gBAAA,CAGF,yEACE,UAAA,CACA,iBAAA",sourceRoot:""}]),i.locals={widgetCard:"-esm-bed-management__bed-administration-table__widgetCard___C_FVH",flexContainer:"-esm-bed-management__bed-administration-table__flexContainer____vXa0",filterContainer:"-esm-bed-management__bed-administration-table__filterContainer____09gV",backgroundDataFetchingIndicator:"-esm-bed-management__bed-administration-table__backgroundDataFetchingIndicator___K4V9t",tileContainer:"-esm-bed-management__bed-administration-table__tileContainer___ezLCk",tile:"-esm-bed-management__bed-administration-table__tile___VExf6",tileContent:"-esm-bed-management__bed-administration-table__tileContent___JFtwT",content:"-esm-bed-management__bed-administration-table__content___px3wE",helper:"-esm-bed-management__bed-administration-table__helper___CZLsU",separator:"-esm-bed-management__bed-administration-table__separator___IPb7s"};const l=i},5294:(e,t,n)=>{n.d(t,{Z:()=>l});var a=n(7537),r=n.n(a),o=n(3645),i=n.n(o)()(r());i.push([e.id,".-esm-bed-management__home__section___IM0n2{border-right:1px solid #e0e0e0}","",{version:3,sources:["webpack://./src/home.scss"],names:[],mappings:"AAEA,4CACE,8BAAA",sourceRoot:""}]),i.locals={section:"-esm-bed-management__home__section___IM0n2"};const l=i},5791:(e,t,n)=>{n.d(t,{Z:()=>l});var a=n(7537),r=n.n(a),o=n(3645),i=n.n(o)()(r());i.push([e.id,".-esm-bed-management__left-panel__leftPanel___hr2VD{border-right:1px solid #e0e0e0;padding-top:1rem}.-esm-bed-management__left-panel__leftPanel___hr2VD .cds--side-nav__link{color:#525252;font-size:var(--cds-heading-compact-01-font-size, 0.875rem);font-weight:var(--cds-heading-compact-01-font-weight, 600);line-height:var(--cds-heading-compact-01-line-height, 1.28572);letter-spacing:var(--cds-heading-compact-01-letter-spacing, 0.16px)}.-esm-bed-management__left-panel__leftPanel___hr2VD .cds--side-nav__link:focus,.-esm-bed-management__left-panel__leftPanel___hr2VD .cds--side-nav__link:hover{background-color:#e8e8e8}.-esm-bed-management__left-panel__leftPanel___hr2VD .cds--side-nav__link.active-left-nav-link{color:#161616;border-left:.25rem solid var(--brand-01);outline:none;padding:0 .75rem;background-color:#e0e0e0}.omrs-breakpoint-gt-tablet .cds--side-nav__link{height:2rem}.omrs-breakpoint-lt-desktop .cds--side-nav__link{height:3rem}","",{version:3,sources:["webpack://./src/left-panel/left-panel.scss","webpack://./node_modules/@carbon/colors/index.scss","webpack://./node_modules/@carbon/type/scss/_styles.scss"],names:[],mappings:"AAGA,oDACE,8BAAA,CACA,gBAAA,CAGA,yEACE,aCuCM,CCkzBN,2DAAA,CAAA,0DAAA,CAAA,8DAAA,CAAA,mEAAA,CFt1BA,8JAEE,wBCwJU,CDpJZ,8FACE,aCgCK,CD/BL,wCAAA,CACA,YAAA,CACA,gBAAA,CACA,wBCoBI,CDbR,gDACE,WAAA,CAMF,iDACE,WAAA",sourceRoot:""}]),i.locals={leftPanel:"-esm-bed-management__left-panel__leftPanel___hr2VD"};const l=i},49:(e,t,n)=>{n.d(t,{Z:()=>l});var a=n(7537),r=n.n(a),o=n(3645),i=n.n(o)()(r());i.push([e.id,".-esm-bed-management__root__container___Rf8rX{background-color:#fff;height:calc(100vh - 3rem)}.omrs-breakpoint-gt-tablet .-esm-bed-management__root__container___Rf8rX{margin-left:var(--omrs-sidenav-width)}","",{version:3,sources:["webpack://./src/root.scss","webpack://./node_modules/@carbon/colors/index.scss"],names:[],mappings:"AAGA,8CACE,qBCsHQ,CDrHR,yBAAA,CAGF,yEACE,qCAAA",sourceRoot:""}]),i.locals={container:"-esm-bed-management__root__container___Rf8rX"};const l=i},4899:(e,t,n)=>{n.d(t,{Z:()=>l});var a=n(7537),r=n.n(a),o=n(3645),i=n.n(o)()(r());i.push([e.id,".-esm-bed-management__summary__cardContainer___D4baU{background-color:#fff;display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));justify-content:space-between;padding:1rem}.-esm-bed-management__summary__buttonMain___X9ijE{background-color:#fff;color:#007d79;cursor:text}.-esm-bed-management__summary__sectionLoader___WRQq1{text-align:center}.-esm-bed-management__summary__buttonMain___X9ijE:active,.-esm-bed-management__summary__buttonMain___X9ijE:focus,.-esm-bed-management__summary__buttonMain___X9ijE:hover{color:#007d79 !important;background-color:#fff !important}.-esm-bed-management__summary__inactiveMain___c2eaO{margin-bottom:4rem}.-esm-bed-management__summary__buttonContainer___TBZmO{display:flex}.-esm-bed-management__summary__buttonItems___EYz73{flex:auto}.-esm-bed-management__summary__pageHeaderContainer___OGECY{display:flex;justify-content:space-between;align-items:center;padding:1rem;background-color:#ededed}.-esm-bed-management__summary__pageHeader___wcuT7{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:1.25rem;font-weight:400;line-height:1.4;letter-spacing:0}.-esm-bed-management__summary__link___XMpAS{text-decoration:none;display:flex;align-items:center;color:#0f62fe}.-esm-bed-management__summary__link___XMpAS svg{margin-left:.5rem}.-esm-bed-management__summary__loader___G69Xc{margin:2rem}","",{version:3,sources:["webpack://./src/summary/summary.scss","webpack://./node_modules/@carbon/colors/index.scss","webpack://./node_modules/@carbon/layout/scss/generated/_spacing.scss"],names:[],mappings:"AAGA,qDACC,qBCsHS,CDrHT,YAAA,CACA,+CAAA,CACA,6BAAA,CACA,YAAA,CAGD,kDACC,qBC8GS,CD7GT,aC8FS,CD7FT,WAAA,CAGD,qDACC,iBAAA,CAIA,yKACC,wBAAA,CACA,gCAAA,CAIF,oDACC,kBAAA,CAGD,uDACC,YAAA,CAGD,mDACC,SAAA,CAGD,2DACC,YAAA,CACA,6BAAA,CACA,kBAAA,CACA,YEbY,CFcZ,wBAAA,CAGD,kDACC,sBAAA,CACA,eAAA,CACA,kBAAA,CACA,iBAAA,CACA,eAAA,CACA,eAAA,CACA,gBAAA,CAGD,4CACE,oBAAA,CACA,YAAA,CACA,kBAAA,CACA,aC7CQ,CD+CR,gDACE,iBE5CS,CFgDb,8CACC,WAAA",sourceRoot:""}]),i.locals={cardContainer:"-esm-bed-management__summary__cardContainer___D4baU",buttonMain:"-esm-bed-management__summary__buttonMain___X9ijE",sectionLoader:"-esm-bed-management__summary__sectionLoader___WRQq1",inactiveMain:"-esm-bed-management__summary__inactiveMain___c2eaO",buttonContainer:"-esm-bed-management__summary__buttonContainer___TBZmO",buttonItems:"-esm-bed-management__summary__buttonItems___EYz73",pageHeaderContainer:"-esm-bed-management__summary__pageHeaderContainer___OGECY",pageHeader:"-esm-bed-management__summary__pageHeader___wcuT7",link:"-esm-bed-management__summary__link___XMpAS",loader:"-esm-bed-management__summary__loader___G69Xc"};const l=i},8755:(e,t,n)=>{n.d(t,{Z:()=>l});var a=n(7537),r=n.n(a),o=n(3645),i=n.n(o)()(r());i.push([e.id,".-esm-bed-management__ward-with-beds__container___ihQHo{margin:1rem}.-esm-bed-management__ward-with-beds__backButton___myuDs{align-items:center;display:flex;justify-content:flex-start;margin-left:1rem}.-esm-bed-management__ward-with-beds__backButton___myuDs button{display:flex;padding-left:0 !important}.-esm-bed-management__ward-with-beds__backButton___myuDs button svg{order:1;margin-right:.5rem;margin-left:.5 !important}.-esm-bed-management__ward-with-beds__backButton___myuDs button span{order:2}","",{version:3,sources:["webpack://./src/ward-with-beds/ward-with-beds.scss","webpack://./node_modules/@carbon/layout/scss/generated/_spacing.scss"],names:[],mappings:"AAEA,wDACE,WAAA,CAGF,yDACE,kBAAA,CACA,YAAA,CACA,0BAAA,CACA,gBAAA,CAEA,gEACE,YAAA,CACA,yBAAA,CAEA,oEACE,OAAA,CACA,kBCGO,CDFP,yBAAA,CAGF,qEACE,OAAA",sourceRoot:""}]),i.locals={container:"-esm-bed-management__ward-with-beds__container___ihQHo",backButton:"-esm-bed-management__ward-with-beds__backButton___myuDs"};const l=i},7959:(e,t,n)=>{n.r(t),n.d(t,{default:()=>xe});var a=n(1672),r=n.n(a),o=n(1914),i=n(1132),l=n(3397),s=n(7330),c=n(2327),d=n(8115),m=n(9455),u=n(3883),A=n(5591);function _(e,t,n,a,r,o,i){try{var l=e[o](i),s=l.value}catch(e){return void n(e)}l.done?t(s):Promise.resolve(s).then(a,r)}function b(e){return function(){var t=this,n=arguments;return new Promise((function(a,r){var o=e.apply(t,n);function i(e){_(o,a,r,i,l,"next",e)}function l(e){_(o,a,r,i,l,"throw",e)}i(void 0)}))}}function p(e,t){var n,a,r,o,i={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return o={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function l(o){return function(l){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,a&&(r=2&o[0]?a.return:o[0]?a.throw||((r=a.return)&&r.call(a),0):a.next)&&!(r=r.call(a,o[1])).done)return r;switch(a=0,r&&(o=[2&o[0],r.value]),o[0]){case 0:case 1:r=o;break;case 4:return i.label++,{value:o[1],done:!1};case 5:i.label++,a=o[1],o=[0];continue;case 7:o=i.ops.pop(),i.trys.pop();continue;default:if(!((r=(r=i.trys).length>0&&r[r.length-1])||6!==o[0]&&2!==o[0])){i=0;continue}if(3===o[0]&&(!r||o[1]>r[0]&&o[1]<r[3])){i.label=o[1];break}if(6===o[0]&&i.label<r[1]){i.label=r[1],r=o;break}if(r&&i.label<r[2]){i.label=r[2],i.ops.push(o);break}r[2]&&i.ops.pop(),i.trys.pop();continue}o=t.call(e,i)}catch(e){o=[6,e],a=0}finally{n=r=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,l])}}}function f(){return(f=b((function(e){var t;return p(this,(function(n){switch(n.label){case 0:return t=e.bedPayload,[4,(0,i.openmrsFetch)("/ws/rest/v1/bed",{method:"POST",headers:{"Content-Type":"application/json"},body:t})];case 1:return[2,n.sent()]}}))}))).apply(this,arguments)}function g(){var e,t,n=(0,A.ZP)("/ws/rest/v1/bedtype",i.openmrsFetch),r=n.data,o=n.error,l=n.isLoading,s=(0,a.useMemo)((function(){var e,t,n,a=null!==(n=null===(t=r)||void 0===t||null===(e=t.data)||void 0===e?void 0:e.results)&&void 0!==n?n:[],o=[];return a.forEach((function(e){o.some((function(t){return t.name===e.name}))||o.push(e)})),o}),[null===(t=r)||void 0===t||null===(e=t.data)||void 0===e?void 0:e.results]);return{bedTypes:s||[],isLoading:l,error:o}}function C(){return(C=b((function(e){var t,n;return p(this,(function(a){switch(a.label){case 0:return t=e.bedPayload,n=e.bedId,[4,(0,i.openmrsFetch)("/ws/rest/v1/bed/".concat(n),{method:"POST",headers:{"Content-Type":"application/json"},body:t})];case 1:return[2,a.sent()]}}))}))).apply(this,arguments)}var y=n(3638),v=n(1604),h=n(7536),E=n(6312);function w(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}function k(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function S(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},a=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),a.forEach((function(t){k(e,t,n[t])}))}return e}function B(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o=[],i=!0,l=!1;try{for(n=n.call(e);!(i=(a=n.next()).done)&&(o.push(a.value),!t||o.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==n.return||n.return()}finally{if(l)throw r}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return w(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?w(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var x=v.z.string().transform((function(e,t){var n=parseInt(e);return isNaN(n)||n<1?(t.addIssue({code:v.z.ZodIssueCode.custom,message:"Please enter a valid number"}),v.z.NEVER):e})),T=v.z.object({bedId:v.z.string().min(5).max(255),description:v.z.string().max(255),bedRow:x,bedColumn:x,location:v.z.object({display:v.z.string(),uuid:v.z.string()}).refine((function(e){return""!=e.display}),"Please select a valid location"),occupancyStatus:v.z.string().refine((function(e){return""!=e}),"Please select a valid occupied status"),bedType:v.z.string().refine((function(e){return""!=e}),"Please select a valid bed type")});const D=function(e){var t,n=e.showModal,o=e.onModalChange,i=e.availableBedTypes,c=e.allLocations,d=e.handleCreateQuestion,m=e.headerTitle,u=e.occupancyStatuses,A=e.initialData,_=(0,l.useTranslation)().t,b=B((0,a.useState)((0,y.Z)(A.status)),2),p=b[0],f=b[1],g=B((0,a.useState)(A.bedType.name),1)[0],C=B((0,a.useState)(!1),2),v=C[0],w=C[1],k=B((0,a.useState)(""),2),x=k[0],D=k[1],O=function(e){var t,n,a,r;return null!==(r=null===(a=e.item.display)||void 0===a?void 0:a.toLowerCase().includes(null===(n=e)||void 0===n||null===(t=n.inputValue)||void 0===t?void 0:t.toLowerCase()))&&void 0!==r?r:[]},P=(0,h.cI)({mode:"all",resolver:(0,E.F)(T),defaultValues:{bedId:A.bedNumber||"",description:A.description||"",bedRow:A.row.toString()||"0",bedColumn:A.column.toString()||"0",location:A.location||{},occupancyStatus:(0,y.Z)(A.status)||p,bedType:A.bedType.name||""}}),I=P.handleSubmit,F=P.control,j=P.formState.isDirty;return r().createElement(s.lpG,{open:n,onClose:function(){return o(!1)},preventCloseOnClickOutside:!0},r().createElement(s.xBx,{title:m}),r().createElement(s.l09,{onSubmit:I((function(e){T.safeParse(e).success&&(w(!1),d(e))}),(function(e){D(Object.entries(e)[0][1].message),w(!0)}))},r().createElement(s.fef,{hasScrollingContent:!0},r().createElement(s.Kqy,{gap:3},r().createElement(s.cwH,{legendText:""},r().createElement(h.Qr,{name:"bedId",control:F,render:function(e){var t,n=e.field,a=e.fieldState;return r().createElement(r().Fragment,null,r().createElement(s.oil,S({id:"bedId",labelText:_("bedId","Bed number"),placeholder:_("bedIdPlaceholder","e.g. BMW-201"),invalidText:null===(t=a.error)||void 0===t?void 0:t.message},n)))}})),r().createElement(s.cwH,null,r().createElement(h.Qr,{name:"description",control:F,render:function(e){var t,n,a,o,i=e.field,l=e.fieldState;return r().createElement(r().Fragment,null,r().createElement(s.Kx8,(a=S({rows:2,id:"description",invalidText:null===(n=l)||void 0===n||null===(t=n.error)||void 0===t?void 0:t.message,labelText:_("description","Bed description")},i),o=null!=(o={placeholder:_("description","Enter the bed description")})?o:{},Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(o)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n.push.apply(n,a)}return n}(Object(o)).forEach((function(e){Object.defineProperty(a,e,Object.getOwnPropertyDescriptor(o,e))})),a)))}})),r().createElement(s.cwH,null,r().createElement(h.Qr,{name:"bedRow",control:F,render:function(e){var t,n,a=e.fieldState,o=e.field;return r().createElement(s.Y2U,S({hideSteppers:!0,id:"bedRow",label:"Bed row",labelText:"Bed row",invalidText:null===(n=a)||void 0===n||null===(t=n.error)||void 0===t?void 0:t.message},o))}})),r().createElement(s.cwH,null,r().createElement(h.Qr,{name:"bedColumn",control:F,render:function(e){var t,n=e.field,a=e.fieldState;return r().createElement(s.Y2U,S({hideSteppers:!0,id:"bedColumn",label:"Bed column",labelText:"Bed column",invalidText:null===(t=a.error)||void 0===t?void 0:t.message},n))}})),r().createElement(s.cwH,null,r().createElement(h.Qr,{name:"location",control:F,render:function(e){var n,a,o=e.fieldState,i=e.field,l=i.onChange,d=i.onBlur,m=i.value,u=i.ref;return r().createElement(s.CtY,{"aria-label":_("location","Location"),shouldFilterItem:O,id:"location",label:_("location","Location"),invalidText:null===(a=o)||void 0===a||null===(n=a.error)||void 0===n?void 0:n.message,items:c,onBlur:d,ref:u,selectedItem:m,onChange:function(e){var t=e.selectedItem;return l(t)},itemToString:function(e){var n;return null!==(t=null===(n=e)||void 0===n?void 0:n.display)&&void 0!==t?t:""},placeholder:_("selectBedLocation","Select a bed location"),titleText:_("bedLocation","Location")})}})),r().createElement(s.cwH,null,r().createElement(h.Qr,{name:"occupancyStatus",control:F,render:function(e){var t,n=e.field,a=e.fieldState;return r().createElement(s.PhF,S({id:"occupancyStatus",labelText:_("occupancyStatus","Occupied Status"),invalidText:null===(t=a.error)||void 0===t?void 0:t.message,defaultValue:p,onChange:function(e){return f(e.target.value)},value:p},n),r().createElement(s.QlF,{text:_("chooseOccupiedStatus","Choose occupied status"),value:""}),u.map((function(e,t){return r().createElement(s.QlF,{text:_("occupancyStatus","".concat(e)),value:_("occupancyStatus","".concat(e)),key:"occupancyStatus-".concat(t)})})))}})),r().createElement(s.cwH,null,r().createElement(h.Qr,{name:"bedType",control:F,render:function(e){var t=e.field;return r().createElement(s.PhF,S({id:"bedType",labelText:_("bedType","Bed type"),invalidText:_("required","Required"),defaultValue:g},t),r().createElement(s.QlF,{text:_("chooseBedtype","Choose a bed type")}),i.map((function(e,t){return r().createElement(s.QlF,{text:e.name,value:e.name,key:"bedType-".concat(t)},e.name)})))}})),v&&r().createElement(s.K0D,{lowContrast:!0,title:_("error","Error"),style:{minWidth:"100%",margin:"0rem",padding:"0rem"},role:"alert",kind:"error",subtitle:_("pleaseFillField",x)+".",onClose:function(){return w(!1)}}))),r().createElement(s.mzw,null,r().createElement(s.zxk,{onClick:function(){return o(!1)},kind:"secondary"},_("cancel","Cancel")),r().createElement(s.zxk,{disabled:!j,type:"submit"},r().createElement("span",null,_("save","Save"))))))},O=function(e){var t=e.showModal,n=e.onModalChange,o=e.editData,s=e.mutate,c=(0,l.useTranslation)().t,d=(0,i.useConfig)().admissionLocationTagUuid,m=(0,u.We)(d).data,A=c("editBed","Edit bed"),_=g().bedTypes||[],b=(0,a.useCallback)((function(e){var t=o.uuid,a=e.bedId,r=void 0===a?o.bedNumber:a,l=e.description,d=void 0===l?o.description:l,m=e.occupancyStatus,u=void 0===m?o.status:m,A=e.bedRow,_=void 0===A?o.row.toString():A,b=e.bedColumn,p=void 0===b?o.column.toString():b,f=e.location.uuid,g=void 0===f?o.location.uuid:f,y=e.bedType,v={bedNumber:r,bedType:void 0===y?o.bedType.name:y,description:d,status:u.toUpperCase(),row:parseInt(_),column:parseInt(p),locationUuid:g};(function(e){return C.apply(this,arguments)})({bedPayload:v,bedId:t}).then((function(){(0,i.showToast)({title:c("formSaved","Bed saved"),kind:"success",critical:!0,description:v.bedNumber+" "+c("saveSuccessMessage","was saved successfully.")}),s(),n(!1)})).catch((function(e){var t;(0,i.showNotification)({title:c("errorCreatingForm","Error creating bed"),kind:"error",critical:!0,description:null===(t=e)||void 0===t?void 0:t.message}),n(!1)})),n(!1)}),[n,s,o,c]);return r().createElement(r().Fragment,null,r().createElement(D,{onModalChange:n,allLocations:m,availableBedTypes:_,showModal:t,handleCreateQuestion:b,headerTitle:A,occupancyStatuses:["Available","Occupied"],initialData:o}))};var P=n(5032);const I=function(e){var t=e.showModal,n=e.onModalChange,o=e.mutate,s=(0,l.useTranslation)().t,c=(0,i.useConfig)().admissionLocationTagUuid,d=(0,u.We)(c).data,m=s("createNewBed","Create a new bed"),A=g().bedTypes||[],_=(0,a.useCallback)((function(e){var t=e.bedId,a=e.description,r=e.occupancyStatus,l=e.bedRow,c=e.bedColumn,d=e.location,m=e.bedType;(function(e){return f.apply(this,arguments)})({bedPayload:{bedNumber:t,bedType:m,description:a,status:r.toUpperCase(),row:parseInt(l.toString()),column:parseInt(c.toString()),locationUuid:d.uuid}}).then((function(){(0,i.showToast)({title:s("formCreated","New bed created"),kind:"success",critical:!0,description:"Bed ".concat(t," was created successfully.")}),o(),n(!1)})).catch((function(e){var t;(0,i.showNotification)({title:s("errorCreatingForm","Error creating bed"),kind:"error",critical:!0,description:null===(t=e)||void 0===t?void 0:t.message}),n(!1)})),n(!1)}),[n,o,s]);return r().createElement(r().Fragment,null,r().createElement(D,{onModalChange:n,allLocations:d,availableBedTypes:A,showModal:t,handleCreateQuestion:_,headerTitle:m,occupancyStatuses:["Available","Occupied"],initialData:{uuid:"",bedNumber:"",status:"",description:"",row:0,column:0,location:{display:"",uuid:""},bedType:{name:""}}}))};var F=n(7410),j=n.n(F),N=n(4766),z=n.n(N),Z=n(1991),M=n.n(Z),L=n(3702),G=n.n(L),R=n(2434),V=n.n(R),H=n(1422),Q=n.n(H),U=n(2746),Y={};Y.styleTagTransform=Q(),Y.setAttributes=G(),Y.insert=M().bind(null,"head"),Y.domAPI=z(),Y.insertStyleElement=V(),j()(U.Z,Y);const q=U.Z&&U.Z.locals?U.Z.locals:void 0;function W(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}function X(e,t,n,a,r,o,i){try{var l=e[o](i),s=l.value}catch(e){return void n(e)}l.done?t(s):Promise.resolve(s).then(a,r)}function J(e){return function(){var t=this,n=arguments;return new Promise((function(a,r){var o=e.apply(t,n);function i(e){X(o,a,r,i,l,"next",e)}function l(e){X(o,a,r,i,l,"throw",e)}i(void 0)}))}}function K(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},a=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),a.forEach((function(t){K(e,t,n[t])}))}return e}function ee(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o=[],i=!0,l=!1;try{for(n=n.call(e);!(i=(a=n.next()).done)&&(o.push(a.value),!t||o.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==n.return||n.return()}finally{if(l)throw r}}return o}}(e,t)||te(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function te(e,t){if(e){if("string"==typeof e)return W(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?W(e,t):void 0}}function ne(e,t){var n,a,r,o,i={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return o={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function l(o){return function(l){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,a&&(r=2&o[0]?a.return:o[0]?a.throw||((r=a.return)&&r.call(a),0):a.next)&&!(r=r.call(a,o[1])).done)return r;switch(a=0,r&&(o=[2&o[0],r.value]),o[0]){case 0:case 1:r=o;break;case 4:return i.label++,{value:o[1],done:!1};case 5:i.label++,a=o[1],o=[0];continue;case 7:o=i.ops.pop(),i.trys.pop();continue;default:if(!((r=(r=i.trys).length>0&&r[r.length-1])||6!==o[0]&&2!==o[0])){i=0;continue}if(3===o[0]&&(!r||o[1]>r[0]&&o[1]<r[3])){i.label=o[1];break}if(6===o[0]&&i.label<r[1]){i.label=r[1],r=o;break}if(r&&i.label<r[2]){i.label=r[2],i.ops.push(o);break}r[2]&&i.ops.pop(),i.trys.pop();continue}o=t.call(e,i)}catch(e){o=[6,e],a=0}finally{n=r=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,l])}}}const ae=function(){var e,t,n,o,A,_,b=function(e){var t=e.condition,n=(0,l.useTranslation)().t;return t?r().createElement(s.Vp9,{type:"green",size:"md"},n("yes","Yes")):r().createElement(s.Vp9,{type:"red",size:"md"},n("no","No"))},p=(0,l.useTranslation)().t,f=p("wardAllocation","Ward Allocation"),g=(0,i.useLayoutType)(),C="tablet"===g,y=C?"lg":"sm",v=(0,i.isDesktop)(g),h=(0,i.useConfig)().admissionLocationTagUuid,E=ee((0,a.useState)([]),2),w=E[0],k=E[1],S=ee((0,a.useState)(!1),2),B=S[0],x=S[1],T=ee((0,a.useState)(!1),2),D=T[0],F=T[1],j=ee((0,a.useState)(!1),2),N=j[0],z=j[1],Z=ee((0,a.useState)(),2),M=Z[0],L=Z[1],G=ee((0,a.useState)("ALL"),2),R=G[0],V=G[1],H=(null===(t=w)||void 0===t?void 0:t.length)?(e=[]).concat.apply(e,function(e){if(Array.isArray(e))return W(e)}(_=w)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(_)||te(_)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()):[],Q=(0,u.d$)(h),U=Q.data,Y=Q.isLoading,X=Q.error,K=Q.isValidating,ae=Q.mutate,re=ee((0,a.useState)(10),2),oe=re[0],ie=re[1],le=[10,20,30,40,50],se=(0,i.usePagination)("ALL"===R?H:null!==(A=H.filter((function(e){return e.status===R})))&&void 0!==A?A:[],oe),ce=se.results,de=se.currentPage,me=se.totalPages,ue=se.goTo;(0,a.useEffect)((function(){if(!Y&&U){x(!0);var e=(t=J((function(){var e,t;return ne(this,(function(n){switch(n.label){case 0:return e=U.data.results.map(function(){var e=J((function(e){var t;return ne(this,(function(n){switch(n.label){case 0:return[4,(0,u.kV)(e.uuid)];case 1:return(t=n.sent()).data.results.length?[2,t.data.results.map((function(t){return n=$({},t),a=null!=(a={location:e})?a:{},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(a)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n.push.apply(n,a)}return n}(Object(a)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(a,e))})),n;var n,a}))]:[2,null]}}))}));return function(t){return e.apply(this,arguments)}}()),[4,Promise.all(e)];case 1:return t=n.sent().filter(Boolean),k(t),x(!1),[2]}}))})),function(){return t.apply(this,arguments)});e().finally((function(){return x(!1)}))}var t}),[U,Y,w.length]);var Ae,_e,be,pe=[{key:"bedNumber",header:p("bedId","Bed ID")},{key:"location",header:p("location","Location")},{key:"occupancyStatus",header:p("occupancyStatus","Occupied")},{key:"allocationStatus",header:p("allocationStatus","Allocated")},{key:"actions",header:p("actions","Actions")}],fe=(0,a.useMemo)((function(){return ce.map((function(e){var t,n;return{id:e.uuid,bedNumber:e.bedNumber,location:e.location.display,occupancyStatus:r().createElement(b,{condition:"OCCUPIED"===(null===(t=e)||void 0===t?void 0:t.status)}),allocationStatus:r().createElement(b,{condition:null===(n=e.location)||void 0===n?void 0:n.uuid}),actions:r().createElement(r().Fragment,null,r().createElement(s.zxk,{enterDelayMs:300,renderIcon:c.I8,onClick:function(t){t.preventDefault(),L(e),z(!0),F(!1)},kind:"ghost",iconDescription:p("editBed","Edit Bed"),hasIconOnly:!0,size:y,tooltipAlignment:"start"}))}}))}),[y,ce,p]);return!B&&!Y||w.length?X?r().createElement(r().Fragment,null,r().createElement(P.Z,{route:"Ward Allocation"}),r().createElement("div",{className:q.widgetCard},r().createElement(m.Te,{error:X,headerTitle:f}))):r().createElement(r().Fragment,null,r().createElement(P.Z,{route:"Ward Allocation"}),r().createElement("div",{className:q.flexContainer},(null===(n=ce)||void 0===n?void 0:n.length)?r().createElement("div",{className:q.filterContainer},r().createElement(s.Ltx,{id:"occupancyStatus",initialSelectedItem:"All",label:"",titleText:p("filterByOccupancyStatus","Filter by occupancy status")+":",type:"inline",items:["All","Available","Occupied"],onChange:function(e){var t=e.selectedItem;return V(t.trim().toUpperCase())}})):null),r().createElement("div",{className:q.widgetCard},D?r().createElement(I,{onModalChange:F,showModal:D,mutate:ae}):null,N?r().createElement(O,{onModalChange:z,showModal:N,editData:M,mutate:ae}):null,r().createElement(m.Ol,{title:f},r().createElement("span",{className:q.backgroundDataFetchingIndicator},r().createElement("span",null,K?r().createElement(s.lSo,null):null)),(null===(o=ce)||void 0===o?void 0:o.length)?r().createElement(s.zxk,{kind:"ghost",renderIcon:function(e){return r().createElement(d.mm,$({size:16},e))},onClick:function(){return F(!0)}},p("addBed","Add bed")):null),r().createElement(s.wQF,{rows:fe,headers:pe,isSortable:!0,size:C?"lg":"sm",useZebraStyles:!0},(function(e){var t,n=e.rows,a=e.headers,o=e.getTableProps;return r().createElement(s.xJi,null,r().createElement(s.iA_,o(),r().createElement(s.ssF,null,r().createElement(s.SCH,null,a.map((function(e){var t;return r().createElement(s.xDH,null,null!==(Ae=null===(t=e.header)||void 0===t?void 0:t.content)&&void 0!==Ae?Ae:e.header)})))),r().createElement(s.RMI,null,n.map((function(e){return r().createElement(s.SCH,{key:e.id},e.cells.map((function(e){var t;return r().createElement(s.pj1,{key:e.id},null!==(_e=null===(t=e.value)||void 0===t?void 0:t.content)&&void 0!==_e?_e:e.value)})))})))),0===n.length?r().createElement("div",{className:q.tileContainer},r().createElement(s.n9L,{className:q.tile},r().createElement("div",{className:q.tileContent},r().createElement("p",{className:q.content},p("No data","No data to display")),r().createElement("p",{className:q.helper},p("checkFilters","Check the filters above"))),r().createElement("p",{className:q.separator},p("or","or")),r().createElement(s.zxk,{kind:"ghost",size:"sm",renderIcon:function(e){return r().createElement(d.mm,$({size:16},e))},onClick:function(){return F(!0)}},p("addBed","Add bed")))):null,r().createElement(s.tlE,{backwardText:"Previous page",forwardText:"Next page",page:de,pageNumberText:"Page Number",pageSize:me,pageSizes:(null===(t=le)||void 0===t?void 0:t.length)>0?le:[10],totalItems:null!==(be=H.length)&&void 0!==be?be:0,onChange:function(e){var t=e.pageSize,n=e.page;t!==oe&&ie(t),n!==de&&ue(n)}}))})))):r().createElement(r().Fragment,null,r().createElement(P.Z,{route:"Ward Allocation"}),r().createElement("div",{className:q.widgetCard},r().createElement(s.gqd,{role:"progressbar",compact:v,zebra:!0})))};var re=n(2858),oe=n(3873),ie=n(4899),le={};le.styleTagTransform=Q(),le.setAttributes=G(),le.insert=M().bind(null,"head"),le.domAPI=z(),le.insertStyleElement=V(),j()(ie.Z,le);const se=ie.Z&&ie.Z.locals?ie.Z.locals:void 0,ce=function(){var e,t,n=(0,l.useTranslation)().t,a=(0,u.b7)(),o=a.data,c=a.isLoading,A=a.error;return c?r().createElement("div",{className:se.loader},r().createElement(s.gqd,{role:"progressbar",zebra:!0})):(null===(e=o)||void 0===e?void 0:e.length)?r().createElement("div",{className:se.cardContainer},o.map((function(e){var t,a,o="".concat(window.getOpenmrsSpaBase(),"bed-management/location/").concat(e.ward.uuid);return r().createElement(oe.Z,{headerLabel:e.ward.display,label:n("beds","Beds"),value:null===(t=e)||void 0===t?void 0:t.totalBeds},(null===(a=e)||void 0===a?void 0:a.totalBeds)&&r().createElement("div",{className:se.link},r().createElement(i.ConfigurableLink,{className:se.link,to:o},n("viewBeds","View beds")),r().createElement(d.ol,{size:16})))}))):c||0!==(null===(t=o)||void 0===t?void 0:t.length)||A?A?r().createElement(m.Te,{headerTitle:n("errorFetchingbedInformation","Error fetching bed information"),error:A}):void 0:r().createElement(re.Z,{msg:"No data to display",helper:""})};var de=n(5294),me={};me.styleTagTransform=Q(),me.setAttributes=G(),me.insert=M().bind(null,"head"),me.domAPI=z(),me.insertStyleElement=V(),j()(de.Z,me);const ue=de.Z&&de.Z.locals?de.Z.locals:void 0,Ae=function(){return r().createElement("section",{className:ue.section},r().createElement(P.Z,{route:"Summary"}),r().createElement(ce,null))};var _e=n(5791),be={};be.styleTagTransform=Q(),be.setAttributes=G(),be.insert=M().bind(null,"head"),be.domAPI=z(),be.insertStyleElement=V(),j()(_e.Z,be);const pe=_e.Z&&_e.Z.locals?_e.Z.locals:void 0,fe=function(){var e=(0,i.useLayoutType)();return(0,a.useEffect)((function(){return(0,i.attach)("nav-menu-slot","bed-management-left-panel"),function(){return(0,i.detach)("nav-menu-slot","bed-management-left-panel")}}),[]),(0,i.isDesktop)(e)&&r().createElement(s.kwZ,{"aria-label":"Bed management left panel",className:pe.leftPanel,expanded:!0},r().createElement(i.ExtensionSlot,{name:"bed-management-left-panel-slot"}))};var ge=n(8755),Ce={};Ce.styleTagTransform=Q(),Ce.setAttributes=G(),Ce.insert=M().bind(null,"head"),Ce.domAPI=z(),Ce.insertStyleElement=V(),j()(ge.Z,Ce);const ye=ge.Z&&ge.Z.locals?ge.Z.locals:void 0;function ve(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}function he(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ee(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},a=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),a.forEach((function(t){he(e,t,n[t])}))}return e}const we=function(){var e,t,n,c,m,A=(0,o.useParams)().location,_=(0,u.Gr)(A),b=_.isLoading,p=_.bedData,f=(0,u.p9)(A).name,g=(c=(0,a.useState)(10),m=2,function(e){if(Array.isArray(e))return e}(c)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o=[],i=!0,l=!1;try{for(n=n.call(e);!(i=(a=n.next()).done)&&(o.push(a.value),!t||o.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==n.return||n.return()}finally{if(l)throw r}}return o}}(c,m)||function(e,t){if(e){if("string"==typeof e)return ve(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ve(e,t):void 0}}(c,m)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),C=g[0],y=g[1],v=(0,i.usePagination)(p,C),h=v.results,E=v.goTo,w=v.currentPage,k=function(e){var t=e.condition,n=(0,l.useTranslation)().t;return t?r().createElement(s.Vp9,{type:"green",size:"md"},n("yes","Yes")):r().createElement(s.Vp9,{type:"red",size:"md"},n("no","No"))},S=(0,a.useMemo)((function(){var e;return null===(e=h)||void 0===e?void 0:e.map((function(e){var t;return{id:e.id,number:e.number,name:e.name,description:e.description,occupied:r().createElement(k,{condition:"OCCUPIED"===(null===(t=e)||void 0===t?void 0:t.status)})}}))}),[h]);return r().createElement(r().Fragment,null,r().createElement(P.Z,{route:f||"--"}),b&&r().createElement("div",{className:ye.container},r().createElement(s.gqd,{role:"progressbar",zebra:!0})),(null===(e=p)||void 0===e?void 0:e.length)?r().createElement(r().Fragment,null,r().createElement("div",{className:ye.backButton},r().createElement(s.zxk,{kind:"ghost",renderIcon:function(e){return r().createElement(d.Xd,Ee({size:24},e))},iconDescription:"Return to summary",onClick:function(){return(0,i.navigate)({to:"".concat(window.getOpenmrsSpaBase(),"bed-management")})}},r().createElement("span",null,"Return to summary"))),r().createElement("div",{className:ye.container},r().createElement(s.wQF,{rows:S,headers:[{id:0,header:"ID",key:"id"},{id:1,header:"Number",key:"number"},{id:2,header:"Name",key:"name"},{id:3,header:"Description",key:"description"},{id:4,header:"Occupied",key:"occupied"}],useZebraStyles:!0},(function(e){var t=e.rows,a=e.headers,o=e.getHeaderProps,i=e.getRowProps,l=e.getTableProps;return r().createElement(s.xJi,null,r().createElement(s.iA_,l(),r().createElement(s.ssF,null,r().createElement(s.SCH,null,a.map((function(e){return r().createElement(s.xDH,Ee({key:e.key},o({header:e})),e.header)})))),r().createElement(s.RMI,null,t.map((function(e){return r().createElement(s.SCH,Ee({key:e.id},i({row:e})),e.cells.map((function(e){var t;return r().createElement(s.pj1,{key:e.id},null!==(n=null===(t=e.value)||void 0===t?void 0:t.content)&&void 0!==n?n:e.value)})))})))))})),r().createElement(s.tlE,{backwardText:"Previous page",forwardText:"Next page",itemsPerPageText:"Items per page:",page:w,pageNumberText:"Page Number",pageSize:C,onChange:function(e){var t=e.page,n=e.pageSize;E(t),y(n)},pageSizes:[10,20,30,40,50],totalItems:null===(t=h)||void 0===t?void 0:t.length}))):null)};var ke=n(49),Se={};Se.styleTagTransform=Q(),Se.setAttributes=G(),Se.insert=M().bind(null,"head"),Se.domAPI=z(),Se.insertStyleElement=V(),j()(ke.Z,Se);const Be=ke.Z&&ke.Z.locals?ke.Z.locals:void 0,xe=function(){var e=window.spaBase;return(0,a.useEffect)((function(){return(0,i.setLeftNav)({name:"bed-management-left-panel-slot",basePath:e}),function(){return(0,i.unsetLeftNav)("bed-management-left-panel-slot")}}),[e]),r().createElement(o.BrowserRouter,{basename:"".concat(window.getOpenmrsSpaBase(),"bed-management")},r().createElement(fe,null),r().createElement("main",{className:Be.container},r().createElement(o.Routes,null,r().createElement(o.Route,{path:"/",element:r().createElement(Ae,null)}),r().createElement(o.Route,{path:"/location/:location",element:r().createElement(we,null)}),r().createElement(o.Route,{path:"/administration",element:r().createElement(ae,null)}))))}}}]);
|