@openmrs/esm-patient-programs-app 8.0.2-pre.4912 → 8.0.2-pre.4924

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.
@@ -1,9 +1,7 @@
1
- import React, { useEffect } from 'react';
1
+ import React, { useCallback, useEffect, useState } from 'react';
2
2
  import { useTranslation } from 'react-i18next';
3
3
  import dayjs from 'dayjs';
4
4
  import filter from 'lodash-es/filter';
5
- import includes from 'lodash-es/includes';
6
- import map from 'lodash-es/map';
7
5
  import {
8
6
  Button,
9
7
  ButtonSet,
@@ -11,6 +9,7 @@ import {
11
9
  DatePickerInput,
12
10
  Form,
13
11
  FormGroup,
12
+ InlineLoading,
14
13
  InlineNotification,
15
14
  Layer,
16
15
  Select,
@@ -21,12 +20,12 @@ import { z } from 'zod';
21
20
  import { useForm, Controller } from 'react-hook-form';
22
21
  import { zodResolver } from '@hookform/resolvers/zod';
23
22
  import {
24
- createErrorHandler,
23
+ parseDate,
25
24
  showSnackbar,
26
- useSession,
27
- useLocations,
25
+ translateFrom,
28
26
  useLayoutType,
29
- parseDate,
27
+ useLocations,
28
+ useSession,
30
29
  } from '@openmrs/esm-framework';
31
30
  import { type DefaultPatientWorkspaceProps } from '@openmrs/esm-patient-common-lib';
32
31
  import {
@@ -35,6 +34,7 @@ import {
35
34
  useEnrollments,
36
35
  updateProgramEnrollment,
37
36
  } from './programs.resource';
37
+ import { moduleName } from '../dashboard.meta';
38
38
  import styles from './programs-form.scss';
39
39
 
40
40
  interface ProgramsFormProps extends DefaultPatientWorkspaceProps {
@@ -42,7 +42,9 @@ interface ProgramsFormProps extends DefaultPatientWorkspaceProps {
42
42
  }
43
43
 
44
44
  const programsFormSchema = z.object({
45
- selectedProgram: z.string().refine((value) => value != '', 'Please select a valid program'),
45
+ selectedProgram: z
46
+ .string()
47
+ .refine((value) => !!value, translateFrom(moduleName, 'programRequired', 'Program is required')),
46
48
  enrollmentDate: z.date(),
47
49
  completionDate: z.date().nullable(),
48
50
  enrollmentLocation: z.string(),
@@ -63,8 +65,9 @@ const ProgramsForm: React.FC<ProgramsFormProps> = ({
63
65
  const availableLocations = useLocations();
64
66
  const { data: availablePrograms } = useAvailablePrograms();
65
67
  const { data: enrollments, mutateEnrollments } = useEnrollments(patientUuid);
68
+ const [isSubmittingForm, setIsSubmittingForm] = useState(false);
66
69
 
67
- const currentEnrollment = programEnrollmentId && enrollments.filter((e) => e.uuid == programEnrollmentId)[0];
70
+ const currentEnrollment = programEnrollmentId && enrollments.filter((e) => e.uuid === programEnrollmentId)[0];
68
71
  const currentProgram = currentEnrollment
69
72
  ? {
70
73
  display: currentEnrollment.program.name,
@@ -74,7 +77,11 @@ const ProgramsForm: React.FC<ProgramsFormProps> = ({
74
77
 
75
78
  const eligiblePrograms = currentProgram
76
79
  ? [currentProgram]
77
- : filter(availablePrograms, (program) => !includes(map(enrollments, 'program.uuid'), program.uuid));
80
+ : filter(availablePrograms, (program) => {
81
+ const existingEnrollment = enrollments.find((e) => e.program.uuid === program.uuid);
82
+
83
+ return !existingEnrollment || existingEnrollment.dateCompleted !== null;
84
+ });
78
85
 
79
86
  const getLocationUuid = () => {
80
87
  if (!currentEnrollment?.location.uuid && session?.sessionLocation?.uuid) {
@@ -103,8 +110,8 @@ const ProgramsForm: React.FC<ProgramsFormProps> = ({
103
110
  promptBeforeClosing(() => isDirty);
104
111
  }, [isDirty, promptBeforeClosing]);
105
112
 
106
- const onSubmit = React.useCallback(
107
- (data: ProgramsFormData) => {
113
+ const onSubmit = useCallback(
114
+ async (data: ProgramsFormData) => {
108
115
  const { selectedProgram, enrollmentDate, completionDate, enrollmentLocation } = data;
109
116
 
110
117
  const payload = {
@@ -115,66 +122,38 @@ const ProgramsForm: React.FC<ProgramsFormProps> = ({
115
122
  location: enrollmentLocation,
116
123
  };
117
124
 
118
- const abortController = new AbortController();
119
- const sub = currentEnrollment
120
- ? updateProgramEnrollment(currentEnrollment.uuid, payload, abortController).subscribe(
121
- (response) => {
122
- if (response.status === 200) {
123
- mutateEnrollments();
124
- closeWorkspaceWithSavedChanges();
125
+ try {
126
+ const abortController = new AbortController();
125
127
 
126
- showSnackbar({
127
- isLowContrast: true,
128
- kind: 'success',
129
- subtitle: t(
130
- 'enrollmentUpdatesNowVisible',
131
- 'Changes to the program are now visible in the Programs table',
132
- ),
133
- title: t('enrollmentUpdated', 'Program enrollment updated'),
134
- });
135
- }
136
- },
137
- (err) => {
138
- createErrorHandler();
128
+ if (currentEnrollment) {
129
+ await updateProgramEnrollment(currentEnrollment.uuid, payload, abortController);
130
+ } else {
131
+ await createProgramEnrollment(payload, abortController);
132
+ }
139
133
 
140
- showSnackbar({
141
- title: t('programEnrollmentSaveError', 'Error saving program enrollment'),
142
- kind: 'error',
143
- isLowContrast: false,
144
- subtitle: err?.message,
145
- });
146
- },
147
- )
148
- : createProgramEnrollment(payload, abortController).subscribe(
149
- (response) => {
150
- if (response.status === 201) {
151
- mutateEnrollments();
152
- closeWorkspaceWithSavedChanges();
134
+ await mutateEnrollments();
135
+ closeWorkspaceWithSavedChanges();
153
136
 
154
- showSnackbar({
155
- isLowContrast: true,
156
- kind: 'success',
157
- subtitle: t('enrollmentNowVisible', 'It is now visible in the Programs table'),
158
- title: t('enrollmentSaved', 'Program enrollment saved'),
159
- });
160
- }
161
- },
162
- (err) => {
163
- createErrorHandler();
137
+ showSnackbar({
138
+ kind: 'success',
139
+ title: currentEnrollment
140
+ ? t('enrollmentUpdated', 'Program enrollment updated')
141
+ : t('enrollmentSaved', 'Program enrollment saved'),
142
+ subtitle: currentEnrollment
143
+ ? t('enrollmentUpdatesNowVisible', 'Changes to the program are now visible in the Programs table')
144
+ : t('enrollmentNowVisible', 'It is now visible in the Programs table'),
145
+ });
146
+ } catch (error) {
147
+ showSnackbar({
148
+ kind: 'error',
149
+ title: t('programEnrollmentSaveError', 'Error saving program enrollment'),
150
+ subtitle: error instanceof Error ? error.message : 'An unknown error occurred',
151
+ });
152
+ }
164
153
 
165
- showSnackbar({
166
- title: t('programEnrollmentSaveError', 'Error saving program enrollment'),
167
- kind: 'error',
168
- isLowContrast: false,
169
- subtitle: err?.message,
170
- });
171
- },
172
- );
173
- return () => {
174
- sub.unsubscribe();
175
- };
154
+ setIsSubmittingForm(false);
176
155
  },
177
- [patientUuid, currentEnrollment, mutateEnrollments, closeWorkspaceWithSavedChanges, t],
156
+ [closeWorkspaceWithSavedChanges, currentEnrollment, mutateEnrollments, patientUuid, t],
178
157
  );
179
158
 
180
159
  const programSelect = (
@@ -187,7 +166,7 @@ const ProgramsForm: React.FC<ProgramsFormProps> = ({
187
166
  aria-label="program name"
188
167
  id="program"
189
168
  invalidText={t('required', 'Required')}
190
- labelText=""
169
+ labelText={t('programName', 'Program name')}
191
170
  onChange={(event) => onChange(event.target.value)}
192
171
  value={value}
193
172
  >
@@ -220,7 +199,7 @@ const ProgramsForm: React.FC<ProgramsFormProps> = ({
220
199
  onChange={([date]) => onChange(date)}
221
200
  value={value}
222
201
  >
223
- <DatePickerInput id="enrollmentDateInput" labelText="" />
202
+ <DatePickerInput id="enrollmentDateInput" labelText={t('dateEnrolled', 'Date enrolled')} />
224
203
  </DatePicker>
225
204
  )}
226
205
  />
@@ -242,7 +221,7 @@ const ProgramsForm: React.FC<ProgramsFormProps> = ({
242
221
  onChange={([date]) => onChange(date)}
243
222
  value={value}
244
223
  >
245
- <DatePickerInput id="completionDateInput" labelText="" />
224
+ <DatePickerInput id="completionDateInput" labelText={t('dateCompleted', 'Date completed')} />
246
225
  </DatePicker>
247
226
  )}
248
227
  />
@@ -256,8 +235,7 @@ const ProgramsForm: React.FC<ProgramsFormProps> = ({
256
235
  <Select
257
236
  aria-label="enrollment location"
258
237
  id="location"
259
- invalidText="Required"
260
- labelText=""
238
+ labelText={t('enrollmentLocation', 'Enrollment location')}
261
239
  onChange={(event) => onChange(event.target.value)}
262
240
  value={value}
263
241
  >
@@ -275,25 +253,26 @@ const ProgramsForm: React.FC<ProgramsFormProps> = ({
275
253
  const formGroups = [
276
254
  {
277
255
  style: { maxWidth: isTablet ? '50%' : 'fit-content' },
278
- legendText: t('programName', 'Program name'),
256
+ legendText: '',
279
257
  value: programSelect,
280
258
  },
281
259
  {
282
260
  style: { maxWidth: '50%' },
283
- legendText: t('dateEnrolled', 'Date enrolled'),
261
+ legendText: '',
284
262
  value: enrollmentDate,
285
263
  },
286
264
  {
287
265
  style: { width: '50%' },
288
- legendText: t('dateCompleted', 'Date completed'),
266
+ legendText: '',
289
267
  value: completionDate,
290
268
  },
291
269
  {
292
270
  style: { width: '50%' },
293
- legendText: t('enrollmentLocation', 'Enrollment location'),
271
+ legendText: '',
294
272
  value: enrollmentLocation,
295
273
  },
296
274
  ];
275
+
297
276
  return (
298
277
  <Form className={styles.form} onSubmit={handleSubmit(onSubmit)}>
299
278
  <Stack className={styles.formContainer} gap={7}>
@@ -317,7 +296,11 @@ const ProgramsForm: React.FC<ProgramsFormProps> = ({
317
296
  {t('cancel', 'Cancel')}
318
297
  </Button>
319
298
  <Button className={styles.button} kind="primary" type="submit">
320
- {t('saveAndClose', 'Save and close')}
299
+ {isSubmittingForm ? (
300
+ <InlineLoading description={t('saving', 'Saving') + '...'} />
301
+ ) : (
302
+ <span>{t('saveAndClose', 'Save and close')}</span>
303
+ )}
321
304
  </Button>
322
305
  </ButtonSet>
323
306
  </Form>
@@ -1,6 +1,5 @@
1
1
  import useSWR from 'swr';
2
- import { map as rxjsMap } from 'rxjs/operators';
3
- import { openmrsFetch, openmrsObservableFetch, restBaseUrl } from '@openmrs/esm-framework';
2
+ import { openmrsFetch, restBaseUrl } from '@openmrs/esm-framework';
4
3
  import { type PatientProgram, type Program, type ProgramsFetchResponse } from '../types';
5
4
  import uniqBy from 'lodash-es/uniqBy';
6
5
  import filter from 'lodash-es/filter';
@@ -54,18 +53,12 @@ export function useAvailablePrograms(enrollments?: Array<PatientProgram>) {
54
53
  };
55
54
  }
56
55
 
57
- export function getPatientProgramByUuid(programUuid: string) {
58
- return openmrsObservableFetch<PatientProgram>(`${restBaseUrl}/programenrollment/${programUuid}`).pipe(
59
- rxjsMap(({ data }) => data),
60
- );
61
- }
62
-
63
56
  export function createProgramEnrollment(payload, abortController) {
64
57
  if (!payload) {
65
58
  return null;
66
59
  }
67
60
  const { program, patient, dateEnrolled, dateCompleted, location } = payload;
68
- return openmrsObservableFetch(`${restBaseUrl}/programenrollment`, {
61
+ return openmrsFetch(`${restBaseUrl}/programenrollment`, {
69
62
  method: 'POST',
70
63
  headers: {
71
64
  'Content-Type': 'application/json',
@@ -80,7 +73,7 @@ export function updateProgramEnrollment(programEnrollmentUuid: string, payload,
80
73
  return null;
81
74
  }
82
75
  const { program, dateEnrolled, dateCompleted, location } = payload;
83
- return openmrsObservableFetch(`${restBaseUrl}/programenrollment/${programEnrollmentUuid}`, {
76
+ return openmrsFetch(`${restBaseUrl}/programenrollment/${programEnrollmentUuid}`, {
84
77
  method: 'POST',
85
78
  headers: {
86
79
  'Content-Type': 'application/json',
@@ -3,6 +3,7 @@
3
3
  "active": "Active",
4
4
  "activePrograms": "Active programs",
5
5
  "add": "Add",
6
+ "addPrograms": "Add programs",
6
7
  "cancel": "Cancel",
7
8
  "carePrograms": "Care Programs",
8
9
  "chooseProgram": "Choose a program",
@@ -28,6 +29,7 @@
28
29
  "Programs": "Programs",
29
30
  "required": "Required",
30
31
  "saveAndClose": "Save and close",
32
+ "saving": "Saving",
31
33
  "seeAll": "See all",
32
34
  "status": "Status"
33
35
  }
package/dist/461.js DELETED
@@ -1 +0,0 @@
1
- (globalThis.webpackChunk_openmrs_esm_patient_programs_app=globalThis.webpackChunk_openmrs_esm_patient_programs_app||[]).push([[461],{5351:(e,r,t)=>{"use strict";t.d(r,{Z:()=>i});var n=t(272),a=t.n(n),o=t(2609),l=t.n(o)()(a());l.push([e.id,":root{--brand-01: #005d5d;--brand-02: #004144;--brand-03: #007d79;--bottom-nav-height: 4rem;--workspace-header-height: 3rem;--tablet-workspace-window-height: calc(100vh - var(--omrs-navbar-height) - var(--bottom-nav-height));--desktop-workspace-window-height: calc(100vh - var(--omrs-navbar-height) - var(--workspace-header-height))}.-esm-patient-programs__programs-detailed-summary__widgetCard___R5Btc{border:1px solid #e0e0e0;border-bottom:none}","",{version:3,sources:["webpack://./../../node_modules/@openmrs/esm-styleguide/src/_vars.scss","webpack://./src/programs/programs-detailed-summary.scss"],names:[],mappings:"AAoDA,MACE,mBAAA,CACA,mBAAA,CACA,mBAAA,CACA,yBAAA,CACA,+BAAA,CACA,oGAAA,CACA,2GAAA,CCzDF,sEACE,wBAAA,CACA,kBAAA",sourceRoot:""}]),l.locals={widgetCard:"-esm-patient-programs__programs-detailed-summary__widgetCard___R5Btc"};const i=l},6983:(e,r,t)=>{"use strict";t.d(r,{Z:()=>i});var n=t(272),a=t.n(n),o=t(2609),l=t.n(o)()(a());l.push([e.id,":root{--brand-01: #005d5d;--brand-02: #004144;--brand-03: #007d79;--bottom-nav-height: 4rem;--workspace-header-height: 3rem;--tablet-workspace-window-height: calc(100vh - var(--omrs-navbar-height) - var(--bottom-nav-height));--desktop-workspace-window-height: calc(100vh - var(--omrs-navbar-height) - var(--workspace-header-height))}.-esm-patient-programs__programs-overview__widgetCard___yEo1t{border:1px solid #e0e0e0}","",{version:3,sources:["webpack://./../../node_modules/@openmrs/esm-styleguide/src/_vars.scss","webpack://./src/programs/programs-overview.scss"],names:[],mappings:"AAoDA,MACE,mBAAA,CACA,mBAAA,CACA,mBAAA,CACA,yBAAA,CACA,+BAAA,CACA,oGAAA,CACA,2GAAA,CCzDF,8DACE,wBAAA",sourceRoot:""}]),l.locals={widgetCard:"-esm-patient-programs__programs-overview__widgetCard___yEo1t"};const i=l},7461:(e,r,t)=>{"use strict";t.r(r),t.d(r,{importTranslation:()=>M,programsDashboardLink:()=>$,programsDetailedSummary:()=>G,programsFormWorkspace:()=>q,programsOverview:()=>V,startupApp:()=>U});var n=t(2870),a=t(884),o={hideAddProgramButton:{_type:n.Type.Boolean,_default:!1}},l=t(268),i=t.n(l),s=t(2524),c=t.n(s),d=t(4924),u=t(9841),m=t(6759),p=t(4076),g=t(321),v=t.n(g),b=t(1195),h=t.n(b),f=t(3275),y=t.n(f),A=t(7162),E=t.n(A),w=t(2094),C=t.n(w),O=t(757),P=t.n(O),k=t(6983),j={};j.styleTagTransform=P(),j.setAttributes=E(),j.insert=y().bind(null,"head"),j.domAPI=h(),j.insertStyleElement=C(),v()(k.Z,j);const _=k.Z&&k.Z.locals?k.Z.locals:void 0;function S(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function Z(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),n.forEach((function(r){S(e,r,t[r])}))}return e}var D=t(7631),T=t(5351),B={};B.styleTagTransform=P(),B.setAttributes=E(),B.insert=y().bind(null,"head"),B.domAPI=h(),B.insertStyleElement=C(),v()(T.Z,B);const L=T.Z&&T.Z.locals?T.Z.locals:void 0;function x(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function z(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),n.forEach((function(r){x(e,r,t[r])}))}return e}function I(e){var r=e.programEnrollmentId,t="tablet"===(0,n.useLayoutType)(),o=(0,d.useTranslation)().t,l=i().useCallback((function(){return(0,a.launchPatientWorkspace)("programs-form-workspace",{programEnrollmentId:r})}),[r]);return i().createElement(u.zxk,{"aria-label":"edit program",kind:"ghost",renderIcon:function(e){return i().createElement(D.I8,z({size:16},e))},iconDescription:o("editProgram","Edit Program"),onClick:l,hasIconOnly:!0,tooltipPosition:"left",size:t?"lg":"sm"})}function F(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}var H="@openmrs/esm-patient-programs-app",N={featureName:"patient-programs",moduleName:H},M=t(3979);function U(){(0,n.defineConfigSchema)(H,o)}var W,R,V=(0,n.getSyncLifecycle)((function(e){e.basePath;var r=e.patientUuid,t=(0,d.useTranslation)().t,o=(0,n.useConfig)(),l=t("programs","Program enrollments"),s=t("carePrograms","Care Programs"),g=t("seeAll","See all"),v="${openmrsSpaBase}/patient/".concat(r,"/chart/Programs"),b=(0,n.useLayoutType)(),h="tablet"===b,f=(0,n.isDesktop)(b),y=(0,p.b$)(r),A=y.activeEnrollments,E=y.availablePrograms,w=y.eligiblePrograms,C=y.enrollments,O=y.isError,P=y.isLoading,k=y.isValidating,j=(0,n.usePagination)(null!=C?C:[],5),S=j.results,D=j.goTo,T=j.currentPage,B=i().useCallback((function(){return(0,a.launchPatientWorkspace)("programs-form-workspace")}),[]),L=[{key:"display",header:t("activePrograms","Active programs")},{key:"location",header:t("location","Location")},{key:"dateEnrolled",header:t("dateEnrolled","Date enrolled")},{key:"status",header:t("status","Status")},{key:"actions",header:t("actions","Actions")}],x=i().useMemo((function(){return null==S?void 0:S.map((function(e){var r,a;return{id:e.uuid,display:e.display,location:null!==(a=null===(r=e.location)||void 0===r?void 0:r.display)&&void 0!==a?a:"--",dateEnrolled:e.dateEnrolled?(0,n.formatDatetime)(new Date(e.dateEnrolled)):"--",status:e.dateCompleted?"".concat(t("completedOn","Completed On")," ").concat((0,n.formatDate)(new Date(e.dateCompleted))):t("active","Active")}}))}),[S,t]);return P?i().createElement(u.gqd,{role:"progressbar",compact:f,zebra:!0}):O?i().createElement(a.ErrorState,{error:O,headerTitle:s}):(null==A?void 0:A.length)?i().createElement("div",{className:_.widgetCard},i().createElement(a.CardHeader,{title:s},i().createElement("span",null,k?i().createElement(u.lSo,null):null),o.hideAddProgramButton?null:i().createElement(u.zxk,{kind:"ghost",renderIcon:function(e){return i().createElement(m.mm,Z({size:16},e))},iconDescription:"Add programs",onClick:B,disabled:(null==E?void 0:E.length)&&0===(null==w?void 0:w.length)},t("add","Add"))),(null==E?void 0:E.length)&&0===(null==w?void 0:w.length)&&i().createElement(u.K0D,{style:{minWidth:"100%",margin:"0rem",padding:"0rem"},kind:"info",lowContrast:!0,subtitle:t("noEligibleEnrollments","There are no more programs left to enroll this patient in"),title:t("fullyEnrolled","Enrolled in all programs")}),i().createElement(u.wQF,{rows:x,headers:L,isSortable:!0,size:h?"lg":"sm",useZebraStyles:!0},(function(e){var r=e.rows,t=e.headers,n=e.getHeaderProps,a=e.getTableProps;return i().createElement(u.xJi,null,i().createElement(u.iA_,Z({"aria-label":"programs overview"},a()),i().createElement(u.ssF,null,i().createElement(u.SCH,null,t.map((function(e){var r,t;return i().createElement(u.xDH,Z({className:c()(_.productiveHeading01,_.text02)},n({header:e,isSortable:e.isSortable})),null!==(t=null===(r=e.header)||void 0===r?void 0:r.content)&&void 0!==t?t:e.header)})))),i().createElement(u.RMI,null,r.map((function(e){return i().createElement(u.SCH,{key:e.id},e.cells.map((function(e){var r,t;return i().createElement(u.pj1,{key:e.id},null!==(t=null===(r=e.value)||void 0===r?void 0:r.content)&&void 0!==t?t:e.value)})))})))))})),i().createElement(a.PatientChartPagination,{currentItems:S.length,onPageNumberChange:function(e){var r=e.page;return D(r)},pageNumber:T,pageSize:5,totalItems:null==C?void 0:C.length,dashboardLinkUrl:v,dashboardLinkLabel:g})):i().createElement(a.EmptyState,{displayText:l,headerTitle:s,launchForm:B})}),N),G=(0,n.getSyncLifecycle)((function(e){var r=e.patientUuid,t=(0,d.useTranslation)().t,o=(0,n.useLayoutType)(),s="tablet"===o,g=(0,n.isDesktop)(o),v=(0,n.useConfig)().hideAddProgramButton,b=t("programEnrollments","Program enrollments"),h=t("carePrograms","Care Programs"),f=(0,p.b$)(r),y=f.enrollments,A=f.isLoading,E=f.isError,w=f.isValidating,C=f.availablePrograms,O=f.eligiblePrograms,P=(0,l.useMemo)((function(){return[{key:"display",header:t("activePrograms","Active programs")},{key:"location",header:t("location","Location")},{key:"dateEnrolled",header:t("dateEnrolled","Date enrolled")},{key:"status",header:t("status","Status")}]}),[t]),k=(0,l.useMemo)((function(){return null==y?void 0:y.map((function(e){var r,a;return{id:e.uuid,display:e.display,location:null!==(a=null===(r=e.location)||void 0===r?void 0:r.display)&&void 0!==a?a:"--",dateEnrolled:(0,n.formatDatetime)(new Date(e.dateEnrolled)),status:e.dateCompleted?"".concat(t("completedOn","Completed On")," ").concat((0,n.formatDate)(new Date(e.dateCompleted))):t("active","Active")}}))}),[y,t]),j=(0,l.useCallback)((function(){return(0,a.launchPatientWorkspace)("programs-form-workspace")}),[]);return A?i().createElement(u.gqd,{role:"progressbar",compact:g,zebra:!0}):E?i().createElement(a.ErrorState,{error:E,headerTitle:h}):(null==y?void 0:y.length)?i().createElement("div",{className:L.widgetCard},i().createElement(a.CardHeader,{title:h},i().createElement("span",null,w?i().createElement(u.lSo,null):null),v?null:i().createElement(u.zxk,{kind:"ghost",renderIcon:function(e){return i().createElement(m.mm,z({size:16},e))},iconDescription:"Add programs",onClick:j,disabled:(null==C?void 0:C.length)&&0===(null==O?void 0:O.length)},t("add","Add"))),(null==C?void 0:C.length)&&0===(null==O?void 0:O.length)?i().createElement(u.K0D,{style:{minWidth:"100%",margin:"0rem",padding:"0rem"},kind:"info",lowContrast:!0,subtitle:t("noEligibleEnrollments","There are no more programs left to enroll this patient in"),title:t("fullyEnrolled","Enrolled in all programs")}):null,i().createElement(u.wQF,{rows:k,headers:P,isSortable:!0,size:s?"lg":"sm",useZebraStyles:!0},(function(e){var r=e.rows,t=e.headers,n=e.getHeaderProps,a=e.getTableProps;return i().createElement(u.xJi,null,i().createElement(u.iA_,z({"aria-label":"program enrollments"},a()),i().createElement(u.ssF,null,i().createElement(u.SCH,null,t.map((function(e){var r,t;return i().createElement(u.xDH,z({className:c()(L.productiveHeading01,L.text02)},n({header:e,isSortable:e.isSortable})),null!==(t=null===(r=e.header)||void 0===r?void 0:r.content)&&void 0!==t?t:e.header)})),i().createElement(u.xDH,null))),i().createElement(u.RMI,null,r.map((function(e,r){var t;return i().createElement(u.SCH,{key:e.id},e.cells.map((function(e){var r,t;return i().createElement(u.pj1,{key:e.id},null!==(t=null===(r=e.value)||void 0===r?void 0:r.content)&&void 0!==t?t:e.value)})),i().createElement(u.pj1,{className:"cds--table-column-menu"},i().createElement(I,{programEnrollmentId:null===(t=y[r])||void 0===t?void 0:t.uuid})))})))))}))):i().createElement(a.EmptyState,{displayText:b,headerTitle:h,launchForm:j})}),N),$=(0,n.getSyncLifecycle)((0,a.createDashboardLink)((W=function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),n.forEach((function(r){F(e,r,t[r])}))}return e}({},{slot:"patient-chart-programs-dashboard-slot",columns:1,path:"Programs",title:"Programs"}),R=null!=(R={moduleName:H})?R:{},Object.getOwnPropertyDescriptors?Object.defineProperties(W,Object.getOwnPropertyDescriptors(R)):function(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t}(Object(R)).forEach((function(e){Object.defineProperty(W,e,Object.getOwnPropertyDescriptor(R,e))})),W)),N),q=(0,n.getAsyncLifecycle)((function(){return Promise.all([t.e(940),t.e(234)]).then(t.bind(t,234))}),N)},4076:(e,r,t)=>{"use strict";t.d(r,{Bw:()=>u,YX:()=>g,b$:()=>v,df:()=>p,oI:()=>m});var n=t(3255),a=t(2870),o=t(4221),l=t(9626),i=t(4185),s=t(6772);function c(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}var d="custom:(uuid,display,program,dateEnrolled,dateCompleted,location:(uuid,display))";function u(e){var r,t="".concat(a.restBaseUrl,"/programenrollment?patient=").concat(e,"&v=").concat(d),l=(0,n.ZP)(e?t:null,a.openmrsFetch),i=l.data,s=l.error,c=l.isLoading,u=l.isValidating,m=l.mutate,p=(null==i||null===(r=i.data)||void 0===r?void 0:r.results.length)>0?null==i?void 0:i.data.results.sort((function(e,r){return r.dateEnrolled>e.dateEnrolled?1:-1})):null,g=null==p?void 0:p.filter((function(e){return!e.dateCompleted}));return{data:i?(0,o.Z)(p,(function(e){var r;return null==e||null===(r=e.program)||void 0===r?void 0:r.uuid})):null,isError:s,isLoading:c,isValidating:u,activeEnrollments:g,mutateEnrollments:m}}function m(e){var r,t,o=(0,n.ZP)("".concat(a.restBaseUrl,"/program?v=custom:(uuid,display,allWorkflows,concept:(uuid,display))"),a.openmrsFetch),c=o.data,d=o.error,u=o.isLoading,m=null!==(t=null==c||null===(r=c.data)||void 0===r?void 0:r.results)&&void 0!==t?t:null;return{data:m,isError:d,isLoading:u,eligiblePrograms:(0,l.Z)(m,(function(r){return!(0,i.Z)((0,s.Z)(e,"program.uuid"),r.uuid)}))}}function p(e,r){if(!e)return null;var t=e.program,n=e.patient,o=e.dateEnrolled,l=e.dateCompleted,i=e.location;return(0,a.openmrsObservableFetch)("".concat(a.restBaseUrl,"/programenrollment"),{method:"POST",headers:{"Content-Type":"application/json"},body:{program:t,patient:n,dateEnrolled:o,dateCompleted:l,location:i},signal:r.signal})}function g(e,r,t){if(!r&&!r.program)return null;r.program;var n=r.dateEnrolled,o=r.dateCompleted,l=r.location;return(0,a.openmrsObservableFetch)("".concat(a.restBaseUrl,"/programenrollment/").concat(e),{method:"POST",headers:{"Content-Type":"application/json"},body:{dateEnrolled:n,dateCompleted:o,location:l},signal:t.signal})}var v=function(e){var r,t,n=u(e),a=n.data,o=n.isError,l=n.isLoading,i=n.isValidating,s=n.activeEnrollments,d=m(a),p=d.data,g=d.eligiblePrograms;return r=function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),n.forEach((function(r){c(e,r,t[r])}))}return e}({enrollments:a},{isLoading:l,isError:o}),t=null!=(t={isValidating:i,activeEnrollments:s,availablePrograms:p,eligiblePrograms:g})?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):function(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t}(Object(t)).forEach((function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(t,e))})),r}},3979:(e,r,t)=>{var n={"./am.json":[8788,788],"./ar.json":[4460,460],"./en.json":[3574,574],"./es.json":[8319,319],"./fr.json":[2757,757],"./he.json":[5833,833],"./km.json":[7807,807],"./zh.json":[8271,271],"./zh_CN.json":[1644,644]};function a(e){if(!t.o(n,e))return Promise.resolve().then((()=>{var r=new Error("Cannot find module '"+e+"'");throw r.code="MODULE_NOT_FOUND",r}));var r=n[e],a=r[0];return t.e(r[1]).then((()=>t(a)))}a.keys=()=>Object.keys(n),a.id=3979,e.exports=a},506:(e,r,t)=>{"use strict";t.d(r,{Z:()=>l});const n=function(e,r,t){for(var n=-1,a=Object(e),o=t(e),l=o.length;l--;){var i=o[++n];if(!1===r(a[i],i,a))break}return e};var a=t(2198);var o=t(3282);const l=(i=function(e,r){return e&&n(e,r,a.Z)},function(e,r){if(null==e)return e;if(!(0,o.Z)(e))return i(e,r);for(var t=e.length,n=-1,a=Object(e);++n<t&&!1!==r(a[n],n,a););return e});var i},9626:(e,r,t)=>{"use strict";t.d(r,{Z:()=>s});var n=t(2300),a=t(506);const o=function(e,r){var t=[];return(0,a.Z)(e,(function(e,n,a){r(e,n,a)&&t.push(e)})),t};var l=t(9481),i=t(7885);const s=function(e,r){return((0,i.Z)(e)?n.Z:o)(e,(0,l.Z)(r,3))}},4185:(e,r,t)=>{"use strict";t.d(r,{Z:()=>p});var n=t(7626),a=t(3282),o=t(8147),l=t(7885),i=t(3391);var s=t(6127),c=t(5598);var d=t(2198);const u=function(e){return null==e?[]:function(e,r){return(0,c.Z)(r,(function(r){return e[r]}))}(e,(0,d.Z)(e))};var m=Math.max;const p=function(e,r,t,c){e=(0,a.Z)(e)?e:u(e),t=t&&!c?(0,s.Z)(t):0;var d=e.length;return t<0&&(t=m(d+t,0)),function(e){return"string"==typeof e||!(0,l.Z)(e)&&(0,i.Z)(e)&&"[object String]"==(0,o.Z)(e)}(e)?t<=d&&e.indexOf(r,t)>-1:!!d&&(0,n.Z)(e,r,t)>-1}},6772:(e,r,t)=>{"use strict";t.d(r,{Z:()=>c});var n=t(5598),a=t(9481),o=t(506),l=t(3282);const i=function(e,r){var t=-1,n=(0,l.Z)(e)?Array(e.length):[];return(0,o.Z)(e,(function(e,a,o){n[++t]=r(e,a,o)})),n};var s=t(7885);const c=function(e,r){return((0,s.Z)(e)?n.Z:i)(e,(0,a.Z)(r,3))}}}]);
package/dist/461.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"461.js","mappings":"kNAGIA,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,kcAAmc,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,wEAAwE,2DAA2D,MAAQ,GAAG,SAAW,kHAAkH,WAAa,MAE/xBH,EAAwBI,OAAS,CAChC,WAAc,wEAEf,S,+ECPIJ,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,uaAAwa,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,wEAAwE,mDAAmD,MAAQ,GAAG,SAAW,uGAAuG,WAAa,MAEjvBH,EAAwBI,OAAS,CAChC,WAAc,gEAEf,S,2NCRaC,EAAe,CAC1BC,qBAAsB,CACpBC,MAAOC,EAAAA,KAAKC,QACZC,UAAU,I,uMCMVC,EAAU,CAAC,EAEfA,EAAQC,kBAAoB,IAC5BD,EAAQE,cAAgB,IAElBF,EAAQG,OAAS,SAAc,KAAM,QAE3CH,EAAQI,OAAS,IACjBJ,EAAQK,mBAAqB,IAEhB,IAAI,IAASL,GAKnB,QAAe,KAAW,IAAQP,OAAS,IAAQA,YAASa,E,wdCf/D,EAAU,CAAC,EAEf,EAAQL,kBAAoB,IAC5B,EAAQC,cAAgB,IAElB,EAAQC,OAAS,SAAc,KAAM,QAE3C,EAAQC,OAAS,IACjB,EAAQC,mBAAqB,IAEhB,IAAI,IAAS,GAKnB,QAAe,KAAW,IAAQZ,OAAS,IAAQA,YAASa,E,gcCqInE,SAASC,EAAkB,G,IAAA,IAAEC,oBACrBC,EAA+B,YAApBC,EAAAA,EAAAA,iBACX,GAAQC,EAAAA,EAAAA,kBAANC,EACFC,EAAyBC,IAAAA,aAC7B,W,OAAMC,EAAAA,EAAAA,wBAAuB,0BAA2B,CAAEP,oBAAAA,G,GAC1D,CAACA,IAGH,OACE,kBAACQ,EAAAA,IAAMA,CACLC,aAAW,eACXC,KAAK,QACLC,WAAY,SAACC,G,OAAU,kBAACC,EAAAA,GAAIA,EAAAA,CAACC,KAAM,IAAQF,G,EAC3CG,gBAAiBX,EAAE,cAAe,gBAClCY,QAASX,EACTY,aAAAA,EACAC,gBAAgB,OAChBJ,KAAMb,EAAW,KAAO,MAG9B,C,wHC5KA,IAAMkB,EAAa,oCAEb3B,EAAU,CACd4B,YAAa,mBACbD,WAAAA,GAGWE,EAAoBC,EAAAA,MAE1B,SAASC,KACdC,EAAAA,EAAAA,oBAAmBL,EAAYjC,EACjC,CAEO,I,IAAMuC,GAAmBC,EAAAA,EAAAA,mBCuB0B,YAAGC,EAAAA,S,IAAUC,EAAAA,EAAAA,YAE/D,GAAQzB,EAAAA,EAAAA,kBAANC,EACFyB,GAASC,EAAAA,EAAAA,aACTC,EAAc3B,EAAE,WAAY,uBAC5B4B,EAAc5B,EAAE,eAAgB,iBAChC6B,EAAW7B,EAAE,SAAU,WACvB8B,EAAU,6BAA0C,OAAZN,EAAY,mBACpDO,GAASjC,EAAAA,EAAAA,iBACTD,EAAsB,WAAXkC,EACXC,GAAYC,EAAAA,EAAAA,WAAcF,GAG9BG,GAAAA,EAAAA,EAAAA,IAAYV,GADNW,EACND,EADMC,kBAAmBC,EACzBF,EADyBE,kBAAmBC,EAC5CH,EAD4CG,iBAAkBC,EAC9DJ,EAD8DI,YAAaC,EAC3EL,EAD2EK,QAASC,EACpFN,EADoFM,UAAWC,EAC/FP,EAD+FO,aAGpCC,GAAAA,EAAAA,EAAAA,eAAcJ,QAAAA,EAAe,GAdpE,GAcdK,EAAqDD,EAArDC,QAA+BC,EAAsBF,EAAtBE,KAAMC,EAAgBH,EAAhBG,YAEvCC,EAAqB5C,IAAAA,aAAkB,W,OAAMC,EAAAA,EAAAA,wBAAuB,0B,GAA4B,IAEhG4C,EAAe,CACnB,CACEC,IAAK,UACLC,OAAQjD,EAAE,iBAAkB,oBAE9B,CACEgD,IAAK,WACLC,OAAQjD,EAAE,WAAY,aAExB,CACEgD,IAAK,eACLC,OAAQjD,EAAE,eAAgB,kBAE5B,CACEgD,IAAK,SACLC,OAAQjD,EAAE,SAAU,WAEtB,CACEgD,IAAK,UACLC,OAAQjD,EAAE,UAAW,aAInBkD,EAAYhD,IAAAA,SAAc,WAC9B,OAAOiD,aAAAA,EAAAA,EAAsBC,KAAI,SAACC,G,IAGtBA,EAAAA,E,MAH2D,CACrEzE,GAAIyE,EAAWC,KACfC,QAASF,EAAWE,QACpBC,SAAsC,QAA5BH,EAAmB,QAAnBA,EAAAA,EAAWG,gBAAXH,IAAAA,OAAAA,EAAAA,EAAqBE,eAArBF,IAAAA,EAAAA,EAAgC,KAC1CI,aAAcJ,EAAWI,cAAeC,EAAAA,EAAAA,gBAAe,IAAIC,KAAKN,EAAWI,eAAiB,KAC5FG,OAAQP,EAAWQ,cACf,GAAuCC,OAApC9D,EAAE,cAAe,gBAAgB,KAAkD,QAA/C8D,EAAAA,EAAAA,YAAW,IAAIH,KAAKN,EAAWQ,iBACtE7D,EAAE,SAAU,UAClB,GACF,GAAG,CAACmD,EAAsBnD,IAE1B,OAAIwC,EAAkB,kBAACuB,EAAAA,IAAiBA,CAACC,KAAK,cAAcC,QAASjC,EAAWkC,OAAAA,IAC5E3B,EAAgB,kBAAC4B,EAAAA,WAAUA,CAACC,MAAO7B,EAASX,YAAaA,KACzDO,aAAAA,EAAAA,EAAmBkC,QAEnB,kBAACC,MAAAA,CAAIC,UAAWC,EAAOC,YACrB,kBAACC,EAAAA,WAAUA,CAACC,MAAO/C,GACjB,kBAACgD,OAAAA,KAAMnC,EAAe,kBAACoC,EAAAA,IAAaA,MAAM,MACzCpD,EAAO1C,qBAAuB,KAC7B,kBAACqB,EAAAA,IAAMA,CACLE,KAAK,QACLC,WAAY,SAACC,G,OAAU,kBAACsE,EAAAA,GAAGA,EAAAA,CAACpE,KAAM,IAAQF,G,EAC1CG,gBAAgB,eAChBC,QAASkC,EACTiC,UAAU3C,aAAAA,EAAAA,EAAmBiC,SAAuC,KAA7BhC,aAAAA,EAAAA,EAAkBgC,SAExDrE,EAAE,MAAO,UAIfoC,aAAAA,EAAAA,EAAmBiC,SAAuC,KAA7BhC,aAAAA,EAAAA,EAAkBgC,SAC9C,kBAACW,EAAAA,IAAkBA,CACjBC,MAAO,CAAEC,SAAU,OAAQC,OAAQ,OAAQC,QAAS,QACpD9E,KAAM,OACN+E,aAAAA,EACAC,SAAUtF,EAAE,wBAAyB,6DACrC2E,MAAO3E,EAAE,gBAAiB,8BAG9B,kBAACuF,EAAAA,IAASA,CAACC,KAAMtC,EAAWuC,QAAS1C,EAAc2C,YAAAA,EAAWhF,KAAMb,EAAW,KAAO,KAAM8F,gBAAAA,IACzF,Y,IAAGH,EAAAA,EAAAA,KAAMC,EAAAA,EAAAA,QAASG,EAAAA,EAAAA,eAAgBC,EAAAA,EAAAA,c,OACjC,kBAACC,EAAAA,IAAcA,KACb,kBAACC,EAAAA,IAAKA,EAAAA,CAAC1F,aAAW,qBAAwBwF,KACxC,kBAACG,EAAAA,IAASA,KACR,kBAACC,EAAAA,IAAQA,KACNR,EAAQrC,KAAI,SAACH,G,IAQTA,EAAAA,E,OAPH,kBAACiD,EAAAA,IAAWA,EAAAA,CACV3B,UAAW4B,IAAW3B,EAAO4B,oBAAqB5B,EAAO6B,SACrDT,EAAe,CACjB3C,OAAAA,EACAyC,WAAYzC,EAAOyC,cAGE,QAAtBzC,EAAa,QAAbA,EAAAA,EAAOA,cAAPA,IAAAA,OAAAA,EAAAA,EAAeqD,eAAfrD,IAAAA,EAAAA,EAA0BA,EAAOA,OACvB,MAInB,kBAACsD,EAAAA,IAASA,KACPf,EAAKpC,KAAI,SAACoD,G,OACT,kBAACP,EAAAA,IAAQA,CAACjD,IAAKwD,EAAI5H,IAChB4H,EAAIC,MAAMrD,KAAI,SAACsD,G,IACYA,EAAAA,E,OAA1B,kBAACC,EAAAA,IAASA,CAAC3D,IAAK0D,EAAK9H,IAAwB,QAAnB8H,EAAU,QAAVA,EAAAA,EAAKE,aAALF,IAAAA,OAAAA,EAAAA,EAAYJ,eAAZI,IAAAA,EAAAA,EAAuBA,EAAKE,MAAiB,I,UASvF,kBAACC,EAAAA,uBAAsBA,CACrBC,aAAc3D,EAAqBkB,OACnC0C,mBAAoB,Y,IAAGC,EAAAA,EAAAA,K,OAAWpE,EAAKoE,E,EACvCC,WAAYpE,EACZqE,SArHc,EAsHdC,WAAY7E,aAAAA,EAAAA,EAAa+B,OACzB+C,iBAAkBtF,EAClBuF,mBAAoBxF,KAKrB,kBAACyF,EAAAA,WAAUA,CAAC3F,YAAaA,EAAaC,YAAaA,EAAa2F,WAAYzE,GACrF,GDtJ4E1D,GAE/DoI,GAA0BlG,EAAAA,EAAAA,mBDiBiC,Y,IAAGE,EAAAA,EAAAA,YACnE,GAAQzB,EAAAA,EAAAA,kBAANC,EACF+B,GAASjC,EAAAA,EAAAA,iBACTD,EAAsB,WAAXkC,EACXC,GAAYC,EAAAA,EAAAA,WAAcF,GAC1B,GAA2BL,EAAAA,EAAAA,aAAzB3C,qBACF4C,EAAc3B,EAAE,qBAAsB,uBACtC4B,EAAc5B,EAAE,eAAgB,iBAGpCkC,GAAAA,EAAAA,EAAAA,IAAYV,GADNc,EACNJ,EADMI,YAAaE,EACnBN,EADmBM,UAAWD,EAC9BL,EAD8BK,QAASE,EACvCP,EADuCO,aAAcL,EACrDF,EADqDE,kBAAmBC,EACxEH,EADwEG,iBAGpEU,GAA8C0E,EAAAA,EAAAA,UAClD,W,MAAM,CACJ,CACEzE,IAAK,UACLC,OAAQjD,EAAE,iBAAkB,oBAE9B,CACEgD,IAAK,WACLC,OAAQjD,EAAE,WAAY,aAExB,CACEgD,IAAK,eACLC,OAAQjD,EAAE,eAAgB,kBAE5B,CACEgD,IAAK,SACLC,OAAQjD,EAAE,SAAU,W,GAGxB,CAACA,IAGGkD,GAAYuE,EAAAA,EAAAA,UAAQ,WACxB,OAAOnF,aAAAA,EAAAA,EAAac,KAAI,SAACsE,G,IAIXA,EAAAA,EAHZ,MAAO,CACL9I,GAAI8I,EAAQpE,KACZC,QAASmE,EAAQnE,QACjBC,SAAmC,QAAzBkE,EAAgB,QAAhBA,EAAAA,EAAQlE,gBAARkE,IAAAA,OAAAA,EAAAA,EAAkBnE,eAAlBmE,IAAAA,EAAAA,EAA6B,KACvCjE,cAAcC,EAAAA,EAAAA,gBAAe,IAAIC,KAAK+D,EAAQjE,eAC9CG,OAAQ8D,EAAQ7D,cACZ,GAAuCC,OAApC9D,EAAE,cAAe,gBAAgB,KAA+C,QAA5C8D,EAAAA,EAAAA,YAAW,IAAIH,KAAK+D,EAAQ7D,iBACnE7D,EAAE,SAAU,UAEpB,GACF,GAAG,CAACsC,EAAatC,IAEX8C,GAAqB6E,EAAAA,EAAAA,cAAY,W,OAAMxH,EAAAA,EAAAA,wBAAuB,0B,GAA4B,IAEhG,OAAIqC,EAAkB,kBAACuB,EAAAA,IAAiBA,CAACC,KAAK,cAAcC,QAASjC,EAAWkC,OAAAA,IAC5E3B,EAAgB,kBAAC4B,EAAAA,WAAUA,CAACC,MAAO7B,EAASX,YAAaA,KACzDU,aAAAA,EAAAA,EAAa+B,QAEb,kBAACC,MAAAA,CAAIC,UAAWC,EAAOC,YACrB,kBAACC,EAAAA,WAAUA,CAACC,MAAO/C,GACjB,kBAACgD,OAAAA,KAAMnC,EAAe,kBAACoC,EAAAA,IAAaA,MAAM,MACzC9F,EAAuB,KACtB,kBAACqB,EAAAA,IAAMA,CACLE,KAAK,QACLC,WAAY,SAACC,G,OAAU,kBAACsE,EAAAA,GAAGA,EAAAA,CAACpE,KAAM,IAAQF,G,EAC1CG,gBAAgB,eAChBC,QAASkC,EACTiC,UAAU3C,aAAAA,EAAAA,EAAmBiC,SAAuC,KAA7BhC,aAAAA,EAAAA,EAAkBgC,SAExDrE,EAAE,MAAO,UAIfoC,aAAAA,EAAAA,EAAmBiC,SAAuC,KAA7BhC,aAAAA,EAAAA,EAAkBgC,QAC9C,kBAACW,EAAAA,IAAkBA,CACjBC,MAAO,CAAEC,SAAU,OAAQC,OAAQ,OAAQC,QAAS,QACpD9E,KAAM,OACN+E,aAAAA,EACAC,SAAUtF,EAAE,wBAAyB,6DACrC2E,MAAO3E,EAAE,gBAAiB,8BAE1B,KACJ,kBAACuF,EAAAA,IAASA,CAACC,KAAMtC,EAAWuC,QAAS1C,EAAc2C,YAAAA,EAAWhF,KAAMb,EAAW,KAAO,KAAM8F,gBAAAA,IACzF,Y,IAAGH,EAAAA,EAAAA,KAAMC,EAAAA,EAAAA,QAASG,EAAAA,EAAAA,eAAgBC,EAAAA,EAAAA,c,OACjC,kBAACC,EAAAA,IAAcA,KACb,kBAACC,EAAAA,IAAKA,EAAAA,CAAC1F,aAAW,uBAA0BwF,KAC1C,kBAACG,EAAAA,IAASA,KACR,kBAACC,EAAAA,IAAQA,KACNR,EAAQrC,KAAI,SAACH,G,IAQTA,EAAAA,E,OAPH,kBAACiD,EAAAA,IAAWA,EAAAA,CACV3B,UAAW4B,IAAW3B,EAAO4B,oBAAqB5B,EAAO6B,SACrDT,EAAe,CACjB3C,OAAAA,EACAyC,WAAYzC,EAAOyC,cAGE,QAAtBzC,EAAa,QAAbA,EAAAA,EAAOA,cAAPA,IAAAA,OAAAA,EAAAA,EAAeqD,eAAfrD,IAAAA,EAAAA,EAA0BA,EAAOA,OACvB,IAEf,kBAACiD,EAAAA,IAAWA,QAGhB,kBAACK,EAAAA,IAASA,KACPf,EAAKpC,KAAI,SAACoD,EAAKoB,G,IAM8BtF,E,OAL5C,kBAAC2D,EAAAA,IAAQA,CAACjD,IAAKwD,EAAI5H,IAChB4H,EAAIC,MAAMrD,KAAI,SAACsD,G,IACYA,EAAAA,E,OAA1B,kBAACC,EAAAA,IAASA,CAAC3D,IAAK0D,EAAK9H,IAAwB,QAAnB8H,EAAU,QAAVA,EAAAA,EAAKE,aAALF,IAAAA,OAAAA,EAAAA,EAAYJ,eAAZI,IAAAA,EAAAA,EAAuBA,EAAKE,MAAiB,IAEzE,kBAACD,EAAAA,IAASA,CAACpC,UAAU,0BACnB,kBAAC5E,EAAAA,CAAkBC,oBAAmC,QAAd0C,EAAAA,EAAYsF,UAAZtF,IAAAA,OAAAA,EAAAA,EAAgBgB,Q,WAYvE,kBAACgE,EAAAA,WAAUA,CAAC3F,YAAaA,EAAaC,YAAaA,EAAa2F,WAAYzE,GACrF,GCvI0F1D,GAE7EyI,GAEXvG,EAAAA,EAAAA,mBACEwG,EAAAA,EAAAA,sB,wUAAoB,IE3BK,CAC3BC,KAAM,wCACNC,QAAS,EACTC,KAAM,WACNtD,MAAO,a,WFwBauD,CAChBnH,WAAAA,I,kVAEF3B,GAIS+I,GAAwBC,EAAAA,EAAAA,oBAAkB,W,OAAM,oD,GAA8ChJ,E,4QG1BpG,IAAMiJ,EAAwB,mFAE9B,SAASC,EAAe9G,G,IAQ3B+G,EAPIC,EAAiB,GAA4ChH,OAAzCiH,EAAAA,YAAY,+BAA8CJ,OAAjB7G,EAAY,OAA0B,OAArB6G,GAC3BK,GAAAA,EAAAA,EAAAA,IACvDlH,EAAcgH,EAAiB,KAC/BG,EAAAA,cAFMJ,EAAiDG,EAAjDH,KAAMnE,EAA2CsE,EAA3CtE,MAAO5B,EAAoCkG,EAApClG,UAAWC,EAAyBiG,EAAzBjG,aAAcmG,EAAWF,EAAXE,OAKxCC,GACJN,SAAU,QAAVA,EAAAA,EAAMA,YAANA,IAAAA,OAAAA,EAAAA,EAAY5F,QAAQ0B,QAAS,EACzBkE,aAAAA,EAAAA,EAAMA,KAAK5F,QAAQmG,MAAK,SAACC,EAAGC,G,OAAOA,EAAEvF,aAAesF,EAAEtF,aAAe,GAAK,C,IAC1E,KAEAtB,EAAoB0G,aAAAA,EAAAA,EAAsBI,QAAO,SAAC5F,G,OAAgBA,EAAWQ,a,IAEnF,MAAO,CACL0E,KAAMA,GAAOW,EAAAA,EAAAA,GAAOL,GAAsB,SAACnB,G,IAAYA,E,OAAAA,SAAgB,QAAhBA,EAAAA,EAASA,eAATA,IAAAA,OAAAA,EAAAA,EAAkBpE,I,IAAQ,KACjFf,QAAS6B,EACT5B,UAAAA,EACAC,aAAAA,EACAN,kBAAAA,EACAgH,kBAAmBP,EAEvB,CAEO,SAASQ,EAAqB9G,G,IAMTiG,EAAAA,EALSG,GAAAA,EAAAA,EAAAA,IACjC,GAAe,OAAZD,EAAAA,YAAY,wEACfE,EAAAA,cAFMJ,EAA2BG,EAA3BH,KAAMnE,EAAqBsE,EAArBtE,MAAO5B,EAAckG,EAAdlG,UAKfJ,EAAuC,QAAnBmG,EAAAA,SAAU,QAAVA,EAAAA,EAAMA,YAANA,IAAAA,OAAAA,EAAAA,EAAY5F,eAAZ4F,IAAAA,EAAAA,EAAuB,KAOjD,MAAO,CACLA,KAAMnG,EACNG,QAAS6B,EACT5B,UAAAA,EACAH,kBATuB4G,EAAAA,EAAAA,GACvB7G,GACA,SAACsF,G,QAAa2B,EAAAA,EAAAA,IAASjG,EAAAA,EAAAA,GAAId,EAAa,gBAAiBoF,EAAQpE,K,IASrE,CAQO,SAASgG,EAAwBC,EAASC,GAC/C,IAAKD,EACH,OAAO,KAET,IAAQ7B,EAA4D6B,EAA5D7B,QAAS+B,EAAmDF,EAAnDE,QAAShG,EAA0C8F,EAA1C9F,aAAcI,EAA4B0F,EAA5B1F,cAAeL,EAAa+F,EAAb/F,SACvD,OAAOkG,EAAAA,EAAAA,wBAAuB,GAAe,OAAZjB,EAAAA,YAAY,sBAAqB,CAChEkB,OAAQ,OACRlE,QAAS,CACP,eAAgB,oBAElBmE,KAAM,CAAElC,QAAAA,EAAS+B,QAAAA,EAAShG,aAAAA,EAAcI,cAAAA,EAAeL,SAAAA,GACvDqG,OAAQL,EAAgBK,QAE5B,CAEO,SAASC,EAAwBC,EAA+BR,EAASC,GAC9E,IAAKD,IAAYA,EAAQ7B,QACvB,OAAO,KAEkD6B,EAAnD7B,QAAR,IAAiBjE,EAA0C8F,EAA1C9F,aAAcI,EAA4B0F,EAA5B1F,cAAeL,EAAa+F,EAAb/F,SAC9C,OAAOkG,EAAAA,EAAAA,wBAAuB,GAAoCK,OAAjCtB,EAAAA,YAAY,uBAA2C,OAAtBsB,GAAyB,CACzFJ,OAAQ,OACRlE,QAAS,CACP,eAAgB,oBAElBmE,KAAM,CAAEnG,aAAAA,EAAcI,cAAAA,EAAeL,SAAAA,GACrCqG,OAAQL,EAAgBK,QAE5B,CAEO,IAAM3H,EAAc,SAACV,GAC1B,I,IAMI8G,EAAAA,EAAe9G,GALjB+G,EAKED,EALFC,KACAhG,EAIE+F,EAJF/F,QACAC,EAGE8F,EAHF9F,UACAC,EAEE6F,EAFF7F,aACAN,EACEmG,EADFnG,kBAEoDiH,EAAAA,EAAqB9G,GAAnEiG,EAA8Ca,EAA9Cb,KAAyBlG,EAAqB+G,EAArB/G,iBAGjC,O,wUAAO,EACLC,YAAAA,GAFa,CAAEE,UAAWwH,EAAczH,QAAS0H,I,WAG9CrG,CACHnB,aAAAA,EACAN,kBAAAA,EACAC,kBAAAA,EACAC,iBAAAA,I,+UAEJ,C,iBC/GA,IAAIe,EAAM,CACT,YAAa,CACZ,KACA,KAED,YAAa,CACZ,KACA,KAED,YAAa,CACZ,KACA,KAED,YAAa,CACZ,KACA,KAED,YAAa,CACZ,KACA,KAED,YAAa,CACZ,KACA,KAED,YAAa,CACZ,KACA,KAED,YAAa,CACZ,KACA,KAED,eAAgB,CACf,KACA,MAGF,SAAS8G,EAAoBC,GAC5B,IAAIC,EAAoBC,EAAEjH,EAAK+G,GAC9B,OAAOG,QAAQC,UAAUC,MAAK,KAC7B,IAAIC,EAAI,IAAIC,MAAM,uBAAyBP,EAAM,KAEjD,MADAM,EAAEE,KAAO,mBACHF,CAAC,IAIT,IAAIG,EAAMxH,EAAI+G,GAAMvL,EAAKgM,EAAI,GAC7B,OAAOR,EAAoBK,EAAEG,EAAI,IAAIJ,MAAK,IAClCJ,EAAoBxL,IAE7B,CACAsL,EAAoBW,KAAO,IAAOC,OAAOD,KAAKzH,GAC9C8G,EAAoBtL,GAAK,KACzBD,EAAOoM,QAAUb,C,8CCvCjB,QCPS,SAASc,EAAQC,EAAUC,GAMhC,IALA,IAAIC,GAAS,EACTC,EAAWN,OAAOE,GAClBxK,EAAQ0K,EAASF,GACjB3G,EAAS7D,EAAM6D,OAEZA,KAAU,CACf,IAAIrB,EAAMxC,IAA6B2K,GACvC,IAA+C,IAA3CF,EAASG,EAASpI,GAAMA,EAAKoI,GAC/B,KAEJ,CACA,OAAOJ,CACT,E,4BCRF,SCHwBK,ECCxB,SAAoBL,EAAQC,GAC1B,OAAOD,GAAU,EAAQA,EAAQC,EAAUJ,EAAA,EAC7C,EDFS,SAASS,EAAYL,GAC1B,GAAkB,MAAdK,EACF,OAAOA,EAET,KAAK,EAAAC,EAAA,GAAYD,GACf,OAAOD,EAASC,EAAYL,GAM9B,IAJA,IAAI5G,EAASiH,EAAWjH,OACpB8G,GAA8B,EAC9BC,EAAWN,OAAOQ,KAEUH,EAAQ9G,IACa,IAA/C4G,EAASG,EAASD,GAAQA,EAAOC,KAIvC,OAAOE,CACT,GAlBF,IAAwBD,C,sEEUxB,QAVA,SAAoBC,EAAYE,GAC9B,IAAIC,EAAS,GAMb,OALA,OAASH,GAAY,SAAS1E,EAAOuE,EAAOG,GACtCE,EAAU5E,EAAOuE,EAAOG,IAC1BG,EAAO/M,KAAKkI,EAEhB,IACO6E,CACT,E,wBCiCA,QALA,SAAgBH,EAAYE,GAE1B,QADW,EAAAE,EAAA,GAAQJ,GAAc,IAAc,GACnCA,GAAY,OAAaE,EAAW,GAClD,C,2IChBA,QAJA,SAAgBR,GACd,OAAiB,MAAVA,EAAiB,GClB1B,SAAoBA,EAAQxK,GAC1B,OAAO,OAASA,GAAO,SAASwC,GAC9B,OAAOgI,EAAOhI,EAChB,GACF,CDc+B,CAAWgI,GAAQ,EAAAH,EAAA,GAAKG,GACvD,EExBA,IAAIW,EAAYC,KAAKC,IA6CrB,QAbA,SAAkBP,EAAY1E,EAAOkF,EAAWC,GAC9CT,GAAa,EAAAC,EAAA,GAAYD,GAAcA,EAAa,EAAOA,GAC3DQ,EAAaA,IAAcC,GAAS,EAAAC,EAAA,GAAUF,GAAa,EAE3D,IAAIzH,EAASiH,EAAWjH,OAIxB,OAHIyH,EAAY,IACdA,EAAYH,EAAUtH,EAASyH,EAAW,ICrB9C,SAAkBlF,GAChB,MAAuB,iBAATA,KACV,EAAA8E,EAAA,GAAQ9E,KAAU,EAAAqF,EAAA,GAAarF,IArBrB,oBAqB+B,OAAWA,EAC1D,CDoBS,CAAS0E,GACXQ,GAAazH,GAAUiH,EAAWY,QAAQtF,EAAOkF,IAAc,IAC7DzH,IAAU,OAAYiH,EAAY1E,EAAOkF,IAAc,CAChE,C,0FE7BA,QAVA,SAAiBR,EAAYL,GAC3B,IAAIE,GAAS,EACTM,GAAS,EAAAF,EAAA,GAAYD,GAAca,MAAMb,EAAWjH,QAAU,GAKlE,OAHA,OAASiH,GAAY,SAAS1E,EAAO5D,EAAKsI,GACxCG,IAASN,GAASF,EAASrE,EAAO5D,EAAKsI,EACzC,IACOG,CACT,E,cCiCA,QALA,SAAaH,EAAYL,GAEvB,QADW,EAAAS,EAAA,GAAQJ,GAAc,IAAW,GAChCA,GAAY,OAAaL,EAAU,GACjD,C","sources":["webpack://@openmrs/esm-patient-programs-app/./src/programs/programs-detailed-summary.scss","webpack://@openmrs/esm-patient-programs-app/./src/programs/programs-overview.scss","webpack://@openmrs/esm-patient-programs-app/./src/config-schema.ts","webpack://@openmrs/esm-patient-programs-app/./src/programs/programs-overview.scss?1f5f","webpack://@openmrs/esm-patient-programs-app/./src/programs/programs-detailed-summary.scss?fc97","webpack://@openmrs/esm-patient-programs-app/./src/programs/programs-detailed-summary.component.tsx","webpack://@openmrs/esm-patient-programs-app/./src/index.ts","webpack://@openmrs/esm-patient-programs-app/./src/programs/programs-overview.component.tsx","webpack://@openmrs/esm-patient-programs-app/./src/dashboard.meta.ts","webpack://@openmrs/esm-patient-programs-app/./src/programs/programs.resource.tsx","webpack://@openmrs/esm-patient-programs-app/./translations/ lazy nonrecursive .json$","webpack://@openmrs/esm-patient-programs-app/../../node_modules/lodash-es/_baseFor.js","webpack://@openmrs/esm-patient-programs-app/../../node_modules/lodash-es/_createBaseFor.js","webpack://@openmrs/esm-patient-programs-app/../../node_modules/lodash-es/_baseEach.js","webpack://@openmrs/esm-patient-programs-app/../../node_modules/lodash-es/_createBaseEach.js","webpack://@openmrs/esm-patient-programs-app/../../node_modules/lodash-es/_baseForOwn.js","webpack://@openmrs/esm-patient-programs-app/../../node_modules/lodash-es/_baseFilter.js","webpack://@openmrs/esm-patient-programs-app/../../node_modules/lodash-es/filter.js","webpack://@openmrs/esm-patient-programs-app/../../node_modules/lodash-es/values.js","webpack://@openmrs/esm-patient-programs-app/../../node_modules/lodash-es/_baseValues.js","webpack://@openmrs/esm-patient-programs-app/../../node_modules/lodash-es/includes.js","webpack://@openmrs/esm-patient-programs-app/../../node_modules/lodash-es/isString.js","webpack://@openmrs/esm-patient-programs-app/../../node_modules/lodash-es/_baseMap.js","webpack://@openmrs/esm-patient-programs-app/../../node_modules/lodash-es/map.js"],"names":["___CSS_LOADER_EXPORT___","push","module","id","locals","configSchema","hideAddProgramButton","_type","Type","Boolean","_default","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","undefined","ProgramEditButton","programEnrollmentId","isTablet","useLayoutType","useTranslation","t","launchEditProgramsForm","React","launchPatientWorkspace","Button","aria-label","kind","renderIcon","props","Edit","size","iconDescription","onClick","hasIconOnly","tooltipPosition","moduleName","featureName","importTranslation","require","startupApp","defineConfigSchema","programsOverview","getSyncLifecycle","basePath","patientUuid","config","useConfig","displayText","headerTitle","urlLabel","pageUrl","layout","isDesktop","desktopLayout","usePrograms","activeEnrollments","availablePrograms","eligiblePrograms","enrollments","isError","isLoading","isValidating","usePagination","results","goTo","currentPage","launchProgramsForm","tableHeaders","key","header","tableRows","paginatedEnrollments","map","enrollment","uuid","display","location","dateEnrolled","formatDatetime","Date","status","dateCompleted","formatDate","DataTableSkeleton","role","compact","zebra","ErrorState","error","length","div","className","styles","widgetCard","CardHeader","title","span","InlineLoading","Add","disabled","InlineNotification","style","minWidth","margin","padding","lowContrast","subtitle","DataTable","rows","headers","isSortable","useZebraStyles","getHeaderProps","getTableProps","TableContainer","Table","TableHead","TableRow","TableHeader","classNames","productiveHeading01","text02","content","TableBody","row","cells","cell","TableCell","value","PatientChartPagination","currentItems","onPageNumberChange","page","pageNumber","pageSize","totalItems","dashboardLinkUrl","dashboardLinkLabel","EmptyState","launchForm","programsDetailedSummary","useMemo","program","useCallback","i","programsDashboardLink","createDashboardLink","slot","columns","path","dashboardMeta","programsFormWorkspace","getAsyncLifecycle","customRepresentation","useEnrollments","data","enrollmentsUrl","restBaseUrl","useSWR","openmrsFetch","mutate","formattedEnrollments","sort","a","b","filter","uniqBy","mutateEnrollments","useAvailablePrograms","includes","createProgramEnrollment","payload","abortController","patient","openmrsObservableFetch","method","body","signal","updateProgramEnrollment","programEnrollmentUuid","enrolLoading","enrollError","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","then","e","Error","code","ids","keys","Object","exports","object","iteratee","keysFunc","index","iterable","eachFunc","collection","isArrayLike","predicate","result","isArray","nativeMax","Math","max","fromIndex","guard","toInteger","isObjectLike","indexOf","Array"],"sourceRoot":""}