@openmrs/esm-home-app 3.1.2-pre.103 → 4.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openmrs/esm-home-app",
3
- "version": "3.1.2-pre.103",
3
+ "version": "4.0.0",
4
4
  "description": "Homepage microfrontend for the OpenMRS SPA",
5
5
  "browser": "dist/openmrs-esm-home-app.js",
6
6
  "main": "src/index.ts",
@@ -13,10 +13,10 @@
13
13
  "build": "webpack --mode production",
14
14
  "analyze": "webpack --mode=production --env.analyze=true",
15
15
  "lint": "eslint src --ext tsx",
16
- "test": "jest --config jest.config.json --verbose false --passWithNoTests",
17
- "test-watch": "jest --watch --config jest.config.json",
18
16
  "typescript": "tsc",
19
- "extract-translations": "i18next 'src/**/*.{component.tsx,tsx}'"
17
+ "extract-translations": "i18next 'src/**/*.{component.tsx,tsx}' --config ../../tools/i18next-parser.config.js",
18
+ "test": "cross-env TZ=UTC jest --config jest.config.js --verbose false --passWithNoTests",
19
+ "coverage": "yarn test --coverage"
20
20
  },
21
21
  "browserslist": [
22
22
  "extends browserslist-config-openmrs"
@@ -39,16 +39,11 @@
39
39
  "bugs": {
40
40
  "url": "https://github.com/openmrs/openmrs-esm-home/issues"
41
41
  },
42
- "dependencies": {
43
- "lodash-es": "^4.17.15"
44
- },
45
42
  "peerDependencies": {
46
- "@openmrs/esm-framework": ">=4.x-pre",
47
- "dayjs": "1.x",
43
+ "@openmrs/esm-framework": "4.x",
48
44
  "react": "18.x",
49
45
  "react-i18next": "11.x",
50
- "react-router-dom": "6.x",
51
- "rxjs": "6.x"
46
+ "react-router-dom": "6.x"
52
47
  },
53
- "gitHead": "eb0e6b4f7de22c8697201455242928d700e7916f"
48
+ "gitHead": "76a153fe5ef24444fbb3068fa418e6727fc6b7e9"
54
49
  }
package/setupTests.ts CHANGED
@@ -1,7 +1,8 @@
1
- import '@testing-library/jest-dom/extend-expect';
1
+ import '@testing-library/jest-dom';
2
2
 
3
3
  declare global {
4
4
  interface Window {
5
+ getOpenmrsSpaBase: () => string;
5
6
  openmrsBase: string;
6
7
  spaBase: string;
7
8
  }
@@ -25,11 +25,13 @@ export default function HomeDashboard() {
25
25
  </div>
26
26
  </section>
27
27
  </div>
28
- <section className={styles.logoSection}>
29
- <svg>
30
- <use xlinkHref="#omrs-logo-full-mono" />
31
- </svg>
32
- </section>
28
+ {config.showOpenMRSLogo && (
29
+ <section className={styles.logoSection}>
30
+ <svg>
31
+ <use xlinkHref="#omrs-logo-full-mono" />
32
+ </svg>
33
+ </section>
34
+ )}
33
35
  </>
34
36
  );
35
37
  }
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { screen } from '@testing-library/react';
2
+ import { queryByAttribute, screen } from '@testing-library/react';
3
3
  import { useConfig, UserHasAccess } from '@openmrs/esm-framework';
4
4
  import HomeDashboard from './home-dashboard.component';
5
5
  import renderWithRouter from '../helpers/render-with-router';
@@ -10,54 +10,67 @@ const mockedUserHasAccess = UserHasAccess as jest.Mock;
10
10
  function renderHomeDashboard() {
11
11
  return renderWithRouter(<HomeDashboard />);
12
12
  }
13
+ describe('Home Dashboard', () => {
14
+ it('renders buttons declared in config', () => {
15
+ mockedUseConfig.mockReturnValue({
16
+ buttons: {
17
+ enabled: true,
18
+ list: [
19
+ {
20
+ label: 'Foo',
21
+ link: '/some/route',
22
+ },
23
+ ],
24
+ },
25
+ });
13
26
 
14
- it('renders buttons declared in config', () => {
15
- mockedUseConfig.mockReturnValue({
16
- buttons: {
17
- enabled: true,
18
- list: [
19
- {
20
- label: 'Foo',
21
- link: '/some/route',
22
- },
23
- ],
24
- },
27
+ renderHomeDashboard();
28
+
29
+ expect(screen.getByRole('link', { name: /Foo/i })).toBeInTheDocument();
25
30
  });
26
31
 
27
- renderHomeDashboard();
32
+ it('renders selectively based on privileges', () => {
33
+ mockedUserHasAccess.mockImplementation((props) => {
34
+ if (['View Patients', 'Can Foo'].includes(props.privilege)) {
35
+ return props.children;
36
+ } else {
37
+ return null;
38
+ }
39
+ });
28
40
 
29
- expect(screen.getByRole('link', { name: /Foo/i })).toBeInTheDocument();
30
- });
41
+ mockedUseConfig.mockReturnValueOnce({
42
+ buttons: {
43
+ enabled: true,
44
+ list: [
45
+ {
46
+ label: 'Foo',
47
+ link: 'foo',
48
+ requiredPrivilege: 'Can Foo',
49
+ },
50
+ {
51
+ label: 'Bar',
52
+ link: 'bar',
53
+ requiredPrivilege: 'Can Bar',
54
+ },
55
+ ],
56
+ },
57
+ });
31
58
 
32
- it('renders selectively based on privileges', () => {
33
- mockedUserHasAccess.mockImplementation((props) => {
34
- if (['View Patients', 'Can Foo'].includes(props.privilege)) {
35
- return props.children;
36
- } else {
37
- return null;
38
- }
39
- });
59
+ renderHomeDashboard();
40
60
 
41
- mockedUseConfig.mockReturnValue({
42
- buttons: {
43
- enabled: true,
44
- list: [
45
- {
46
- label: 'Foo',
47
- link: 'foo',
48
- requiredPrivilege: 'Can Foo',
49
- },
50
- {
51
- label: 'Bar',
52
- link: 'bar',
53
- requiredPrivilege: 'Can Bar',
54
- },
55
- ],
56
- },
61
+ expect(screen.getByRole('link', { name: /Foo/i })).toBeInTheDocument();
62
+ expect(screen.queryByRole('link', { name: /Bar/i })).not.toBeInTheDocument();
57
63
  });
58
64
 
59
- renderHomeDashboard();
65
+ it('should hide OpenMRS logo,when config is set to `false`', () => {
66
+ mockedUseConfig.mockReturnValueOnce({ showOpenMRSLogo: false, buttons: { list: [] } });
67
+ const { container } = renderHomeDashboard();
68
+ expect(container.querySelectorAll('section')[0]).not.toHaveClass('logoSection');
69
+ });
60
70
 
61
- expect(screen.getByRole('link', { name: /Foo/i })).toBeInTheDocument();
62
- expect(screen.queryByRole('link', { name: /Bar/i })).not.toBeInTheDocument();
71
+ it('should display OpenMRS logo,by default', () => {
72
+ mockedUseConfig.mockReturnValueOnce({ showOpenMRSLogo: true, buttons: { list: [] } });
73
+ const { container } = renderHomeDashboard();
74
+ expect(container.querySelectorAll('section')[1]).toHaveClass('logoSection');
75
+ });
63
76
  });
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { MemoryRouter, Router } from 'react-router-dom';
2
+ import { MemoryRouter } from 'react-router-dom';
3
3
  import { createMemoryHistory } from 'history';
4
4
  import { render } from '@testing-library/react';
5
5
 
package/src/index.ts CHANGED
@@ -1,6 +1,10 @@
1
1
  import { registerBreadcrumbs, defineConfigSchema, getAsyncLifecycle } from '@openmrs/esm-framework';
2
2
  import { esmHomeSchema } from './openmrs-esm-home-schema';
3
3
 
4
+ declare var __VERSION__: string;
5
+ // __VERSION__ is replaced by Webpack with the version from package.json
6
+ const version = __VERSION__;
7
+
4
8
  const backendDependencies = {
5
9
  'webservices.rest': '^2.24.0',
6
10
  };
@@ -93,4 +97,4 @@ function setupOpenMRS() {
93
97
  };
94
98
  }
95
99
 
96
- export { backendDependencies, importTranslation, setupOpenMRS };
100
+ export { backendDependencies, importTranslation, setupOpenMRS, version };
@@ -29,9 +29,15 @@ export const esmHomeSchema = {
29
29
  },
30
30
  search: {
31
31
  patientResultUrl: {
32
+ _type: Type.String,
32
33
  _default: '${openmrsSpaBase}/patient/${patientUuid}/chart',
33
34
  _description: 'Where clicking a patient result takes the user. Accepts template parameter ${patientUuid}',
34
35
  _validators: [validators.isUrlWithTemplateParameters(['patientUuid'])],
35
36
  },
36
37
  },
38
+ showOpenMRSLogo: {
39
+ _type: Type.Boolean,
40
+ _description: 'Whether to display OpenMRS logo on home dashboard',
41
+ _default: true,
42
+ },
37
43
  };
package/dist/354.js DELETED
@@ -1 +0,0 @@
1
- (self.webpackChunk_openmrs_esm_home_app=self.webpackChunk_openmrs_esm_home_app||[]).push([[354],{354:(e,n,i)=>{"use strict";i.r(n),i.d(n,{backendDependencies:()=>o,importTranslation:()=>r,setupOpenMRS:()=>l});var t=i(335),a={buttons:{enabled:{_type:t.Type.Boolean,_default:!0,_description:"Whether to show big buttons on the home page (including extensions)"},list:{_type:t.Type.Array,_elements:{label:{_type:t.Type.String},link:{_type:t.Type.String,_validators:[t.validators.isUrl]},requiredPrivilege:{_type:t.Type.String},spa:{_type:t.Type.Boolean,_default:!1}},_default:[],_description:"Custom buttons to add, which will come after the button extensions"}},search:{patientResultUrl:{_default:"${openmrsSpaBase}/patient/${patientUuid}/chart",_description:"Where clicking a patient result takes the user. Accepts template parameter ${patientUuid}",_validators:[t.validators.isUrlWithTemplateParameters(["patientUuid"])]}}},o={"webservices.rest":"^2.24.0"},r=i(979);function l(){var e="@openmrs/esm-home-app",n="home",o={featureName:n,moduleName:e};return(0,t.defineConfigSchema)(e,a),(0,t.registerBreadcrumbs)([{path:"".concat(window.spaBase,"/").concat(n),title:"Home"}]),{pages:[{load:(0,t.getAsyncLifecycle)((function(){return Promise.all([i.e(268),i.e(54)]).then(i.bind(i,54))}),o),route:n,online:{canSearch:!0},offline:{canSearch:!1}}],extensions:[{id:"active-visits-link",load:(0,t.getAsyncLifecycle)((function(){return Promise.all([i.e(268),i.e(924),i.e(183)]).then(i.bind(i,183))}),o),privilege:"App: coreapps.activeVisits",online:!0,offline:!0},{id:"capture-vitals-link",load:(0,t.getAsyncLifecycle)((function(){return Promise.all([i.e(268),i.e(924),i.e(520)]).then(i.bind(i,520))}),o),privilege:"App: referenceapplication.vitals",online:!0,offline:!1},{id:"appointment-scheduling-link",load:(0,t.getAsyncLifecycle)((function(){return Promise.all([i.e(268),i.e(924),i.e(199)]).then(i.bind(i,199))}),o),privilege:"App: appointmentschedulingui.home",online:!0,offline:!1},{id:"reports-link",load:(0,t.getAsyncLifecycle)((function(){return Promise.all([i.e(268),i.e(924),i.e(994)]).then(i.bind(i,994))}),o),privilege:"View Reports",online:!0,offline:!1},{id:"data-management-link",load:(0,t.getAsyncLifecycle)((function(){return Promise.all([i.e(268),i.e(924),i.e(59)]).then(i.bind(i,59))}),o),privilege:"App: coreapps.dataManagement",online:!0,offline:!1},{id:"configure-metadata-link",load:(0,t.getAsyncLifecycle)((function(){return Promise.all([i.e(268),i.e(924),i.e(499)]).then(i.bind(i,499))}),o),privilege:"App: coreapps.configuremetadata",online:!0,offline:!1},{id:"system-administration-link",slot:"app-menu-slot",load:(0,t.getAsyncLifecycle)((function(){return Promise.all([i.e(268),i.e(924),i.e(870)]).then(i.bind(i,870))}),o),privilege:"App: coreapps.systemAdministration",online:!0,offline:!1}]}}},979:(e,n,i)=>{var t={"./en.json":[574,574],"./es.json":[319,319]};function a(e){if(!i.o(t,e))return Promise.resolve().then((()=>{var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}));var n=t[e],a=n[0];return i.e(n[1]).then((()=>i(a)))}a.keys=()=>Object.keys(t),a.id=979,e.exports=a}}]);
package/dist/54.js DELETED
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_openmrs_esm_home_app=self.webpackChunk_openmrs_esm_home_app||[]).push([[54],{49:(e,n,t)=>{t.d(n,{Z:()=>r});var a=t(609),o=t.n(a)()((function(e){return e[1]}));o.push([e.id,"/* Variables defined in home-dashboard.component.css */\n\n.-esm-home__dashboard-button__link___8twZV {\n height: 7rem;\n width: var(--dashboard-button-width);\n margin: var(--dashboard-button-margin);\n justify-content: center;\n}\n\n.-esm-home__dashboard-button__textContainer___PAGCD {\n display: inline-flex;\n min-width: 0;\n white-space: normal;\n line-height: 1.5;\n}\n",""]),o.locals={link:"-esm-home__dashboard-button__link___8twZV",textContainer:"-esm-home__dashboard-button__textContainer___PAGCD"};const r=o},383:(e,n,t)=>{t.d(n,{Z:()=>r});var a=t(609),o=t.n(a)()((function(e){return e[1]}));o.push([e.id,":root {\n --dashboard-button-width: 10rem;\n --dashboard-button-margin: 0.25rem;\n}\n\n.-esm-home__home-dashboard__homeDashboard___BvI\\+a {\n display: flex;\n justify-content: center;\n margin: 0 auto;\n}\n\n.omrs-breakpoint-gt-phone .-esm-home__home-dashboard__homeDashboard___BvI\\+a {\n height: calc(100vh - var(--omrs-topnav-height) - 10rem);\n}\n\n.-esm-home__home-dashboard__mainSection___\\+\\+-wZ {\n min-height: 1vh;\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n align-content: flex-start;\n flex-grow: 1;\n}\n\n.-esm-home__home-dashboard__searchLinkArea___-mxtu {\n display: flex;\n flex-basis: 100%;\n justify-content: center;\n margin: 2rem auto;\n}\n\n.-esm-home__home-dashboard__buttonArea___QJSdW > div {\n min-height: 1vh;\n display: flex;\n flex-wrap: wrap;\n justify-content: left;\n align-items: center;\n flex-grow: 1;\n}\n\n.-esm-home__home-dashboard__label___W9IkA {\n color: var(--omrs-color-interaction);\n margin-left: 0.25rem;\n text-align: center;\n}\n\n.-esm-home__home-dashboard__logoSection___rHgg0 {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n}\n\n.-esm-home__home-dashboard__break___\\+UzT8 {\n height: 0;\n flex-basis: 100%;\n}\n\n.omrs-breakpoint-lt-tablet .-esm-home__home-dashboard__dashboardLink___bVEFt {\n width: 80%;\n}\n\n.omrs-breakpoint-gt-phone .-esm-home__home-dashboard__dashboardLink___bVEFt {\n width: 22rem;\n}\n\n.omrs-breakpoint-lt-tablet .-esm-home__home-dashboard__buttonArea___QJSdW {\n max-width: calc(\n var(--dashboard-button-width) * 2 + var(--dashboard-button-margin) * 4\n );\n}\n\n.omrs-breakpoint-gt-phone .-esm-home__home-dashboard__buttonArea___QJSdW {\n max-width: calc(\n var(--dashboard-button-width) * 3 + var(--dashboard-button-margin) * 6\n );\n}\n\n.omrs-breakpoint-gt-tablet .-esm-home__home-dashboard__buttonArea___QJSdW {\n max-width: calc(\n var(--dashboard-button-width) * 4 + var(--dashboard-button-margin) * 8\n );\n}\n\n.-esm-home__home-dashboard__homeButton___mcuDU a {\n height: 7rem;\n width: var(--dashboard-button-width);\n margin: var(--dashboard-button-margin);\n justify-content: center;\n white-space: normal;\n}\n\n.-esm-home__home-dashboard__widgetsArea___zZ3No {\n margin-top: 2rem;\n padding: 0 1rem;\n width: 100%;\n}",""]),o.locals={homeDashboard:"-esm-home__home-dashboard__homeDashboard___BvI+a",mainSection:"-esm-home__home-dashboard__mainSection___++-wZ",searchLinkArea:"-esm-home__home-dashboard__searchLinkArea___-mxtu",buttonArea:"-esm-home__home-dashboard__buttonArea___QJSdW",label:"-esm-home__home-dashboard__label___W9IkA",logoSection:"-esm-home__home-dashboard__logoSection___rHgg0",break:"-esm-home__home-dashboard__break___+UzT8",dashboardLink:"-esm-home__home-dashboard__dashboardLink___bVEFt",homeButton:"-esm-home__home-dashboard__homeButton___mcuDU",widgetsArea:"-esm-home__home-dashboard__widgetsArea___zZ3No"};const r=o},609:e=>{e.exports=function(e){var n=[];return n.toString=function(){return this.map((function(n){var t=e(n);return n[2]?"@media ".concat(n[2]," {").concat(t,"}"):t})).join("")},n.i=function(e,t,a){"string"==typeof e&&(e=[[null,e,""]]);var o={};if(a)for(var r=0;r<this.length;r++){var s=this[r][0];null!=s&&(o[s]=!0)}for(var i=0;i<e.length;i++){var m=[].concat(e[i]);a&&o[m[0]]||(t&&(m[2]?m[2]="".concat(t," and ").concat(m[2]):m[2]=t),n.push(m))}},n}},62:e=>{var n=[];function t(e){for(var t=-1,a=0;a<n.length;a++)if(n[a].identifier===e){t=a;break}return t}function a(e,a){for(var r={},s=[],i=0;i<e.length;i++){var m=e[i],_=a.base?m[0]+a.base:m[0],d=r[_]||0,h="".concat(_," ").concat(d);r[_]=d+1;var l=t(h),c={css:m[1],media:m[2],sourceMap:m[3],supports:m[4],layer:m[5]};if(-1!==l)n[l].references++,n[l].updater(c);else{var u=o(c,a);a.byIndex=i,n.splice(i,0,{identifier:h,updater:u,references:1})}s.push(h)}return s}function o(e,n){var t=n.domAPI(n);return t.update(e),function(n){if(n){if(n.css===e.css&&n.media===e.media&&n.sourceMap===e.sourceMap&&n.supports===e.supports&&n.layer===e.layer)return;t.update(e=n)}else t.remove()}}e.exports=function(e,o){var r=a(e=e||[],o=o||{});return function(e){e=e||[];for(var s=0;s<r.length;s++){var i=t(r[s]);n[i].references--}for(var m=a(e,o),_=0;_<r.length;_++){var d=t(r[_]);0===n[d].references&&(n[d].updater(),n.splice(d,1))}r=m}}},793:e=>{var n={};e.exports=function(e,t){var a=function(e){if(void 0===n[e]){var t=document.querySelector(e);if(window.HTMLIFrameElement&&t instanceof window.HTMLIFrameElement)try{t=t.contentDocument.head}catch(e){t=null}n[e]=t}return n[e]}(e);if(!a)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");a.appendChild(t)}},173:e=>{e.exports=function(e){var n=document.createElement("style");return e.setAttributes(n,e.attributes),e.insert(n,e.options),n}},892:(e,n,t)=>{e.exports=function(e){var n=t.nc;n&&e.setAttribute("nonce",n)}},36:e=>{e.exports=function(e){var n=e.insertStyleElement(e);return{update:function(t){!function(e,n,t){var a="";t.supports&&(a+="@supports (".concat(t.supports,") {")),t.media&&(a+="@media ".concat(t.media," {"));var o=void 0!==t.layer;o&&(a+="@layer".concat(t.layer.length>0?" ".concat(t.layer):""," {")),a+=t.css,o&&(a+="}"),t.media&&(a+="}"),t.supports&&(a+="}");var r=t.sourceMap;r&&"undefined"!=typeof btoa&&(a+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(r))))," */")),n.styleTagTransform(a,e,n.options)}(n,e,t)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(n)}}}},464:e=>{e.exports=function(e,n){if(n.styleSheet)n.styleSheet.cssText=e;else{for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(document.createTextNode(e))}}},54:(e,n,t)=>{t.r(n),t.d(n,{default:()=>N});var a=t(268),o=t.n(a),r=t(228),s=t(335),i=t(62),m=t.n(i),_=t(36),d=t.n(_),h=t(793),l=t.n(h),c=t(892),u=t.n(c),b=t(173),p=t.n(b),f=t(464),v=t.n(f),g=t(49),w={};w.styleTagTransform=v(),w.setAttributes=u(),w.insert=l().bind(null,"head"),w.domAPI=d(),w.insertStyleElement=p(),m()(g.Z,w);const y=g.Z&&g.Z.locals?g.Z.locals:void 0;function x(e){var n="omrs-link omrs-filled-neutral ".concat(y.link),t=o().createElement("div",{className:y.textContainer},e.label),a=o().createElement(s.ConfigurableLink,{className:n,to:e.link},t);return e.requiredPrivilege?o().createElement(s.UserHasAccess,{privilege:e.requiredPrivilege},a):a}var E=t(383),k={};k.styleTagTransform=v(),k.setAttributes=u(),k.insert=l().bind(null,"head"),k.domAPI=d(),k.insertStyleElement=p(),m()(E.Z,k);const A=E.Z&&E.Z.locals?E.Z.locals:void 0;function S(){return S=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},S.apply(this,arguments)}function C(){var e=(0,s.useConfig)();return o().createElement(o().Fragment,null,o().createElement("div",{className:A.homeDashboard},o().createElement("section",{className:A.mainSection},o().createElement("div",{className:A.buttonArea},o().createElement(s.ExtensionSlot,{extensionSlotName:"homepage-dashboard-slot"},o().createElement("div",{className:A.homeButton},o().createElement(s.Extension,null))),e.buttons.list.map((function(e){return o().createElement(x,S({},e,{key:e.label}))}))),o().createElement("div",{className:A.widgetsArea},o().createElement(s.ExtensionSlot,{extensionSlotName:"homepage-widgets-slot"})))),o().createElement("section",{className:A.logoSection},o().createElement("svg",null,o().createElement("use",{xlinkHref:"#omrs-logo-full-mono"}))))}const N=function(){return o().createElement(r.BrowserRouter,{basename:window.spaBase},o().createElement("main",{className:"omrs-main-content"},o().createElement(r.Routes,null,o().createElement(r.Route,{path:"/home",element:o().createElement(C,null)}))))}}}]);
package/dist/59.js DELETED
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_openmrs_esm_home_app=self.webpackChunk_openmrs_esm_home_app||[]).push([[59],{59:(e,a,n)=>{n.r(a),n.d(a,{default:()=>r});var t=n(268),s=n.n(t),m=n(335),p=n(924);function r(){var e=(0,p.useTranslation)().t;return s().createElement(m.ConfigurableLink,{to:"${openmrsBase}/coreapps/datamanagement/dataManagement.page"},e("dataManagement","Data Management"))}}}]);
package/dist/870.js DELETED
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_openmrs_esm_home_app=self.webpackChunk_openmrs_esm_home_app||[]).push([[870],{870:(e,n,s)=>{s.r(n),s.d(n,{default:()=>i});var t=s(268),a=s.n(t),r=s(335),m=s(924);function i(){var e=(0,m.useTranslation)().t;return a().createElement(r.ConfigurableLink,{to:"${openmrsBase}/admin"},e("systemAdministration","System Administration"))}}}]);
package/dist/97.js DELETED
@@ -1,2 +0,0 @@
1
- /*! For license information please see 97.js.LICENSE.txt */
2
- "use strict";(self.webpackChunk_openmrs_esm_home_app=self.webpackChunk_openmrs_esm_home_app||[]).push([[97],{97:(e,t,n)=>{n.r(t),n.d(t,{BrowserRouter:()=>re,HashRouter:()=>ie,Link:()=>ue,MemoryRouter:()=>V,NavLink:()=>ce,Navigate:()=>q,NavigationType:()=>a,Outlet:()=>z,Route:()=>G,Router:()=>Q,Routes:()=>X,UNSAFE_LocationContext:()=>d,UNSAFE_NavigationContext:()=>v,UNSAFE_RouteContext:()=>m,createPath:()=>f,createRoutesFromChildren:()=>Y,createSearchParams:()=>he,generatePath:()=>y,matchPath:()=>w,matchRoutes:()=>b,parsePath:()=>p,renderMatches:()=>Z,resolvePath:()=>S,unstable_HistoryRouter:()=>oe,useHref:()=>$,useInRouterContext:()=>j,useLinkClickHandler:()=>le,useLocation:()=>B,useMatch:()=>_,useNavigate:()=>H,useNavigationType:()=>W,useOutlet:()=>U,useOutletContext:()=>I,useParams:()=>F,useResolvedPath:()=>D,useRoutes:()=>J,useSearchParams:()=>se});var a,r=n(268);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},i.apply(this,arguments)}!function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"}(a||(a={}));var o="beforeunload",u="popstate";function c(e,t,n){return Math.min(Math.max(e,t),n)}function l(e){e.preventDefault(),e.returnValue=""}function s(){var e=[];return{get length(){return e.length},push:function(t){return e.push(t),function(){e=e.filter((function(e){return e!==t}))}},call:function(t){e.forEach((function(e){return e&&e(t)}))}}}function h(){return Math.random().toString(36).substr(2,8)}function f(e){var t=e.pathname,n=void 0===t?"/":t,a=e.search,r=void 0===a?"":a,i=e.hash,o=void 0===i?"":i;return r&&"?"!==r&&(n+="?"===r.charAt(0)?r:"?"+r),o&&"#"!==o&&(n+="#"===o.charAt(0)?o:"#"+o),n}function p(e){var t={};if(e){var n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));var a=e.indexOf("?");a>=0&&(t.search=e.substr(a),e=e.substr(0,a)),e&&(t.pathname=e)}return t}const v=(0,r.createContext)(null),d=(0,r.createContext)(null),m=(0,r.createContext)({outlet:null,matches:[]});function g(e,t){if(!e)throw new Error(t)}function y(e,t){return void 0===t&&(t={}),e.replace(/:(\w+)/g,((e,n)=>(null==t[n]&&g(!1),t[n]))).replace(/\/*\*$/,(e=>null==t["*"]?"":t["*"].replace(/^\/*/,"/")))}function b(e,t,n){void 0===n&&(n="/");let a=O(("string"==typeof t?p(t):t).pathname||"/",n);if(null==a)return null;let r=x(e);!function(e){e.sort(((e,t)=>e.score!==t.score?t.score-e.score:function(e,t){return e.length===t.length&&e.slice(0,-1).every(((e,n)=>e===t[n]))?e[e.length-1]-t[t.length-1]:0}(e.routesMeta.map((e=>e.childrenIndex)),t.routesMeta.map((e=>e.childrenIndex)))))}(r);let i=null;for(let e=0;null==i&&e<r.length;++e)i=C(r[e],a);return i}function x(e,t,n,a){return void 0===t&&(t=[]),void 0===n&&(n=[]),void 0===a&&(a=""),e.forEach(((e,r)=>{let i={relativePath:e.path||"",caseSensitive:!0===e.caseSensitive,childrenIndex:r,route:e};i.relativePath.startsWith("/")&&(i.relativePath.startsWith(a)||g(!1),i.relativePath=i.relativePath.slice(a.length));let o=L([a,i.relativePath]),u=n.concat(i);e.children&&e.children.length>0&&(!0===e.index&&g(!1),x(e.children,t,u,o)),(null!=e.path||e.index)&&t.push({path:o,score:k(o,e.index),routesMeta:u})})),t}const P=/^:\w+$/,E=e=>"*"===e;function k(e,t){let n=e.split("/"),a=n.length;return n.some(E)&&(a+=-2),t&&(a+=2),n.filter((e=>!E(e))).reduce(((e,t)=>e+(P.test(t)?3:""===t?1:10)),a)}function C(e,t){let{routesMeta:n}=e,a={},r="/",i=[];for(let e=0;e<n.length;++e){let o=n[e],u=e===n.length-1,c="/"===r?t:t.slice(r.length)||"/",l=w({path:o.relativePath,caseSensitive:o.caseSensitive,end:u},c);if(!l)return null;Object.assign(a,l.params);let s=o.route;i.push({params:a,pathname:L([r,l.pathname]),pathnameBase:A(L([r,l.pathnameBase])),route:s}),"/"!==l.pathnameBase&&(r=L([r,l.pathnameBase]))}return i}function w(e,t){"string"==typeof e&&(e={path:e,caseSensitive:!1,end:!0});let[n,a]=function(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!0);let a=[],r="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^$?{}|()[\]]/g,"\\$&").replace(/:(\w+)/g,((e,t)=>(a.push(t),"([^\\/]+)")));return e.endsWith("*")?(a.push("*"),r+="*"===e||"/*"===e?"(.*)$":"(?:\\/(.+)|\\/*)$"):r+=n?"\\/*$":"(?:(?=[.~-]|%[0-9A-F]{2})|\\b|\\/|$)",[new RegExp(r,t?void 0:"i"),a]}(e.path,e.caseSensitive,e.end),r=t.match(n);if(!r)return null;let i=r[0],o=i.replace(/(.)\/+$/,"$1"),u=r.slice(1);return{params:a.reduce(((e,t,n)=>{if("*"===t){let e=u[n]||"";o=i.slice(0,i.length-e.length).replace(/(.)\/+$/,"$1")}return e[t]=function(e,t){try{return decodeURIComponent(e)}catch(t){return e}}(u[n]||""),e}),{}),pathname:i,pathnameBase:o,pattern:e}}function S(e,t){void 0===t&&(t="/");let{pathname:n,search:a="",hash:r=""}="string"==typeof e?p(e):e,i=n?n.startsWith("/")?n:function(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach((e=>{".."===e?n.length>1&&n.pop():"."!==e&&n.push(e)})),n.length>1?n.join("/"):"/"}(n,t):t;return{pathname:i,search:N(a),hash:M(r)}}function R(e,t,n){let a,r="string"==typeof e?p(e):e,i=""===e||""===r.pathname?"/":r.pathname;if(null==i)a=n;else{let e=t.length-1;if(i.startsWith("..")){let t=i.split("/");for(;".."===t[0];)t.shift(),e-=1;r.pathname=t.join("/")}a=e>=0?t[e]:"/"}let o=S(r,a);return i&&"/"!==i&&i.endsWith("/")&&!o.pathname.endsWith("/")&&(o.pathname+="/"),o}function O(e,t){if("/"===t)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=e.charAt(t.length);return n&&"/"!==n?null:e.slice(t.length)||"/"}const L=e=>e.join("/").replace(/\/\/+/g,"/"),A=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),N=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",M=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"";function $(e){j()||g(!1);let{basename:t,navigator:n}=(0,r.useContext)(v),{hash:a,pathname:i,search:o}=D(e),u=i;if("/"!==t){let n=function(e){return""===e||""===e.pathname?"/":"string"==typeof e?p(e).pathname:e.pathname}(e),a=null!=n&&n.endsWith("/");u="/"===i?t+(a?"/":""):L([t,i])}return n.createHref({pathname:u,search:o,hash:a})}function j(){return null!=(0,r.useContext)(d)}function B(){return j()||g(!1),(0,r.useContext)(d).location}function W(){return(0,r.useContext)(d).navigationType}function _(e){j()||g(!1);let{pathname:t}=B();return(0,r.useMemo)((()=>w(e,t)),[t,e])}function H(){j()||g(!1);let{basename:e,navigator:t}=(0,r.useContext)(v),{matches:n}=(0,r.useContext)(m),{pathname:a}=B(),i=JSON.stringify(n.map((e=>e.pathnameBase))),o=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{o.current=!0})),(0,r.useCallback)((function(n,r){if(void 0===r&&(r={}),!o.current)return;if("number"==typeof n)return void t.go(n);let u=R(n,JSON.parse(i),a);"/"!==e&&(u.pathname=L([e,u.pathname])),(r.replace?t.replace:t.push)(u,r.state)}),[e,t,i,a])}const T=(0,r.createContext)(null);function I(){return(0,r.useContext)(T)}function U(e){let t=(0,r.useContext)(m).outlet;return t?(0,r.createElement)(T.Provider,{value:e},t):t}function F(){let{matches:e}=(0,r.useContext)(m),t=e[e.length-1];return t?t.params:{}}function D(e){let{matches:t}=(0,r.useContext)(m),{pathname:n}=B(),a=JSON.stringify(t.map((e=>e.pathnameBase)));return(0,r.useMemo)((()=>R(e,JSON.parse(a),n)),[e,a,n])}function J(e,t){j()||g(!1);let{matches:n}=(0,r.useContext)(m),a=n[n.length-1],i=a?a.params:{},o=(a&&a.pathname,a?a.pathnameBase:"/");a&&a.route;let u,c=B();if(t){var l;let e="string"==typeof t?p(t):t;"/"===o||(null==(l=e.pathname)?void 0:l.startsWith(o))||g(!1),u=e}else u=c;let s=u.pathname||"/",h=b(e,{pathname:"/"===o?s:s.slice(o.length)||"/"});return K(h&&h.map((e=>Object.assign({},e,{params:Object.assign({},i,e.params),pathname:L([o,e.pathname]),pathnameBase:"/"===e.pathnameBase?o:L([o,e.pathnameBase])}))),n)}function K(e,t){return void 0===t&&(t=[]),null==e?null:e.reduceRight(((n,a,i)=>(0,r.createElement)(m.Provider,{children:void 0!==a.route.element?a.route.element:n,value:{outlet:n,matches:t.concat(e.slice(0,i+1))}})),null)}function V(e){let{basename:t,children:n,initialEntries:o,initialIndex:u}=e,l=(0,r.useRef)();null==l.current&&(l.current=function(e){void 0===e&&(e={});var t=e,n=t.initialEntries,r=void 0===n?["/"]:n,o=t.initialIndex,u=r.map((function(e){return i({pathname:"/",search:"",hash:"",state:null,key:h()},"string"==typeof e?p(e):e)})),l=c(null==o?u.length-1:o,0,u.length-1),v=a.Pop,d=u[l],m=s(),g=s();function y(e,t){return void 0===t&&(t=null),i({pathname:d.pathname,search:"",hash:""},"string"==typeof e?p(e):e,{state:t,key:h()})}function b(e,t,n){return!g.length||(g.call({action:e,location:t,retry:n}),!1)}function x(e,t){v=e,d=t,m.call({action:v,location:d})}function P(e){var t=c(l+e,0,u.length-1),n=a.Pop,r=u[t];b(n,r,(function(){P(e)}))&&(l=t,x(n,r))}var E={get index(){return l},get action(){return v},get location(){return d},createHref:function(e){return"string"==typeof e?e:f(e)},push:function e(t,n){var r=a.Push,i=y(t,n);b(r,i,(function(){e(t,n)}))&&(l+=1,u.splice(l,u.length,i),x(r,i))},replace:function e(t,n){var r=a.Replace,i=y(t,n);b(r,i,(function(){e(t,n)}))&&(u[l]=i,x(r,i))},go:P,back:function(){P(-1)},forward:function(){P(1)},listen:function(e){return m.push(e)},block:function(e){return g.push(e)}};return E}({initialEntries:o,initialIndex:u}));let v=l.current,[d,m]=(0,r.useState)({action:v.action,location:v.location});return(0,r.useLayoutEffect)((()=>v.listen(m)),[v]),(0,r.createElement)(Q,{basename:t,children:n,location:d.location,navigationType:d.action,navigator:v})}function q(e){let{to:t,replace:n,state:a}=e;j()||g(!1);let i=H();return(0,r.useEffect)((()=>{i(t,{replace:n,state:a})})),null}function z(e){return U(e.context)}function G(e){g(!1)}function Q(e){let{basename:t="/",children:n=null,location:i,navigationType:o=a.Pop,navigator:u,static:c=!1}=e;j()&&g(!1);let l=A(t),s=(0,r.useMemo)((()=>({basename:l,navigator:u,static:c})),[l,u,c]);"string"==typeof i&&(i=p(i));let{pathname:h="/",search:f="",hash:m="",state:y=null,key:b="default"}=i,x=(0,r.useMemo)((()=>{let e=O(h,l);return null==e?null:{pathname:e,search:f,hash:m,state:y,key:b}}),[l,h,f,m,y,b]);return null==x?null:(0,r.createElement)(v.Provider,{value:s},(0,r.createElement)(d.Provider,{children:n,value:{location:x,navigationType:o}}))}function X(e){let{children:t,location:n}=e;return J(Y(t),n)}function Y(e){let t=[];return r.Children.forEach(e,(e=>{if(!(0,r.isValidElement)(e))return;if(e.type===r.Fragment)return void t.push.apply(t,Y(e.props.children));e.type!==G&&g(!1);let n={caseSensitive:e.props.caseSensitive,element:e.props.element,index:e.props.index,path:e.props.path};e.props.children&&(n.children=Y(e.props.children)),t.push(n)})),t}function Z(e){return K(e)}function ee(){return ee=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},ee.apply(this,arguments)}function te(e,t){if(null==e)return{};var n,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}const ne=["onClick","reloadDocument","replace","state","target","to"],ae=["aria-current","caseSensitive","className","end","style","to","children"];function re(e){let{basename:t,children:n,window:c}=e,v=(0,r.useRef)();null==v.current&&(v.current=function(e){void 0===e&&(e={});var t=e.window,n=void 0===t?document.defaultView:t,r=n.history;function c(){var e=n.location,t=e.pathname,a=e.search,i=e.hash,o=r.state||{};return[o.idx,{pathname:t,search:a,hash:i,state:o.usr||null,key:o.key||"default"}]}var v=null;n.addEventListener(u,(function(){if(v)x.call(v),v=null;else{var e=a.Pop,t=c(),n=t[0],r=t[1];if(x.length){if(null!=n){var i=g-n;i&&(v={action:e,location:r,retry:function(){S(-1*i)}},S(i))}}else w(e)}}));var d=a.Pop,m=c(),g=m[0],y=m[1],b=s(),x=s();function P(e){return"string"==typeof e?e:f(e)}function E(e,t){return void 0===t&&(t=null),i({pathname:y.pathname,hash:"",search:""},"string"==typeof e?p(e):e,{state:t,key:h()})}function k(e,t){return[{usr:e.state,key:e.key,idx:t},P(e)]}function C(e,t,n){return!x.length||(x.call({action:e,location:t,retry:n}),!1)}function w(e){d=e;var t=c();g=t[0],y=t[1],b.call({action:d,location:y})}function S(e){r.go(e)}null==g&&(g=0,r.replaceState(i({},r.state,{idx:g}),""));var R={get action(){return d},get location(){return y},createHref:P,push:function e(t,i){var o=a.Push,u=E(t,i);if(C(o,u,(function(){e(t,i)}))){var c=k(u,g+1),l=c[0],s=c[1];try{r.pushState(l,"",s)}catch(e){n.location.assign(s)}w(o)}},replace:function e(t,n){var i=a.Replace,o=E(t,n);if(C(i,o,(function(){e(t,n)}))){var u=k(o,g),c=u[0],l=u[1];r.replaceState(c,"",l),w(i)}},go:S,back:function(){S(-1)},forward:function(){S(1)},listen:function(e){return b.push(e)},block:function(e){var t=x.push(e);return 1===x.length&&n.addEventListener(o,l),function(){t(),x.length||n.removeEventListener(o,l)}}};return R}({window:c}));let d=v.current,[m,g]=(0,r.useState)({action:d.action,location:d.location});return(0,r.useLayoutEffect)((()=>d.listen(g)),[d]),(0,r.createElement)(Q,{basename:t,children:n,location:m.location,navigationType:m.action,navigator:d})}function ie(e){let{basename:t,children:n,window:c}=e,v=(0,r.useRef)();null==v.current&&(v.current=function(e){void 0===e&&(e={});var t=e.window,n=void 0===t?document.defaultView:t,r=n.history;function c(){var e=p(n.location.hash.substr(1)),t=e.pathname,a=void 0===t?"/":t,i=e.search,o=void 0===i?"":i,u=e.hash,c=void 0===u?"":u,l=r.state||{};return[l.idx,{pathname:a,search:o,hash:c,state:l.usr||null,key:l.key||"default"}]}var v=null;function d(){if(v)P.call(v),v=null;else{var e=a.Pop,t=c(),n=t[0],r=t[1];if(P.length){if(null!=n){var i=y-n;i&&(v={action:e,location:r,retry:function(){R(-1*i)}},R(i))}}else S(e)}}n.addEventListener(u,d),n.addEventListener("hashchange",(function(){f(c()[1])!==f(b)&&d()}));var m=a.Pop,g=c(),y=g[0],b=g[1],x=s(),P=s();function E(e){return function(){var e=document.querySelector("base"),t="";if(e&&e.getAttribute("href")){var a=n.location.href,r=a.indexOf("#");t=-1===r?a:a.slice(0,r)}return t}()+"#"+("string"==typeof e?e:f(e))}function k(e,t){return void 0===t&&(t=null),i({pathname:b.pathname,hash:"",search:""},"string"==typeof e?p(e):e,{state:t,key:h()})}function C(e,t){return[{usr:e.state,key:e.key,idx:t},E(e)]}function w(e,t,n){return!P.length||(P.call({action:e,location:t,retry:n}),!1)}function S(e){m=e;var t=c();y=t[0],b=t[1],x.call({action:m,location:b})}function R(e){r.go(e)}return null==y&&(y=0,r.replaceState(i({},r.state,{idx:y}),"")),{get action(){return m},get location(){return b},createHref:E,push:function e(t,i){var o=a.Push,u=k(t,i);if(w(o,u,(function(){e(t,i)}))){var c=C(u,y+1),l=c[0],s=c[1];try{r.pushState(l,"",s)}catch(e){n.location.assign(s)}S(o)}},replace:function e(t,n){var i=a.Replace,o=k(t,n);if(w(i,o,(function(){e(t,n)}))){var u=C(o,y),c=u[0],l=u[1];r.replaceState(c,"",l),S(i)}},go:R,back:function(){R(-1)},forward:function(){R(1)},listen:function(e){return x.push(e)},block:function(e){var t=P.push(e);return 1===P.length&&n.addEventListener(o,l),function(){t(),P.length||n.removeEventListener(o,l)}}}}({window:c}));let d=v.current,[m,g]=(0,r.useState)({action:d.action,location:d.location});return(0,r.useLayoutEffect)((()=>d.listen(g)),[d]),(0,r.createElement)(Q,{basename:t,children:n,location:m.location,navigationType:m.action,navigator:d})}function oe(e){let{basename:t,children:n,history:a}=e;const[i,o]=(0,r.useState)({action:a.action,location:a.location});return(0,r.useLayoutEffect)((()=>a.listen(o)),[a]),(0,r.createElement)(Q,{basename:t,children:n,location:i.location,navigationType:i.action,navigator:a})}const ue=(0,r.forwardRef)((function(e,t){let{onClick:n,reloadDocument:a,replace:i=!1,state:o,target:u,to:c}=e,l=te(e,ne),s=$(c),h=le(c,{replace:i,state:o,target:u});return(0,r.createElement)("a",ee({},l,{href:s,onClick:function(e){n&&n(e),e.defaultPrevented||a||h(e)},ref:t,target:u}))})),ce=(0,r.forwardRef)((function(e,t){let{"aria-current":n="page",caseSensitive:a=!1,className:i="",end:o=!1,style:u,to:c,children:l}=e,s=te(e,ae),h=B(),f=D(c),p=h.pathname,v=f.pathname;a||(p=p.toLowerCase(),v=v.toLowerCase());let d,m=p===v||!o&&p.startsWith(v)&&"/"===p.charAt(v.length),g=m?n:void 0;d="function"==typeof i?i({isActive:m}):[i,m?"active":null].filter(Boolean).join(" ");let y="function"==typeof u?u({isActive:m}):u;return(0,r.createElement)(ue,ee({},s,{"aria-current":g,className:d,ref:t,style:y,to:c}),"function"==typeof l?l({isActive:m}):l)}));function le(e,t){let{target:n,replace:a,state:i}=void 0===t?{}:t,o=H(),u=B(),c=D(e);return(0,r.useCallback)((t=>{if(!(0!==t.button||n&&"_self"!==n||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(t))){t.preventDefault();let n=!!a||f(u)===f(c);o(e,{replace:n,state:i})}}),[u,o,c,a,i,n,e])}function se(e){let t=(0,r.useRef)(he(e)),n=B(),a=(0,r.useMemo)((()=>{let e=he(n.search);for(let n of t.current.keys())e.has(n)||t.current.getAll(n).forEach((t=>{e.append(n,t)}));return e}),[n.search]),i=H();return[a,(0,r.useCallback)(((e,t)=>{i("?"+he(e),t)}),[i])]}function he(e){return void 0===e&&(e=""),new URLSearchParams("string"==typeof e||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce(((t,n)=>{let a=e[n];return t.concat(Array.isArray(a)?a.map((e=>[n,e])):[[n,a]])}),[]))}}}]);
package/jest.config.json DELETED
@@ -1,32 +0,0 @@
1
- {
2
- "transform": {
3
- "^.+\\.tsx?$": "@swc/jest"
4
- },
5
- "transformIgnorePatterns": ["/node_modules/(?!@openmrs)"],
6
- "moduleNameMapper": {
7
- "\\.(s?css)$": "identity-obj-proxy",
8
- "^lodash-es/(.*)$": "lodash/$1",
9
- "@openmrs/esm-framework": "@openmrs/esm-framework/mock",
10
- "react-i18next": "<rootDir>/__mocks__/react-i18next.mock.js"
11
- },
12
- "collectCoverageFrom": [
13
- "**/src/**/*.tsx",
14
- "!**/node_modules/**",
15
- "!**/vendor/**",
16
- "!**/src/**/*.test.*",
17
- "!**/src/declarations.d.tsx"
18
- ],
19
- "coverageThreshold": {
20
- "global": {
21
- "statements": 8,
22
- "branches": 5,
23
- "functions": 7,
24
- "lines": 8
25
- }
26
- },
27
- "setupFilesAfterEnv": ["<rootDir>/setupTests.ts"],
28
- "testEnvironment": "jsdom",
29
- "testEnvironmentOptions": {
30
- "url": "http://localhost/"
31
- }
32
- }
@@ -1,3 +0,0 @@
1
- import { setPublicPath } from 'systemjs-webpack-interop';
2
-
3
- setPublicPath('@openmrs/esm-home-app');