@openmrs/esm-patient-programs-app 3.0.0-pre.65 → 3.0.0-pre.656
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/133.openmrs-esm-patient-programs-app.js +3 -0
- package/dist/133.openmrs-esm-patient-programs-app.js.LICENSE.txt +14 -0
- package/dist/133.openmrs-esm-patient-programs-app.js.map +1 -0
- package/dist/401.openmrs-esm-patient-programs-app.js +3 -0
- package/dist/401.openmrs-esm-patient-programs-app.js.LICENSE.txt +14 -0
- package/dist/401.openmrs-esm-patient-programs-app.js.map +1 -0
- package/dist/574.openmrs-esm-patient-programs-app.js +1 -0
- package/dist/639.openmrs-esm-patient-programs-app.js +2 -0
- package/dist/639.openmrs-esm-patient-programs-app.js.map +1 -0
- package/dist/757.openmrs-esm-patient-programs-app.js +1 -0
- package/dist/783.openmrs-esm-patient-programs-app.js +3 -0
- package/dist/783.openmrs-esm-patient-programs-app.js.LICENSE.txt +23 -0
- package/dist/783.openmrs-esm-patient-programs-app.js.map +1 -0
- package/dist/839.openmrs-esm-patient-programs-app.js +2 -0
- package/dist/839.openmrs-esm-patient-programs-app.js.map +1 -0
- package/dist/972.openmrs-esm-patient-programs-app.js +2 -0
- package/dist/972.openmrs-esm-patient-programs-app.js.map +1 -0
- package/dist/openmrs-esm-patient-programs-app.js +2 -1
- package/dist/openmrs-esm-patient-programs-app.js.LICENSE.txt +5 -0
- package/dist/openmrs-esm-patient-programs-app.js.buildmanifest.json +220 -0
- package/dist/openmrs-esm-patient-programs-app.js.map +1 -1
- package/package.json +10 -11
- package/src/dashboard.meta.tsx +6 -0
- package/src/declarations.d.tsx +3 -3
- package/src/index.ts +31 -30
- package/src/programs/program-record.component.tsx +29 -48
- package/src/programs/program-record.test.outdated.tsx +30 -34
- package/src/programs/programs-detailed-summary.component.tsx +123 -114
- package/src/programs/programs-detailed-summary.scss +24 -0
- package/src/programs/programs-detailed-summary.test.tsx +71 -0
- package/src/programs/programs-form.component.tsx +257 -473
- package/src/programs/programs-form.scss +20 -0
- package/src/programs/programs-form.test.tsx +206 -0
- package/src/programs/programs-overview.component.tsx +44 -74
- package/src/programs/programs-overview.scss +4 -0
- package/src/programs/programs-overview.test.tsx +70 -0
- package/src/programs/programs.component.test.tsx +21 -0
- package/src/programs/programs.component.tsx +6 -10
- package/src/programs/programs.context.tsx +1 -1
- package/src/programs/programs.resource.tsx +31 -43
- package/translations/en.json +29 -1
- package/webpack.config.js +1 -80
- package/dist/0.openmrs-esm-patient-programs-app.js +0 -22
- package/dist/0.openmrs-esm-patient-programs-app.js.map +0 -1
- package/dist/1.openmrs-esm-patient-programs-app.js +0 -2
- package/dist/1.openmrs-esm-patient-programs-app.js.map +0 -1
- package/dist/3.openmrs-esm-patient-programs-app.js +0 -23
- package/dist/3.openmrs-esm-patient-programs-app.js.map +0 -1
- package/dist/4.openmrs-esm-patient-programs-app.js +0 -2
- package/dist/4.openmrs-esm-patient-programs-app.js.map +0 -1
- package/dist/5.openmrs-esm-patient-programs-app.js +0 -2
- package/dist/5.openmrs-esm-patient-programs-app.js.map +0 -1
- package/dist/6.openmrs-esm-patient-programs-app.js +0 -2
- package/dist/6.openmrs-esm-patient-programs-app.js.map +0 -1
- package/dist/7.openmrs-esm-patient-programs-app.js +0 -2
- package/dist/7.openmrs-esm-patient-programs-app.js.map +0 -1
- package/dist/8.openmrs-esm-patient-programs-app.js +0 -2
- package/dist/8.openmrs-esm-patient-programs-app.js.map +0 -1
- package/src/cards/summary-card.component.tsx +0 -82
- package/src/cards/summary-card.css +0 -65
- package/src/dashboard/dashboard-link.component.tsx +0 -7
- package/src/dashboard/dashboard.meta.tsx +0 -6
- package/src/openmrs-backend-dependencies.ts +0 -4
- package/src/programs/empty-state/empty-data-illustration.component.tsx +0 -53
- package/src/programs/empty-state/empty-state.component.tsx +0 -39
- package/src/programs/empty-state/empty-state.scss +0 -34
- package/src/programs/error-state/error-state.component.tsx +0 -26
- package/src/programs/error-state/error-state.scss +0 -36
- package/src/programs/openWorkspaceTab.tsx +0 -40
- package/src/programs/programs-detailed-summary.css +0 -63
- package/src/programs/programs-detailed-summary.test.outdated.tsx +0 -57
- package/src/programs/programs-form.css +0 -95
- package/src/programs/programs-form.test.outdated.tsx +0 -276
- package/src/programs/programs-overview.test.outdated.tsx +0 -73
- package/src/programs/programs.component.test.outdated.tsx +0 -18
- package/src/set-public-path.ts +0 -3
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(window.webpackJsonp_openmrs_esm_patient_programs_app=window.webpackJsonp_openmrs_esm_patient_programs_app||[]).push([[4],{131:function(e,t,r){"use strict";r.r(t);var a=r(6),o=r.n(a),n=r(9),i=r.n(n),s=r(40),l=r(74),m=r(122),g=r(8),c=r(89),p=r.n(c);var d=({error:e,headerTitle:t})=>{var r,a;const{t:n}=Object(g.useTranslation)();return o.a.createElement(m.a,{light:!0,className:p.a.tile},o.a.createElement("h1",{className:p.a.heading},t),o.a.createElement("p",{className:p.a.errorMessage},n("error","Error")," ",(null==e||null===(r=e.response)||void 0===r?void 0:r.status)+": ",null==e||null===(a=e.response)||void 0===a?void 0:a.statusText),o.a.createElement("p",{className:p.a.errorCopy},n("errorCopy")))},f=r(94),h=r(130),u=r(128),_=r(125),b=r(61),v=r(109),y=r(64),w=r(66),k=r(67),x=r(75),z=r(65),E=r(35),M=r(91),P=r.n(M),q=r(0),X=r(30),S=r(47);function C(){return(C=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e}).apply(this,arguments)}t.default=({patientUuid:e})=>{const{t:t}=Object(g.useTranslation)(),[r,a]=o.a.useState(null),[n,m]=o.a.useState(null),[c,p]=o.a.useState(0),[M,T]=o.a.useState(5),j=t("programs","program enrollments"),N=t("carePrograms","Care Programs"),H=t("previousPage","Previous page"),O=t("nextPage","Next Page"),I=t("itemPerPage","Item per page");o.a.useEffect(()=>{if(e){const t=Object(X.b)(e).subscribe(e=>a(e),e=>{m(e),Object(q.createErrorHandler)()});return()=>t.unsubscribe()}},[e]);const A=()=>{Object(S.a)(s.a,t("programsForm","Programs form"))},B=[{key:"display",header:t("activePrograms","Active programs")},{key:"dateEnrolled",header:t("dateEnrolled","Date enrolled")}],D=()=>{if(r.length){const e=(e=>e.slice(c,c+M).map(e=>({id:e.uuid,display:e.display,dateEnrolled:i()(e.dateEnrolled).format("MMM-YYYY")})))(r);return o.a.createElement("div",null,o.a.createElement("div",{className:P.a.programsHeader},o.a.createElement("h4",{className:`${P.a.productiveHeading03} ${P.a.text02}`},N),o.a.createElement(h.a,{kind:"ghost",renderIcon:f.a,iconDescription:"Add programs",onClick:A},t("add","Add"))),o.a.createElement(b.a,null,o.a.createElement(v.a,{rows:e,headers:B,isSortable:!0,size:"short"},({rows:e,headers:t,getHeaderProps:r,getTableProps:a})=>o.a.createElement(y.a,a(),o.a.createElement(w.a,null,o.a.createElement(k.a,null,t.map(e=>{var t,a;return o.a.createElement(x.a,C({className:`${P.a.productiveHeading01} ${P.a.text02}`},r({header:e,isSortable:e.isSortable})),null!==(t=null===(a=e.header)||void 0===a?void 0:a.content)&&void 0!==t?t:e.header)}))),o.a.createElement(z.a,null,e.map(e=>o.a.createElement(k.a,{key:e.id},e.cells.map(e=>{var t,r;return o.a.createElement(E.a,{key:e.id},null!==(t=null===(r=e.value)||void 0===r?void 0:r.content)&&void 0!==t?t:e.value)}))))))),(null==r?void 0:r.length)>5&&o.a.createElement(u.a,{totalItems:r.length,backwardText:H,forwardText:O,pageSize:M,pageSizes:[5,10,15,25],itemsPerPageText:I,onChange:({page:e,pageSize:t})=>{t!==M&&T(t),p(t*(e-1))}}))}return o.a.createElement(l.a,{displayText:j,headerTitle:N,launchForm:A})};return o.a.createElement(o.a.Fragment,null,r?o.a.createElement(D,null):n?o.a.createElement(d,{error:n,headerTitle:N}):o.a.createElement(_.a,{rowCount:5}))}},89:function(e,t,r){var a=r(20),o=r(90);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[e.i,o,""]]);var n={insert:"head",singleton:!1};a(o,n);e.exports=o.locals||{}},90:function(e,t,r){(t=r(21)(!1)).push([e.i,"html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;font:inherit;font-size:100%;vertical-align:baseline;border:0}button,select,input,textarea{font-family:inherit;border-radius:0}input[type=text]::-ms-clear{display:none}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section{display:block}body{line-height:1}sup{vertical-align:super}sub{vertical-align:sub}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote::before,blockquote::after,q::before,q::after{content:\"\"}table{border-collapse:collapse;border-spacing:0}*{box-sizing:border-box}button{margin:0}html{font-size:100%}body{font-weight:400;font-family:'IBM Plex Sans', 'Helvetica Neue', Arial, sans-serif;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:'IBM Plex Mono', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Courier, monospace}strong{font-weight:600}@media screen and (-ms-high-contrast: active){svg{fill:ButtonText}}h1{font-size:2.625rem;font-weight:300;line-height:1.199;letter-spacing:0}h2{font-size:2rem;font-weight:400;line-height:1.25;letter-spacing:0}h3{font-size:1.75rem;font-weight:400;line-height:1.29;letter-spacing:0}h4{font-size:1.25rem;font-weight:400;line-height:1.4;letter-spacing:0}h5{font-size:1rem;font-weight:600;line-height:1.375;letter-spacing:0}h6{font-size:.875rem;font-weight:600;line-height:1.29;letter-spacing:.16px}p{font-size:1rem;font-weight:400;line-height:1.5;letter-spacing:0}a{color:#0f62fe}em{font-style:italic}@keyframes esm-patient-programs__error-state__skeleton___2ecC0{0%{transform:scaleX(0);transform-origin:left;opacity:.3}20%{transform:scaleX(1);transform-origin:left;opacity:1}28%{transform:scaleX(1);transform-origin:right}51%{transform:scaleX(0);transform-origin:right}58%{transform:scaleX(0);transform-origin:right}82%{transform:scaleX(1);transform-origin:right}83%{transform:scaleX(1);transform-origin:left}96%{transform:scaleX(0);transform-origin:left}100%{transform:scaleX(0);transform-origin:left;opacity:.3}}.esm-patient-programs__error-state__errorMessage___117_N{font-size:1rem;font-weight:600;line-height:1.375;letter-spacing:0;color:#161616;margin-top:2.25rem;margin-bottom:.5rem}.esm-patient-programs__error-state__errorCopy___3fIac{margin-bottom:.5rem;font-size:.875rem;font-weight:400;line-height:1.43;letter-spacing:.16px;color:#525252}.esm-patient-programs__error-state__heading___2DYsd{text-align:left;text-transform:capitalize;margin-bottom:1rem;font-size:1.25rem;font-weight:400;line-height:1.4;letter-spacing:0;color:#525252}.esm-patient-programs__error-state__heading___2DYsd:after{content:\"\";display:block;width:2rem;padding-top:.188rem;border-bottom:.375rem solid #007d79}.esm-patient-programs__error-state__tile___1UzOG{text-align:center}",""]),t.locals={errorMessage:"esm-patient-programs__error-state__errorMessage___117_N",errorCopy:"esm-patient-programs__error-state__errorCopy___3fIac",heading:"esm-patient-programs__error-state__heading___2DYsd",tile:"esm-patient-programs__error-state__tile___1UzOG",skeleton:"esm-patient-programs__error-state__skeleton___2ecC0"},e.exports=t},91:function(e,t,r){var a=r(20),o=r(92);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[e.i,o,""]]);var n={insert:"head",singleton:!1};a(o,n);e.exports=o.locals||{}},92:function(e,t,r){(t=r(21)(!1)).push([e.i,"html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;font:inherit;font-size:100%;vertical-align:baseline;border:0}button,select,input,textarea{font-family:inherit;border-radius:0}input[type=text]::-ms-clear{display:none}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section{display:block}body{line-height:1}sup{vertical-align:super}sub{vertical-align:sub}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote::before,blockquote::after,q::before,q::after{content:\"\"}table{border-collapse:collapse;border-spacing:0}*{box-sizing:border-box}button{margin:0}html{font-size:100%}body{font-weight:400;font-family:'IBM Plex Sans', 'Helvetica Neue', Arial, sans-serif;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:'IBM Plex Mono', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Courier, monospace}strong{font-weight:600}@media screen and (-ms-high-contrast: active){svg{fill:ButtonText}}h1{font-size:2.625rem;font-weight:300;line-height:1.199;letter-spacing:0}h2{font-size:2rem;font-weight:400;line-height:1.25;letter-spacing:0}h3{font-size:1.75rem;font-weight:400;line-height:1.29;letter-spacing:0}h4{font-size:1.25rem;font-weight:400;line-height:1.4;letter-spacing:0}h5{font-size:1rem;font-weight:600;line-height:1.375;letter-spacing:0}h6{font-size:.875rem;font-weight:600;line-height:1.29;letter-spacing:.16px}p{font-size:1rem;font-weight:400;line-height:1.5;letter-spacing:0}a{color:#0f62fe}em{font-style:italic}@keyframes esm-patient-programs__programs-overview__skeleton___53pMQ{0%{transform:scaleX(0);transform-origin:left;opacity:.3}20%{transform:scaleX(1);transform-origin:left;opacity:1}28%{transform:scaleX(1);transform-origin:right}51%{transform:scaleX(0);transform-origin:right}58%{transform:scaleX(0);transform-origin:right}82%{transform:scaleX(1);transform-origin:right}83%{transform:scaleX(1);transform-origin:left}96%{transform:scaleX(0);transform-origin:left}100%{transform:scaleX(0);transform-origin:left;opacity:.3}}.esm-patient-programs__programs-overview__programsHeader___LFAQm{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0 .75rem 1rem;background-color:#fff}.esm-patient-programs__programs-overview__programsHeader___LFAQm>h4:after{content:\"\";display:block;width:2rem;padding-top:.188rem;border-bottom:.375rem solid #007d79}",""]),t.locals={programsHeader:"esm-patient-programs__programs-overview__programsHeader___LFAQm",skeleton:"esm-patient-programs__programs-overview__skeleton___53pMQ"},e.exports=t}}]);
|
|
2
|
-
//# sourceMappingURL=4.openmrs-esm-patient-programs-app.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///./src/programs/error-state/error-state.component.tsx","webpack:///./src/programs/programs-overview.component.tsx","webpack:///./src/programs/error-state/error-state.scss?a6ab","webpack:///./src/programs/error-state/error-state.scss","webpack:///./src/programs/programs-overview.scss?09c9","webpack:///./src/programs/programs-overview.scss"],"names":["EmptyState","error","headerTitle","t","useTranslation","Tile","light","className","styles","tile","heading","errorMessage","response","status","statusText","errorCopy","ProgramsOverview","patientUuid","programs","setPrograms","React","useState","setError","firstRowIndex","setFirstRowIndex","currentPageSize","setCurrentPageSize","displayText","previousPage","nextPage","itemPerPage","useEffect","sub","fetchActiveEnrollments","subscribe","createErrorHandler","unsubscribe","launchProgramsForm","openWorkspaceTab","ProgramsForm","headers","key","header","RenderPrograms","length","rows","slice","map","row","id","uuid","display","dateEnrolled","dayjs","format","getRowItems","programsHeader","productiveHeading03","text02","Button","kind","renderIcon","Add16","iconDescription","onClick","TableContainer","DataTable","isSortable","size","getHeaderProps","getTableProps","Table","TableHead","TableRow","TableHeader","productiveHeading01","content","TableBody","cells","cell","TableCell","value","Pagination","totalItems","backwardText","forwardText","pageSize","pageSizes","itemsPerPageText","onChange","page","launchForm","DataTableSkeleton","rowCount","api","__esModule","default","module","i","options","exports","locals","___CSS_LOADER_API_IMPORT___","push"],"mappings":"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","file":"4.openmrs-esm-patient-programs-app.js","sourcesContent":["import React from \"react\";\nimport { Tile } from \"carbon-components-react/es/components/Tile\";\nimport { useTranslation } from \"react-i18next\";\nimport styles from \"./error-state.scss\";\n\ninterface ErrorStateProps {\n error: any;\n headerTitle: string;\n}\n\nconst EmptyState: React.FC<ErrorStateProps> = ({ error, headerTitle }) => {\n const { t } = useTranslation();\n\n return (\n <Tile light className={styles.tile}>\n <h1 className={styles.heading}>{headerTitle}</h1>\n <p className={styles.errorMessage}>\n {t(\"error\", \"Error\")} {`${error?.response?.status}: `}\n {error?.response?.statusText}\n </p>\n <p className={styles.errorCopy}>{t(\"errorCopy\")}</p>\n </Tile>\n );\n};\n\nexport default EmptyState;\n","import React from \"react\";\nimport dayjs from \"dayjs\";\nimport ProgramsForm from \"./programs-form.component\";\nimport EmptyState from \"./empty-state/empty-state.component\";\nimport ErrorState from \"./error-state/error-state.component\";\nimport Add16 from \"@carbon/icons-react/es/add/16\";\nimport Button from \"carbon-components-react/es/components/Button\";\nimport Pagination from \"carbon-components-react/es/components/Pagination\";\nimport DataTableSkeleton from \"carbon-components-react/es/components/DataTableSkeleton\";\nimport DataTable, {\n Table,\n TableCell,\n TableContainer,\n TableBody,\n TableHead,\n TableHeader,\n TableRow,\n} from \"carbon-components-react/es/components/DataTable\";\nimport styles from \"./programs-overview.scss\";\nimport { useTranslation } from \"react-i18next\";\nimport { createErrorHandler } from \"@openmrs/esm-framework\";\nimport { fetchActiveEnrollments } from \"./programs.resource\";\nimport { openWorkspaceTab } from \"./openWorkspaceTab\";\nimport { PatientProgram } from \"../types\";\n\ninterface ProgramsOverviewProps {\n basePath: string;\n patientUuid: string;\n}\n\nconst ProgramsOverview: React.FC<ProgramsOverviewProps> = ({ patientUuid }) => {\n const programsToShowCount = 5;\n const { t } = useTranslation();\n const [programs, setPrograms] = React.useState<Array<PatientProgram>>(null);\n const [error, setError] = React.useState(null);\n const [firstRowIndex, setFirstRowIndex] = React.useState(0);\n const [currentPageSize, setCurrentPageSize] = React.useState(5);\n\n const displayText = t(\"programs\", \"program enrollments\");\n const headerTitle = t(\"carePrograms\", \"Care Programs\");\n const previousPage = t(\"previousPage\", \"Previous page\");\n const nextPage = t(\"nextPage\", \"Next Page\");\n const itemPerPage = t(\"itemPerPage\", \"Item per page\");\n\n React.useEffect(() => {\n if (patientUuid) {\n const sub = fetchActiveEnrollments(patientUuid).subscribe(\n (programs) => setPrograms(programs),\n (error) => {\n setError(error);\n createErrorHandler();\n }\n );\n\n return () => sub.unsubscribe();\n }\n }, [patientUuid]);\n\n const launchProgramsForm = () => {\n openWorkspaceTab(ProgramsForm, t(\"programsForm\", \"Programs form\"));\n };\n\n const headers = [\n {\n key: \"display\",\n header: t(\"activePrograms\", \"Active programs\"),\n },\n {\n key: \"dateEnrolled\",\n header: t(\"dateEnrolled\", \"Date enrolled\"),\n },\n ];\n\n const getRowItems = (rows: Array<PatientProgram>) => {\n return rows\n .slice(firstRowIndex, firstRowIndex + currentPageSize)\n .map((row) => ({\n id: row.uuid,\n display: row.display,\n dateEnrolled: dayjs(row.dateEnrolled).format(\"MMM-YYYY\"),\n }));\n };\n\n const RenderPrograms = () => {\n if (programs.length) {\n const rows = getRowItems(programs);\n return (\n <div>\n <div className={styles.programsHeader}>\n <h4 className={`${styles.productiveHeading03} ${styles.text02}`}>\n {headerTitle}\n </h4>\n <Button\n kind=\"ghost\"\n renderIcon={Add16}\n iconDescription=\"Add programs\"\n onClick={launchProgramsForm}\n >\n {t(\"add\", \"Add\")}\n </Button>\n </div>\n <TableContainer>\n <DataTable\n rows={rows}\n headers={headers}\n isSortable={true}\n size=\"short\"\n >\n {({ rows, headers, getHeaderProps, getTableProps }) => (\n <Table {...getTableProps()}>\n <TableHead>\n <TableRow>\n {headers.map((header) => (\n <TableHeader\n className={`${styles.productiveHeading01} ${styles.text02}`}\n {...getHeaderProps({\n header,\n isSortable: header.isSortable,\n })}\n >\n {header.header?.content ?? header.header}\n </TableHeader>\n ))}\n </TableRow>\n </TableHead>\n <TableBody>\n {rows.map((row) => (\n <TableRow key={row.id}>\n {row.cells.map((cell) => (\n <TableCell key={cell.id}>\n {cell.value?.content ?? cell.value}\n </TableCell>\n ))}\n </TableRow>\n ))}\n </TableBody>\n </Table>\n )}\n </DataTable>\n </TableContainer>\n {programs?.length > programsToShowCount && (\n <Pagination\n totalItems={programs.length}\n backwardText={previousPage}\n forwardText={nextPage}\n pageSize={currentPageSize}\n pageSizes={[5, 10, 15, 25]}\n itemsPerPageText={itemPerPage}\n onChange={({ page, pageSize }) => {\n if (pageSize !== currentPageSize) {\n setCurrentPageSize(pageSize);\n }\n setFirstRowIndex(pageSize * (page - 1));\n }}\n />\n )}\n </div>\n );\n }\n return (\n <EmptyState\n displayText={displayText}\n headerTitle={headerTitle}\n launchForm={launchProgramsForm}\n />\n );\n };\n\n return (\n <>\n {programs ? (\n <RenderPrograms />\n ) : error ? (\n <ErrorState error={error} headerTitle={headerTitle} />\n ) : (\n <DataTableSkeleton rowCount={programsToShowCount} />\n )}\n </>\n );\n};\n\nexport default ProgramsOverview;\n","var api = require(\"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-1!../../../../../node_modules/sass-loader/dist/cjs.js!./error-state.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;font:inherit;font-size:100%;vertical-align:baseline;border:0}button,select,input,textarea{font-family:inherit;border-radius:0}input[type=text]::-ms-clear{display:none}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section{display:block}body{line-height:1}sup{vertical-align:super}sub{vertical-align:sub}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote::before,blockquote::after,q::before,q::after{content:\\\"\\\"}table{border-collapse:collapse;border-spacing:0}*{box-sizing:border-box}button{margin:0}html{font-size:100%}body{font-weight:400;font-family:'IBM Plex Sans', 'Helvetica Neue', Arial, sans-serif;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:'IBM Plex Mono', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Courier, monospace}strong{font-weight:600}@media screen and (-ms-high-contrast: active){svg{fill:ButtonText}}h1{font-size:2.625rem;font-weight:300;line-height:1.199;letter-spacing:0}h2{font-size:2rem;font-weight:400;line-height:1.25;letter-spacing:0}h3{font-size:1.75rem;font-weight:400;line-height:1.29;letter-spacing:0}h4{font-size:1.25rem;font-weight:400;line-height:1.4;letter-spacing:0}h5{font-size:1rem;font-weight:600;line-height:1.375;letter-spacing:0}h6{font-size:.875rem;font-weight:600;line-height:1.29;letter-spacing:.16px}p{font-size:1rem;font-weight:400;line-height:1.5;letter-spacing:0}a{color:#0f62fe}em{font-style:italic}@keyframes esm-patient-programs__error-state__skeleton___2ecC0{0%{transform:scaleX(0);transform-origin:left;opacity:.3}20%{transform:scaleX(1);transform-origin:left;opacity:1}28%{transform:scaleX(1);transform-origin:right}51%{transform:scaleX(0);transform-origin:right}58%{transform:scaleX(0);transform-origin:right}82%{transform:scaleX(1);transform-origin:right}83%{transform:scaleX(1);transform-origin:left}96%{transform:scaleX(0);transform-origin:left}100%{transform:scaleX(0);transform-origin:left;opacity:.3}}.esm-patient-programs__error-state__errorMessage___117_N{font-size:1rem;font-weight:600;line-height:1.375;letter-spacing:0;color:#161616;margin-top:2.25rem;margin-bottom:.5rem}.esm-patient-programs__error-state__errorCopy___3fIac{margin-bottom:.5rem;font-size:.875rem;font-weight:400;line-height:1.43;letter-spacing:.16px;color:#525252}.esm-patient-programs__error-state__heading___2DYsd{text-align:left;text-transform:capitalize;margin-bottom:1rem;font-size:1.25rem;font-weight:400;line-height:1.4;letter-spacing:0;color:#525252}.esm-patient-programs__error-state__heading___2DYsd:after{content:\\\"\\\";display:block;width:2rem;padding-top:.188rem;border-bottom:.375rem solid #007d79}.esm-patient-programs__error-state__tile___1UzOG{text-align:center}\", \"\"]);\n// Exports\nexports.locals = {\n\t\"errorMessage\": \"esm-patient-programs__error-state__errorMessage___117_N\",\n\t\"errorCopy\": \"esm-patient-programs__error-state__errorCopy___3fIac\",\n\t\"heading\": \"esm-patient-programs__error-state__heading___2DYsd\",\n\t\"tile\": \"esm-patient-programs__error-state__tile___1UzOG\",\n\t\"skeleton\": \"esm-patient-programs__error-state__skeleton___2ecC0\"\n};\nmodule.exports = exports;\n","var api = require(\"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??ref--7-1!../../../../node_modules/sass-loader/dist/cjs.js!./programs-overview.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;font:inherit;font-size:100%;vertical-align:baseline;border:0}button,select,input,textarea{font-family:inherit;border-radius:0}input[type=text]::-ms-clear{display:none}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section{display:block}body{line-height:1}sup{vertical-align:super}sub{vertical-align:sub}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote::before,blockquote::after,q::before,q::after{content:\\\"\\\"}table{border-collapse:collapse;border-spacing:0}*{box-sizing:border-box}button{margin:0}html{font-size:100%}body{font-weight:400;font-family:'IBM Plex Sans', 'Helvetica Neue', Arial, sans-serif;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:'IBM Plex Mono', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Courier, monospace}strong{font-weight:600}@media screen and (-ms-high-contrast: active){svg{fill:ButtonText}}h1{font-size:2.625rem;font-weight:300;line-height:1.199;letter-spacing:0}h2{font-size:2rem;font-weight:400;line-height:1.25;letter-spacing:0}h3{font-size:1.75rem;font-weight:400;line-height:1.29;letter-spacing:0}h4{font-size:1.25rem;font-weight:400;line-height:1.4;letter-spacing:0}h5{font-size:1rem;font-weight:600;line-height:1.375;letter-spacing:0}h6{font-size:.875rem;font-weight:600;line-height:1.29;letter-spacing:.16px}p{font-size:1rem;font-weight:400;line-height:1.5;letter-spacing:0}a{color:#0f62fe}em{font-style:italic}@keyframes esm-patient-programs__programs-overview__skeleton___53pMQ{0%{transform:scaleX(0);transform-origin:left;opacity:.3}20%{transform:scaleX(1);transform-origin:left;opacity:1}28%{transform:scaleX(1);transform-origin:right}51%{transform:scaleX(0);transform-origin:right}58%{transform:scaleX(0);transform-origin:right}82%{transform:scaleX(1);transform-origin:right}83%{transform:scaleX(1);transform-origin:left}96%{transform:scaleX(0);transform-origin:left}100%{transform:scaleX(0);transform-origin:left;opacity:.3}}.esm-patient-programs__programs-overview__programsHeader___LFAQm{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0 .75rem 1rem;background-color:#fff}.esm-patient-programs__programs-overview__programsHeader___LFAQm>h4:after{content:\\\"\\\";display:block;width:2rem;padding-top:.188rem;border-bottom:.375rem solid #007d79}\", \"\"]);\n// Exports\nexports.locals = {\n\t\"programsHeader\": \"esm-patient-programs__programs-overview__programsHeader___LFAQm\",\n\t\"skeleton\": \"esm-patient-programs__programs-overview__skeleton___53pMQ\"\n};\nmodule.exports = exports;\n"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(window.webpackJsonp_openmrs_esm_patient_programs_app=window.webpackJsonp_openmrs_esm_patient_programs_app||[]).push([[5],{104:function(e,r,a){var t=a(20),n=a(105);"string"==typeof(n=n.__esModule?n.default:n)&&(n=[[e.i,n,""]]);var m={insert:"head",singleton:!1};t(n,m);e.exports=n.locals||{}},105:function(e,r,a){(r=a(21)(!1)).push([e.i,'.omrs-breakpoint-gt-phone .esm-patient-programs__programs-detailed-summary__programsSummary___3PCy_ {\n display: flex;\n justify-content: center;\n}\n\n.omrs-breakpoint-lt-tablet .esm-patient-programs__programs-detailed-summary__programsSummary___3PCy_ {\n padding: 0.25rem 0.5rem 0 0.5rem;\n}\n\n.esm-patient-programs__programs-detailed-summary__programTable___33Llq {\n width: 100%;\n}\n\n.esm-patient-programs__programs-detailed-summary__programTable___33Llq thead {\n color: var(--omrs-color-ink-medium-contrast);\n border-bottom: 0.0625rem solid var(--omrs-color-bg-low-contrast);\n}\n\n.esm-patient-programs__programs-detailed-summary__programTable___33Llq thead tr th {\n font-weight: normal;\n text-transform: uppercase;\n padding: 1rem 0.25rem 1rem 1rem;\n}\n\n.esm-patient-programs__programs-detailed-summary__programTable___33Llq tbody {\n padding: 2rem;\n border-bottom: 0.0625rem solid var(--omrs-color-bg-low-contrast);\n}\n\n.omrs-breakpoint-lt-tablet .esm-patient-programs__programs-detailed-summary__programTable___33Llq thead td {\n padding: 0.25rem 0.125rem 0.5rem 0.5rem;\n}\n\n.esm-patient-programs__programs-detailed-summary__programsSummary___3PCy_ tr {\n padding: 0.813rem 0 1rem 0.813rem;\n border-bottom: 0.0625rem solid var(--omrs-color-bg-low-contrast);\n}\n\n.esm-patient-programs__programs-detailed-summary__programTable___33Llq td {\n padding: 0.75rem 0 0.75rem 1rem;\n}\n\n.esm-patient-programs__programs-detailed-summary__programTable___33Llq tbody td:nth-child(2) {\n font-family: "Work Sans";\n}\n\n.esm-patient-programs__programs-detailed-summary__programTable___33Llq tbody td:nth-child(3) {\n font-family: "Work Sans";\n}\n\ntr.esm-patient-programs__programs-detailed-summary__inactive___1gFCw {\n background: var(--omrs-color-bg-medium-contrast);\n color: var(--omrs-color-ink-medium-contrast);\n}\n\ntr.esm-patient-programs__programs-detailed-summary__active___3XPpz {\n background: var(--omrs-color-bg-high-contrast);\n}\n\n.esm-patient-programs__programs-detailed-summary__emptyPrograms___fwYcb p {\n text-align: left;\n padding-left: 1rem;\n}\n',""]),r.locals={programsSummary:"esm-patient-programs__programs-detailed-summary__programsSummary___3PCy_",programTable:"esm-patient-programs__programs-detailed-summary__programTable___33Llq",inactive:"esm-patient-programs__programs-detailed-summary__inactive___1gFCw",active:"esm-patient-programs__programs-detailed-summary__active___3XPpz",emptyPrograms:"esm-patient-programs__programs-detailed-summary__emptyPrograms___fwYcb"},e.exports=r},106:function(e,r,a){var t=a(20),n=a(107);"string"==typeof(n=n.__esModule?n.default:n)&&(n=[[e.i,n,""]]);var m={insert:"head",singleton:!1};t(n,m);e.exports=n.locals||{}},107:function(e,r,a){(r=a(21)(!1)).push([e.i,'.omrs-breakpoint-gt-phone .esm-patient-programs__program-record__programSummary___Ke6hh {\n display: flex;\n}\n\n.omrs-breakpoint-lt-tablet .esm-patient-programs__program-record__programSummary___Ke6hh {\n padding: 0.25rem 0.5rem 0 0.5rem;\n}\n\n.esm-patient-programs__program-record__programCard___2OnlZ {\n margin: 0rem 1rem;\n}\n\n.esm-patient-programs__program-record__programTable___1peQa {\n width: 100%;\n margin-top: 1rem;\n margin-bottom: 1rem;\n}\n\n.esm-patient-programs__program-record__programTable___1peQa thead th {\n color: var(--omrs-color-ink-medium-contrast);\n text-align: left;\n}\n\n.esm-patient-programs__program-record__programTable___1peQa thead {\n color: var(--omrs-color-ink-medium-contrast);\n}\n\n.esm-patient-programs__program-record__programTable___1peQa tbody td:nth-child(1) {\n font-family: "Work Sans";\n}\n\n.esm-patient-programs__program-record__programTable___1peQa thead td {\n margin-top: 0.625rem;\n}\n\n.esm-patient-programs__program-record__completedProgram___3T16E {\n font-family: "Work Sans";\n}\n\n.esm-patient-programs__program-record__completionDate___2dQCk {\n color: var(--omrs-color-ink-medium-contrast);\n}\n',""]),r.locals={programSummary:"esm-patient-programs__program-record__programSummary___Ke6hh",programCard:"esm-patient-programs__program-record__programCard___2OnlZ",programTable:"esm-patient-programs__program-record__programTable___1peQa",completedProgram:"esm-patient-programs__program-record__completedProgram___3T16E",completionDate:"esm-patient-programs__program-record__completionDate___2dQCk"},e.exports=r},129:function(e,r,a){"use strict";a.r(r),a.d(r,"default",(function(){return P}));var t=a(6),n=a.n(t),m=a(9),o=a.n(m),l=a(40),s=a(74),_=a(41),p=a(104),i=a.n(p),d=a(8),c=a(10),g=a(0),u=a(30);const b=Object(t.createContext)({patientUuid:void 0,patient:void 0});function y(){return Object(t.useContext)(b)}var E=a(47);var v=()=>{const[e,r]=Object(t.useState)([]),{patientUuid:a}=y(),{t:m}=Object(d.useTranslation)();return Object(t.useEffect)(()=>{if(a){const e=Object(u.c)(a).subscribe(e=>r(e),Object(g.createErrorHandler)());return()=>e.unsubscribe()}},[a]),n.a.createElement(n.a.Fragment,null,null!=e&&e.length?n.a.createElement("div",{className:i.a.programsSummary},n.a.createElement(_.a,{name:m("carePrograms","Care Programs"),styles:{width:"100%"},addComponent:l.a,showComponent:()=>Object(E.a)(l.a,""+m("programsForm","Programs Form"),{setEnrolledPrograms:r,enrolledPrograms:e})},n.a.createElement("table",{className:"omrs-type-body-regular "+i.a.programTable},n.a.createElement("thead",null,n.a.createElement("tr",null,n.a.createElement("th",null,n.a.createElement(d.Trans,{i18nKey:"activePrograms"},"Active Programs")),n.a.createElement("th",null,n.a.createElement(d.Trans,{i18nKey:"since"},"Since")),n.a.createElement("th",null,n.a.createElement(d.Trans,{i18nKey:"status"},"Status")),n.a.createElement("th",null))),n.a.createElement("tbody",null,null==e?void 0:e.map(e=>n.a.createElement(n.a.Fragment,{key:e.uuid},n.a.createElement("tr",{className:""+(e.dateCompleted?""+i.a.inactive:""+i.a.active)},n.a.createElement("td",{className:"omrs-medium"},e.display),n.a.createElement("td",null,o()(e.dateEnrolled).format("MMM-YYYY")),n.a.createElement("td",null,e.dateCompleted?n.a.createElement("span",{className:i.a.completionDate},n.a.createElement(d.Trans,{i18nKey:"Completed on"},"Completed on")," ",o()(e.dateCompleted).format("DD-MMM-YYYY")):n.a.createElement(d.Trans,{i18nKey:"active"},"Active")),n.a.createElement("td",null,n.a.createElement(c.Link,{to:"/"+e.uuid},n.a.createElement("svg",{className:"omrs-icon",fill:"var(--omrs-color-ink-low-contrast)"},n.a.createElement("use",{xlinkHref:"#omrs-icon-chevron-right"}))))))))))):n.a.createElement(s.a,{displayText:m("programEnrollments","program enrollments"),headerTitle:m("carePrograms","Care Programs"),launchForm:()=>Object(E.a)(l.a,""+m("programsForm","Programs Form"),{setEnrolledPrograms:r,enrolledPrograms:e})}))},h=a(106),f=a.n(h);var T=({match:e})=>{var r;const[a,m]=Object(t.useState)(null),{t:s}=Object(d.useTranslation)(),{patient:p,patientUuid:i}=y(),{programUuid:c}=e.params;return Object(t.useEffect)(()=>{if(p&&i){const e=Object(u.f)(c).subscribe(e=>{m(e),Object(g.createErrorHandler)()});return()=>e.unsubscribe()}},[p,i,c]),n.a.createElement(n.a.Fragment,null,!(!a||!Object.entries(a).length)&&n.a.createElement("div",{className:f.a.programSummary},n.a.createElement(_.a,{name:s("program","Program"),styles:{width:"100%"},editComponent:l.a,showComponent:()=>{var e,r;return Object(E.a)(l.a,""+s("editProgram","Edit Program"),{program:null==a||null===(e=a.program)||void 0===e?void 0:e.name,programUuid:null==a?void 0:a.uuid,enrollmentDate:null==a?void 0:a.dateEnrolled,completionDate:null==a?void 0:a.dateCompleted,locationUuid:null==a||null===(r=a.location)||void 0===r?void 0:r.uuid})}},n.a.createElement("div",{className:"omrs-type-body-regular "+f.a.programCard},n.a.createElement("div",null,n.a.createElement("p",{className:"omrs-type-title-3","data-testid":"program-name"},a.program.name)),n.a.createElement("table",{className:f.a.programTable},n.a.createElement("thead",null,n.a.createElement("tr",null,n.a.createElement("td",null,n.a.createElement(d.Trans,{i18nKey:"enrolledOn"},"Enrolled on")),n.a.createElement("td",null,n.a.createElement(d.Trans,{i18nKey:"status"},"Status")),n.a.createElement("td",null,n.a.createElement(d.Trans,{i18nKey:"enrolledAt"},"Enrolled at")))),n.a.createElement("tbody",null,n.a.createElement("tr",null,n.a.createElement("td",null,o()(null==a?void 0:a.dateEnrolled).format("DD-MMM-YYYY")),n.a.createElement("td",{className:f.a.completedProgram},null!=a&&a.dateCompleted?n.a.createElement("span",{className:f.a.completionDate},n.a.createElement(d.Trans,{i18nKey:"completedOn"},"Completed on")," ",o()(null==a?void 0:a.dateCompleted).format("DD-MMM-YYYY")):n.a.createElement(d.Trans,{i18nKey:"active"},"Active")),n.a.createElement("td",null,null!=a&&a.location?null==a||null===(r=a.location)||void 0===r?void 0:r.display:"-"))))))))};function P({basePath:e,patient:r,patientUuid:a}){return n.a.createElement(b.Provider,{value:{patientUuid:a,patient:r}},n.a.createElement(c.BrowserRouter,{basename:`${window.spaBase}${e}/programs`},n.a.createElement(c.Switch,null,n.a.createElement(c.Route,{exact:!0,path:"/",component:v}),n.a.createElement(c.Route,{exact:!0,path:"/:programUuid",component:T}))))}}}]);
|
|
2
|
-
//# sourceMappingURL=5.openmrs-esm-patient-programs-app.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///./src/programs/programs-detailed-summary.css?0c09","webpack:///./src/programs/programs-detailed-summary.css","webpack:///./src/programs/program-record.css?6567","webpack:///./src/programs/program-record.css","webpack:///./src/programs/programs.context.tsx","webpack:///./src/programs/programs-detailed-summary.component.tsx","webpack:///./src/programs/program-record.component.tsx","webpack:///./src/programs/programs.component.tsx"],"names":["api","content","__esModule","default","module","i","options","exports","locals","___CSS_LOADER_API_IMPORT___","push","ProgramsContext","createContext","patientUuid","undefined","patient","useProgramsContext","useContext","ProgramsDetailedSummary","enrolledPrograms","setEnrolledPrograms","useState","t","useTranslation","useEffect","subscription","fetchEnrolledPrograms","subscribe","createErrorHandler","unsubscribe","length","className","styles","programsSummary","name","width","addComponent","ProgramsForm","showComponent","openWorkspaceTab","programTable","i18nKey","map","program","Fragment","key","uuid","dateCompleted","inactive","active","display","dayjs","dateEnrolled","format","completionDate","to","fill","xlinkHref","displayText","headerTitle","launchForm","ProgramRecord","match","patientProgram","setPatientProgram","programUuid","params","getPatientProgramByUuid","Object","entries","programSummary","editComponent","enrollmentDate","locationUuid","location","programCard","data-testid","completedProgram","Programs","basePath","Provider","value","basename","window","spaBase","exact","path","component"],"mappings":"+IAAA,IAAIA,EAAM,EAAQ,IACFC,EAAU,EAAQ,KAIC,iBAFvBA,EAAUA,EAAQC,WAAaD,EAAQE,QAAUF,KAG/CA,EAAU,CAAC,CAACG,EAAOC,EAAIJ,EAAS,MAG9C,IAAIK,EAAU,CAEd,OAAiB,OACjB,WAAoB,GAEPN,EAAIC,EAASK,GAI1BF,EAAOG,QAAUN,EAAQO,QAAU,I,qBChBnCD,EADkC,EAAQ,GAChCE,EAA4B,IAE9BC,KAAK,CAACN,EAAOC,EAAI,gkEAAqkE,KAE9lEE,EAAQC,OAAS,CAChB,gBAAmB,2EACnB,aAAgB,wEAChB,SAAY,oEACZ,OAAU,kEACV,cAAiB,0EAElBJ,EAAOG,QAAUA,G,oBCbjB,IAAIP,EAAM,EAAQ,IACFC,EAAU,EAAQ,KAIC,iBAFvBA,EAAUA,EAAQC,WAAaD,EAAQE,QAAUF,KAG/CA,EAAU,CAAC,CAACG,EAAOC,EAAIJ,EAAS,MAG9C,IAAIK,EAAU,CAEd,OAAiB,OACjB,WAAoB,GAEPN,EAAIC,EAASK,GAI1BF,EAAOG,QAAUN,EAAQO,QAAU,I,qBChBnCD,EADkC,EAAQ,GAChCE,EAA4B,IAE9BC,KAAK,CAACN,EAAOC,EAAI,0pCAA+pC,KAExrCE,EAAQC,OAAS,CAChB,eAAkB,+DAClB,YAAe,4DACf,aAAgB,6DAChB,iBAAoB,iEACpB,eAAkB,gEAEnBJ,EAAOG,QAAUA,G,4LCNV,MAAMI,EAAkBC,wBAAoC,CACjEC,iBAAaC,EACbC,aAASD,IAGJ,SAASE,IACd,OAAOC,qBAAWN,G,YC2HLO,MAxHyD,KACtE,MAAOC,EAAkBC,GAAuBC,mBAE9C,KACI,YAAER,GAAgBG,KAClB,EAAEM,GAAMC,2BAYd,OAVAC,oBAAU,KACR,GAAIX,EAAa,CACf,MAAMY,EAAeC,YAAsBb,GAAac,UACrDR,GAAqBC,EAAoBD,GAC1CS,gCAEF,MAAO,IAAMH,EAAaI,gBAE3B,CAAChB,IAGF,oCACGM,WAAkBW,OACjB,yBAAKC,UAAWC,IAAOC,iBACrB,kBAAC,IAAD,CACEC,KAAMZ,EAAE,eAAgB,iBACxBU,OAAQ,CACNG,MAAO,QAETC,aAAcC,IACdC,cAAe,IACbC,YACEF,IACC,GAAEf,EAAE,eAAgB,iBACrB,CACEF,oBAAqBA,EACrBD,iBAAkBA,KAKxB,2BAAOY,UAAY,0BAAyBC,IAAOQ,cACjD,+BACE,4BACE,4BACE,kBAAC,QAAD,CAAOC,QAAQ,kBAAf,oBAEF,4BACE,kBAAC,QAAD,CAAOA,QAAQ,SAAf,UAEF,4BACE,kBAAC,QAAD,CAAOA,QAAQ,UAAf,WAEF,+BAGJ,+BACGtB,aADH,EACGA,EAAkBuB,IAAKC,GAEpB,kBAAC,IAAMC,SAAP,CAAgBC,IAAKF,EAAQG,MAC3B,wBACEf,UAAY,IACVY,EAAQI,cACH,GAAEf,IAAOgB,SACT,GAAEhB,IAAOiB,SAGhB,wBAAIlB,UAAU,eAAeY,EAAQO,SACrC,4BACGC,IAAMR,EAAQS,cAAcC,OAAO,aAEtC,4BACGV,EAAQI,cACP,0BAAMhB,UAAWC,IAAOsB,gBACtB,kBAAC,QAAD,CAAOb,QAAQ,gBAAf,gBAAmD,IAClDU,IAAMR,EAAQI,eAAeM,OAC5B,gBAIJ,kBAAC,QAAD,CAAOZ,QAAQ,UAAf,WAGJ,4BAEI,kBAAC,OAAD,CAAMc,GAAK,IAAGZ,EAAQG,MACpB,yBACEf,UAAU,YACVyB,KAAK,sCAEL,yBAAKC,UAAU,uCAcvC,kBAAC,IAAD,CACEC,YAAapC,EAAE,qBAAsB,uBACrCqC,YAAarC,EAAE,eAAgB,iBAC/BsC,WAAY,IACVrB,YACEF,IACC,GAAEf,EAAE,eAAgB,iBACrB,CACEF,oBAAqBA,EACrBD,iBAAkBA,Q,kBChBnB0C,MA/FqC,EAAGC,YAAY,MACjE,MAAOC,EAAgBC,GAAqB3C,mBAAS,OAC/C,EAAEC,GAAMC,4BACR,QAAER,EAAF,YAAWF,GAAgBG,KAC3B,YAAEiD,GAAgBH,EAAMI,OAc9B,OAZA1C,oBAAU,KACR,GAAIT,GAAWF,EAAa,CAC1B,MAAMY,EAAe0C,YAAwBF,GAAatC,UACvDgB,IACCqB,EAAkBrB,GAAUf,iCAIhC,MAAO,IAAMH,EAAaI,gBAE3B,CAACd,EAASF,EAAaoD,IAGxB,uCACMF,IAAkBK,OAAOC,QAAQN,GAAgBjC,SACnD,yBAAKC,UAAWC,IAAOsC,gBACrB,kBAAC,IAAD,CACEpC,KAAMZ,EAAE,UAAW,WACnBU,OAAQ,CAAEG,MAAO,QACjBoC,cAAelC,IACfC,cAAe,oBACbC,YACEF,IACC,GAAEf,EAAE,cAAe,gBACpB,CACEqB,QAASoB,SAAF,UAAEA,EAAgBpB,eAAlB,aAAE,EAAyBT,KAClC+B,YAAaF,aAAF,EAAEA,EAAgBjB,KAC7B0B,eAAgBT,aAAF,EAAEA,EAAgBX,aAChCE,eAAgBS,aAAF,EAAEA,EAAgBhB,cAChC0B,aAAcV,SAAF,UAAEA,EAAgBW,gBAAlB,aAAE,EAA0B5B,SAK9C,yBAAKf,UAAY,0BAAyBC,IAAO2C,aAC/C,6BACE,uBAAG5C,UAAU,oBAAoB6C,cAAY,gBAC1Cb,EAAepB,QAAQT,OAG5B,2BAAOH,UAAWC,IAAOQ,cACvB,+BACE,4BACE,4BACE,kBAAC,QAAD,CAAOC,QAAQ,cAAf,gBAEF,4BACE,kBAAC,QAAD,CAAOA,QAAQ,UAAf,WAEF,4BACE,kBAAC,QAAD,CAAOA,QAAQ,cAAf,kBAIN,+BACE,4BACE,4BACGU,IAAMY,aAAD,EAACA,EAAgBX,cAAcC,OACnC,gBAGJ,wBAAItB,UAAWC,IAAO6C,kBACnBd,WAAgBhB,cACf,0BAAMhB,UAAWC,IAAOsB,gBACtB,kBAAC,QAAD,CAAOb,QAAQ,eAAf,gBAAkD,IACjDU,IAAMY,aAAD,EAACA,EAAgBhB,eAAeM,OACpC,gBAIJ,kBAAC,QAAD,CAAOZ,QAAQ,UAAf,WAGJ,4BACGsB,WAAgBW,SACbX,SADH,UACGA,EAAgBW,gBADnB,aACG,EAA0BxB,QAC1B,aCrFX,SAAS4B,GAAS,SAC/BC,EAD+B,QAE/BhE,EAF+B,YAG/BF,IAEA,OACE,kBAACF,EAAgBqE,SAAjB,CAA0BC,MAAO,CAAEpE,cAAaE,YAC9C,kBAAC,gBAAD,CAAemE,SAAW,GAAEC,OAAOC,UAAUL,cAC3C,kBAAC,SAAD,KACE,kBAAC,QAAD,CAAOM,OAAK,EAACC,KAAK,IAAIC,UAAWrE,IACjC,kBAAC,QAAD,CAAOmE,OAAK,EAACC,KAAK,gBAAgBC,UAAW1B","file":"5.openmrs-esm-patient-programs-app.js","sourcesContent":["var api = require(\"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./programs-detailed-summary.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".omrs-breakpoint-gt-phone .esm-patient-programs__programs-detailed-summary__programsSummary___3PCy_ {\\n display: flex;\\n justify-content: center;\\n}\\n\\n.omrs-breakpoint-lt-tablet .esm-patient-programs__programs-detailed-summary__programsSummary___3PCy_ {\\n padding: 0.25rem 0.5rem 0 0.5rem;\\n}\\n\\n.esm-patient-programs__programs-detailed-summary__programTable___33Llq {\\n width: 100%;\\n}\\n\\n.esm-patient-programs__programs-detailed-summary__programTable___33Llq thead {\\n color: var(--omrs-color-ink-medium-contrast);\\n border-bottom: 0.0625rem solid var(--omrs-color-bg-low-contrast);\\n}\\n\\n.esm-patient-programs__programs-detailed-summary__programTable___33Llq thead tr th {\\n font-weight: normal;\\n text-transform: uppercase;\\n padding: 1rem 0.25rem 1rem 1rem;\\n}\\n\\n.esm-patient-programs__programs-detailed-summary__programTable___33Llq tbody {\\n padding: 2rem;\\n border-bottom: 0.0625rem solid var(--omrs-color-bg-low-contrast);\\n}\\n\\n.omrs-breakpoint-lt-tablet .esm-patient-programs__programs-detailed-summary__programTable___33Llq thead td {\\n padding: 0.25rem 0.125rem 0.5rem 0.5rem;\\n}\\n\\n.esm-patient-programs__programs-detailed-summary__programsSummary___3PCy_ tr {\\n padding: 0.813rem 0 1rem 0.813rem;\\n border-bottom: 0.0625rem solid var(--omrs-color-bg-low-contrast);\\n}\\n\\n.esm-patient-programs__programs-detailed-summary__programTable___33Llq td {\\n padding: 0.75rem 0 0.75rem 1rem;\\n}\\n\\n.esm-patient-programs__programs-detailed-summary__programTable___33Llq tbody td:nth-child(2) {\\n font-family: \\\"Work Sans\\\";\\n}\\n\\n.esm-patient-programs__programs-detailed-summary__programTable___33Llq tbody td:nth-child(3) {\\n font-family: \\\"Work Sans\\\";\\n}\\n\\ntr.esm-patient-programs__programs-detailed-summary__inactive___1gFCw {\\n background: var(--omrs-color-bg-medium-contrast);\\n color: var(--omrs-color-ink-medium-contrast);\\n}\\n\\ntr.esm-patient-programs__programs-detailed-summary__active___3XPpz {\\n background: var(--omrs-color-bg-high-contrast);\\n}\\n\\n.esm-patient-programs__programs-detailed-summary__emptyPrograms___fwYcb p {\\n text-align: left;\\n padding-left: 1rem;\\n}\\n\", \"\"]);\n// Exports\nexports.locals = {\n\t\"programsSummary\": \"esm-patient-programs__programs-detailed-summary__programsSummary___3PCy_\",\n\t\"programTable\": \"esm-patient-programs__programs-detailed-summary__programTable___33Llq\",\n\t\"inactive\": \"esm-patient-programs__programs-detailed-summary__inactive___1gFCw\",\n\t\"active\": \"esm-patient-programs__programs-detailed-summary__active___3XPpz\",\n\t\"emptyPrograms\": \"esm-patient-programs__programs-detailed-summary__emptyPrograms___fwYcb\"\n};\nmodule.exports = exports;\n","var api = require(\"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./program-record.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".omrs-breakpoint-gt-phone .esm-patient-programs__program-record__programSummary___Ke6hh {\\n display: flex;\\n}\\n\\n.omrs-breakpoint-lt-tablet .esm-patient-programs__program-record__programSummary___Ke6hh {\\n padding: 0.25rem 0.5rem 0 0.5rem;\\n}\\n\\n.esm-patient-programs__program-record__programCard___2OnlZ {\\n margin: 0rem 1rem;\\n}\\n\\n.esm-patient-programs__program-record__programTable___1peQa {\\n width: 100%;\\n margin-top: 1rem;\\n margin-bottom: 1rem;\\n}\\n\\n.esm-patient-programs__program-record__programTable___1peQa thead th {\\n color: var(--omrs-color-ink-medium-contrast);\\n text-align: left;\\n}\\n\\n.esm-patient-programs__program-record__programTable___1peQa thead {\\n color: var(--omrs-color-ink-medium-contrast);\\n}\\n\\n.esm-patient-programs__program-record__programTable___1peQa tbody td:nth-child(1) {\\n font-family: \\\"Work Sans\\\";\\n}\\n\\n.esm-patient-programs__program-record__programTable___1peQa thead td {\\n margin-top: 0.625rem;\\n}\\n\\n.esm-patient-programs__program-record__completedProgram___3T16E {\\n font-family: \\\"Work Sans\\\";\\n}\\n\\n.esm-patient-programs__program-record__completionDate___2dQCk {\\n color: var(--omrs-color-ink-medium-contrast);\\n}\\n\", \"\"]);\n// Exports\nexports.locals = {\n\t\"programSummary\": \"esm-patient-programs__program-record__programSummary___Ke6hh\",\n\t\"programCard\": \"esm-patient-programs__program-record__programCard___2OnlZ\",\n\t\"programTable\": \"esm-patient-programs__program-record__programTable___1peQa\",\n\t\"completedProgram\": \"esm-patient-programs__program-record__completedProgram___3T16E\",\n\t\"completionDate\": \"esm-patient-programs__program-record__completionDate___2dQCk\"\n};\nmodule.exports = exports;\n","import { createContext, useContext } from \"react\";\n\nexport interface ProgramsContextShape {\n patientUuid: string;\n patient: fhir.Patient;\n}\n\nexport const ProgramsContext = createContext<ProgramsContextShape>({\n patientUuid: undefined,\n patient: undefined,\n});\n\nexport function useProgramsContext() {\n return useContext(ProgramsContext);\n}\n","import React, { useEffect, useState } from \"react\";\nimport dayjs from \"dayjs\";\nimport ProgramsForm from \"./programs-form.component\";\nimport EmptyState from \"./empty-state/empty-state.component\";\nimport SummaryCard from \"../cards/summary-card.component\";\nimport styles from \"./programs-detailed-summary.css\";\nimport { useTranslation, Trans } from \"react-i18next\";\nimport { RouteComponentProps, Link } from \"react-router-dom\";\nimport { createErrorHandler } from \"@openmrs/esm-framework\";\nimport { fetchEnrolledPrograms } from \"./programs.resource\";\nimport { useProgramsContext } from \"./programs.context\";\nimport { openWorkspaceTab } from \"./openWorkspaceTab\";\nimport { PatientProgram } from \"../types\";\n\ninterface ProgramsDetailedSummaryProps extends RouteComponentProps<{}> {}\n\nconst ProgramsDetailedSummary: React.FC<ProgramsDetailedSummaryProps> = () => {\n const [enrolledPrograms, setEnrolledPrograms] = useState<\n Array<PatientProgram>\n >([]);\n const { patientUuid } = useProgramsContext();\n const { t } = useTranslation();\n\n useEffect(() => {\n if (patientUuid) {\n const subscription = fetchEnrolledPrograms(patientUuid).subscribe(\n (enrolledPrograms) => setEnrolledPrograms(enrolledPrograms),\n createErrorHandler()\n );\n return () => subscription.unsubscribe();\n }\n }, [patientUuid]);\n\n return (\n <>\n {enrolledPrograms?.length ? (\n <div className={styles.programsSummary}>\n <SummaryCard\n name={t(\"carePrograms\", \"Care Programs\")}\n styles={{\n width: \"100%\",\n }}\n addComponent={ProgramsForm}\n showComponent={() =>\n openWorkspaceTab(\n ProgramsForm,\n `${t(\"programsForm\", \"Programs Form\")}`,\n {\n setEnrolledPrograms: setEnrolledPrograms,\n enrolledPrograms: enrolledPrograms,\n }\n )\n }\n >\n <table className={`omrs-type-body-regular ${styles.programTable}`}>\n <thead>\n <tr>\n <th>\n <Trans i18nKey=\"activePrograms\">Active Programs</Trans>\n </th>\n <th>\n <Trans i18nKey=\"since\">Since</Trans>\n </th>\n <th>\n <Trans i18nKey=\"status\">Status</Trans>\n </th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n {enrolledPrograms?.map((program) => {\n return (\n <React.Fragment key={program.uuid}>\n <tr\n className={`${\n program.dateCompleted\n ? `${styles.inactive}`\n : `${styles.active}`\n }`}\n >\n <td className=\"omrs-medium\">{program.display}</td>\n <td>\n {dayjs(program.dateEnrolled).format(\"MMM-YYYY\")}\n </td>\n <td>\n {program.dateCompleted ? (\n <span className={styles.completionDate}>\n <Trans i18nKey=\"Completed on\">Completed on</Trans>{\" \"}\n {dayjs(program.dateCompleted).format(\n \"DD-MMM-YYYY\"\n )}\n </span>\n ) : (\n <Trans i18nKey=\"active\">Active</Trans>\n )}\n </td>\n <td>\n {\n <Link to={`/${program.uuid}`}>\n <svg\n className=\"omrs-icon\"\n fill=\"var(--omrs-color-ink-low-contrast)\"\n >\n <use xlinkHref=\"#omrs-icon-chevron-right\" />\n </svg>\n </Link>\n }\n </td>\n </tr>\n </React.Fragment>\n );\n })}\n </tbody>\n </table>\n </SummaryCard>\n </div>\n ) : (\n <EmptyState\n displayText={t(\"programEnrollments\", \"program enrollments\")}\n headerTitle={t(\"carePrograms\", \"Care Programs\")}\n launchForm={() =>\n openWorkspaceTab(\n ProgramsForm,\n `${t(\"programsForm\", \"Programs Form\")}`,\n {\n setEnrolledPrograms: setEnrolledPrograms,\n enrolledPrograms: enrolledPrograms,\n }\n )\n }\n />\n )}\n </>\n );\n};\n\nexport default ProgramsDetailedSummary;\n","import React, { useEffect, useState } from \"react\";\nimport dayjs from \"dayjs\";\nimport SummaryCard from \"../cards/summary-card.component\";\nimport ProgramsForm from \"./programs-form.component\";\nimport styles from \"./program-record.css\";\nimport { RouteComponentProps } from \"react-router-dom\";\nimport { useTranslation, Trans } from \"react-i18next\";\nimport { createErrorHandler } from \"@openmrs/esm-framework\";\nimport { getPatientProgramByUuid } from \"./programs.resource\";\nimport { useProgramsContext } from \"./programs.context\";\nimport { openWorkspaceTab } from \"./openWorkspaceTab\";\n\ninterface ProgramRecordProps\n extends RouteComponentProps<{ programUuid: string }> {}\n\nconst ProgramRecord: React.FC<ProgramRecordProps> = ({ match }) => {\n const [patientProgram, setPatientProgram] = useState(null);\n const { t } = useTranslation();\n const { patient, patientUuid } = useProgramsContext();\n const { programUuid } = match.params;\n\n useEffect(() => {\n if (patient && patientUuid) {\n const subscription = getPatientProgramByUuid(programUuid).subscribe(\n (program) => {\n setPatientProgram(program), createErrorHandler();\n }\n );\n\n return () => subscription.unsubscribe();\n }\n }, [patient, patientUuid, programUuid]);\n\n return (\n <>\n {!!(patientProgram && Object.entries(patientProgram).length) && (\n <div className={styles.programSummary}>\n <SummaryCard\n name={t(\"program\", \"Program\")}\n styles={{ width: \"100%\" }}\n editComponent={ProgramsForm}\n showComponent={() =>\n openWorkspaceTab(\n ProgramsForm,\n `${t(\"editProgram\", \"Edit Program\")}`,\n {\n program: patientProgram?.program?.name,\n programUuid: patientProgram?.uuid,\n enrollmentDate: patientProgram?.dateEnrolled,\n completionDate: patientProgram?.dateCompleted,\n locationUuid: patientProgram?.location?.uuid,\n }\n )\n }\n >\n <div className={`omrs-type-body-regular ${styles.programCard}`}>\n <div>\n <p className=\"omrs-type-title-3\" data-testid=\"program-name\">\n {patientProgram.program.name}\n </p>\n </div>\n <table className={styles.programTable}>\n <thead>\n <tr>\n <td>\n <Trans i18nKey=\"enrolledOn\">Enrolled on</Trans>\n </td>\n <td>\n <Trans i18nKey=\"status\">Status</Trans>\n </td>\n <td>\n <Trans i18nKey=\"enrolledAt\">Enrolled at</Trans>\n </td>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>\n {dayjs(patientProgram?.dateEnrolled).format(\n \"DD-MMM-YYYY\"\n )}\n </td>\n <td className={styles.completedProgram}>\n {patientProgram?.dateCompleted ? (\n <span className={styles.completionDate}>\n <Trans i18nKey=\"completedOn\">Completed on</Trans>{\" \"}\n {dayjs(patientProgram?.dateCompleted).format(\n \"DD-MMM-YYYY\"\n )}\n </span>\n ) : (\n <Trans i18nKey=\"active\">Active</Trans>\n )}\n </td>\n <td>\n {patientProgram?.location\n ? patientProgram?.location?.display\n : \"-\"}\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </SummaryCard>\n </div>\n )}\n </>\n );\n};\n\nexport default ProgramRecord;\n","import React from \"react\";\nimport ProgramsDetailedSummary from \"./programs-detailed-summary.component\";\nimport ProgramRecord from \"./program-record.component\";\nimport { Switch, Route, BrowserRouter } from \"react-router-dom\";\nimport { ProgramsContext } from \"./programs.context\";\n\ninterface ProgramsProps {\n basePath: string;\n patient: fhir.Patient;\n patientUuid: string;\n}\n\nexport default function Programs({\n basePath,\n patient,\n patientUuid,\n}: ProgramsProps) {\n return (\n <ProgramsContext.Provider value={{ patientUuid, patient }}>\n <BrowserRouter basename={`${window.spaBase}${basePath}/programs`}>\n <Switch>\n <Route exact path=\"/\" component={ProgramsDetailedSummary} />\n <Route exact path=\"/:programUuid\" component={ProgramRecord} />\n </Switch>\n </BrowserRouter>\n </ProgramsContext.Provider>\n );\n}\n"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(window.webpackJsonp_openmrs_esm_patient_programs_app=window.webpackJsonp_openmrs_esm_patient_programs_app||[]).push([[6],{108:function(e,t){System.register(["react","@openmrs/esm-framework"],(function(e){var t,r;return{setters:[function(e){t=e},function(e){r=e}],execute:function(){e(function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=4)}([function(e,r){e.exports=t},function(e,t,r){"use strict";r.d(t,"a",(function(){return s}));var n=r(0),o=r.n(n),i=r(3);const s=e=>({basePath:t})=>o.a.createElement("div",{key:e.name},o.a.createElement(i.ConfigurableLink,{to:`${t}/${e.name}`,className:"bx--side-nav__link"},e.title))},function(e,t){},function(e,t){e.exports=r},function(e,t,r){r(6),e.exports=r(5)},function(e,t,r){"use strict";r.r(t);var n=r(1);r.d(t,"createDashboardLink",(function(){return n.a}));var o=r(2);for(var i in o)["default","createDashboardLink"].indexOf(i)<0&&function(e){r.d(t,e,(function(){return o[e]}))}(i)},function(e,t,r){"use strict";r.r(t),function(e,t){if(t||(t=1),0===e.trim().length)throw Error("systemjs-webpack-interop: setPublicPath(systemjsModuleName) must be called with a non-empty string 'systemjsModuleName'");if("number"!=typeof t||t<=0||!Number.isInteger(t))throw Error("systemjs-webpack-interop: setPublicPath(systemjsModuleName, rootDirectoryLevel) must be called with a positive integer 'rootDirectoryLevel'");let n;try{if(n=window.System.resolve(e),!n)throw Error()}catch(t){throw Error("systemjs-webpack-interop: There is no such module '"+e+"' in the SystemJS registry. Did you misspell the name of your module?")}r.p=function(e,t){const r=new URL(e),n=new URL(e).pathname;let o=0,i=n.length;for(;o!==t&&i>=0;)"/"===n[--i]&&o++;if(o!==t)throw Error("systemjs-webpack-interop: rootDirectoryLevel ("+t+") is greater than the number of directories ("+o+") in the URL path "+fullUrl);return r.pathname=r.pathname.slice(0,i+1),r.href}(n,t)}("@openmrs/esm-patient-common-lib")}]))}}}))},126:function(e,t,r){"use strict";r.r(t);var n=r(1),o=r(108);t.default=Object(o.createDashboardLink)(n.a)}}]);
|
|
2
|
-
//# sourceMappingURL=6.openmrs-esm-patient-programs-app.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:////webpack/bootstrap","webpack:///webpack:/external \"react\"","webpack:////src/createDashboardLink.tsx","webpack:///webpack:/external \"@openmrs/esm-framework\"","webpack:////src/index.ts","webpack:////home/runner/work/openmrs-esm-patient-chart/openmrs-esm-patient-chart/node_modules/systemjs-webpack-interop/src/public-path-system-resolve.js","webpack:////src/set-public-path.ts","webpack:///./src/dashboard/dashboard-link.component.tsx"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__WEBPACK_EXTERNAL_MODULE__0__","createDashboardLink","db","basePath","ConfigurableLink","to","className","title","__WEBPACK_EXTERNAL_MODULE__3__","e","systemjsModuleName","rootDirectoryLevel","trim","length","Error","Number","isInteger","moduleUrl","window","System","resolve","err","urlString","url","URL","pathname","numDirsProcessed","index","fullUrl","slice","href"],"mappings":"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","file":"6.openmrs-esm-patient-programs-app.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 4);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__0__;","import React from \"react\";\nimport { ConfigurableLink } from \"@openmrs/esm-framework\";\nimport { DashboardConfig } from \"./types\";\n\nexport const createDashboardLink = (db: DashboardConfig) => {\n const DashboardLink: React.FC<{ basePath: string }> = ({ basePath }) => {\n return (\n <div key={db.name}>\n <ConfigurableLink\n to={`${basePath}/${db.name}`}\n className=\"bx--side-nav__link\"\n >\n {db.title}\n </ConfigurableLink>\n </div>\n );\n };\n return DashboardLink;\n};\n","module.exports = __WEBPACK_EXTERNAL_MODULE__3__;","export * from \"./createDashboardLink\";\nexport * from \"./types\";\n","export function setPublicPath(systemjsModuleName, rootDirectoryLevel) {\n if (!rootDirectoryLevel) {\n rootDirectoryLevel = 1;\n }\n if (\n typeof systemjsModuleName !== \"string\" ||\n systemjsModuleName.trim().length === 0\n ) {\n throw Error(\n \"systemjs-webpack-interop: setPublicPath(systemjsModuleName) must be called with a non-empty string 'systemjsModuleName'\"\n );\n }\n\n if (\n typeof rootDirectoryLevel !== \"number\" ||\n rootDirectoryLevel <= 0 ||\n !Number.isInteger(rootDirectoryLevel)\n ) {\n throw Error(\n \"systemjs-webpack-interop: setPublicPath(systemjsModuleName, rootDirectoryLevel) must be called with a positive integer 'rootDirectoryLevel'\"\n );\n }\n\n let moduleUrl;\n try {\n moduleUrl = window.System.resolve(systemjsModuleName);\n if (!moduleUrl) {\n throw Error();\n }\n } catch (err) {\n throw Error(\n \"systemjs-webpack-interop: There is no such module '\" +\n systemjsModuleName +\n \"' in the SystemJS registry. Did you misspell the name of your module?\"\n );\n }\n\n __webpack_public_path__ = resolveDirectory(moduleUrl, rootDirectoryLevel);\n}\n\nfunction resolveDirectory(urlString, rootDirectoryLevel) {\n const url = new URL(urlString);\n const pathname = new URL(urlString).pathname;\n let numDirsProcessed = 0,\n index = pathname.length;\n while (numDirsProcessed !== rootDirectoryLevel && index >= 0) {\n const char = pathname[--index];\n if (char === \"/\") {\n numDirsProcessed++;\n }\n }\n\n if (numDirsProcessed !== rootDirectoryLevel) {\n throw Error(\n \"systemjs-webpack-interop: rootDirectoryLevel (\" +\n rootDirectoryLevel +\n \") is greater than the number of directories (\" +\n numDirsProcessed +\n \") in the URL path \" +\n fullUrl\n );\n }\n\n url.pathname = url.pathname.slice(0, index + 1);\n\n return url.href;\n}\n","import { setPublicPath } from \"systemjs-webpack-interop\";\n\nsetPublicPath(\"@openmrs/esm-patient-common-lib\");\n","import db from \"./dashboard.meta\";\nimport {\n createDashboardLink,\n DashboardConfig,\n} from \"@openmrs/esm-patient-common-lib\";\n\nexport default createDashboardLink(db as DashboardConfig);\n"],"sourceRoot":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"7.openmrs-esm-patient-programs-app.js","sourceRoot":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"8.openmrs-esm-patient-programs-app.js","sourceRoot":""}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import styles from "./summary-card.css";
|
|
3
|
-
import { Link } from "react-router-dom";
|
|
4
|
-
import { Trans } from "react-i18next";
|
|
5
|
-
|
|
6
|
-
interface SummaryCardProps {
|
|
7
|
-
name: string;
|
|
8
|
-
children: React.ReactNode;
|
|
9
|
-
styles?: React.CSSProperties;
|
|
10
|
-
link?: string;
|
|
11
|
-
addComponent?: string | any;
|
|
12
|
-
editComponent?: string | any;
|
|
13
|
-
editBtnUrl?: string;
|
|
14
|
-
showComponent?: Function;
|
|
15
|
-
className?: string;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export default function SummaryCard(props: SummaryCardProps) {
|
|
19
|
-
return (
|
|
20
|
-
<div
|
|
21
|
-
style={props.styles}
|
|
22
|
-
className={`omrs-card ${styles.card} ${props.className || ""}`}
|
|
23
|
-
>
|
|
24
|
-
<div className={styles.header}>
|
|
25
|
-
<div className={styles.headerTitle}>
|
|
26
|
-
{props.link ? (
|
|
27
|
-
<Link to={props.link} className={`omrs-unstyled`}>
|
|
28
|
-
{contents()}
|
|
29
|
-
</Link>
|
|
30
|
-
) : (
|
|
31
|
-
<>{contents()}</>
|
|
32
|
-
)}
|
|
33
|
-
</div>
|
|
34
|
-
{props.addComponent && (
|
|
35
|
-
<div className={styles.headerAdd}>
|
|
36
|
-
<button
|
|
37
|
-
className={`omrs-unstyled ${styles.addBtn}`}
|
|
38
|
-
onClick={() =>
|
|
39
|
-
props.showComponent(props.addComponent, props.name)
|
|
40
|
-
}
|
|
41
|
-
>
|
|
42
|
-
<Trans i18nKey="add">Add</Trans>
|
|
43
|
-
</button>
|
|
44
|
-
</div>
|
|
45
|
-
)}
|
|
46
|
-
{props.editComponent && (
|
|
47
|
-
<div className={styles.headerEdit}>
|
|
48
|
-
<button
|
|
49
|
-
className={`omrs-unstyled ${styles.editBtn}`}
|
|
50
|
-
onClick={() =>
|
|
51
|
-
props.showComponent(props.editComponent, props.name)
|
|
52
|
-
}
|
|
53
|
-
>
|
|
54
|
-
<Trans i18nKey="edit">Edit</Trans>
|
|
55
|
-
</button>
|
|
56
|
-
</div>
|
|
57
|
-
)}
|
|
58
|
-
{props.editBtnUrl && (
|
|
59
|
-
<div className={styles.headerEdit}>
|
|
60
|
-
<button className={`omrs-unstyled ${styles.editBtn}`}>
|
|
61
|
-
<Link className="omrs-unstyled" to={props.editBtnUrl}>
|
|
62
|
-
<Trans i18nKey="edit">Edit</Trans>
|
|
63
|
-
</Link>
|
|
64
|
-
</button>
|
|
65
|
-
</div>
|
|
66
|
-
)}
|
|
67
|
-
</div>
|
|
68
|
-
{props.children}
|
|
69
|
-
</div>
|
|
70
|
-
);
|
|
71
|
-
|
|
72
|
-
function contents() {
|
|
73
|
-
return (
|
|
74
|
-
<div className={styles.title}>
|
|
75
|
-
<h2 className={`omrs-margin-0`}>{props.name}</h2>
|
|
76
|
-
<svg className="omrs-icon" fill="rgba(0, 0, 0, 0.54)">
|
|
77
|
-
<use xlinkHref="#omrs-icon-chevron-right" />
|
|
78
|
-
</svg>
|
|
79
|
-
</div>
|
|
80
|
-
);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
:global(.omrs-breakpoint-lt-desktop) .card {
|
|
2
|
-
width: 100%;
|
|
3
|
-
box-shadow: 0rem 0.125rem 0.25rem rgba(0, 0, 0, 0.08),
|
|
4
|
-
0rem 0.0625rem 0.25rem rgba(0, 0, 0, 0.04);
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
:global(.omrs-breakpoint-gt-tablet) .card {
|
|
8
|
-
box-shadow: 0rem 0.125rem 0.25rem rgba(0, 0, 0, 0.08),
|
|
9
|
-
0rem 0.0625rem 0.25rem rgba(0, 0, 0, 0.04);
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
:global(.omrs-breakpoint-lt-desktop) .card {
|
|
13
|
-
margin: 0rem 0rem;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
:global(.omrs-card) button.addBtn {
|
|
17
|
-
color: var(--omrs-color-ink-medium-contrast);
|
|
18
|
-
letter-spacing: 0.0125rem;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
:global(.omrs-card) button.editBtn {
|
|
22
|
-
color: var(--omrs-color-ink-medium-contrast);
|
|
23
|
-
letter-spacing: 0.0125rem;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
button.addBtn:hover {
|
|
27
|
-
color: var(--omrs-color-interaction-plus-one);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
button.editBtn:hover {
|
|
31
|
-
color: var(--omrs-color-interaction-plus-one);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
.header {
|
|
35
|
-
display: grid;
|
|
36
|
-
grid-template-columns: [one] 1fr [two] 4.25rem;
|
|
37
|
-
grid-template-rows: [rowone] 3rem;
|
|
38
|
-
grid-template-areas: "a b";
|
|
39
|
-
background-color: var(--omrs-color-bg-medium-contrast);
|
|
40
|
-
align-items: center;
|
|
41
|
-
border-bottom: 0.0625rem solid var(--omrs-color-bg-low-contrast);
|
|
42
|
-
border-radius: 0.25rem 0.25rem 0 0;
|
|
43
|
-
justify-content: space-between;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
.headerTitle {
|
|
47
|
-
grid-area: a;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
.headerAdd {
|
|
51
|
-
grid-area: b;
|
|
52
|
-
justify-self: center;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
.headerEdit {
|
|
56
|
-
grid-area: b;
|
|
57
|
-
justify-self: center;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
.title {
|
|
61
|
-
padding: 0 0 0 1rem;
|
|
62
|
-
display: flex;
|
|
63
|
-
align-items: center;
|
|
64
|
-
height: 3rem;
|
|
65
|
-
}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
|
|
3
|
-
const EmptyDataIllustration = ({ width = "61", height = "59" }) => {
|
|
4
|
-
return (
|
|
5
|
-
<svg width={width} height={height} viewBox="0 0 61 59">
|
|
6
|
-
<title>Empty data illustration</title>
|
|
7
|
-
<g fill="none" fillRule="evenodd">
|
|
8
|
-
<path
|
|
9
|
-
d="M38.133 13.186H21.947c-.768.001-1.39.623-1.39 1.391V50.55l-.186.057-3.97 1.216a.743.743 0 01-.927-.493L3.664 12.751a.742.742 0 01.492-.926l6.118-1.874 17.738-5.43 6.119-1.873a.741.741 0 01.926.492L38.076 13l.057.186z"
|
|
10
|
-
fill="#F4F4F4"
|
|
11
|
-
/>
|
|
12
|
-
<path
|
|
13
|
-
d="M41.664 13L38.026 1.117A1.576 1.576 0 0036.056.07l-8.601 2.633-17.737 5.43-8.603 2.634a1.578 1.578 0 00-1.046 1.97l12.436 40.616a1.58 1.58 0 001.969 1.046l5.897-1.805.185-.057v-.194l-.185.057-5.952 1.822a1.393 1.393 0 01-1.737-.923L.247 12.682a1.39 1.39 0 01.923-1.738L9.772 8.31 27.51 2.881 36.112.247a1.393 1.393 0 011.737.923L41.47 13l.057.186h.193l-.057-.185z"
|
|
14
|
-
fill="#8D8D8D"
|
|
15
|
-
/>
|
|
16
|
-
<path
|
|
17
|
-
d="M11.378 11.855a.836.836 0 01-.798-.59L9.385 7.361a.835.835 0 01.554-1.042l16.318-4.996a.836.836 0 011.042.554l1.195 3.902a.836.836 0 01-.554 1.043l-16.318 4.995a.831.831 0 01-.244.037z"
|
|
18
|
-
fill="#C6C6C6"
|
|
19
|
-
/>
|
|
20
|
-
<circle fill="#C6C6C6" cx={17.636} cy={2.314} r={1.855} />
|
|
21
|
-
<circle
|
|
22
|
-
fill="#FFF"
|
|
23
|
-
fillRule="nonzero"
|
|
24
|
-
cx={17.636}
|
|
25
|
-
cy={2.314}
|
|
26
|
-
r={1.175}
|
|
27
|
-
/>
|
|
28
|
-
<path
|
|
29
|
-
d="M55.893 53.995H24.544a.79.79 0 01-.788-.789V15.644a.79.79 0 01.788-.788h31.349a.79.79 0 01.788.788v37.562a.79.79 0 01-.788.789z"
|
|
30
|
-
fill="#F4F4F4"
|
|
31
|
-
/>
|
|
32
|
-
<path
|
|
33
|
-
d="M41.47 13H21.948a1.579 1.579 0 00-1.576 1.577V52.4l.185-.057V14.577c.001-.768.623-1.39 1.391-1.39h19.581L41.471 13zm17.02 0H21.947a1.579 1.579 0 00-1.576 1.577v42.478c0 .87.706 1.576 1.576 1.577H58.49a1.579 1.579 0 001.576-1.577V14.577a1.579 1.579 0 00-1.576-1.576zm1.39 44.055c0 .768-.622 1.39-1.39 1.392H21.947c-.768-.001-1.39-.624-1.39-1.392V14.577c0-.768.622-1.39 1.39-1.39H58.49c.768 0 1.39.622 1.39 1.39v42.478z"
|
|
34
|
-
fill="#8D8D8D"
|
|
35
|
-
/>
|
|
36
|
-
<path
|
|
37
|
-
d="M48.751 17.082H31.686a.836.836 0 01-.835-.835v-4.081c0-.46.374-.834.835-.835H48.75c.461 0 .834.374.835.835v4.08c0 .462-.374.835-.835.836z"
|
|
38
|
-
fill="#C6C6C6"
|
|
39
|
-
/>
|
|
40
|
-
<circle fill="#C6C6C6" cx={40.218} cy={9.755} r={1.855} />
|
|
41
|
-
<circle
|
|
42
|
-
fill="#FFF"
|
|
43
|
-
fillRule="nonzero"
|
|
44
|
-
cx={40.218}
|
|
45
|
-
cy={9.755}
|
|
46
|
-
r={1.13}
|
|
47
|
-
/>
|
|
48
|
-
</g>
|
|
49
|
-
</svg>
|
|
50
|
-
);
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
export default EmptyDataIllustration;
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import Link from "carbon-components-react/es/components/Link";
|
|
3
|
-
import { Tile } from "carbon-components-react/es/components/Tile";
|
|
4
|
-
import EmptyDataIllustration from "./empty-data-illustration.component";
|
|
5
|
-
import styles from "./empty-state.scss";
|
|
6
|
-
import { Trans, useTranslation } from "react-i18next";
|
|
7
|
-
|
|
8
|
-
interface EmptyStateProps {
|
|
9
|
-
headerTitle: string;
|
|
10
|
-
displayText: string;
|
|
11
|
-
launchForm?(): void;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
const EmptyState: React.FC<EmptyStateProps> = (props) => {
|
|
15
|
-
const { t } = useTranslation();
|
|
16
|
-
|
|
17
|
-
return (
|
|
18
|
-
<Tile light className={styles.tile}>
|
|
19
|
-
<h1 className={styles.heading}>{props.headerTitle}</h1>
|
|
20
|
-
<EmptyDataIllustration />
|
|
21
|
-
<p className={styles.content}>
|
|
22
|
-
<Trans
|
|
23
|
-
i18nKey="emptyStateText"
|
|
24
|
-
values={{ displayText: props.displayText.toLowerCase() }}
|
|
25
|
-
>
|
|
26
|
-
There are no {props.displayText.toLowerCase()} to display for this
|
|
27
|
-
patient
|
|
28
|
-
</Trans>
|
|
29
|
-
</p>
|
|
30
|
-
<p className={styles.action}>
|
|
31
|
-
<Link onClick={() => props.launchForm()}>
|
|
32
|
-
{t("record", "Record")} {props.displayText.toLowerCase()}
|
|
33
|
-
</Link>
|
|
34
|
-
</p>
|
|
35
|
-
</Tile>
|
|
36
|
-
);
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
export default EmptyState;
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
@import "~@openmrs/esm-styleguide/src/vars";
|
|
2
|
-
@import "~carbon-components/src/globals/scss/vars";
|
|
3
|
-
@import "~carbon-components/src/globals/scss/mixins";
|
|
4
|
-
|
|
5
|
-
.action {
|
|
6
|
-
margin-bottom: $spacing-03;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
.content {
|
|
10
|
-
@include carbon--type-style("productive-heading-01");
|
|
11
|
-
color: $text-02;
|
|
12
|
-
margin-top: $spacing-05;
|
|
13
|
-
margin-bottom: $spacing-03;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
.heading {
|
|
17
|
-
text-align: left;
|
|
18
|
-
text-transform: capitalize;
|
|
19
|
-
margin-bottom: 1rem;
|
|
20
|
-
@include carbon--type-style("productive-heading-03");
|
|
21
|
-
color: $text-02;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
.heading:after {
|
|
25
|
-
content: "";
|
|
26
|
-
display: block;
|
|
27
|
-
width: 2rem;
|
|
28
|
-
padding-top: 0.188rem;
|
|
29
|
-
border-bottom: 0.375rem solid $brand-teal-01;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
.tile {
|
|
33
|
-
text-align: center;
|
|
34
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { Tile } from "carbon-components-react/es/components/Tile";
|
|
3
|
-
import { useTranslation } from "react-i18next";
|
|
4
|
-
import styles from "./error-state.scss";
|
|
5
|
-
|
|
6
|
-
interface ErrorStateProps {
|
|
7
|
-
error: any;
|
|
8
|
-
headerTitle: string;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
const EmptyState: React.FC<ErrorStateProps> = ({ error, headerTitle }) => {
|
|
12
|
-
const { t } = useTranslation();
|
|
13
|
-
|
|
14
|
-
return (
|
|
15
|
-
<Tile light className={styles.tile}>
|
|
16
|
-
<h1 className={styles.heading}>{headerTitle}</h1>
|
|
17
|
-
<p className={styles.errorMessage}>
|
|
18
|
-
{t("error", "Error")} {`${error?.response?.status}: `}
|
|
19
|
-
{error?.response?.statusText}
|
|
20
|
-
</p>
|
|
21
|
-
<p className={styles.errorCopy}>{t("errorCopy")}</p>
|
|
22
|
-
</Tile>
|
|
23
|
-
);
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
export default EmptyState;
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
@import "~@openmrs/esm-styleguide/src/vars";
|
|
2
|
-
@import "~carbon-components/src/globals/scss/vars";
|
|
3
|
-
@import "~carbon-components/src/globals/scss/mixins";
|
|
4
|
-
|
|
5
|
-
.errorMessage {
|
|
6
|
-
@include carbon--type-style("productive-heading-02");
|
|
7
|
-
color: $text-01;
|
|
8
|
-
margin-top: 2.25rem;
|
|
9
|
-
margin-bottom: $spacing-03;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
.errorCopy {
|
|
13
|
-
margin-bottom: $spacing-03;
|
|
14
|
-
@include carbon--type-style("body-long-01");
|
|
15
|
-
color: $text-02;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
.heading {
|
|
19
|
-
text-align: left;
|
|
20
|
-
text-transform: capitalize;
|
|
21
|
-
margin-bottom: $spacing-05;
|
|
22
|
-
@include carbon--type-style("productive-heading-03");
|
|
23
|
-
color: $text-02;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
.heading:after {
|
|
27
|
-
content: "";
|
|
28
|
-
display: block;
|
|
29
|
-
width: 2rem;
|
|
30
|
-
padding-top: 0.188rem;
|
|
31
|
-
border-bottom: 0.375rem solid $brand-teal-01;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
.tile {
|
|
35
|
-
text-align: center;
|
|
36
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { getStartedVisit, newWorkspaceItem } from "@openmrs/esm-framework";
|
|
2
|
-
import isEmpty from "lodash-es/isEmpty";
|
|
3
|
-
|
|
4
|
-
export interface DataCaptureComponentProps {
|
|
5
|
-
entryStarted: () => void;
|
|
6
|
-
entrySubmitted: () => void;
|
|
7
|
-
entryCancelled: () => void;
|
|
8
|
-
closeComponent: () => void;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export function openWorkspaceTab<
|
|
12
|
-
TProps = DataCaptureComponentProps,
|
|
13
|
-
TParams = any
|
|
14
|
-
>(
|
|
15
|
-
componentToAdd: React.FC<TProps>,
|
|
16
|
-
componentName: string,
|
|
17
|
-
params?: TParams,
|
|
18
|
-
requiresVisit = true
|
|
19
|
-
): void {
|
|
20
|
-
if (isEmpty(getStartedVisit.value) && requiresVisit) {
|
|
21
|
-
window.dispatchEvent(
|
|
22
|
-
new CustomEvent("visit-dialog", {
|
|
23
|
-
detail: {
|
|
24
|
-
type: "prompt",
|
|
25
|
-
},
|
|
26
|
-
})
|
|
27
|
-
);
|
|
28
|
-
} else {
|
|
29
|
-
newWorkspaceItem({
|
|
30
|
-
component: componentToAdd,
|
|
31
|
-
name: componentName,
|
|
32
|
-
props: {
|
|
33
|
-
match: { params: params ? params : {} },
|
|
34
|
-
},
|
|
35
|
-
inProgress: false,
|
|
36
|
-
validations: (workspaceTabs) =>
|
|
37
|
-
workspaceTabs.findIndex((tab) => tab.component === componentToAdd),
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
}
|