@openmrs/esm-appointments-app 6.1.1-pre.3265 → 7.0.0
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/.turbo/turbo-build.log +13 -13
- package/dist/130.js +1 -1
- package/dist/130.js.map +1 -1
- package/dist/309.js +1 -1
- package/dist/4.js +1 -1
- package/dist/459.js +1 -1
- package/dist/459.js.map +1 -1
- package/dist/574.js +1 -1
- package/dist/96.js +2 -0
- package/dist/96.js.map +1 -0
- package/dist/main.js +1 -1
- package/dist/main.js.map +1 -1
- package/dist/openmrs-esm-appointments-app.js +1 -1
- package/dist/openmrs-esm-appointments-app.js.buildmanifest.json +20 -20
- package/dist/routes.json +1 -1
- package/package.json +2 -3
- package/src/patient-appointments/patient-upcoming-appointments-card.component.tsx +45 -47
- package/translations/en.json +1 -1
- package/dist/57.js +0 -2
- package/dist/57.js.map +0 -1
- /package/dist/{57.js.LICENSE.txt → 96.js.LICENSE.txt} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
var _openmrs_esm_appointments_app;(()=>{"use strict";var e,r,t,n,o,a,i,l,s,u,p,f,d,m,c,h={5605:(e,r,t)=>{var n={"./start":()=>Promise.all([t.e(255),t.e(592),t.e(
|
|
1
|
+
var _openmrs_esm_appointments_app;(()=>{"use strict";var e,r,t,n,o,a,i,l,s,u,p,f,d,m,c,h={5605:(e,r,t)=>{var n={"./start":()=>Promise.all([t.e(255),t.e(592),t.e(96),t.e(268),t.e(325),t.e(659),t.e(459)]).then((()=>()=>t(9459)))},o=(e,r)=>(t.R=r,r=t.o(n,e)?n[e]():Promise.resolve().then((()=>{throw new Error('Module "'+e+'" does not exist in container.')})),t.R=void 0,r),a=(e,r)=>{if(t.S){var n="default",o=t.S[n];if(o&&o!==e)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return t.S[n]=e,t.I(n,r)}};t.d(r,{get:()=>o,init:()=>a})}},v={};function g(e){var r=v[e];if(void 0!==r)return r.exports;var t=v[e]={id:e,loaded:!1,exports:{}};return h[e].call(t.exports,t,t.exports,g),t.loaded=!0,t.exports}g.m=h,g.c=v,g.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return g.d(r,{a:r}),r},g.d=(e,r)=>{for(var t in r)g.o(r,t)&&!g.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},g.f={},g.e=e=>Promise.all(Object.keys(g.f).reduce(((r,t)=>(g.f[t](e,r),r)),[])),g.u=e=>e+".js",g.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),g.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),e={},r="@openmrs/esm-appointments-app:",g.l=(t,n,o,a)=>{if(e[t])e[t].push(n);else{var i,l;if(void 0!==o)for(var s=document.getElementsByTagName("script"),u=0;u<s.length;u++){var p=s[u];if(p.getAttribute("src")==t||p.getAttribute("data-webpack")==r+o){i=p;break}}i||(l=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,g.nc&&i.setAttribute("nonce",g.nc),i.setAttribute("data-webpack",r+o),i.src=t),e[t]=[n];var f=(r,n)=>{i.onerror=i.onload=null,clearTimeout(d);var o=e[t];if(delete e[t],i.parentNode&&i.parentNode.removeChild(i),o&&o.forEach((e=>e(n))),r)return r(n)},d=setTimeout(f.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=f.bind(null,i.onerror),i.onload=f.bind(null,i.onload),l&&document.head.appendChild(i)}},g.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},g.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{g.S={};var e={},r={};g.I=(t,n)=>{n||(n=[]);var o=r[t];if(o||(o=r[t]={}),!(n.indexOf(o)>=0)){if(n.push(o),e[t])return e[t];g.o(g.S,t)||(g.S[t]={});var a=g.S[t],i="@openmrs/esm-appointments-app",l=(e,r,t,n)=>{var o=a[e]=a[e]||{},l=o[r];(!l||!l.loaded&&(!n!=!l.eager?n:i>l.from))&&(o[r]={get:t,from:i,eager:!!n})},s=[];return"default"===t&&(l("@openmrs/esm-framework","5.5.1-pre.1771",(()=>Promise.all([g.e(130),g.e(268)]).then((()=>()=>g(130))))),l("@openmrs/esm-patient-common-lib","7.1.1-pre.4516",(()=>Promise.all([g.e(255),g.e(45),g.e(592),g.e(268),g.e(325),g.e(659),g.e(198)]).then((()=>()=>g(3045))))),l("react-i18next","11.18.6",(()=>Promise.all([g.e(588),g.e(268)]).then((()=>()=>g(6588))))),l("react-router-dom","6.4.3",(()=>Promise.all([g.e(591),g.e(268)]).then((()=>()=>g(6591))))),l("react","18.2.0",(()=>g.e(784).then((()=>()=>g(2784))))),l("swr/_internal","2.0.1",(()=>Promise.all([g.e(729),g.e(268)]).then((()=>()=>g(4729))))),l("swr/immutable","2.0.1",(()=>Promise.all([g.e(255),g.e(268),g.e(325),g.e(303)]).then((()=>()=>g(2303)))))),e[t]=s.length?Promise.all(s).then((()=>e[t]=1)):1}}})(),(()=>{var e;g.g.importScripts&&(e=g.g.location+"");var r=g.g.document;if(!e&&r&&(r.currentScript&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var n=t.length-1;n>-1&&!e;)e=t[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),g.p=e})(),t=e=>{var r=e=>e.split(".").map((e=>+e==e?+e:e)),t=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),n=t[1]?r(t[1]):[];return t[2]&&(n.length++,n.push.apply(n,r(t[2]))),t[3]&&(n.push([]),n.push.apply(n,r(t[3]))),n},n=(e,r)=>{e=t(e),r=t(r);for(var n=0;;){if(n>=e.length)return n<r.length&&"u"!=(typeof r[n])[0];var o=e[n],a=(typeof o)[0];if(n>=r.length)return"u"==a;var i=r[n],l=(typeof i)[0];if(a!=l)return"o"==a&&"n"==l||"s"==l||"u"==a;if("o"!=a&&"u"!=a&&o!=i)return o<i;n++}},o=e=>{var r=e[0],t="";if(1===e.length)return"*";if(r+.5){t+=0==r?">=":-1==r?"<":1==r?"^":2==r?"~":r>0?"=":"!=";for(var n=1,a=1;a<e.length;a++)n--,t+="u"==(typeof(l=e[a]))[0]?"-":(n>0?".":"")+(n=2,l);return t}var i=[];for(a=1;a<e.length;a++){var l=e[a];i.push(0===l?"not("+s()+")":1===l?"("+s()+" || "+s()+")":2===l?i.pop()+" "+i.pop():o(l))}return s();function s(){return i.pop().replace(/^\((.+)\)$/,"$1")}},a=(e,r)=>{if(0 in e){r=t(r);var n=e[0],o=n<0;o&&(n=-n-1);for(var i=0,l=1,s=!0;;l++,i++){var u,p,f=l<e.length?(typeof e[l])[0]:"";if(i>=r.length||"o"==(p=(typeof(u=r[i]))[0]))return!s||("u"==f?l>n&&!o:""==f!=o);if("u"==p){if(!s||"u"!=f)return!1}else if(s)if(f==p)if(l<=n){if(u!=e[l])return!1}else{if(o?u>e[l]:u<e[l])return!1;u!=e[l]&&(s=!1)}else if("s"!=f&&"n"!=f){if(o||l<=n)return!1;s=!1,l--}else{if(l<=n||p<f!=o)return!1;s=!1}else"s"!=f&&"n"!=f&&(s=!1,l--)}}var d=[],m=d.pop.bind(d);for(i=1;i<e.length;i++){var c=e[i];d.push(1==c?m()|m():2==c?m()&m():c?a(c,r):!m())}return!!m()},i=(e,r)=>{var t=e[r];return Object.keys(t).reduce(((e,r)=>!e||!t[e].loaded&&n(e,r)?r:e),0)},l=(e,r,t,n)=>"Unsatisfied version "+t+" from "+(t&&e[r][t].from)+" of shared singleton module "+r+" (required "+o(n)+")",s=(e,r,t,n)=>{var o=i(e,t);return a(n,o)||u(l(e,t,o,n)),p(e[t][o])},u=e=>{"undefined"!=typeof console&&console.warn&&console.warn(e)},p=e=>(e.loaded=1,e.get()),f=(e=>function(r,t,n,o){var a=g.I(r);return a&&a.then?a.then(e.bind(e,r,g.S[r],t,n,o)):e(0,g.S[r],t,n,o)})(((e,r,t,n,o)=>r&&g.o(r,t)?s(r,0,t,n):o())),d={},m={268:()=>f("default","react",[1,18],(()=>g.e(784).then((()=>()=>g(2784))))),3325:()=>f("default","swr/_internal",[1,2],(()=>g.e(729).then((()=>()=>g(4729))))),2870:()=>f("default","@openmrs/esm-framework",[1,5],(()=>g.e(130).then((()=>()=>g(130))))),4924:()=>f("default","react-i18next",[1,11],(()=>g.e(588).then((()=>()=>g(6588))))),5285:()=>f("default","@openmrs/esm-patient-common-lib",[1,7],(()=>Promise.all([g.e(45),g.e(198)]).then((()=>()=>g(3045))))),8744:()=>f("default","react-router-dom",[1,6],(()=>g.e(591).then((()=>()=>g(6591))))),9198:()=>f("default","swr/immutable",[1,2],(()=>g.e(152).then((()=>()=>g(2303)))))},c={198:[9198],268:[268],325:[3325],659:[2870,4924,5285,8744]},g.f.consumes=(e,r)=>{g.o(c,e)&&c[e].forEach((e=>{if(g.o(d,e))return r.push(d[e]);var t=r=>{d[e]=0,g.m[e]=t=>{delete g.c[e],t.exports=r()}},n=r=>{delete d[e],g.m[e]=t=>{throw delete g.c[e],r}};try{var o=m[e]();o.then?r.push(d[e]=o.then(t).catch(n)):t(o)}catch(e){n(e)}}))},(()=>{var e={529:0};g.f.j=(r,t)=>{var n=g.o(e,r)?e[r]:void 0;if(0!==n)if(n)t.push(n[2]);else if(/^(198|268|325|659)$/.test(r))e[r]=0;else{var o=new Promise(((t,o)=>n=e[r]=[t,o]));t.push(n[2]=o);var a=g.p+g.u(r),i=new Error;g.l(a,(t=>{if(g.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n)){var o=t&&("load"===t.type?"missing":t.type),a=t&&t.target&&t.target.src;i.message="Loading chunk "+r+" failed.\n("+o+": "+a+")",i.name="ChunkLoadError",i.type=o,i.request=a,n[1](i)}}),"chunk-"+r,r)}};var r=(r,t)=>{var n,o,[a,i,l]=t,s=0;if(a.some((r=>0!==e[r]))){for(n in i)g.o(i,n)&&(g.m[n]=i[n]);l&&l(g)}for(r&&r(t);s<a.length;s++)o=a[s],g.o(e,o)&&e[o]&&e[o][0](),e[o]=0},t=globalThis.webpackChunk_openmrs_esm_appointments_app=globalThis.webpackChunk_openmrs_esm_appointments_app||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),g.nc=void 0;var b=g(5605);_openmrs_esm_appointments_app=b})();
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"auxiliaryFiles": [
|
|
22
22
|
"4.js.map"
|
|
23
23
|
],
|
|
24
|
-
"hash": "
|
|
24
|
+
"hash": "95964e5a21110fb0",
|
|
25
25
|
"childrenByOrder": {}
|
|
26
26
|
},
|
|
27
27
|
{
|
|
@@ -57,9 +57,9 @@
|
|
|
57
57
|
"entry": false,
|
|
58
58
|
"recorded": false,
|
|
59
59
|
"reason": "split chunk (cache group: defaultVendors)",
|
|
60
|
-
"size":
|
|
60
|
+
"size": 4183737,
|
|
61
61
|
"sizes": {
|
|
62
|
-
"javascript":
|
|
62
|
+
"javascript": 4183737
|
|
63
63
|
},
|
|
64
64
|
"names": [],
|
|
65
65
|
"idHints": [
|
|
@@ -69,12 +69,12 @@
|
|
|
69
69
|
"@openmrs/esm-appointments-app"
|
|
70
70
|
],
|
|
71
71
|
"files": [
|
|
72
|
-
"
|
|
72
|
+
"96.js"
|
|
73
73
|
],
|
|
74
74
|
"auxiliaryFiles": [
|
|
75
|
-
"
|
|
75
|
+
"96.js.map"
|
|
76
76
|
],
|
|
77
|
-
"hash": "
|
|
77
|
+
"hash": "4ba1609a97b72af6",
|
|
78
78
|
"childrenByOrder": {}
|
|
79
79
|
},
|
|
80
80
|
{
|
|
@@ -83,9 +83,9 @@
|
|
|
83
83
|
"entry": false,
|
|
84
84
|
"recorded": false,
|
|
85
85
|
"reason": "reused as split chunk (cache group: defaultVendors)",
|
|
86
|
-
"size":
|
|
86
|
+
"size": 1720223,
|
|
87
87
|
"sizes": {
|
|
88
|
-
"javascript":
|
|
88
|
+
"javascript": 1720223
|
|
89
89
|
},
|
|
90
90
|
"names": [],
|
|
91
91
|
"idHints": [
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
"auxiliaryFiles": [
|
|
102
102
|
"130.js.map"
|
|
103
103
|
],
|
|
104
|
-
"hash": "
|
|
104
|
+
"hash": "629fa4a100f8cb4f",
|
|
105
105
|
"childrenByOrder": {}
|
|
106
106
|
},
|
|
107
107
|
{
|
|
@@ -133,10 +133,10 @@
|
|
|
133
133
|
"initial": true,
|
|
134
134
|
"entry": true,
|
|
135
135
|
"recorded": false,
|
|
136
|
-
"size":
|
|
136
|
+
"size": 4754128,
|
|
137
137
|
"sizes": {
|
|
138
138
|
"consume-shared": 252,
|
|
139
|
-
"javascript":
|
|
139
|
+
"javascript": 4732510,
|
|
140
140
|
"share-init": 294,
|
|
141
141
|
"runtime": 21072
|
|
142
142
|
},
|
|
@@ -153,7 +153,7 @@
|
|
|
153
153
|
"auxiliaryFiles": [
|
|
154
154
|
"main.js.map"
|
|
155
155
|
],
|
|
156
|
-
"hash": "
|
|
156
|
+
"hash": "28562cea3dec12cd",
|
|
157
157
|
"childrenByOrder": {}
|
|
158
158
|
},
|
|
159
159
|
{
|
|
@@ -292,7 +292,7 @@
|
|
|
292
292
|
"auxiliaryFiles": [
|
|
293
293
|
"309.js.map"
|
|
294
294
|
],
|
|
295
|
-
"hash": "
|
|
295
|
+
"hash": "468767a754a562b6",
|
|
296
296
|
"childrenByOrder": {}
|
|
297
297
|
},
|
|
298
298
|
{
|
|
@@ -343,9 +343,9 @@
|
|
|
343
343
|
"initial": false,
|
|
344
344
|
"entry": false,
|
|
345
345
|
"recorded": false,
|
|
346
|
-
"size":
|
|
346
|
+
"size": 413001,
|
|
347
347
|
"sizes": {
|
|
348
|
-
"javascript":
|
|
348
|
+
"javascript": 413001
|
|
349
349
|
},
|
|
350
350
|
"names": [],
|
|
351
351
|
"idHints": [],
|
|
@@ -358,7 +358,7 @@
|
|
|
358
358
|
"auxiliaryFiles": [
|
|
359
359
|
"459.js.map"
|
|
360
360
|
],
|
|
361
|
-
"hash": "
|
|
361
|
+
"hash": "eafeb66804b1ed88",
|
|
362
362
|
"childrenByOrder": {}
|
|
363
363
|
},
|
|
364
364
|
{
|
|
@@ -407,7 +407,7 @@
|
|
|
407
407
|
"auxiliaryFiles": [
|
|
408
408
|
"openmrs-esm-appointments-app.js.map"
|
|
409
409
|
],
|
|
410
|
-
"hash": "
|
|
410
|
+
"hash": "f88c57b893cce2d9",
|
|
411
411
|
"childrenByOrder": {}
|
|
412
412
|
},
|
|
413
413
|
{
|
|
@@ -415,9 +415,9 @@
|
|
|
415
415
|
"initial": false,
|
|
416
416
|
"entry": false,
|
|
417
417
|
"recorded": false,
|
|
418
|
-
"size":
|
|
418
|
+
"size": 5804,
|
|
419
419
|
"sizes": {
|
|
420
|
-
"javascript":
|
|
420
|
+
"javascript": 5804
|
|
421
421
|
},
|
|
422
422
|
"names": [],
|
|
423
423
|
"idHints": [],
|
|
@@ -429,7 +429,7 @@
|
|
|
429
429
|
"574.js"
|
|
430
430
|
],
|
|
431
431
|
"auxiliaryFiles": [],
|
|
432
|
-
"hash": "
|
|
432
|
+
"hash": "aba95f62663b326b",
|
|
433
433
|
"childrenByOrder": {}
|
|
434
434
|
},
|
|
435
435
|
{
|
package/dist/routes.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"$schema":"https://json.openmrs.org/routes.schema.json","backendDependencies":{"webservices.rest":"^2.2.0"},"modals":[{"name":"end-appointment-modal","component":"endAppointmentModal"}],"extensions":[{"name":"home-appointments","slot":"homepage-widgets-slot","component":"homeAppointments","order":1},{"name":"clinical-appointments-dashboard-link","slot":"homepage-dashboard-slot","component":"appointmentsDashboardLink","meta":{"name":"appointments","slot":"clinical-appointments-dashboard-slot","title":"Appointments"}},{"component":"root","name":"clinical-appointments-dashboard","slot":"clinical-appointments-dashboard-slot"},{"name":"appointments-calendar-dashboard-link","slot":"calendar-dashboard-slot","component":"appointmentsCalendarDashboardLink"},{"name":"check-in-appointment-modal","slot":"todays-appointment-slot","component":"checkInModal"},{"name":"todays-appointments-dashboard","slot":"todays-appointment-slot","component":"homeAppointments"},{"name":"expected-appointments-panel","slot":"scheduled-appointments-panels-slot","component":"appointmentsList"},{"name":"checked-in-appointments-panel","slot":"scheduled-appointments-panels-slot","component":"appointmentsList"},{"name":"completed-appointments-panel","slot":"scheduled-appointments-panels-slot","component":"appointmentsList"},{"name":"missed-appointments-panel","slot":"scheduled-appointments-panels-slot","component":"appointmentsList"},{"name":"cancelled-appointments-panel","slot":"scheduled-appointments-panels-slot","component":"appointmentsList"},{"name":"early-appointments-panel","component":"earlyAppointments"},{"name":"appointments-form-workspace","component":"appointmentsFormWorkspace","meta":{"title":{"key":"createNewAppointment","default":"Create new appointment"}}},{"name":"patient-appointments-summary-dashboard","component":"patientAppointmentsSummaryDashboardLink","slot":"patient-chart-dashboard-slot","order":11,"meta":{"columns":1,"columnSpan":1,"slot":"patient-chart-appointments-dashboard-slot","title":"Appointments","path":"Appointments"}},{"name":"patientAppointments-details-widget","component":"patientAppointmentsDetailedSummary","slot":"patient-chart-appointments-dashboard-slot","meta":{"columnSpan":1}},{"name":"patient-upcoming-appointment-widget","component":"patientUpcomingAppointmentsWidget","slot":"upcoming-appointment-slot"},{"name":"patient-appointment-cancel-confirmation-dialog","component":"patientAppointmentsCancelConfirmationDialog"}],"version":"
|
|
1
|
+
{"$schema":"https://json.openmrs.org/routes.schema.json","backendDependencies":{"webservices.rest":"^2.2.0"},"modals":[{"name":"end-appointment-modal","component":"endAppointmentModal"}],"extensions":[{"name":"home-appointments","slot":"homepage-widgets-slot","component":"homeAppointments","order":1},{"name":"clinical-appointments-dashboard-link","slot":"homepage-dashboard-slot","component":"appointmentsDashboardLink","meta":{"name":"appointments","slot":"clinical-appointments-dashboard-slot","title":"Appointments"}},{"component":"root","name":"clinical-appointments-dashboard","slot":"clinical-appointments-dashboard-slot"},{"name":"appointments-calendar-dashboard-link","slot":"calendar-dashboard-slot","component":"appointmentsCalendarDashboardLink"},{"name":"check-in-appointment-modal","slot":"todays-appointment-slot","component":"checkInModal"},{"name":"todays-appointments-dashboard","slot":"todays-appointment-slot","component":"homeAppointments"},{"name":"expected-appointments-panel","slot":"scheduled-appointments-panels-slot","component":"appointmentsList"},{"name":"checked-in-appointments-panel","slot":"scheduled-appointments-panels-slot","component":"appointmentsList"},{"name":"completed-appointments-panel","slot":"scheduled-appointments-panels-slot","component":"appointmentsList"},{"name":"missed-appointments-panel","slot":"scheduled-appointments-panels-slot","component":"appointmentsList"},{"name":"cancelled-appointments-panel","slot":"scheduled-appointments-panels-slot","component":"appointmentsList"},{"name":"early-appointments-panel","component":"earlyAppointments"},{"name":"appointments-form-workspace","component":"appointmentsFormWorkspace","meta":{"title":{"key":"createNewAppointment","default":"Create new appointment"}}},{"name":"patient-appointments-summary-dashboard","component":"patientAppointmentsSummaryDashboardLink","slot":"patient-chart-dashboard-slot","order":11,"meta":{"columns":1,"columnSpan":1,"slot":"patient-chart-appointments-dashboard-slot","title":"Appointments","path":"Appointments"}},{"name":"patientAppointments-details-widget","component":"patientAppointmentsDetailedSummary","slot":"patient-chart-appointments-dashboard-slot","meta":{"columnSpan":1}},{"name":"patient-upcoming-appointment-widget","component":"patientUpcomingAppointmentsWidget","slot":"upcoming-appointment-slot"},{"name":"patient-appointment-cancel-confirmation-dialog","component":"patientAppointmentsCancelConfirmationDialog"}],"version":"7.0.0"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openmrs/esm-appointments-app",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "7.0.0",
|
|
4
4
|
"description": "Appointments front-end module for the OpenMRS SPA",
|
|
5
5
|
"browser": "dist/openmrs-esm-appointments-app.js",
|
|
6
6
|
"main": "src/index.ts",
|
|
@@ -52,6 +52,5 @@
|
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"webpack": "^5.74.0"
|
|
55
|
-
}
|
|
56
|
-
"stableVersion": "6.1.0"
|
|
55
|
+
}
|
|
57
56
|
}
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import React, { useEffect, useMemo } from 'react';
|
|
1
|
+
import React, { useEffect, useMemo, useState } from 'react';
|
|
2
2
|
import { useTranslation } from 'react-i18next';
|
|
3
|
-
|
|
4
3
|
import {
|
|
5
|
-
Checkbox,
|
|
6
4
|
InlineLoading,
|
|
7
5
|
InlineNotification,
|
|
8
|
-
|
|
6
|
+
RadioButton,
|
|
7
|
+
StructuredListBody,
|
|
9
8
|
StructuredListCell,
|
|
9
|
+
StructuredListHead,
|
|
10
10
|
StructuredListRow,
|
|
11
|
-
StructuredListBody,
|
|
12
11
|
StructuredListWrapper,
|
|
13
12
|
} from '@carbon/react';
|
|
14
13
|
import { formatDate, parseDate } from '@openmrs/esm-framework';
|
|
15
14
|
import { usePatientAppointments } from './patient-appointments.resource';
|
|
16
15
|
import { ErrorState } from '@openmrs/esm-patient-common-lib';
|
|
17
|
-
|
|
18
16
|
import styles from './patient-upcoming-appointments-card.scss';
|
|
19
17
|
import dayjs from 'dayjs';
|
|
18
|
+
import { type Appointment } from '../types';
|
|
19
|
+
|
|
20
20
|
interface PatientUpcomingAppointmentsProps {
|
|
21
21
|
patientUuid: string;
|
|
22
|
-
setUpcomingAppointment: (value:
|
|
22
|
+
setUpcomingAppointment: (value: Appointment) => void;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
const PatientUpcomingAppointmentsCard: React.FC<PatientUpcomingAppointmentsProps> = ({
|
|
@@ -29,6 +29,7 @@ const PatientUpcomingAppointmentsCard: React.FC<PatientUpcomingAppointmentsProps
|
|
|
29
29
|
const { t } = useTranslation();
|
|
30
30
|
const startDate = dayjs(new Date().toISOString()).subtract(6, 'month').toISOString();
|
|
31
31
|
const headerTitle = t('upcomingAppointments', 'Upcoming appointments');
|
|
32
|
+
const [selectedAppointment, setSelectedAppointment] = useState(null);
|
|
32
33
|
|
|
33
34
|
const ac = useMemo<AbortController>(() => new AbortController(), []);
|
|
34
35
|
useEffect(() => () => ac.abort(), [ac]);
|
|
@@ -39,63 +40,40 @@ const PatientUpcomingAppointmentsCard: React.FC<PatientUpcomingAppointmentsProps
|
|
|
39
40
|
? appointmentsData?.upcomingAppointments
|
|
40
41
|
: [];
|
|
41
42
|
|
|
42
|
-
// Filter out checked in appointments
|
|
43
43
|
const appointments = todaysAppointments
|
|
44
44
|
.concat(futureAppointments)
|
|
45
45
|
.filter((appointment) => appointment.status !== 'CheckedIn');
|
|
46
46
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
);
|
|
52
|
-
if (appts?.length === 1) {
|
|
53
|
-
return appts[0];
|
|
47
|
+
useEffect(() => {
|
|
48
|
+
if (appointments.length === 1) {
|
|
49
|
+
setSelectedAppointment(appointments[0]);
|
|
50
|
+
setUpcomingAppointment(appointments[0]);
|
|
54
51
|
}
|
|
55
|
-
}
|
|
52
|
+
}, [appointments]);
|
|
56
53
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
54
|
+
const handleRadioChange = (appointment: Appointment) => {
|
|
55
|
+
setSelectedAppointment(appointment);
|
|
56
|
+
setUpcomingAppointment(appointment);
|
|
57
|
+
};
|
|
60
58
|
|
|
61
59
|
if (isError) {
|
|
62
60
|
return <ErrorState headerTitle={headerTitle} error={isError} />;
|
|
63
61
|
}
|
|
64
62
|
if (isLoading) {
|
|
65
|
-
|
|
66
|
-
<
|
|
67
|
-
|
|
63
|
+
return (
|
|
64
|
+
<span>
|
|
65
|
+
<InlineLoading />
|
|
66
|
+
</span>
|
|
67
|
+
);
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
if (appointments
|
|
71
|
-
const structuredListBodyRowGenerator = () => {
|
|
72
|
-
return appointments.map((appointment, i) => (
|
|
73
|
-
<StructuredListRow label key={`row-${i}`} className={styles.structuredList}>
|
|
74
|
-
<StructuredListCell>{formatDate(parseDate(appointment.startDateTime), { mode: 'wide' })}</StructuredListCell>
|
|
75
|
-
<StructuredListCell>{appointment.service ? appointment.service.name : '——'}</StructuredListCell>
|
|
76
|
-
<StructuredListCell>
|
|
77
|
-
<Checkbox
|
|
78
|
-
className={styles.checkbox}
|
|
79
|
-
key={i}
|
|
80
|
-
labelText=""
|
|
81
|
-
defaultChecked={appointment.uuid === defaultAppointment?.uuid}
|
|
82
|
-
id={appointment.uuid}
|
|
83
|
-
onChange={(e) => (e.target.checked ? setUpcomingAppointment(appointment) : '')}
|
|
84
|
-
/>
|
|
85
|
-
</StructuredListCell>
|
|
86
|
-
</StructuredListRow>
|
|
87
|
-
));
|
|
88
|
-
};
|
|
89
|
-
|
|
70
|
+
if (appointments.length) {
|
|
90
71
|
return (
|
|
91
72
|
<div>
|
|
92
73
|
<div>
|
|
93
74
|
<p className={styles.sectionTitle}>{headerTitle}</p>
|
|
94
|
-
<span className={styles.headerLabel}>
|
|
95
|
-
{t('appointmentToFulfill', 'Select appointment(s) to fulfill')}
|
|
96
|
-
</span>{' '}
|
|
75
|
+
<span className={styles.headerLabel}>{t('appointmentToFulfill', 'Select appointment to fulfill')}</span>
|
|
97
76
|
</div>
|
|
98
|
-
|
|
99
77
|
<StructuredListWrapper>
|
|
100
78
|
<StructuredListHead>
|
|
101
79
|
<StructuredListRow head>
|
|
@@ -104,7 +82,27 @@ const PatientUpcomingAppointmentsCard: React.FC<PatientUpcomingAppointmentsProps
|
|
|
104
82
|
<StructuredListCell head>{t('action', 'Action')}</StructuredListCell>
|
|
105
83
|
</StructuredListRow>
|
|
106
84
|
</StructuredListHead>
|
|
107
|
-
<StructuredListBody>
|
|
85
|
+
<StructuredListBody>
|
|
86
|
+
{appointments.map((appointment, index) => (
|
|
87
|
+
<StructuredListRow key={index} className={styles.structuredList}>
|
|
88
|
+
<StructuredListCell>
|
|
89
|
+
{formatDate(parseDate(appointment.startDateTime), { mode: 'wide' })}
|
|
90
|
+
</StructuredListCell>
|
|
91
|
+
<StructuredListCell>{appointment.service ? appointment.service.name : '——'}</StructuredListCell>
|
|
92
|
+
<StructuredListCell>
|
|
93
|
+
<RadioButton
|
|
94
|
+
className={styles.radioButton}
|
|
95
|
+
labelText=""
|
|
96
|
+
id={`radio-${index}`}
|
|
97
|
+
name="appointmentRadio"
|
|
98
|
+
value={appointment.uuid}
|
|
99
|
+
checked={selectedAppointment === appointment}
|
|
100
|
+
onChange={() => handleRadioChange(appointment)}
|
|
101
|
+
/>
|
|
102
|
+
</StructuredListCell>
|
|
103
|
+
</StructuredListRow>
|
|
104
|
+
))}
|
|
105
|
+
</StructuredListBody>
|
|
108
106
|
</StructuredListWrapper>
|
|
109
107
|
</div>
|
|
110
108
|
);
|
package/translations/en.json
CHANGED
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"appointmentsScheduledForToday": "appointments scheduled for today",
|
|
37
37
|
"appointmentsTable": "Appointments table",
|
|
38
38
|
"appointmentStatus": "Appointment status",
|
|
39
|
-
"appointmentToFulfill": "Select appointment
|
|
39
|
+
"appointmentToFulfill": "Select appointment to fulfill",
|
|
40
40
|
"appointmentType": "Appointment type",
|
|
41
41
|
"appointmentType_title": "Appointment Type",
|
|
42
42
|
"back": "Back",
|