@mbehenri/openmrs-esm-opentms-meet-app 1.0.0 → 1.0.2

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.
Files changed (101) hide show
  1. package/.eslintrc +1 -1
  2. package/.husky/pre-commit +2 -2
  3. package/.husky/pre-push +0 -0
  4. package/.turbo.json +1 -1
  5. package/README.md +25 -14
  6. package/__mocks__/react-i18next.js +9 -14
  7. package/dist/147.js +1 -0
  8. package/dist/147.js.map +1 -0
  9. package/dist/184.js +2 -0
  10. package/dist/184.js.LICENSE.txt +14 -0
  11. package/dist/184.js.map +1 -0
  12. package/dist/197.js +1 -0
  13. package/dist/23.js +1 -0
  14. package/dist/23.js.map +1 -0
  15. package/dist/26.js +1 -0
  16. package/dist/26.js.map +1 -0
  17. package/dist/282.js +2 -0
  18. package/dist/282.js.LICENSE.txt +32 -0
  19. package/dist/282.js.map +1 -0
  20. package/dist/300.js +1 -0
  21. package/dist/335.js +1 -0
  22. package/dist/353.js +1 -0
  23. package/dist/353.js.map +1 -0
  24. package/dist/471.js +1 -0
  25. package/dist/471.js.map +1 -0
  26. package/dist/509.js +2 -0
  27. package/dist/509.js.LICENSE.txt +54 -0
  28. package/dist/509.js.map +1 -0
  29. package/dist/51.js +1 -0
  30. package/dist/51.js.map +1 -0
  31. package/dist/540.js +2 -0
  32. package/dist/540.js.LICENSE.txt +9 -0
  33. package/dist/540.js.map +1 -0
  34. package/dist/55.js +1 -0
  35. package/dist/652.js +1 -0
  36. package/dist/739.js +1 -0
  37. package/dist/739.js.map +1 -0
  38. package/dist/740.js +1 -0
  39. package/dist/740.js.map +1 -0
  40. package/dist/852.js +1 -0
  41. package/dist/852.js.map +1 -0
  42. package/dist/897.js +2 -0
  43. package/dist/897.js.LICENSE.txt +24 -0
  44. package/dist/897.js.map +1 -0
  45. package/dist/91.js +1 -0
  46. package/dist/91.js.map +1 -0
  47. package/dist/961.js +2 -0
  48. package/dist/961.js.LICENSE.txt +19 -0
  49. package/dist/961.js.map +1 -0
  50. package/dist/99.js +1 -0
  51. package/dist/b8b28cec32e885bb.png +0 -0
  52. package/dist/main.js +1 -0
  53. package/dist/main.js.map +1 -0
  54. package/dist/openmrs-esm-opentms-meet-app.js +1 -0
  55. package/dist/openmrs-esm-opentms-meet-app.js.buildmanifest.json +678 -0
  56. package/dist/openmrs-esm-opentms-meet-app.js.map +1 -0
  57. package/dist/routes.json +1 -0
  58. package/e2e/pages/index.ts +1 -1
  59. package/e2e/pages/root-page.ts +32 -0
  60. package/e2e/specs/template-app.spec.ts +23 -0
  61. package/e2e/support/github/Dockerfile +1 -1
  62. package/e2e/support/github/docker-compose.yml +2 -2
  63. package/e2e/support/github/run-e2e-docker-env.sh +13 -25
  64. package/jest.config.js +11 -9
  65. package/package.json +44 -45
  66. package/prettier.config.js +8 -0
  67. package/src/components/Appointment/index.scss +1 -1
  68. package/src/components/Appointment/index.tsx +1 -5
  69. package/src/components/Demand/form.tsx +1 -5
  70. package/src/components/Demand/tab.scss +1 -1
  71. package/src/components/Demand/tab.tsx +1 -4
  72. package/src/components/EmptyLayout/index.scss +1 -1
  73. package/src/config-schema.ts +14 -20
  74. package/src/dashboard.meta.ts +7 -8
  75. package/src/extensions/AppointmentTabExt.tsx +17 -0
  76. package/src/{Extensions → extensions}/DemandTabExt.tsx +2 -2
  77. package/src/{Extensions → extensions}/MeetIframeExt.tsx +2 -2
  78. package/src/{Extensions → extensions}/ValidateDemandFormExt.tsx +5 -6
  79. package/src/index.ts +10 -35
  80. package/src/pages/home/home.component.tsx +4 -7
  81. package/src/privileges/doctor.ts +211 -212
  82. package/src/repositories/TypeRepository.ts +1 -1
  83. package/src/repositories/env.ts +1 -2
  84. package/src/root.component.tsx +8 -20
  85. package/src/root.scss +5 -5
  86. package/src/root.test.tsx +9 -17
  87. package/src/routes.json +6 -11
  88. package/{i18next-parser.config.js → tools/i18next-parser.config.js} +19 -19
  89. package/tools/setup-tests.ts +1 -0
  90. package/tools/update-openmrs-deps.mjs +43 -0
  91. package/translations/am.json +24 -0
  92. package/translations/en.json +24 -1
  93. package/tsconfig.json +1 -1
  94. package/webpack.config.js +1 -1
  95. package/.yarn/install-state.gz +0 -0
  96. package/.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs +0 -541
  97. package/.yarn/releases/yarn-3.6.1.cjs +0 -874
  98. package/.yarnrc.yml +0 -9
  99. package/e2e/pages/home-page.ts +0 -9
  100. package/e2e/specs/sample-test.spec.ts +0 -11
  101. package/src/Extensions/AppointmentTabExt.tsx +0 -23
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openmrs-esm-opentms-meet-app.js","mappings":"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","sources":["webpack://@mbehenri/openmrs-esm-opentms-meet-app/webpack/runtime/create fake namespace object","webpack://@mbehenri/openmrs-esm-opentms-meet-app/webpack/runtime/load script","webpack://@mbehenri/openmrs-esm-opentms-meet-app/webpack/runtime/consumes","webpack://@mbehenri/openmrs-esm-opentms-meet-app/webpack/container-entry","webpack://@mbehenri/openmrs-esm-opentms-meet-app/webpack/bootstrap","webpack://@mbehenri/openmrs-esm-opentms-meet-app/webpack/runtime/compat get default export","webpack://@mbehenri/openmrs-esm-opentms-meet-app/webpack/runtime/define property getters","webpack://@mbehenri/openmrs-esm-opentms-meet-app/webpack/runtime/ensure chunk","webpack://@mbehenri/openmrs-esm-opentms-meet-app/webpack/runtime/get javascript chunk filename","webpack://@mbehenri/openmrs-esm-opentms-meet-app/webpack/runtime/global","webpack://@mbehenri/openmrs-esm-opentms-meet-app/webpack/runtime/hasOwnProperty shorthand","webpack://@mbehenri/openmrs-esm-opentms-meet-app/webpack/runtime/make namespace object","webpack://@mbehenri/openmrs-esm-opentms-meet-app/webpack/runtime/sharing","webpack://@mbehenri/openmrs-esm-opentms-meet-app/webpack/runtime/publicPath","webpack://@mbehenri/openmrs-esm-opentms-meet-app/webpack/runtime/jsonp chunk loading","webpack://@mbehenri/openmrs-esm-opentms-meet-app/webpack/runtime/nonce","webpack://@mbehenri/openmrs-esm-opentms-meet-app/webpack/startup"],"names":["leafPrototypes","getProto","inProgress","dataWebpackPrefix","parseVersion","versionLt","rangeToString","satisfy","exists","get","eagerOnly","findSingletonVersionKey","getInvalidSingletonVersionMessage","fail","warn","useFallback","loadSingletonVersion","installedModules","moduleToHandlerMapping","chunkMapping","startedInstallModules","moduleMap","Promise","all","__webpack_require__","e","then","module","getScope","R","o","resolve","Error","undefined","init","shareScope","initScope","S","name","oldScope","I","d","exports","__webpack_module_cache__","moduleId","cachedModule","id","__webpack_modules__","call","m","c","n","getter","__esModule","a","Object","getPrototypeOf","obj","t","value","mode","this","ns","create","r","def","current","indexOf","getOwnPropertyNames","forEach","key","definition","defineProperty","enumerable","f","chunkId","keys","reduce","promises","u","g","globalThis","Function","window","prop","prototype","hasOwnProperty","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","i","length","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","fn","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","initPromises","initTokens","initToken","scope","uniqueName","register","version","factory","eager","versions","activeVersion","loaded","from","scriptUrl","importScripts","location","currentScript","tagName","toUpperCase","test","replace","p","str","split","map","exec","apply","b","range","pop","entry","filtered","requiredVersion","msg","console","scopeName","fallback","failAsNotExist","promise","consumes","onFactory","onError","error","installedChunks","j","installedChunkData","reject","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","data","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
@@ -0,0 +1 @@
1
+ {"$schema":"https://json.openmrs.org/routes.schema.json","backendDependencies":{"fhir2":">=1.2","webservices.rest":"^2.24.0"},"extensions":[{"component":"demandtab","name":"opentms-demand-tab","slot":"service-queues-dashboard-slot"},{"component":"appointmenttab","name":"opentms-appointment-tab","slot":"patient-chart-appointments-dashboard-slot"},{"component":"meetiframe","name":"opentms-meet-iframe","meta":{"title":{"key":"meetWorkspace","default":"Meet Workspace"}}},{"component":"validatedemandform","name":"opentms-validate-demand-form"}],"pages":[{"component":"root","route":"root"}],"version":"1.0.2"}
@@ -1 +1 @@
1
- export * from './home-page';
1
+ export * from './root-page';
@@ -0,0 +1,32 @@
1
+ import type { Page, Locator } from '@playwright/test';
2
+
3
+ export class RootPage {
4
+ readonly page: Page;
5
+ readonly welcomeHeading: Locator;
6
+ readonly configSection: Locator;
7
+ readonly extensionSection: Locator;
8
+ readonly dataFetchingSection: Locator;
9
+ readonly resourcesSection: Locator;
10
+
11
+ constructor(page: Page) {
12
+ this.page = page;
13
+ this.welcomeHeading = page.getByRole('heading', { name: /welcome to the o3 template app/i });
14
+ this.configSection = page.getByRole('heading', { name: /configuration system/i });
15
+ this.extensionSection = page.getByRole('heading', { name: /extension system/i });
16
+ this.dataFetchingSection = page.getByRole('heading', { name: /data fetching/i });
17
+ this.resourcesSection = page.getByRole('heading', { name: /resources/i });
18
+ }
19
+
20
+ async goto() {
21
+ await this.page.goto('/openmrs/spa/root');
22
+ await this.welcomeHeading.waitFor();
23
+ }
24
+
25
+ async waitForPageLoad() {
26
+ await this.welcomeHeading.waitFor();
27
+ await this.configSection.waitFor();
28
+ await this.extensionSection.waitFor();
29
+ await this.dataFetchingSection.waitFor();
30
+ await this.resourcesSection.waitFor();
31
+ }
32
+ }
@@ -0,0 +1,23 @@
1
+ import { test, expect } from '@playwright/test';
2
+ import { RootPage } from '../pages';
3
+
4
+ test('Template app loads and displays all core components', async ({ page }) => {
5
+ const rootPage = new RootPage(page);
6
+ await rootPage.goto();
7
+
8
+ await expect(page).toHaveURL(/\/openmrs\/spa\/root/);
9
+
10
+ await expect(rootPage.welcomeHeading).toBeVisible();
11
+ await expect(
12
+ page.getByText('The following examples demonstrate some key features of the O3 framework'),
13
+ ).toBeVisible();
14
+
15
+ await expect(rootPage.configSection).toBeVisible();
16
+ await expect(rootPage.extensionSection).toBeVisible();
17
+ await expect(rootPage.dataFetchingSection).toBeVisible();
18
+ await expect(rootPage.resourcesSection).toBeVisible();
19
+
20
+ await expect(page.getByText(/hello world!/i)).toBeVisible(); // Configuration greeting tile content
21
+ await expect(page.locator('[data-extension-slot-name="Boxes"]')).toBeVisible(); // Extension boxes slot
22
+ await expect(page.getByRole('button', { name: /get a patient named 'test'/i })).toBeVisible();
23
+ });
@@ -1,5 +1,5 @@
1
1
  # syntax=docker/dockerfile:1.3
2
- FROM --platform=$BUILDPLATFORM node:18-alpine as dev
2
+ FROM --platform=$BUILDPLATFORM node:22-alpine as dev
3
3
 
4
4
  ARG APP_SHELL_VERSION=next
5
5
 
@@ -1,11 +1,11 @@
1
1
  # This docker compose file is used to create a backend environment for the e2e.yml workflow.
2
- version: "3.7"
2
+ version: '3.7'
3
3
 
4
4
  services:
5
5
  gateway:
6
6
  image: openmrs/openmrs-reference-application-3-gateway:${TAG:-nightly}
7
7
  ports:
8
- - "8080:80"
8
+ - '8080:80'
9
9
 
10
10
  frontend:
11
11
  build:
@@ -4,38 +4,26 @@
4
4
  script_dir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
5
5
  # create a temporary working directory
6
6
  working_dir=$(mktemp -d "${TMPDIR:-/tmp/}openmrs-e2e-frontends.XXXXXXXXXX")
7
- # get a list of all the apps in this workspace
8
- apps=$(yarn workspaces list --json | jq -r 'if ((.location == ".") or (.location | test("form-engine-app")) or (.location | test("-app") | not)) then halt else .name end')
9
- # this array will hold all of the packed app names
10
- app_names=()
7
+ # get the app name
8
+ app_name=$(jq -r '.name' "$script_dir/../../../package.json")
11
9
 
12
- echo "Creating packed archives of apps..."
13
- # for each app
14
- for app in $apps
15
- do
16
- # @openmrs/esm-whatever -> _openmrs_esm_whatever
17
- app_name=$(echo "$app" | tr '[:punct:]' '_');
18
- # add to our array
19
- app_names+=("$app_name.tgz");
20
- # run yarn pack for our app and add it to the working directory
21
- yarn workspace "$app" pack -o "$working_dir/$app_name.tgz" >/dev/null;
22
- done;
23
- echo "Created packed app archives"
10
+ echo "Creating packed archive of the app..."
11
+ # @openmrs/esm-whatever -> _openmrs_esm_whatever
12
+ packed_app_name=$(echo "$app_name" | tr '[:punct:]' '_');
13
+ # run yarn pack for our app and add it to the working directory
14
+ yarn pack -o "$working_dir/$packed_app_name.tgz" >/dev/null;
15
+ echo "Created packed app archives"
24
16
 
25
17
  echo "Creating dynamic spa-assemble-config.json..."
26
18
  # dynamically assemble our list of frontend modules, prepending the login app and
27
19
  # primary navigation apps; apps will all be in the /app directory of the Docker
28
20
  # container
29
21
  jq -n \
30
- --arg apps "$apps" \
31
- --arg app_names "$(echo ${app_names[@]})" \
32
- '{"@openmrs/esm-primary-navigation-app": "next", "@openmrs/esm-home-app": "next"} + (
33
- ($apps | split("\n")) as $apps | ($app_names | split(" ") | map("/app/" + .)) as $app_files
34
- | [$apps, $app_files]
35
- | transpose
36
- | map({"key": .[0], "value": .[1]})
37
- | from_entries
38
- )' | jq '{"frontendModules": .}' > "$working_dir/spa-assemble-config.json"
22
+ --arg app_name "$app_name" \
23
+ --arg app_file "/app/$packed_app_name.tgz" \
24
+ '{"@openmrs/esm-primary-navigation-app": "next", "@openmrs/esm-home-app": "next"} + {
25
+ ($app_name): $app_file
26
+ }' | jq '{"frontendModules": .}' > "$working_dir/spa-assemble-config.json"
39
27
  echo "Created dynamic spa-assemble-config.json"
40
28
 
41
29
  echo "Copying Docker configuration..."
package/jest.config.js CHANGED
@@ -13,19 +13,21 @@ module.exports = {
13
13
  '!**/e2e/**',
14
14
  ],
15
15
  transform: {
16
- "^.+\\.tsx?$": ["@swc/jest"],
16
+ '^.+\\.[jt]sx?$': ['@swc/jest'],
17
17
  },
18
- transformIgnorePatterns: ["/node_modules/(?!@openmrs)"],
18
+ transformIgnorePatterns: ['/node_modules/(?!@openmrs|.+\\.pnp\\.[^\\/]+$)'],
19
19
  moduleNameMapper: {
20
- "@openmrs/esm-framework": "@openmrs/esm-framework/mock",
21
- "\\.(s?css)$": "identity-obj-proxy",
22
- "^lodash-es/(.*)$": "lodash/$1",
23
- "^dexie$": require.resolve("dexie"),
20
+ '@openmrs/esm-framework': '@openmrs/esm-framework/mock',
21
+ '\\.(s?css)$': 'identity-obj-proxy',
22
+ '^lodash-es/(.*)$': 'lodash/$1',
23
+ 'lodash-es': 'lodash',
24
+ '^dexie$': require.resolve('dexie'),
25
+ '^dayjs$': require.resolve('dayjs'),
24
26
  },
25
- setupFilesAfterEnv: ["<rootDir>/src/setup-tests.ts"],
27
+ setupFilesAfterEnv: [path.resolve(__dirname, 'tools', 'setup-tests.ts')],
26
28
  testPathIgnorePatterns: [path.resolve(__dirname, 'e2e')],
27
- testEnvironment: "jsdom",
29
+ testEnvironment: 'jsdom',
28
30
  testEnvironmentOptions: {
29
- url: "http://localhost/",
31
+ url: 'http://localhost/',
30
32
  },
31
33
  };
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@mbehenri/openmrs-esm-opentms-meet-app",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "license": "MPL-2.0",
5
- "description": "The OpenMRS Opentms Meet application (micro front-end)",
5
+ "description": "An OpenMRS seed application for building microfrontends",
6
6
  "browser": "dist/openmrs-esm-opentms-meet-app.js",
7
7
  "main": "src/index.ts",
8
8
  "source": true,
@@ -11,22 +11,16 @@
11
11
  "serve": "webpack serve --mode=development",
12
12
  "build": "webpack --mode production",
13
13
  "analyze": "webpack --mode=production --env analyze=true",
14
- "lint": "TIMING=1 eslint src --ext js,jsx,ts,tsx",
14
+ "lint": "eslint src --ext js,jsx,ts,tsx --max-warnings 0",
15
15
  "prettier": "prettier --write \"src/**/*.{ts,tsx}\" --list-different",
16
16
  "typescript": "tsc",
17
17
  "test": "jest --config jest.config.js --passWithNoTests",
18
- "verify": "turbo lint typescript",
19
- "verifyplus": "turbo lint typescript coverage",
18
+ "verify": "turbo lint typescript coverage",
20
19
  "coverage": "yarn test --coverage",
21
20
  "prepare": "husky install",
22
- "extract-translations": "i18next 'src/**/*.component.tsx' --config ./i18next-parser.config.js",
21
+ "extract-translations": "i18next 'src/**/*.component.tsx' --config ./tools/i18next-parser.config.js",
23
22
  "test-e2e": "playwright test"
24
23
  },
25
- "husky": {
26
- "hooks": {
27
- "pre-commit": "pretty-quick --staged && yarn verify"
28
- }
29
- },
30
24
  "browserslist": [
31
25
  "extends browserslist-config-openmrs"
32
26
  ],
@@ -36,19 +30,18 @@
36
30
  ],
37
31
  "repository": {
38
32
  "type": "git",
39
- "url": "https://github.com/OpenSecureFoundation/openmrs-esm-opentms-meet-app"
33
+ "url": "git+https://github.com/openmrs/openmrs-esm-opentms-meet-app.git"
40
34
  },
41
- "homepage": "https://github.com/OpenSecureFoundation/openmrs-esm-opentms-meet-app#readme",
35
+ "homepage": "https://github.com/openmrs/openmrs-esm-opentms-meet-app#readme",
42
36
  "publishConfig": {
43
37
  "access": "public"
44
38
  },
45
39
  "bugs": {
46
- "url": "https://github.com/OpenSecureFoundation/openmrs-esm-opentms-meet-app/issues"
40
+ "url": "https://github.com/openmrs/openmrs-esm-opentms-meet-app/issues"
47
41
  },
48
42
  "dependencies": {
49
- "@carbon/react": "^1.33.1",
50
- "lodash-es": "^4.17.21",
51
- "react-image-annotate": "^1.8.0"
43
+ "@carbon/react": "^1.83.0",
44
+ "lodash-es": "^4.17.21"
52
45
  },
53
46
  "peerDependencies": {
54
47
  "@openmrs/esm-framework": "*",
@@ -59,50 +52,56 @@
59
52
  "rxjs": "6.x"
60
53
  },
61
54
  "devDependencies": {
62
- "@openmrs/esm-framework": "next",
55
+ "@openmrs/esm-framework": "^8.0.1-pre.3305",
63
56
  "@openmrs/esm-styleguide": "next",
64
- "@playwright/test": "^1.30.0",
65
- "@swc/cli": "^0.1.62",
57
+ "@playwright/test": "^1.52.0",
58
+ "@swc/cli": "^0.3.12",
66
59
  "@swc/core": "^1.3.68",
67
- "@swc/jest": "^0.2.26",
68
- "@testing-library/dom": "^8.20.1",
69
- "@testing-library/jest-dom": "^5.16.5",
70
- "@testing-library/react": "^13.4.0",
71
- "@testing-library/user-event": "^14.4.3",
60
+ "@swc/jest": "^0.2.36",
61
+ "@testing-library/dom": "^10.1.0",
62
+ "@testing-library/jest-dom": "^6.4.5",
63
+ "@testing-library/react": "^15.0.6",
64
+ "@testing-library/user-event": "^14.5.2",
65
+ "@types/jest": "^29.5.12",
72
66
  "@types/react": "^18.2.14",
73
67
  "@types/react-dom": "^18.2.6",
74
68
  "@types/react-router": "^5.1.20",
75
69
  "@types/react-router-dom": "^5.3.3",
76
70
  "@types/webpack-env": "^1.18.1",
77
- "@typescript-eslint/eslint-plugin": "^5.61.0",
78
- "@typescript-eslint/parser": "^5.61.0",
71
+ "@typescript-eslint/eslint-plugin": "^7.8.0",
72
+ "@typescript-eslint/parser": "^7.8.0",
79
73
  "css-loader": "^6.8.1",
74
+ "dayjs": "^1.11.13",
80
75
  "dotenv": "^16.0.3",
81
- "eslint": "^8.44.0",
76
+ "eslint": "^8.50.0",
82
77
  "eslint-config-prettier": "^8.8.0",
83
- "eslint-config-ts-react-important-stuff": "^3.0.0",
84
- "eslint-plugin-prettier": "^4.2.1",
85
- "husky": "^8.0.3",
78
+ "eslint-plugin-jest-dom": "^5.4.0",
79
+ "eslint-plugin-prettier": "^5.1.3",
80
+ "eslint-plugin-react-hooks": "^4.6.2",
81
+ "husky": "^9.1.7",
86
82
  "i18next": "^23.2.8",
87
- "i18next-parser": "^8.0.0",
83
+ "i18next-parser": "^9.0.2",
88
84
  "identity-obj-proxy": "^3.0.0",
89
- "jest": "^28.1.3",
90
- "jest-cli": "^28.1.3",
91
- "jest-environment-jsdom": "^28.1.3",
92
- "openmrs": "next",
93
- "prettier": "^2.8.8",
94
- "pretty-quick": "^3.1.3",
85
+ "jest": "^29.7.0",
86
+ "jest-cli": "^29.7.0",
87
+ "jest-environment-jsdom": "^29.7.0",
88
+ "lint-staged": "^15.2.2",
89
+ "openmrs": "^8.0.1-pre.3305",
90
+ "prettier": "^3.3.3",
95
91
  "react": "^18.2.0",
96
92
  "react-dom": "^18.2.0",
97
93
  "react-i18next": "^11.18.6",
98
94
  "react-router-dom": "^6.14.1",
99
95
  "rxjs": "^6.6.7",
100
96
  "swc-loader": "^0.2.3",
101
- "turbo": "^1.12.4",
102
- "typescript": "^4.9.5",
103
- "webpack": "^5.88.1",
104
- "webpack-cli": "^5.1.4",
105
- "webpack-dev-server": "^5.0.4"
97
+ "turbo": "^2.5.2",
98
+ "typescript": "~5.5",
99
+ "webpack": "^5.99.9",
100
+ "webpack-cli": "^6.0.1"
101
+ },
102
+ "lint-staged": {
103
+ "packages/**/src/**/*.{ts,tsx}": "eslint --cache --fix --max-warnings 0",
104
+ "*.{css,scss,ts,tsx}": "prettier --write --list-different"
106
105
  },
107
- "packageManager": "yarn@3.6.1"
108
- }
106
+ "packageManager": "yarn@4.9.1"
107
+ }
@@ -0,0 +1,8 @@
1
+ module.exports = {
2
+ bracketSpacing: true,
3
+ printWidth: 120,
4
+ semi: true,
5
+ singleQuote: true,
6
+ tabWidth: 2,
7
+ trailingComma: 'all',
8
+ };
@@ -1,7 +1,7 @@
1
1
  @use '@carbon/colors';
2
2
  @use '@carbon/styles/scss/spacing';
3
3
  @use '@carbon/styles/scss/type';
4
- @import '@openmrs/esm-styleguide/src/vars';
4
+ @use '@openmrs/esm-styleguide/src/vars' as *;
5
5
 
6
6
  // TO DO Move this styles to style - guide
7
7
  // https://github.com/openmrs/openmrs-esm-core/blob/master/packages/framework/esm-styleguide/src/_vars.scss
@@ -49,12 +49,8 @@ const PatientAppointmentsBase: React.FC<PatientAppointmentsBaseProps> = ({
49
49
  const conf = useConfig();
50
50
 
51
51
  // update env variable
52
-
53
- env.API_HOST = conf["API_HOST"];
54
- env.API_PASSWORD = conf["API_PASSWORD"];
55
- env.API_PORT = conf["API_PORT"];
56
- env.API_USER = conf["API_USER"];
57
52
  env.API_SECURE = conf["API_SECURE"];
53
+ env.API_BASE_URL = conf["API_BASE_URL"];
58
54
  const doctorService = useMemo(() => DoctorService.getInstance(), []);
59
55
 
60
56
  // chargement des appointements
@@ -46,12 +46,8 @@ export const ValidateDemandForm: React.FC<ValidateDemandFormProps> = ({
46
46
  const conf = useConfig();
47
47
 
48
48
  // update env variable
49
-
50
- env.API_HOST = conf["API_HOST"];
51
- env.API_PASSWORD = conf["API_PASSWORD"];
52
- env.API_PORT = conf["API_PORT"];
53
- env.API_USER = conf["API_USER"];
54
49
  env.API_SECURE = conf["API_SECURE"];
50
+ env.API_BASE_URL = conf["API_BASE_URL"];
55
51
  const doctorService = useMemo(() => DoctorService.getInstance(), []);
56
52
 
57
53
  useEffect(() => {
@@ -1,7 +1,7 @@
1
1
  @use '@carbon/colors';
2
2
  @use '@carbon/layout';
3
3
  @use '@carbon/type';
4
- @import '~@openmrs/esm-styleguide/src/vars';
4
+ @use '@openmrs/esm-styleguide/src/vars' as *;
5
5
 
6
6
  .totalDemand {
7
7
  @include type.type-style('heading-compact-02');
@@ -53,10 +53,7 @@ const DemandTab: React.FC = (/* {} */) => {
53
53
 
54
54
  // update env variable
55
55
 
56
- env.API_HOST = conf["API_HOST"];
57
- env.API_PASSWORD = conf["API_PASSWORD"];
58
- env.API_PORT = conf["API_PORT"];
59
- env.API_USER = conf["API_USER"];
56
+ env.API_BASE_URL = conf["API_BASE_URL"];
60
57
  env.API_SECURE = conf["API_SECURE"];
61
58
  const doctorService = useMemo(() => DoctorService.getInstance(), []);
62
59
 
@@ -1,6 +1,6 @@
1
1
  @use '@carbon/layout';
2
2
  @use '@carbon/type';
3
- @import '~@openmrs/esm-styleguide/src/vars';
3
+ @use '@openmrs/esm-styleguide/src/vars' as *;
4
4
 
5
5
  .content {
6
6
  @include type.type-style('heading-compact-01');
@@ -1,4 +1,4 @@
1
- import { Type, validator } from "@openmrs/esm-framework";
1
+ import { Type, validator } from '@openmrs/esm-framework';
2
2
 
3
3
  /**
4
4
  * This is the config schema. It expects a configuration object which
@@ -21,25 +21,19 @@ import { Type, validator } from "@openmrs/esm-framework";
21
21
  * https://openmrs.github.io/openmrs-esm-core/#/main/config?id=schema-reference
22
22
  */
23
23
  export const configSchema = {
24
- API_USER: {
25
- _type: Type.String,
26
- _default: "admin",
27
- _description: 'API user used',
28
- },
29
- API_PASSWORD: {
30
- _type: Type.String,
31
- _default: "Admin123",
32
- _description: 'API password used',
33
- },
34
- API_BASE_URL: {
35
- _type: Type.String,
36
- _default: "http://localhost:8000",
37
- _description: 'API base url',
38
- }
24
+ API_SECURE: {
25
+ _type: Type.String,
26
+ _default: '*******************',
27
+ _description: 'API secure key',
28
+ },
29
+ API_BASE_URL: {
30
+ _type: Type.String,
31
+ _default: 'http://localhost:8000',
32
+ _description: 'API base url',
33
+ },
39
34
  };
40
35
 
41
36
  export type Config = {
42
- API_USER: string,
43
- API_PASSWORD: string,
44
- API_BASE_URL: string,
45
- };
37
+ API_SECURE: string;
38
+ API_BASE_URL: string;
39
+ };
@@ -1,12 +1,11 @@
1
-
2
1
  export const meetingDashboardMeta = {
3
- name: 'meeting',
4
- slot: 'opencare-dashboard-slot',
5
- title: 'Meeting',
2
+ name: "meeting",
3
+ slot: "opencare-dashboard-slot",
4
+ title: "Meeting",
6
5
  };
7
6
 
8
7
  export const PaymentDashboardMeta = {
9
- name: 'payment',
10
- slot: 'opencare-dashboard-slot',
11
- title: 'Payment',
12
- };
8
+ name: "payment",
9
+ slot: "opencare-dashboard-slot",
10
+ title: "Payment",
11
+ };
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import PatientAppointmentsBase from '../components/Appointment';
3
+ import { usePatient } from '@openmrs/esm-framework';
4
+
5
+ /* interface Props {} */
6
+
7
+ const AppointmentTabExt: React.FC /* <Props> */ = () => {
8
+ const { isLoading, patientUuid, error } = usePatient();
9
+
10
+ return (
11
+ <div>
12
+ {isLoading ? <span>...</span> : error ? <span></span> : <PatientAppointmentsBase patientUuid={patientUuid} />}
13
+ </div>
14
+ );
15
+ };
16
+
17
+ export default AppointmentTabExt;
@@ -1,5 +1,5 @@
1
- import React from "react";
2
- import DemandTab from "../components/Demand/tab";
1
+ import React from 'react';
2
+ import DemandTab from '../components/Demand/tab';
3
3
 
4
4
  /* interface Props {} */
5
5
 
@@ -1,5 +1,5 @@
1
- import React, { useMemo } from "react";
2
- import { MeetIframe } from "../components/MeetIframe";
1
+ import React, { useMemo } from 'react';
2
+ import { MeetIframe } from '../components/MeetIframe';
3
3
 
4
4
  interface Props {
5
5
  url: string;
@@ -1,14 +1,13 @@
1
- import React from "react";
2
- import { ValidateDemandForm } from "../components/Demand/form";
1
+ import React from 'react';
2
+ import { ValidateDemandForm } from '../components/Demand/form';
3
3
 
4
4
  export interface ValidateDemandFormExtProps {
5
5
  demand: any;
6
6
  onClose?: () => void;
7
7
  }
8
8
 
9
- export const ValidateDemandFormExt: React.FC<ValidateDemandFormExtProps> = ({
10
- demand,
11
- onClose,
12
- }) => {
9
+ export const ValidateDemandFormExt: React.FC<ValidateDemandFormExtProps> = ({ demand, onClose }) => {
13
10
  return <ValidateDemandForm demand={demand} onClose={onClose} />;
14
11
  };
12
+
13
+ export default ValidateDemandFormExt;
package/src/index.ts CHANGED
@@ -4,18 +4,13 @@
4
4
  * connects the app shell to the React application(s) that make up this
5
5
  * microfrontend.
6
6
  */
7
- import { getAsyncLifecycle, defineConfigSchema, getSyncLifecycle } from "@openmrs/esm-framework";
8
- import { configSchema } from "./config-schema";
9
- import Root from "./root.component";
10
- import DemandTabExt from "./Extensions/DemandTabExt";
11
- import AppointmentTabExt from "./Extensions/AppointmentTabExt";
12
- import MeetIframeExt from "./Extensions/MeetIframeExt";
13
- import { ValidateDemandFormExt } from "./Extensions/ValidateDemandFormExt";
7
+ import { getAsyncLifecycle, defineConfigSchema, getSyncLifecycle } from '@openmrs/esm-framework';
8
+ import { configSchema } from './config-schema';
14
9
 
15
- const moduleName = "@openmrs/esm-opencare-app";
10
+ const moduleName = '@mbehenri/openmrs-esm-opentms-meet-app';
16
11
 
17
12
  const options = {
18
- featureName: "opencare",
13
+ featureName: 'opentms',
19
14
  moduleName,
20
15
  };
21
16
 
@@ -24,12 +19,7 @@ const options = {
24
19
  * are JSON files in the directory `../translations` (which you should
25
20
  * see in the directory structure).
26
21
  */
27
- export const importTranslation = require.context(
28
- "../translations",
29
- false,
30
- /.json$/,
31
- "lazy"
32
- );
22
+ export const importTranslation = require.context('../translations', false, /.json$/, 'lazy');
33
23
 
34
24
  /**
35
25
  * This function performs any setup that should happen at microfrontend
@@ -52,24 +42,9 @@ export function startupApp() {
52
42
  options
53
43
  ); */
54
44
 
55
- export const root = getSyncLifecycle(Root, options);
45
+ export const root = getAsyncLifecycle(() => import('./root.component'), options);
56
46
 
57
- export const demandtab = getSyncLifecycle(
58
- DemandTabExt,
59
- options
60
- );
61
-
62
- export const appointmenttab = getSyncLifecycle(
63
- AppointmentTabExt,
64
- options
65
- );
66
-
67
- export const meetiframe = getSyncLifecycle(
68
- MeetIframeExt,
69
- options
70
- );
71
-
72
- export const validatedemandform = getSyncLifecycle(
73
- ValidateDemandFormExt,
74
- options
75
- );
47
+ export const demandtab = getAsyncLifecycle(() => import('./extensions/DemandTabExt'), options);
48
+ export const appointmenttab = getAsyncLifecycle(() => import('./extensions/AppointmentTabExt'), options);
49
+ export const meetiframe = getAsyncLifecycle(() => import('./extensions/MeetIframeExt'), options);
50
+ export const validatedemandform = getAsyncLifecycle(() => import('./extensions/ValidateDemandFormExt'), options);