@mbehenri/openmrs-esm-opentms-meet-app 1.0.1 → 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.
- package/.eslintrc +1 -1
- package/.husky/pre-commit +2 -2
- package/.husky/pre-push +0 -0
- package/.turbo.json +1 -1
- package/README.md +25 -14
- package/__mocks__/react-i18next.js +9 -14
- package/dist/147.js +1 -0
- package/dist/147.js.map +1 -0
- package/dist/184.js +2 -0
- package/dist/184.js.LICENSE.txt +14 -0
- package/dist/184.js.map +1 -0
- package/dist/197.js +1 -0
- package/dist/23.js +1 -0
- package/dist/23.js.map +1 -0
- package/dist/26.js +1 -0
- package/dist/26.js.map +1 -0
- package/dist/282.js +2 -0
- package/dist/282.js.LICENSE.txt +32 -0
- package/dist/282.js.map +1 -0
- package/dist/300.js +1 -0
- package/dist/335.js +1 -0
- package/dist/353.js +1 -0
- package/dist/353.js.map +1 -0
- package/dist/471.js +1 -0
- package/dist/471.js.map +1 -0
- package/dist/509.js +2 -0
- package/dist/509.js.LICENSE.txt +54 -0
- package/dist/509.js.map +1 -0
- package/dist/51.js +1 -0
- package/dist/51.js.map +1 -0
- package/dist/540.js +2 -0
- package/dist/540.js.LICENSE.txt +9 -0
- package/dist/540.js.map +1 -0
- package/dist/55.js +1 -0
- package/dist/652.js +1 -0
- package/dist/739.js +1 -0
- package/dist/739.js.map +1 -0
- package/dist/740.js +1 -0
- package/dist/740.js.map +1 -0
- package/dist/852.js +1 -0
- package/dist/852.js.map +1 -0
- package/dist/897.js +2 -0
- package/dist/897.js.LICENSE.txt +24 -0
- package/dist/897.js.map +1 -0
- package/dist/91.js +1 -0
- package/dist/91.js.map +1 -0
- package/dist/961.js +2 -0
- package/dist/961.js.LICENSE.txt +19 -0
- package/dist/961.js.map +1 -0
- package/dist/99.js +1 -0
- package/dist/b8b28cec32e885bb.png +0 -0
- package/dist/main.js +1 -0
- package/dist/main.js.map +1 -0
- package/dist/openmrs-esm-opentms-meet-app.js +1 -0
- package/dist/openmrs-esm-opentms-meet-app.js.buildmanifest.json +678 -0
- package/dist/openmrs-esm-opentms-meet-app.js.map +1 -0
- package/dist/routes.json +1 -0
- package/e2e/core/global-setup.ts +8 -8
- package/e2e/core/index.ts +1 -1
- package/e2e/core/test.ts +3 -3
- package/e2e/fixtures/api.ts +2 -9
- package/e2e/fixtures/index.ts +1 -1
- package/e2e/pages/index.ts +1 -1
- package/e2e/pages/root-page.ts +32 -0
- package/e2e/specs/template-app.spec.ts +23 -0
- package/e2e/support/github/Dockerfile +1 -1
- package/e2e/support/github/docker-compose.yml +2 -2
- package/e2e/support/github/run-e2e-docker-env.sh +13 -25
- package/jest.config.js +19 -17
- package/package.json +44 -45
- package/playwright.config.ts +9 -11
- package/prettier.config.js +8 -0
- package/src/components/Appointment/index.scss +1 -1
- package/src/components/Demand/tab.scss +1 -1
- package/src/components/EmptyLayout/index.scss +1 -1
- package/src/config-schema.ts +5 -5
- package/src/extensions/AppointmentTabExt.tsx +17 -0
- package/src/{Extensions → extensions}/DemandTabExt.tsx +2 -2
- package/src/{Extensions → extensions}/MeetIframeExt.tsx +2 -2
- package/src/{Extensions → extensions}/ValidateDemandFormExt.tsx +5 -6
- package/src/index.ts +10 -30
- package/src/pages/home/home.component.tsx +2 -2
- package/src/root.component.tsx +8 -19
- package/src/root.scss +5 -5
- package/src/root.test.tsx +9 -14
- package/src/routes.json +6 -11
- package/{i18next-parser.config.js → tools/i18next-parser.config.js} +19 -19
- package/tools/setup-tests.ts +1 -0
- package/tools/update-openmrs-deps.mjs +43 -0
- package/translations/am.json +24 -0
- package/translations/en.json +24 -1
- package/tsconfig.json +1 -1
- package/webpack.config.js +1 -1
- package/.yarn/install-state.gz +0 -0
- package/.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs +0 -541
- package/.yarn/releases/yarn-3.6.1.cjs +0 -874
- package/.yarnrc.yml +0 -9
- package/e2e/pages/home-page.ts +0 -9
- package/e2e/specs/sample-test.spec.ts +0 -11
- package/src/Extensions/AppointmentTabExt.tsx +0 -23
package/src/index.ts
CHANGED
|
@@ -4,22 +4,13 @@
|
|
|
4
4
|
* connects the app shell to the React application(s) that make up this
|
|
5
5
|
* microfrontend.
|
|
6
6
|
*/
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
defineConfigSchema,
|
|
10
|
-
getSyncLifecycle,
|
|
11
|
-
} from "@openmrs/esm-framework";
|
|
12
|
-
import { configSchema } from "./config-schema";
|
|
13
|
-
import Root from "./root.component";
|
|
14
|
-
import DemandTabExt from "./Extensions/DemandTabExt";
|
|
15
|
-
import AppointmentTabExt from "./Extensions/AppointmentTabExt";
|
|
16
|
-
import MeetIframeExt from "./Extensions/MeetIframeExt";
|
|
17
|
-
import { ValidateDemandFormExt } from "./Extensions/ValidateDemandFormExt";
|
|
7
|
+
import { getAsyncLifecycle, defineConfigSchema, getSyncLifecycle } from '@openmrs/esm-framework';
|
|
8
|
+
import { configSchema } from './config-schema';
|
|
18
9
|
|
|
19
|
-
const moduleName =
|
|
10
|
+
const moduleName = '@mbehenri/openmrs-esm-opentms-meet-app';
|
|
20
11
|
|
|
21
12
|
const options = {
|
|
22
|
-
featureName:
|
|
13
|
+
featureName: 'opentms',
|
|
23
14
|
moduleName,
|
|
24
15
|
};
|
|
25
16
|
|
|
@@ -28,12 +19,7 @@ const options = {
|
|
|
28
19
|
* are JSON files in the directory `../translations` (which you should
|
|
29
20
|
* see in the directory structure).
|
|
30
21
|
*/
|
|
31
|
-
export const importTranslation = require.context(
|
|
32
|
-
"../translations",
|
|
33
|
-
false,
|
|
34
|
-
/.json$/,
|
|
35
|
-
"lazy"
|
|
36
|
-
);
|
|
22
|
+
export const importTranslation = require.context('../translations', false, /.json$/, 'lazy');
|
|
37
23
|
|
|
38
24
|
/**
|
|
39
25
|
* This function performs any setup that should happen at microfrontend
|
|
@@ -56,15 +42,9 @@ export function startupApp() {
|
|
|
56
42
|
options
|
|
57
43
|
); */
|
|
58
44
|
|
|
59
|
-
export const root =
|
|
45
|
+
export const root = getAsyncLifecycle(() => import('./root.component'), options);
|
|
60
46
|
|
|
61
|
-
export const demandtab =
|
|
62
|
-
|
|
63
|
-
export const
|
|
64
|
-
|
|
65
|
-
export const meetiframe = getSyncLifecycle(MeetIframeExt, options);
|
|
66
|
-
|
|
67
|
-
export const validatedemandform = getSyncLifecycle(
|
|
68
|
-
ValidateDemandFormExt,
|
|
69
|
-
options
|
|
70
|
-
);
|
|
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);
|
package/src/root.component.tsx
CHANGED
|
@@ -8,38 +8,27 @@
|
|
|
8
8
|
* https://openmrs.github.io/openmrs-esm-core/#/main/config
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import React, { useEffect } from
|
|
12
|
-
import { BrowserRouter, Route, Routes } from
|
|
13
|
-
import { Home } from
|
|
14
|
-
import { useConfig } from
|
|
15
|
-
import env from
|
|
11
|
+
import React, { useEffect } from 'react';
|
|
12
|
+
// import { BrowserRouter, Route, Routes } from 'react-router-dom';
|
|
13
|
+
import { Home } from './pages/home/home.component';
|
|
14
|
+
import { useConfig } from '@openmrs/esm-framework';
|
|
15
|
+
import env from './repositories/env';
|
|
16
16
|
// import { useTranslation } from "react-i18next";
|
|
17
17
|
//import styles from "./root.scss";
|
|
18
18
|
|
|
19
19
|
const Root: React.FC = () => {
|
|
20
|
-
// const { t } = useTranslation();
|
|
21
|
-
//const basename = window.getOpenmrsSpaBase() + "home/opencare";
|
|
22
|
-
const basename = window.getOpenmrsSpaBase() + "opencare";
|
|
23
|
-
|
|
24
20
|
//recupération de la configuration
|
|
25
21
|
const conf = useConfig();
|
|
26
22
|
|
|
27
23
|
// update env variable
|
|
28
24
|
useEffect(() => {
|
|
29
|
-
env.API_SECURE = conf[
|
|
30
|
-
env.API_BASE_URL = conf[
|
|
25
|
+
env.API_SECURE = conf['API_SECURE'];
|
|
26
|
+
env.API_BASE_URL = conf['API_BASE_URL'];
|
|
31
27
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
32
28
|
return () => {};
|
|
33
29
|
}, [conf]);
|
|
34
30
|
|
|
35
|
-
return
|
|
36
|
-
<BrowserRouter basename={basename}>
|
|
37
|
-
<Routes>
|
|
38
|
-
{/* Route de la page d'acceuil */}
|
|
39
|
-
<Route path="/home" element={<Home />} />
|
|
40
|
-
</Routes>
|
|
41
|
-
</BrowserRouter>
|
|
42
|
-
);
|
|
31
|
+
return <Home />;
|
|
43
32
|
};
|
|
44
33
|
|
|
45
34
|
export default Root;
|
package/src/root.scss
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
@use '@carbon/
|
|
2
|
-
@use '@carbon/
|
|
1
|
+
@use '@carbon/layout';
|
|
2
|
+
@use '@carbon/type';
|
|
3
3
|
|
|
4
4
|
.container {
|
|
5
|
-
padding:
|
|
5
|
+
padding: layout.$spacing-07;
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
.welcome {
|
|
9
9
|
@include type.type-style('heading-04');
|
|
10
|
-
margin:
|
|
10
|
+
margin: layout.$spacing-05 0;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
.explainer {
|
|
14
|
-
margin-bottom:
|
|
14
|
+
margin-bottom: layout.$spacing-07;
|
|
15
15
|
}
|
package/src/root.test.tsx
CHANGED
|
@@ -21,11 +21,11 @@
|
|
|
21
21
|
* Kent C. Dodds is the inventor of `@testing-library`:
|
|
22
22
|
* https://testing-library.com/docs/guiding-principles
|
|
23
23
|
*/
|
|
24
|
-
import React from
|
|
25
|
-
import { render, screen } from
|
|
26
|
-
import { useConfig } from
|
|
27
|
-
import { type Config } from
|
|
28
|
-
import Root from
|
|
24
|
+
import React from 'react';
|
|
25
|
+
import { render, screen } from '@testing-library/react';
|
|
26
|
+
import { useConfig } from '@openmrs/esm-framework';
|
|
27
|
+
import { type Config } from './config-schema';
|
|
28
|
+
import Root from './root.component';
|
|
29
29
|
|
|
30
30
|
/**
|
|
31
31
|
* This is an idiomatic way of dealing with mocked files. Note that
|
|
@@ -34,18 +34,13 @@ import Root from "./root.component";
|
|
|
34
34
|
* mock file. This line just tells TypeScript that the object is, in
|
|
35
35
|
* fact, a mock, and so will have methods like `mockReturnValue`.
|
|
36
36
|
*/
|
|
37
|
-
const mockUseConfig =
|
|
37
|
+
const mockUseConfig = jest.mocked(useConfig<Config>);
|
|
38
38
|
|
|
39
|
-
it(
|
|
40
|
-
const config: Config = {
|
|
41
|
-
API_SECURE: "Admin123",
|
|
42
|
-
API_BASE_URL: "admin",
|
|
43
|
-
};
|
|
39
|
+
it('renders a landing page for the opentms app', () => {
|
|
40
|
+
const config: Config = { API_BASE_URL: 'http://localhost:8080', API_SECURE: '*******************' };
|
|
44
41
|
mockUseConfig.mockReturnValue(config);
|
|
45
42
|
|
|
46
43
|
render(<Root />);
|
|
47
44
|
|
|
48
|
-
expect(
|
|
49
|
-
screen.getByRole("heading", { name: /welcome to the o3 opencare app/i })
|
|
50
|
-
).toBeInTheDocument();
|
|
45
|
+
expect(screen.getByRole('heading', { name: /Welcome to opentms app/i })).toBeInTheDocument();
|
|
51
46
|
});
|
package/src/routes.json
CHANGED
|
@@ -7,22 +7,17 @@
|
|
|
7
7
|
"extensions": [
|
|
8
8
|
{
|
|
9
9
|
"component": "demandtab",
|
|
10
|
-
"name": "
|
|
11
|
-
"slot": "
|
|
10
|
+
"name": "opentms-demand-tab",
|
|
11
|
+
"slot": "service-queues-dashboard-slot"
|
|
12
12
|
},
|
|
13
13
|
{
|
|
14
14
|
"component": "appointmenttab",
|
|
15
|
-
"name": "
|
|
15
|
+
"name": "opentms-appointment-tab",
|
|
16
16
|
"slot": "patient-chart-appointments-dashboard-slot"
|
|
17
17
|
},
|
|
18
|
-
{
|
|
19
|
-
"component": "root",
|
|
20
|
-
"name": "opencare-dashboard",
|
|
21
|
-
"slot": "opencare-dashboard-slot"
|
|
22
|
-
},
|
|
23
18
|
{
|
|
24
19
|
"component": "meetiframe",
|
|
25
|
-
"name": "
|
|
20
|
+
"name": "opentms-meet-iframe",
|
|
26
21
|
"meta": {
|
|
27
22
|
"title": {
|
|
28
23
|
"key": "meetWorkspace",
|
|
@@ -32,13 +27,13 @@
|
|
|
32
27
|
},
|
|
33
28
|
{
|
|
34
29
|
"component": "validatedemandform",
|
|
35
|
-
"name": "
|
|
30
|
+
"name": "opentms-validate-demand-form"
|
|
36
31
|
}
|
|
37
32
|
],
|
|
38
33
|
"pages": [
|
|
39
34
|
{
|
|
40
35
|
"component": "root",
|
|
41
|
-
"route": "
|
|
36
|
+
"route": "root"
|
|
42
37
|
}
|
|
43
38
|
]
|
|
44
39
|
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
module.exports = {
|
|
2
|
-
contextSeparator:
|
|
2
|
+
contextSeparator: '_',
|
|
3
3
|
// Key separator used in your translation keys
|
|
4
4
|
|
|
5
5
|
createOldCatalogs: false,
|
|
6
6
|
// Save the \_old files
|
|
7
7
|
|
|
8
|
-
defaultNamespace:
|
|
8
|
+
defaultNamespace: 'translations',
|
|
9
9
|
// Default namespace used in your i18next config
|
|
10
10
|
|
|
11
|
-
defaultValue:
|
|
11
|
+
defaultValue: '',
|
|
12
12
|
// Default value to give to empty keys
|
|
13
13
|
// You may also specify a function accepting the locale, namespace, and key as arguments
|
|
14
14
|
|
|
@@ -18,43 +18,43 @@ module.exports = {
|
|
|
18
18
|
keepRemoved: false,
|
|
19
19
|
// Keep keys from the catalog that are no longer in code
|
|
20
20
|
|
|
21
|
-
keySeparator:
|
|
21
|
+
keySeparator: '.',
|
|
22
22
|
// Key separator used in your translation keys
|
|
23
23
|
// If you want to use plain english keys, separators such as `.` and `:` will conflict. You might want to set `keySeparator: false` and `namespaceSeparator: false`. That way, `t('Status: Loading...')` will not think that there are a namespace and three separator dots for instance.
|
|
24
24
|
|
|
25
25
|
// see below for more details
|
|
26
26
|
lexers: {
|
|
27
|
-
hbs: [
|
|
28
|
-
handlebars: [
|
|
27
|
+
hbs: ['HandlebarsLexer'],
|
|
28
|
+
handlebars: ['HandlebarsLexer'],
|
|
29
29
|
|
|
30
|
-
htm: [
|
|
31
|
-
html: [
|
|
30
|
+
htm: ['HTMLLexer'],
|
|
31
|
+
html: ['HTMLLexer'],
|
|
32
32
|
|
|
33
|
-
mjs: [
|
|
34
|
-
js: [
|
|
35
|
-
ts: [
|
|
36
|
-
jsx: [
|
|
37
|
-
tsx: [
|
|
33
|
+
mjs: ['JavascriptLexer'],
|
|
34
|
+
js: ['JavascriptLexer'], // if you're writing jsx inside .js files, change this to JsxLexer
|
|
35
|
+
ts: ['JavascriptLexer'],
|
|
36
|
+
jsx: ['JsxLexer'],
|
|
37
|
+
tsx: ['JsxLexer'],
|
|
38
38
|
|
|
39
|
-
default: [
|
|
39
|
+
default: ['JavascriptLexer'],
|
|
40
40
|
},
|
|
41
41
|
|
|
42
|
-
lineEnding:
|
|
42
|
+
lineEnding: 'auto',
|
|
43
43
|
// Control the line ending. See options at https://github.com/ryanve/eol
|
|
44
44
|
|
|
45
|
-
locales: [
|
|
45
|
+
locales: ['en'],
|
|
46
46
|
// An array of the locales in your applications
|
|
47
47
|
|
|
48
|
-
namespaceSeparator:
|
|
48
|
+
namespaceSeparator: ':',
|
|
49
49
|
// Namespace separator used in your translation keys
|
|
50
50
|
// If you want to use plain english keys, separators such as `.` and `:` will conflict. You might want to set `keySeparator: false` and `namespaceSeparator: false`. That way, `t('Status: Loading...')` will not think that there are a namespace and three separator dots for instance.
|
|
51
51
|
|
|
52
|
-
output:
|
|
52
|
+
output: '$NAMESPACE/$LOCALE.json',
|
|
53
53
|
// Supports $LOCALE and $NAMESPACE injection
|
|
54
54
|
// Supports JSON (.json) and YAML (.yml) file formats
|
|
55
55
|
// Where to write the locale files relative to process.cwd()
|
|
56
56
|
|
|
57
|
-
pluralSeparator:
|
|
57
|
+
pluralSeparator: '_',
|
|
58
58
|
// Plural separator used in your translation keys
|
|
59
59
|
// If you want to use plain english keys, separators such as `_` might conflict. You might want to set `pluralSeparator` to a different string that does not occur in your keys.
|
|
60
60
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import '@testing-library/jest-dom';
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { execSync } from 'node:child_process';
|
|
2
|
+
|
|
3
|
+
try {
|
|
4
|
+
// NB for other places use '@openmrs/*@next'; here we want to ignore patient-common-lib
|
|
5
|
+
execSync(`yarn up --fixed '@openmrs/*@next' 'openmrs@next'`, {
|
|
6
|
+
stdio: ['ignore', 'inherit', 'inherit'],
|
|
7
|
+
windowsHide: true,
|
|
8
|
+
});
|
|
9
|
+
} catch (error) {
|
|
10
|
+
console.error(`Error while updating dependencies: ${error.message ?? error}`);
|
|
11
|
+
process.exit(1);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
try {
|
|
15
|
+
execSync(`yarn dedupe`, {
|
|
16
|
+
stdio: ['ignore', 'inherit', 'inherit'],
|
|
17
|
+
windowsHide: true,
|
|
18
|
+
});
|
|
19
|
+
} catch (error) {
|
|
20
|
+
console.error(`Error while deduplicating dependencies: ${error.message ?? error}`);
|
|
21
|
+
process.exit(1);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
try {
|
|
25
|
+
execSync(`git diff-index --quiet HEAD --`, {
|
|
26
|
+
stdio: 'ignore',
|
|
27
|
+
windowsHide: true,
|
|
28
|
+
});
|
|
29
|
+
process.exit(0);
|
|
30
|
+
} catch (error) {
|
|
31
|
+
// git diff-index --quite HEAD --
|
|
32
|
+
// exits with status 1 if there are changes; we only need to run yarn verify if there are changes
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
try {
|
|
36
|
+
execSync(`yarn verify`, {
|
|
37
|
+
stdio: ['ignore', 'inherit', 'inherit'],
|
|
38
|
+
windowsHide: true,
|
|
39
|
+
});
|
|
40
|
+
} catch (error) {
|
|
41
|
+
console.error(`Error while running yarn verify: ${error.message ?? error}. Updates require manual intervention.`);
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"casualGreeting": "hey",
|
|
3
|
+
"configSystem": "የማዋቀር ስርዓት",
|
|
4
|
+
"configSystemExplainer": "ከዚህ በታች የሚታየው ሰላምታ የሚመራው በማዋቀር ስርዓቱ ነው። የማዋቀር ባህሪያቱን ለመቀየር በአሳሹ ውስጥ ያለውን የስፓነር አዶ ጠቅ ያድርጉ የአስፈፃሚ መሳሪያዎች ፓነልን ለመሳብ። በመቀጠል በ <4>የፍለጋ ውቅረት</4> ግቤት ውስጥ <2>አብነት</2>ን ይተይቡ። ይህ ለዚህ ሞጁል ተዛማጅ የሆኑትን ብቻ ለማሳየት የማዋቀሪያ ባህሪያትን ማጣራት አለበት. በUI ውስጥ የሚንፀባረቁትን ለውጦች ለማየት የእነዚህን ንብረቶች እሴቶች መለወጥ እና <6>አስቀምጥ</6>ን ጠቅ ማድረግ ይችላሉ",
|
|
5
|
+
"connect": "ተገናኝ",
|
|
6
|
+
"connectExplainer": "ከማህበረሰቡ ጋር ይገናኙ",
|
|
7
|
+
"dataFetching": "ውሂብ ማምጣት",
|
|
8
|
+
"designDocs": "የንድፍ መመሪያ",
|
|
9
|
+
"designDocsExplainer": "የ O3 ንድፍ ሰነድ ያንብቡ",
|
|
10
|
+
"explainer": "የሚከተሉት ምሳሌዎች የ O3 ማዕቀፍ አንዳንድ ቁልፍ ባህሪያትን ያሳያሉ",
|
|
11
|
+
"extensionExplainer": "አንዳንድ ባለቀለም ሳጥኖች እዚህ አሉ። በአንድ ማስገቢያ ውስጥ እንደ ቅጥያ ስለተያያዙ፣ አስተዳዳሪው ውቅረትን ተጠቅሞ የሚታዩትን ሳጥኖች መለወጥ ይችላል። እነዚህ ሳጥኖች በዚህ ሞጁል ውስጥ ይገለጻሉ, ነገር ግን በተለየ ሞጁል ውስጥ ቢሆኑም እንኳ ከዚህ ማስገቢያ ጋር ማያያዝ ይችላሉ",
|
|
12
|
+
"extensionSystem": "የኤክስቴንሽን ስርዓት",
|
|
13
|
+
"formalGreeting": "ሀሎ",
|
|
14
|
+
"frontendDocs": "የፊት-መጨረሻ መመሪያ",
|
|
15
|
+
"getPatient": "የተሰየመ ታካሚ ያግኙ",
|
|
16
|
+
"getStarted": "እንጀምር",
|
|
17
|
+
"getStartedExplainer": "ከዚህ አብነት የፊት ለፊት ሞጁል ይፍጠሩ",
|
|
18
|
+
"learnExplainer": "የ O3 ማዕቀፍን እንዴት መጠቀም እንደሚችሉ ይወቁ",
|
|
19
|
+
"loading": "በመጫን ላይ",
|
|
20
|
+
"patientGetterExplainer": "በሽተኛውን ከኤፒአይ ለማውጣት ከታች ያለውን አዝራር ጠቅ ያድርጉ",
|
|
21
|
+
"resources": "መርጃዎች",
|
|
22
|
+
"usefulLinks": "ከዚህ በታች ወደ ጠቃሚ ሀብቶች አንዳንድ አገናኞች አሉ",
|
|
23
|
+
"welcomeText": "ወደ O3 አብነት መተግበሪያ እንኳን በደህና መጡ"
|
|
24
|
+
}
|
package/translations/en.json
CHANGED
|
@@ -1 +1,24 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"casualGreeting": "hey",
|
|
3
|
+
"configSystem": "Configuration system",
|
|
4
|
+
"configSystemExplainer": "The greeting shown below is driven by the configuration system. To change the configuration properties, click the spanner icon in the navbar to pull up the Implementer Tools panel. Then, type <2>template</2> into the <4>Search configuration</4> input. This should filter the configuration properties to show only those that are relevant to this module. You can change the values of these properties and click <6>Save</6> to see the changes reflected in the UI",
|
|
5
|
+
"connect": "Connect",
|
|
6
|
+
"connectExplainer": "Get in touch with the community",
|
|
7
|
+
"dataFetching": "Data fetching",
|
|
8
|
+
"designDocs": "Design docs",
|
|
9
|
+
"designDocsExplainer": "Read the O3 design documentation",
|
|
10
|
+
"explainer": "The following examples demonstrate some key features of the O3 framework",
|
|
11
|
+
"extensionExplainer": "Here are some colored boxes. Because they are attached as extensions within a slot, an admin can change what boxes are shown using configuration. These boxes happen to be defined in this module, but they could attach to this slot even if they were in a different module",
|
|
12
|
+
"extensionSystem": "Extension system",
|
|
13
|
+
"formalGreeting": "hello",
|
|
14
|
+
"frontendDocs": "Frontend docs",
|
|
15
|
+
"getPatient": "Get a patient named",
|
|
16
|
+
"getStarted": "Get started",
|
|
17
|
+
"getStartedExplainer": "Create a frontend module from this template",
|
|
18
|
+
"learnExplainer": "Learn how to use the O3 framework",
|
|
19
|
+
"loading": "Loading",
|
|
20
|
+
"patientGetterExplainer": "Try clicking the button below to fetch a patient from the backend",
|
|
21
|
+
"resources": "Resources",
|
|
22
|
+
"usefulLinks": "Below are some links to useful resources",
|
|
23
|
+
"welcomeText": "Welcome to the O3 Template app"
|
|
24
|
+
}
|
package/tsconfig.json
CHANGED
package/webpack.config.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
module.exports = require(
|
|
1
|
+
module.exports = require('openmrs/default-webpack-config');
|
package/.yarn/install-state.gz
DELETED
|
Binary file
|