@openmrs/esm-patient-programs-app 4.0.1-pre.265 → 4.0.1-pre.271

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,4 +1,4 @@
1
- @openmrs/esm-patient-programs-app:build: cache hit, replaying output f2bb47a6dad9c619
1
+ @openmrs/esm-patient-programs-app:build: cache hit, replaying output 0b593cc2c8f970a4
2
2
  @openmrs/esm-patient-programs-app:build: assets by chunk 919 KiB (id hint: vendors)
3
3
  @openmrs/esm-patient-programs-app:build:  assets by status 842 KiB [big]
4
4
  @openmrs/esm-patient-programs-app:build:  asset 734.js 435 KiB [emitted] [minimized] [big] (id hint: vendors) 1 related asset
@@ -12,7 +12,7 @@
12
12
  @openmrs/esm-patient-programs-app:build: runtime modules 40.1 KiB 28 modules
13
13
  @openmrs/esm-patient-programs-app:build: built modules 3.08 MiB (javascript) 294 bytes (consume-shared) 252 bytes (share-init) [built]
14
14
  @openmrs/esm-patient-programs-app:build:  modules by path ../../node_modules/ 2.96 MiB 87 modules
15
- @openmrs/esm-patient-programs-app:build:  modules by path ./ 49.2 KiB 11 modules
15
+ @openmrs/esm-patient-programs-app:build:  modules by path ./ 52.4 KiB 11 modules
16
16
  @openmrs/esm-patient-programs-app:build:  consume-shared-module modules 294 bytes
17
17
  @openmrs/esm-patient-programs-app:build:  modules by path consume shared module (default) @openmrs/ 126 bytes 3 modules
18
18
  @openmrs/esm-patient-programs-app:build:  + 4 modules
@@ -30,4 +30,4 @@
30
30
  @openmrs/esm-patient-programs-app:build:  858.js (407 KiB)
31
31
  @openmrs/esm-patient-programs-app:build:  734.js (435 KiB)
32
32
  @openmrs/esm-patient-programs-app:build: 
33
- @openmrs/esm-patient-programs-app:build: webpack 5.74.0 compiled with 1 warning in 109218 ms
33
+ @openmrs/esm-patient-programs-app:build: webpack 5.74.0 compiled with 1 warning in 33679 ms
package/dist/574.js CHANGED
@@ -1 +1 @@
1
- "use strict";(self.webpackChunk_openmrs_esm_patient_programs_app=self.webpackChunk_openmrs_esm_patient_programs_app||[]).push([[574],{3574:e=>{e.exports=JSON.parse('{"actions":"Actions","active":"Active","activePrograms":"Active programs","add":"Add","cancel":"Cancel","carePrograms":"Care Programs","chooseLocation":"Choose a location","chooseProgram":"Choose a program","completedOn":"Completed on","dateCompleted":"Date completed","dateEnrolled":"Date enrolled","discontinue":"Discontinue","enroll":"Enroll","enrollment":"Enrollment","enrollmentLocation":"Enrollment location","enrollmentNowVisible":"It is now visible in the Programs table","enrollmentSaved":"Program enrollment saved","enrollmentUpdated":"Program enrollment updated","enrollmentUpdatesNowVisible":"Changes to the program are now visible in the Programs table","fullyEnrolled":"Enrolled in all programs","location":"Location","noEligibleEnrollments":"There are no more programs left to enroll this patient in","programEnrollments":"Program enrollments","programEnrollmentSaveError":"Error saving program enrollment","programName":"Program name","programs":"programs","required":"Required","saveAndClose":"Save and close","seeAll":"See all","status":"Status"}')}}]);
1
+ "use strict";(self.webpackChunk_openmrs_esm_patient_programs_app=self.webpackChunk_openmrs_esm_patient_programs_app||[]).push([[574],{3574:e=>{e.exports=JSON.parse('{"actions":"Actions","active":"Active","activePrograms":"Active programs","add":"Add","cancel":"Cancel","carePrograms":"Care Programs","chooseLocation":"Choose a location","chooseProgram":"Choose a program","completedOn":"Completed on","dateCompleted":"Date completed","dateEnrolled":"Date enrolled","discontinue":"Discontinue","enroll":"Enroll","enrollment":"Enrollment","enrollmentLocation":"Enrollment location","enrollmentNowVisible":"It is now visible in the Programs table","enrollmentSaved":"Program enrollment saved","enrollmentUpdated":"Program enrollment updated","enrollmentUpdatesNowVisible":"Changes to the program are now visible in the Programs table","fullyEnrolled":"Enrolled in all programs","location":"Location","noEligibleEnrollments":"There are no more programs left to enroll this patient in","noProgramsConfigured":"No programs configured","programEnrollments":"Program enrollments","programEnrollmentSaveError":"Error saving program enrollment","programName":"Program name","programs":"programs","required":"Required","saveAndClose":"Save and close","seeAll":"See all","status":"Status"}')}}]);
package/dist/733.js CHANGED
@@ -1 +1 @@
1
- "use strict";(self.webpackChunk_openmrs_esm_patient_programs_app=self.webpackChunk_openmrs_esm_patient_programs_app||[]).push([[733],{1951:(e,t,r)=>{r.d(t,{Z:()=>i});var n=r(9601),o=r.n(n),a=r(2609),l=r.n(a)()(o());l.push([e.id,":root{--brand-01: #005d5d;--brand-02: #004144;--brand-03: #007d79}.-esm-patient-programs__programs-form__loading___KGmNP{margin-left:1rem;width:2rem;min-height:2.5rem}.-esm-patient-programs__programs-form__button___KPSt9{height:4rem;display:flex;align-content:flex-start;align-items:baseline;min-width:50%}.-esm-patient-programs__programs-form__tablet___yw5Wr{padding:1.5rem 1rem;background-color:#fff}.-esm-patient-programs__programs-form__desktop___RnK8C{padding:0rem}.-esm-patient-programs__programs-form__formContainer___lqbdm{margin:1rem}.-esm-patient-programs__programs-form__form___BLqPA{display:flex;flex-direction:column;justify-content:space-between;height:calc(100vh - 6rem)}",""]),l.locals={loading:"-esm-patient-programs__programs-form__loading___KGmNP",button:"-esm-patient-programs__programs-form__button___KPSt9",tablet:"-esm-patient-programs__programs-form__tablet___yw5Wr",desktop:"-esm-patient-programs__programs-form__desktop___RnK8C",formContainer:"-esm-patient-programs__programs-form__formContainer___lqbdm",form:"-esm-patient-programs__programs-form__form___BLqPA"};const i=l},5733:(e,t,r)=>{r.r(t),r.d(t,{default:()=>N});var n=r(268),o=r.n(n),a=r(4924),l=r(3565),i=r.n(l),u=r(3863),s=r(8827),c=r(819),m=r(9857),d=r(906),p=r(7047),f=r(4076),g=r(6062),v=r.n(g),b=r(4036),_=r.n(b),y=r(6793),h=r.n(y),E=r(7892),w=r.n(E),O=r(1173),P=r.n(O),Z=r(2464),C=r.n(Z),S=r(1951),j={};j.styleTagTransform=C(),j.setAttributes=w(),j.insert=h().bind(null,"head"),j.domAPI=_(),j.insertStyleElement=P(),v()(S.Z,j);const k=S.Z&&S.Z.locals?S.Z.locals:void 0;function x(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function T(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function D(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,a=[],l=!0,i=!1;try{for(r=r.call(e);!(l=(n=r.next()).done)&&(a.push(n.value),!t||a.length!==t);l=!0);}catch(e){i=!0,o=e}finally{try{l||null==r.return||r.return()}finally{if(i)throw o}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return x(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(r):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?x(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.")}()}const N=function(e){var t,r,n,l,g=e.closeWorkspace,v=e.patientUuid,b=e.programEnrollmentId,_=(0,a.useTranslation)().t,y="tablet"===(0,d.useLayoutType)(),h=(0,d.useSession)(),E=(0,d.useLocations)(),w=(0,m.kY)().mutate,O=(0,f.oI)().data,P=(0,f.Bw)(v).data,Z=b&&P.filter((function(e){return e.uuid==b}))[0],C=Z?function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){T(e,t,r[t])}))}return e}({display:Z.program.name},Z.program):null,S=C?[C]:(0,u.Z)(O,(function(e){return!(0,s.Z)((0,c.Z)(P,"program.uuid"),e.uuid)})),j=D(o().useState((null==Z?void 0:Z.dateCompleted)?(0,d.parseDate)(Z.dateCompleted):null),2),x=j[0],N=j[1],A=D(o().useState((null==Z?void 0:Z.dateEnrolled)?(0,d.parseDate)(Z.dateEnrolled):new Date),2),I=A[0],L=A[1],F=D(o().useState(null!==(r=null==Z?void 0:Z.program.uuid)&&void 0!==r?r:""),2),q=F[0],K=F[1],V=D(o().useState(null!==(n=null==Z?void 0:Z.location.uuid)&&void 0!==n?n:""),2),H=V[0],U=V[1];!H&&(null==h||null===(t=h.sessionLocation)||void 0===t?void 0:t.uuid)&&U(null==h||null===(l=h.sessionLocation)||void 0===l?void 0:l.uuid);var W=o().useCallback((function(e){if(e.preventDefault(),q){var t={patient:v,program:q,dateEnrolled:I?i()(I).format():null,dateCompleted:x?i()(x).format():null,location:H},r=new AbortController,n=Z?(0,f.YX)(Z.uuid,t,r).subscribe((function(e){200===e.status&&(g(),(0,d.showToast)({critical:!0,kind:"success",description:_("enrollmentUpdatesNowVisible","Changes to the program are now visible in the Programs table"),title:_("enrollmentUpdated","Program enrollment updated")}),w("/ws/rest/v1/programenrollment?patient=".concat(v,"&v=").concat(f.o9)))}),(function(e){(0,d.createErrorHandler)(),(0,d.showNotification)({title:_("programEnrollmentSaveError","Error saving program enrollment"),kind:"error",critical:!0,description:null==e?void 0:e.message})})):(0,f.df)(t,r).subscribe((function(e){201===e.status&&(g(),(0,d.showToast)({critical:!0,kind:"success",description:_("enrollmentNowVisible","It is now visible in the Programs table"),title:_("enrollmentSaved","Program enrollment saved")}),w("/ws/rest/v1/programenrollment?patient=".concat(v,"&v=").concat(f.o9)))}),(function(e){(0,d.createErrorHandler)(),(0,d.showNotification)({title:_("programEnrollmentSaveError","Error saving program enrollment"),kind:"error",critical:!0,description:null==e?void 0:e.message})}));return function(){n.unsubscribe()}}}),[g,x,I,w,v,q,_,H,Z]);return o().createElement(p.l09,{className:k.form,onSubmit:W},o().createElement(p.Kqy,{className:k.formContainer,gap:7},o().createElement(p.cwH,{style:{maxWidth:"50%"},legendText:_("programName","Program name")},o().createElement("div",{className:k.selectContainer},o().createElement(p.PhF,{id:"program",invalidText:_("required","Required"),labelText:"",light:y,onChange:function(e){return K(e.target.value)}},q?null:o().createElement(p.QlF,{text:_("chooseProgram","Choose a program"),value:""}),(null==S?void 0:S.length)>0&&S.map((function(e){return o().createElement(p.QlF,{key:e.uuid,text:e.display,value:e.uuid},e.display)}))))),o().createElement(p.cwH,{style:{maxWidth:"50%"},legendText:_("dateEnrolled","Date enrolled")},o().createElement(p.Mtg,{id:"enrollmentDate",datePickerType:"single",dateFormat:"d/m/Y",light:y,maxDate:(new Date).toISOString(),placeholder:"dd/mm/yyyy",onChange:function(e){var t=D(e,1)[0];return L(t)},value:I},o().createElement(p.aj6,{id:"enrollmentDateInput",labelText:""}))),o().createElement(p.cwH,{style:{width:"50%"},legendText:_("dateCompleted","Date completed")},o().createElement(p.Mtg,{id:"completionDate",datePickerType:"single",dateFormat:"d/m/Y",light:y,minDate:new Date(I).toISOString(),maxDate:(new Date).toISOString(),placeholder:"dd/mm/yyyy",onChange:function(e){var t=D(e,1)[0];return N(t)},value:x},o().createElement(p.aj6,{id:"completionDateInput",labelText:""}))),o().createElement(p.cwH,{style:{width:"50%"},legendText:_("enrollmentLocation","Enrollment location")},o().createElement(p.PhF,{id:"location",invalidText:"Required",labelText:"",light:y,onChange:function(e){return U(e.target.value)},value:H},H?null:o().createElement(p.QlF,{text:_("chooseLocation","Choose a location"),value:""}),(null==E?void 0:E.length)>0&&E.map((function(e){return o().createElement(p.QlF,{key:e.uuid,text:e.display,value:e.uuid},e.display)}))))),o().createElement(p.uVA,{className:y?k.tablet:k.desktop},o().createElement(p.zxk,{className:k.button,kind:"secondary",onClick:function(){return g()}},_("cancel","Cancel")),o().createElement(p.zxk,{className:k.button,kind:"primary",disabled:!q,type:"submit"},_("saveAndClose","Save and close"))))}},4076:(e,t,r)=>{r.d(t,{Bw:()=>m,YX:()=>f,b$:()=>g,df:()=>p,o9:()=>c,oI:()=>d});var n=r(9857),o=r(906),a=r(4200),l=r(3863),i=r(8827),u=r(819);function s(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var c="custom:(uuid,display,program,dateEnrolled,dateCompleted,location:(uuid,display))";function m(e){var t,r=(0,n.ZP)("/ws/rest/v1/programenrollment?patient=".concat(e,"&v=").concat(c),o.openmrsFetch),l=r.data,i=r.error,u=r.isValidating,s=(null==l||null===(t=l.data)||void 0===t?void 0:t.results.length)>0?null==l?void 0:l.data.results.sort((function(e,t){return t.dateEnrolled>e.dateEnrolled?1:-1})):null,m=null==s?void 0:s.filter((function(e){return!e.dateCompleted}));return{data:l?(0,a.Z)(s,(function(e){var t;return null==e||null===(t=e.program)||void 0===t?void 0:t.uuid})):null,isError:i,isLoading:!l&&!i,isValidating:u,activeEnrollments:m}}function d(e){var t,r,a=(0,n.ZP)("/ws/rest/v1/program?v=custom:(uuid,display,allWorkflows,concept:(uuid,display))",o.openmrsFetch),s=a.data,c=a.error,m=null!==(r=null==s||null===(t=s.data)||void 0===t?void 0:t.results)&&void 0!==r?r:null;return{data:m,isError:c,isLoading:!s&&!c,eligiblePrograms:(0,l.Z)(m,(function(t){return!(0,i.Z)((0,u.Z)(e,"program.uuid"),t.uuid)}))}}function p(e,t){if(!e)return null;var r=e.program,n=e.patient,a=e.dateEnrolled,l=e.dateCompleted,i=e.location;return(0,o.openmrsObservableFetch)("/ws/rest/v1/programenrollment",{method:"POST",headers:{"Content-Type":"application/json"},body:{program:r,patient:n,dateEnrolled:a,dateCompleted:l,location:i},signal:t.signal})}function f(e,t,r){if(!t&&!t.program)return null;t.program;var n=t.dateEnrolled,a=t.dateCompleted,l=t.location;return(0,o.openmrsObservableFetch)("/ws/rest/v1/programenrollment/".concat(e),{method:"POST",headers:{"Content-Type":"application/json"},body:{dateEnrolled:n,dateCompleted:a,location:l},signal:r.signal})}var g=function(e){var t,r,a=(0,o.useConfig)().customUrl,l=m(e),i=l.data,u=l.isError,c=l.isLoading,p=l.isValidating,f=l.activeEnrollments,g=d(i),v=g.data,b=g.eligiblePrograms,_=function(e){var t,r=(0,o.useConfig)().customUrl,a=(0,n.ZP)(r?"".concat(r).concat(e):null,o.openmrsFetch),l=a.data,i=a.error;return{configurablePrograms:null!==(t=null==l?void 0:l.data)&&void 0!==t?t:[],isLoading:!l&&!i,error:i}}(e),y=_.configurablePrograms,h=_.isLoading,E=_.error;return t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){s(e,t,r[t])}))}return e}({enrollments:i},a?{isLoading:h,isError:E}:{isLoading:c,isError:u}),r=null!=(r={isValidating:p,activeEnrollments:f,availablePrograms:v,eligiblePrograms:b,configurablePrograms:y})?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r}(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})),t}},1154:(e,t,r)=>{r.d(t,{Z:()=>l});const n=function(e,t,r){for(var n=-1,o=Object(e),a=r(e),l=a.length;l--;){var i=a[++n];if(!1===t(o[i],i,o))break}return e};var o=r(6892);var a=r(3282);const l=(i=function(e,t){return e&&n(e,t,o.Z)},function(e,t){if(null==e)return e;if(!(0,a.Z)(e))return i(e,t);for(var r=e.length,n=-1,o=Object(e);++n<r&&!1!==t(o[n],n,o););return e});var i},3863:(e,t,r)=>{r.d(t,{Z:()=>u});var n=r(2300),o=r(1154);const a=function(e,t){var r=[];return(0,o.Z)(e,(function(e,n,o){t(e,n,o)&&r.push(e)})),r};var l=r(7954),i=r(7885);const u=function(e,t){return((0,i.Z)(e)?n.Z:a)(e,(0,l.Z)(t,3))}},8827:(e,t,r)=>{r.d(t,{Z:()=>w});var n=r(1266),o=r(3282),a=r(9001),l=r(7885),i=r(3391);var u=/\s/;var s=/^\s+/;const c=function(e){return e?e.slice(0,function(e){for(var t=e.length;t--&&u.test(e.charAt(t)););return t}(e)+1).replace(s,""):e};var m=r(3122),d=r(2758),p=/^[-+]0x[0-9a-f]+$/i,f=/^0b[01]+$/i,g=/^0o[0-7]+$/i,v=parseInt;const b=function(e){return e?Infinity===(e=function(e){if("number"==typeof e)return e;if((0,d.Z)(e))return NaN;if((0,m.Z)(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=(0,m.Z)(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=c(e);var r=f.test(e);return r||g.test(e)?v(e.slice(2),r?2:8):p.test(e)?NaN:+e}(e))||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0};var _=r(5598);var y=r(6892);const h=function(e){return null==e?[]:function(e,t){return(0,_.Z)(t,(function(t){return e[t]}))}(e,(0,y.Z)(e))};var E=Math.max;const w=function(e,t,r,u){e=(0,o.Z)(e)?e:h(e),r=r&&!u?function(e){var t=b(e),r=t%1;return t==t?r?t-r:t:0}(r):0;var s=e.length;return r<0&&(r=E(s+r,0)),function(e){return"string"==typeof e||!(0,l.Z)(e)&&(0,i.Z)(e)&&"[object String]"==(0,a.Z)(e)}(e)?r<=s&&e.indexOf(t,r)>-1:!!s&&(0,n.Z)(e,t,r)>-1}},819:(e,t,r)=>{r.d(t,{Z:()=>s});var n=r(5598),o=r(7954),a=r(1154),l=r(3282);const i=function(e,t){var r=-1,n=(0,l.Z)(e)?Array(e.length):[];return(0,a.Z)(e,(function(e,o,a){n[++r]=t(e,o,a)})),n};var u=r(7885);const s=function(e,t){return((0,u.Z)(e)?n.Z:i)(e,(0,o.Z)(t,3))}}}]);
1
+ "use strict";(self.webpackChunk_openmrs_esm_patient_programs_app=self.webpackChunk_openmrs_esm_patient_programs_app||[]).push([[733],{1951:(e,t,r)=>{r.d(t,{Z:()=>i});var n=r(9601),a=r.n(n),o=r(2609),l=r.n(o)()(a());l.push([e.id,":root{--brand-01: #005d5d;--brand-02: #004144;--brand-03: #007d79}.-esm-patient-programs__programs-form__loading___KGmNP{margin-left:1rem;width:2rem;min-height:2.5rem}.-esm-patient-programs__programs-form__button___KPSt9{height:4rem;display:flex;align-content:flex-start;align-items:baseline;min-width:50%}.-esm-patient-programs__programs-form__tablet___yw5Wr{padding:1.5rem 1rem;background-color:#fff}.-esm-patient-programs__programs-form__desktop___RnK8C{padding:0rem}.-esm-patient-programs__programs-form__formContainer___lqbdm{margin:1rem}.-esm-patient-programs__programs-form__form___BLqPA{display:flex;flex-direction:column;justify-content:space-between;height:calc(100vh - 6rem)}",""]),l.locals={loading:"-esm-patient-programs__programs-form__loading___KGmNP",button:"-esm-patient-programs__programs-form__button___KPSt9",tablet:"-esm-patient-programs__programs-form__tablet___yw5Wr",desktop:"-esm-patient-programs__programs-form__desktop___RnK8C",formContainer:"-esm-patient-programs__programs-form__formContainer___lqbdm",form:"-esm-patient-programs__programs-form__form___BLqPA"};const i=l},5733:(e,t,r)=>{r.r(t),r.d(t,{default:()=>F});var n=r(268),a=r.n(n),o=r(4924),l=r(9857),i=r(3565),u=r.n(i),s=r(3863),c=r(8827),m=r(819),d=r(7047),p=r(906),g=r(4076),f=r(6062),v=r.n(f),b=r(4036),y=r.n(b),_=r(6793),h=r.n(_),E=r(7892),w=r.n(E),P=r(1173),O=r.n(P),C=r(2464),x=r.n(C),Z=r(1951),S={};S.styleTagTransform=x(),S.setAttributes=w(),S.insert=h().bind(null,"head"),S.domAPI=y(),S.insertStyleElement=O(),v()(Z.Z,S);const k=Z.Z&&Z.Z.locals?Z.Z.locals:void 0;function j(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function D(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function T(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,o=[],l=!0,i=!1;try{for(r=r.call(e);!(l=(n=r.next()).done)&&(o.push(n.value),!t||o.length!==t);l=!0);}catch(e){i=!0,a=e}finally{try{l||null==r.return||r.return()}finally{if(i)throw a}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return j(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(r):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?j(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.")}()}const F=function(e){var t,r,n,i,f=e.closeWorkspace,v=e.patientUuid,b=e.programEnrollmentId,y=(0,o.useTranslation)().t,_="tablet"===(0,p.useLayoutType)(),h=(0,p.useSession)(),E=(0,p.useLocations)(),w=(0,l.kY)().mutate,P=(0,g.oI)().data,O=(0,g.Bw)(v).data,C=b&&O.filter((function(e){return e.uuid==b}))[0],x=C?function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){D(e,t,r[t])}))}return e}({display:C.program.name},C.program):null,Z=x?[x]:(0,s.Z)(P,(function(e){return!(0,c.Z)((0,m.Z)(O,"program.uuid"),e.uuid)})),S=T(a().useState((null==C?void 0:C.dateCompleted)?(0,p.parseDate)(C.dateCompleted):null),2),j=S[0],F=S[1],I=T(a().useState((null==C?void 0:C.dateEnrolled)?(0,p.parseDate)(C.dateEnrolled):new Date),2),N=I[0],L=I[1],A=T(a().useState(null!==(r=null==C?void 0:C.program.uuid)&&void 0!==r?r:""),2),q=A[0],K=A[1],Q=T(a().useState(null!==(n=null==C?void 0:C.location.uuid)&&void 0!==n?n:""),2),V=Q[0],W=Q[1];!V&&(null==h||null===(t=h.sessionLocation)||void 0===t?void 0:t.uuid)&&W(null==h||null===(i=h.sessionLocation)||void 0===i?void 0:i.uuid);var Y=a().useCallback((function(e){if(e.preventDefault(),q){var t={patient:v,program:q,dateEnrolled:N?u()(N).format():null,dateCompleted:j?u()(j).format():null,location:V},r=new AbortController,n=C?(0,g.YX)(C.uuid,t,r).subscribe((function(e){200===e.status&&(f(),(0,p.showToast)({critical:!0,kind:"success",description:y("enrollmentUpdatesNowVisible","Changes to the program are now visible in the Programs table"),title:y("enrollmentUpdated","Program enrollment updated")}),w("/ws/rest/v1/programenrollment?patient=".concat(v,"&v=").concat(g.o9)))}),(function(e){(0,p.createErrorHandler)(),(0,p.showNotification)({title:y("programEnrollmentSaveError","Error saving program enrollment"),kind:"error",critical:!0,description:null==e?void 0:e.message})})):(0,g.df)(t,r).subscribe((function(e){201===e.status&&(f(),(0,p.showToast)({critical:!0,kind:"success",description:y("enrollmentNowVisible","It is now visible in the Programs table"),title:y("enrollmentSaved","Program enrollment saved")}),w("/ws/rest/v1/programenrollment?patient=".concat(v,"&v=").concat(g.o9)))}),(function(e){(0,p.createErrorHandler)(),(0,p.showNotification)({title:y("programEnrollmentSaveError","Error saving program enrollment"),kind:"error",critical:!0,description:null==e?void 0:e.message})}));return function(){n.unsubscribe()}}}),[f,j,N,w,v,q,y,V,C]);return a().createElement(d.l09,{className:k.form,onSubmit:Y},a().createElement(d.Kqy,{className:k.formContainer,gap:7},Z.length?null:a().createElement(d.K0D,{style:{minWidth:"100%",margin:"0rem",padding:"0rem"},kind:"error",lowContrast:!0,subtitle:y("configurePrograms","Please configure programs to continue."),title:y("noProgramsConfigured","No programs configured")}),a().createElement(d.cwH,{style:{maxWidth:"50%"},legendText:y("programName","Program name")},a().createElement("div",{className:k.selectContainer},_?a().createElement(d.mh4,null,a().createElement(d.PhF,{id:"program",invalidText:y("required","Required"),labelText:"",onChange:function(e){return K(e.target.value)}},q?null:a().createElement(d.QlF,{text:y("chooseProgram","Choose a program"),value:""}),(null==Z?void 0:Z.length)>0&&Z.map((function(e){return a().createElement(d.QlF,{key:e.uuid,text:e.display,value:e.uuid},e.display)})))):a().createElement(d.PhF,{id:"program",invalidText:y("required","Required"),labelText:"",onChange:function(e){return K(e.target.value)}},q?null:a().createElement(d.QlF,{text:y("chooseProgram","Choose a program"),value:""}),(null==Z?void 0:Z.length)>0&&Z.map((function(e){return a().createElement(d.QlF,{key:e.uuid,text:e.display,value:e.uuid},e.display)}))))),a().createElement(d.cwH,{style:{maxWidth:"50%"},legendText:y("dateEnrolled","Date enrolled")},_?a().createElement(d.mh4,null,a().createElement(d.Mtg,{id:"enrollmentDate",datePickerType:"single",dateFormat:"d/m/Y",maxDate:(new Date).toISOString(),placeholder:"dd/mm/yyyy",onChange:function(e){var t=T(e,1)[0];return L(t)},value:N},a().createElement(d.aj6,{id:"enrollmentDateInput",labelText:""}))):a().createElement(d.Mtg,{id:"enrollmentDate",datePickerType:"single",dateFormat:"d/m/Y",maxDate:(new Date).toISOString(),placeholder:"dd/mm/yyyy",onChange:function(e){var t=T(e,1)[0];return L(t)},value:N},a().createElement(d.aj6,{id:"enrollmentDateInput",labelText:""}))),a().createElement(d.cwH,{style:{width:"50%"},legendText:y("dateCompleted","Date completed")},_?a().createElement(d.mh4,null,a().createElement(d.Mtg,{id:"completionDate",datePickerType:"single",dateFormat:"d/m/Y",minDate:new Date(N).toISOString(),maxDate:(new Date).toISOString(),placeholder:"dd/mm/yyyy",onChange:function(e){var t=T(e,1)[0];return F(t)},value:j},a().createElement(d.aj6,{id:"completionDateInput",labelText:""}))):a().createElement(d.Mtg,{id:"completionDate",datePickerType:"single",dateFormat:"d/m/Y",minDate:new Date(N).toISOString(),maxDate:(new Date).toISOString(),placeholder:"dd/mm/yyyy",onChange:function(e){var t=T(e,1)[0];return F(t)},value:j},a().createElement(d.aj6,{id:"completionDateInput",labelText:""}))),a().createElement(d.cwH,{style:{width:"50%"},legendText:y("enrollmentLocation","Enrollment location")},_?a().createElement(d.mh4,null,a().createElement(d.PhF,{id:"location",invalidText:"Required",labelText:"",onChange:function(e){return W(e.target.value)},value:V},V?null:a().createElement(d.QlF,{text:y("chooseLocation","Choose a location"),value:""}),(null==E?void 0:E.length)>0&&E.map((function(e){return a().createElement(d.QlF,{key:e.uuid,text:e.display,value:e.uuid},e.display)})))):a().createElement(d.PhF,{id:"location",invalidText:"Required",labelText:"",onChange:function(e){return W(e.target.value)},value:V},V?null:a().createElement(d.QlF,{text:y("chooseLocation","Choose a location"),value:""}),(null==E?void 0:E.length)>0&&E.map((function(e){return a().createElement(d.QlF,{key:e.uuid,text:e.display,value:e.uuid},e.display)}))))),a().createElement(d.uVA,{className:_?k.tablet:k.desktop},a().createElement(d.zxk,{className:k.button,kind:"secondary",onClick:function(){return f()}},y("cancel","Cancel")),a().createElement(d.zxk,{className:k.button,kind:"primary",disabled:!q,type:"submit"},y("saveAndClose","Save and close"))))}},4076:(e,t,r)=>{r.d(t,{Bw:()=>m,YX:()=>g,b$:()=>f,df:()=>p,o9:()=>c,oI:()=>d});var n=r(9857),a=r(906),o=r(4200),l=r(3863),i=r(8827),u=r(819);function s(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var c="custom:(uuid,display,program,dateEnrolled,dateCompleted,location:(uuid,display))";function m(e){var t,r=(0,n.ZP)("/ws/rest/v1/programenrollment?patient=".concat(e,"&v=").concat(c),a.openmrsFetch),l=r.data,i=r.error,u=r.isValidating,s=(null==l||null===(t=l.data)||void 0===t?void 0:t.results.length)>0?null==l?void 0:l.data.results.sort((function(e,t){return t.dateEnrolled>e.dateEnrolled?1:-1})):null,m=null==s?void 0:s.filter((function(e){return!e.dateCompleted}));return{data:l?(0,o.Z)(s,(function(e){var t;return null==e||null===(t=e.program)||void 0===t?void 0:t.uuid})):null,isError:i,isLoading:!l&&!i,isValidating:u,activeEnrollments:m}}function d(e){var t,r,o=(0,n.ZP)("/ws/rest/v1/program?v=custom:(uuid,display,allWorkflows,concept:(uuid,display))",a.openmrsFetch),s=o.data,c=o.error,m=null!==(r=null==s||null===(t=s.data)||void 0===t?void 0:t.results)&&void 0!==r?r:null;return{data:m,isError:c,isLoading:!s&&!c,eligiblePrograms:(0,l.Z)(m,(function(t){return!(0,i.Z)((0,u.Z)(e,"program.uuid"),t.uuid)}))}}function p(e,t){if(!e)return null;var r=e.program,n=e.patient,o=e.dateEnrolled,l=e.dateCompleted,i=e.location;return(0,a.openmrsObservableFetch)("/ws/rest/v1/programenrollment",{method:"POST",headers:{"Content-Type":"application/json"},body:{program:r,patient:n,dateEnrolled:o,dateCompleted:l,location:i},signal:t.signal})}function g(e,t,r){if(!t&&!t.program)return null;t.program;var n=t.dateEnrolled,o=t.dateCompleted,l=t.location;return(0,a.openmrsObservableFetch)("/ws/rest/v1/programenrollment/".concat(e),{method:"POST",headers:{"Content-Type":"application/json"},body:{dateEnrolled:n,dateCompleted:o,location:l},signal:r.signal})}var f=function(e){var t,r,o=(0,a.useConfig)().customUrl,l=m(e),i=l.data,u=l.isError,c=l.isLoading,p=l.isValidating,g=l.activeEnrollments,f=d(i),v=f.data,b=f.eligiblePrograms,y=function(e){var t,r=(0,a.useConfig)().customUrl,o=(0,n.ZP)(r?"".concat(r).concat(e):null,a.openmrsFetch),l=o.data,i=o.error;return{configurablePrograms:null!==(t=null==l?void 0:l.data)&&void 0!==t?t:[],isLoading:!l&&!i,error:i}}(e),_=y.configurablePrograms,h=y.isLoading,E=y.error;return t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){s(e,t,r[t])}))}return e}({enrollments:i},o?{isLoading:h,isError:E}:{isLoading:c,isError:u}),r=null!=(r={isValidating:p,activeEnrollments:g,availablePrograms:v,eligiblePrograms:b,configurablePrograms:_})?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r}(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})),t}},1154:(e,t,r)=>{r.d(t,{Z:()=>l});const n=function(e,t,r){for(var n=-1,a=Object(e),o=r(e),l=o.length;l--;){var i=o[++n];if(!1===t(a[i],i,a))break}return e};var a=r(6892);var o=r(3282);const l=(i=function(e,t){return e&&n(e,t,a.Z)},function(e,t){if(null==e)return e;if(!(0,o.Z)(e))return i(e,t);for(var r=e.length,n=-1,a=Object(e);++n<r&&!1!==t(a[n],n,a););return e});var i},3863:(e,t,r)=>{r.d(t,{Z:()=>u});var n=r(2300),a=r(1154);const o=function(e,t){var r=[];return(0,a.Z)(e,(function(e,n,a){t(e,n,a)&&r.push(e)})),r};var l=r(7954),i=r(7885);const u=function(e,t){return((0,i.Z)(e)?n.Z:o)(e,(0,l.Z)(t,3))}},8827:(e,t,r)=>{r.d(t,{Z:()=>w});var n=r(1266),a=r(3282),o=r(9001),l=r(7885),i=r(3391);var u=/\s/;var s=/^\s+/;const c=function(e){return e?e.slice(0,function(e){for(var t=e.length;t--&&u.test(e.charAt(t)););return t}(e)+1).replace(s,""):e};var m=r(3122),d=r(2758),p=/^[-+]0x[0-9a-f]+$/i,g=/^0b[01]+$/i,f=/^0o[0-7]+$/i,v=parseInt;const b=function(e){return e?Infinity===(e=function(e){if("number"==typeof e)return e;if((0,d.Z)(e))return NaN;if((0,m.Z)(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=(0,m.Z)(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=c(e);var r=g.test(e);return r||f.test(e)?v(e.slice(2),r?2:8):p.test(e)?NaN:+e}(e))||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0};var y=r(5598);var _=r(6892);const h=function(e){return null==e?[]:function(e,t){return(0,y.Z)(t,(function(t){return e[t]}))}(e,(0,_.Z)(e))};var E=Math.max;const w=function(e,t,r,u){e=(0,a.Z)(e)?e:h(e),r=r&&!u?function(e){var t=b(e),r=t%1;return t==t?r?t-r:t:0}(r):0;var s=e.length;return r<0&&(r=E(s+r,0)),function(e){return"string"==typeof e||!(0,l.Z)(e)&&(0,i.Z)(e)&&"[object String]"==(0,o.Z)(e)}(e)?r<=s&&e.indexOf(t,r)>-1:!!s&&(0,n.Z)(e,t,r)>-1}},819:(e,t,r)=>{r.d(t,{Z:()=>s});var n=r(5598),a=r(7954),o=r(1154),l=r(3282);const i=function(e,t){var r=-1,n=(0,l.Z)(e)?Array(e.length):[];return(0,o.Z)(e,(function(e,a,o){n[++r]=t(e,a,o)})),n};var u=r(7885);const s=function(e,t){return((0,u.Z)(e)?n.Z:i)(e,(0,a.Z)(t,3))}}}]);
@@ -48,7 +48,7 @@
48
48
  "main.js"
49
49
  ],
50
50
  "auxiliaryFiles": [],
51
- "hash": "567ea82361b25f0be8af",
51
+ "hash": "17437efa05d870821eaf",
52
52
  "childrenByOrder": {}
53
53
  },
54
54
  {
@@ -165,7 +165,7 @@
165
165
  "435.js"
166
166
  ],
167
167
  "auxiliaryFiles": [],
168
- "hash": "a5cd2369d7c892d069f6",
168
+ "hash": "bc6393de0f65f4fa5938",
169
169
  "childrenByOrder": {}
170
170
  },
171
171
  {
@@ -198,9 +198,9 @@
198
198
  "initial": false,
199
199
  "entry": false,
200
200
  "recorded": false,
201
- "size": 1074,
201
+ "size": 1122,
202
202
  "sizes": {
203
- "javascript": 1074
203
+ "javascript": 1122
204
204
  },
205
205
  "names": [],
206
206
  "idHints": [],
@@ -212,7 +212,7 @@
212
212
  "574.js"
213
213
  ],
214
214
  "auxiliaryFiles": [],
215
- "hash": "2c7571f50bf6c04f00cd",
215
+ "hash": "451d31e4b5062ef2b521",
216
216
  "childrenByOrder": {}
217
217
  },
218
218
  {
@@ -287,9 +287,9 @@
287
287
  "initial": false,
288
288
  "entry": false,
289
289
  "recorded": false,
290
- "size": 38663,
290
+ "size": 41884,
291
291
  "sizes": {
292
- "javascript": 38621,
292
+ "javascript": 41842,
293
293
  "consume-shared": 42
294
294
  },
295
295
  "names": [],
@@ -302,7 +302,7 @@
302
302
  "733.js"
303
303
  ],
304
304
  "auxiliaryFiles": [],
305
- "hash": "047804bc6d35380506d1",
305
+ "hash": "8e0205ddb8738e0758d4",
306
306
  "childrenByOrder": {}
307
307
  },
308
308
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openmrs/esm-patient-programs-app",
3
- "version": "4.0.1-pre.265",
3
+ "version": "4.0.1-pre.271",
4
4
  "license": "MPL-2.0",
5
5
  "description": "Patient programs microfrontend for the OpenMRS SPA",
6
6
  "browser": "dist/openmrs-esm-patient-programs-app.js",
@@ -35,7 +35,7 @@
35
35
  },
36
36
  "dependencies": {
37
37
  "@carbon/react": "^1.9.0",
38
- "@openmrs/esm-patient-common-lib": "^4.0.1-pre.265",
38
+ "@openmrs/esm-patient-common-lib": "^4.0.1-pre.271",
39
39
  "d3": "^7.0.3",
40
40
  "lodash-es": "^4.17.15"
41
41
  },
@@ -51,5 +51,5 @@
51
51
  "devDependencies": {
52
52
  "webpack": "^5.74.0"
53
53
  },
54
- "gitHead": "f384205b2db697d23c6d4cc108ba05a6512fa83b"
54
+ "gitHead": "d074ab897c1e9dfae9143443655d45b08ce8e68f"
55
55
  }
@@ -1,19 +1,10 @@
1
1
  import React, { SyntheticEvent } from 'react';
2
2
  import { useTranslation } from 'react-i18next';
3
+ import { useSWRConfig } from 'swr';
3
4
  import dayjs from 'dayjs';
4
5
  import filter from 'lodash-es/filter';
5
6
  import includes from 'lodash-es/includes';
6
7
  import map from 'lodash-es/map';
7
- import { useSWRConfig } from 'swr';
8
- import {
9
- createErrorHandler,
10
- showNotification,
11
- showToast,
12
- useSession,
13
- useLocations,
14
- useLayoutType,
15
- parseDate,
16
- } from '@openmrs/esm-framework';
17
8
  import {
18
9
  Button,
19
10
  ButtonSet,
@@ -21,10 +12,22 @@ import {
21
12
  DatePickerInput,
22
13
  Form,
23
14
  FormGroup,
15
+ InlineNotification,
16
+ Layer,
24
17
  Select,
25
18
  SelectItem,
26
19
  Stack,
27
20
  } from '@carbon/react';
21
+ import {
22
+ createErrorHandler,
23
+ showNotification,
24
+ showToast,
25
+ useSession,
26
+ useLocations,
27
+ useLayoutType,
28
+ parseDate,
29
+ } from '@openmrs/esm-framework';
30
+ import { DefaultWorkspaceProps } from '@openmrs/esm-patient-common-lib';
28
31
  import {
29
32
  createProgramEnrollment,
30
33
  useAvailablePrograms,
@@ -32,7 +35,6 @@ import {
32
35
  customRepresentation,
33
36
  updateProgramEnrollment,
34
37
  } from './programs.resource';
35
- import { DefaultWorkspaceProps } from '@openmrs/esm-patient-common-lib';
36
38
  import styles from './programs-form.scss';
37
39
 
38
40
  interface ProgramsFormProps extends DefaultWorkspaceProps {
@@ -48,6 +50,7 @@ const ProgramsForm: React.FC<ProgramsFormProps> = ({ closeWorkspace, patientUuid
48
50
 
49
51
  const { data: availablePrograms } = useAvailablePrograms();
50
52
  const { data: enrollments } = useEnrollments(patientUuid);
53
+
51
54
  const currentEnrollment = programEnrollmentId && enrollments.filter((e) => e.uuid == programEnrollmentId)[0];
52
55
  const currentProgram = currentEnrollment
53
56
  ? {
@@ -59,6 +62,7 @@ const ProgramsForm: React.FC<ProgramsFormProps> = ({ closeWorkspace, patientUuid
59
62
  const eligiblePrograms = currentProgram
60
63
  ? [currentProgram]
61
64
  : filter(availablePrograms, (program) => !includes(map(enrollments, 'program.uuid'), program.uuid));
65
+
62
66
  const [completionDate, setCompletionDate] = React.useState<Date>(
63
67
  currentEnrollment?.dateCompleted ? parseDate(currentEnrollment.dateCompleted) : null,
64
68
  );
@@ -163,71 +167,148 @@ const ProgramsForm: React.FC<ProgramsFormProps> = ({ closeWorkspace, patientUuid
163
167
  return (
164
168
  <Form className={styles.form} onSubmit={handleSubmit}>
165
169
  <Stack className={styles.formContainer} gap={7}>
170
+ {!eligiblePrograms.length ? (
171
+ <InlineNotification
172
+ style={{ minWidth: '100%', margin: '0rem', padding: '0rem' }}
173
+ kind={'error'}
174
+ lowContrast
175
+ subtitle={t('configurePrograms', 'Please configure programs to continue.')}
176
+ title={t('noProgramsConfigured', 'No programs configured')}
177
+ />
178
+ ) : null}
166
179
  <FormGroup style={{ maxWidth: '50%' }} legendText={t('programName', 'Program name')}>
167
180
  <div className={styles.selectContainer}>
168
- <Select
169
- id="program"
170
- invalidText={t('required', 'Required')}
171
- labelText=""
172
- light={isTablet}
173
- onChange={(event) => setSelectedProgram(event.target.value)}
174
- >
175
- {!selectedProgram ? <SelectItem text={t('chooseProgram', 'Choose a program')} value="" /> : null}
176
- {eligiblePrograms?.length > 0 &&
177
- eligiblePrograms.map((program) => (
178
- <SelectItem key={program.uuid} text={program.display} value={program.uuid}>
179
- {program.display}
180
- </SelectItem>
181
- ))}
182
- </Select>
181
+ {isTablet ? (
182
+ <Layer>
183
+ <Select
184
+ id="program"
185
+ invalidText={t('required', 'Required')}
186
+ labelText=""
187
+ onChange={(event) => setSelectedProgram(event.target.value)}
188
+ >
189
+ {!selectedProgram ? <SelectItem text={t('chooseProgram', 'Choose a program')} value="" /> : null}
190
+ {eligiblePrograms?.length > 0 &&
191
+ eligiblePrograms.map((program) => (
192
+ <SelectItem key={program.uuid} text={program.display} value={program.uuid}>
193
+ {program.display}
194
+ </SelectItem>
195
+ ))}
196
+ </Select>
197
+ </Layer>
198
+ ) : (
199
+ <Select
200
+ id="program"
201
+ invalidText={t('required', 'Required')}
202
+ labelText=""
203
+ onChange={(event) => setSelectedProgram(event.target.value)}
204
+ >
205
+ {!selectedProgram ? <SelectItem text={t('chooseProgram', 'Choose a program')} value="" /> : null}
206
+ {eligiblePrograms?.length > 0 &&
207
+ eligiblePrograms.map((program) => (
208
+ <SelectItem key={program.uuid} text={program.display} value={program.uuid}>
209
+ {program.display}
210
+ </SelectItem>
211
+ ))}
212
+ </Select>
213
+ )}
183
214
  </div>
184
215
  </FormGroup>
185
216
  <FormGroup style={{ maxWidth: '50%' }} legendText={t('dateEnrolled', 'Date enrolled')}>
186
- <DatePicker
187
- id="enrollmentDate"
188
- datePickerType="single"
189
- dateFormat="d/m/Y"
190
- light={isTablet}
191
- maxDate={new Date().toISOString()}
192
- placeholder="dd/mm/yyyy"
193
- onChange={([date]) => setEnrollmentDate(date)}
194
- value={enrollmentDate}
195
- >
196
- <DatePickerInput id="enrollmentDateInput" labelText="" />
197
- </DatePicker>
217
+ {isTablet ? (
218
+ <Layer>
219
+ <DatePicker
220
+ id="enrollmentDate"
221
+ datePickerType="single"
222
+ dateFormat="d/m/Y"
223
+ maxDate={new Date().toISOString()}
224
+ placeholder="dd/mm/yyyy"
225
+ onChange={([date]) => setEnrollmentDate(date)}
226
+ value={enrollmentDate}
227
+ >
228
+ <DatePickerInput id="enrollmentDateInput" labelText="" />
229
+ </DatePicker>
230
+ </Layer>
231
+ ) : (
232
+ <DatePicker
233
+ id="enrollmentDate"
234
+ datePickerType="single"
235
+ dateFormat="d/m/Y"
236
+ maxDate={new Date().toISOString()}
237
+ placeholder="dd/mm/yyyy"
238
+ onChange={([date]) => setEnrollmentDate(date)}
239
+ value={enrollmentDate}
240
+ >
241
+ <DatePickerInput id="enrollmentDateInput" labelText="" />
242
+ </DatePicker>
243
+ )}
198
244
  </FormGroup>
199
245
  <FormGroup style={{ width: '50%' }} legendText={t('dateCompleted', 'Date completed')}>
200
- <DatePicker
201
- id="completionDate"
202
- datePickerType="single"
203
- dateFormat="d/m/Y"
204
- light={isTablet}
205
- minDate={new Date(enrollmentDate).toISOString()}
206
- maxDate={new Date().toISOString()}
207
- placeholder="dd/mm/yyyy"
208
- onChange={([date]) => setCompletionDate(date)}
209
- value={completionDate}
210
- >
211
- <DatePickerInput id="completionDateInput" labelText="" />
212
- </DatePicker>
246
+ {isTablet ? (
247
+ <Layer>
248
+ <DatePicker
249
+ id="completionDate"
250
+ datePickerType="single"
251
+ dateFormat="d/m/Y"
252
+ minDate={new Date(enrollmentDate).toISOString()}
253
+ maxDate={new Date().toISOString()}
254
+ placeholder="dd/mm/yyyy"
255
+ onChange={([date]) => setCompletionDate(date)}
256
+ value={completionDate}
257
+ >
258
+ <DatePickerInput id="completionDateInput" labelText="" />
259
+ </DatePicker>
260
+ </Layer>
261
+ ) : (
262
+ <DatePicker
263
+ id="completionDate"
264
+ datePickerType="single"
265
+ dateFormat="d/m/Y"
266
+ minDate={new Date(enrollmentDate).toISOString()}
267
+ maxDate={new Date().toISOString()}
268
+ placeholder="dd/mm/yyyy"
269
+ onChange={([date]) => setCompletionDate(date)}
270
+ value={completionDate}
271
+ >
272
+ <DatePickerInput id="completionDateInput" labelText="" />
273
+ </DatePicker>
274
+ )}
213
275
  </FormGroup>
214
276
  <FormGroup style={{ width: '50%' }} legendText={t('enrollmentLocation', 'Enrollment location')}>
215
- <Select
216
- id="location"
217
- invalidText="Required"
218
- labelText=""
219
- light={isTablet}
220
- onChange={(event) => setUserLocation(event.target.value)}
221
- value={userLocation}
222
- >
223
- {!userLocation ? <SelectItem text={t('chooseLocation', 'Choose a location')} value="" /> : null}
224
- {availableLocations?.length > 0 &&
225
- availableLocations.map((location) => (
226
- <SelectItem key={location.uuid} text={location.display} value={location.uuid}>
227
- {location.display}
228
- </SelectItem>
229
- ))}
230
- </Select>
277
+ {isTablet ? (
278
+ <Layer>
279
+ <Select
280
+ id="location"
281
+ invalidText="Required"
282
+ labelText=""
283
+ onChange={(event) => setUserLocation(event.target.value)}
284
+ value={userLocation}
285
+ >
286
+ {!userLocation ? <SelectItem text={t('chooseLocation', 'Choose a location')} value="" /> : null}
287
+ {availableLocations?.length > 0 &&
288
+ availableLocations.map((location) => (
289
+ <SelectItem key={location.uuid} text={location.display} value={location.uuid}>
290
+ {location.display}
291
+ </SelectItem>
292
+ ))}
293
+ </Select>
294
+ </Layer>
295
+ ) : (
296
+ <Select
297
+ id="location"
298
+ invalidText="Required"
299
+ labelText=""
300
+ onChange={(event) => setUserLocation(event.target.value)}
301
+ value={userLocation}
302
+ >
303
+ {!userLocation ? <SelectItem text={t('chooseLocation', 'Choose a location')} value="" /> : null}
304
+ {availableLocations?.length > 0 &&
305
+ availableLocations.map((location) => (
306
+ <SelectItem key={location.uuid} text={location.display} value={location.uuid}>
307
+ {location.display}
308
+ </SelectItem>
309
+ ))}
310
+ </Select>
311
+ )}
231
312
  </FormGroup>
232
313
  </Stack>
233
314
  <ButtonSet className={isTablet ? styles.tablet : styles.desktop}>
@@ -21,6 +21,7 @@
21
21
  "fullyEnrolled": "Enrolled in all programs",
22
22
  "location": "Location",
23
23
  "noEligibleEnrollments": "There are no more programs left to enroll this patient in",
24
+ "noProgramsConfigured": "No programs configured",
24
25
  "programEnrollments": "Program enrollments",
25
26
  "programEnrollmentSaveError": "Error saving program enrollment",
26
27
  "programName": "Program name",