@ampath/esm-dha-workflow-app 4.0.0-next.4

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 (107) hide show
  1. package/.editorconfig +12 -0
  2. package/.eslintignore +2 -0
  3. package/.eslintrc +57 -0
  4. package/.husky/pre-commit +7 -0
  5. package/.husky/pre-push +6 -0
  6. package/.prettierignore +14 -0
  7. package/.turbo.json +18 -0
  8. package/.yarn/plugins/@yarnpkg/plugin-outdated.cjs +35 -0
  9. package/LICENSE +401 -0
  10. package/README.md +37 -0
  11. package/__mocks__/react-i18next.js +50 -0
  12. package/dist/184.js +2 -0
  13. package/dist/184.js.LICENSE.txt +14 -0
  14. package/dist/184.js.map +1 -0
  15. package/dist/197.js +1 -0
  16. package/dist/255.js +1 -0
  17. package/dist/255.js.map +1 -0
  18. package/dist/282.js +2 -0
  19. package/dist/282.js.LICENSE.txt +32 -0
  20. package/dist/282.js.map +1 -0
  21. package/dist/300.js +1 -0
  22. package/dist/335.js +1 -0
  23. package/dist/353.js +1 -0
  24. package/dist/353.js.map +1 -0
  25. package/dist/420.js +1 -0
  26. package/dist/420.js.map +1 -0
  27. package/dist/540.js +2 -0
  28. package/dist/540.js.LICENSE.txt +9 -0
  29. package/dist/540.js.map +1 -0
  30. package/dist/55.js +1 -0
  31. package/dist/561.js +2 -0
  32. package/dist/561.js.LICENSE.txt +14 -0
  33. package/dist/561.js.map +1 -0
  34. package/dist/652.js +1 -0
  35. package/dist/70.js +1 -0
  36. package/dist/70.js.map +1 -0
  37. package/dist/731.js +2 -0
  38. package/dist/731.js.LICENSE.txt +39 -0
  39. package/dist/731.js.map +1 -0
  40. package/dist/819.js +1 -0
  41. package/dist/819.js.map +1 -0
  42. package/dist/91.js +1 -0
  43. package/dist/91.js.map +1 -0
  44. package/dist/961.js +2 -0
  45. package/dist/961.js.LICENSE.txt +19 -0
  46. package/dist/961.js.map +1 -0
  47. package/dist/99.js +1 -0
  48. package/dist/main.js +1 -0
  49. package/dist/main.js.map +1 -0
  50. package/dist/openmrs-esm-home-app.js +1 -0
  51. package/dist/openmrs-esm-home-app.js.buildmanifest.json +580 -0
  52. package/dist/openmrs-esm-home-app.js.map +1 -0
  53. package/dist/routes.json +1 -0
  54. package/e2e/README.md +115 -0
  55. package/e2e/core/global-setup.ts +32 -0
  56. package/e2e/core/index.ts +1 -0
  57. package/e2e/core/test.ts +20 -0
  58. package/e2e/fixtures/api.ts +26 -0
  59. package/e2e/fixtures/index.ts +1 -0
  60. package/e2e/pages/index.ts +1 -0
  61. package/e2e/pages/root-page.ts +32 -0
  62. package/e2e/specs/template-app.spec.ts +23 -0
  63. package/e2e/support/github/Dockerfile +34 -0
  64. package/e2e/support/github/docker-compose.yml +24 -0
  65. package/e2e/support/github/run-e2e-docker-env.sh +37 -0
  66. package/example.env +6 -0
  67. package/jest.config.js +33 -0
  68. package/package.json +111 -0
  69. package/playwright.config.ts +32 -0
  70. package/prettier.config.js +8 -0
  71. package/src/boxes/extensions/blue-box.component.tsx +15 -0
  72. package/src/boxes/extensions/box.scss +23 -0
  73. package/src/boxes/extensions/brand-box.component.tsx +15 -0
  74. package/src/boxes/extensions/red-box.component.tsx +15 -0
  75. package/src/boxes/slot/boxes.component.tsx +25 -0
  76. package/src/boxes/slot/boxes.scss +29 -0
  77. package/src/config-schema.ts +43 -0
  78. package/src/declarations.d.ts +5 -0
  79. package/src/greeter/greeter.component.tsx +42 -0
  80. package/src/greeter/greeter.scss +20 -0
  81. package/src/greeter/greeter.test.tsx +28 -0
  82. package/src/index.ts +46 -0
  83. package/src/patient-getter/patient-getter.component.tsx +40 -0
  84. package/src/patient-getter/patient-getter.resource.ts +39 -0
  85. package/src/patient-getter/patient-getter.scss +16 -0
  86. package/src/patient-getter/patient-getter.test.tsx +40 -0
  87. package/src/registry/registry.component.tsx +7 -0
  88. package/src/resources/resources.component.tsx +56 -0
  89. package/src/resources/resources.scss +68 -0
  90. package/src/root.component.tsx +39 -0
  91. package/src/root.scss +15 -0
  92. package/src/root.test.tsx +51 -0
  93. package/src/routes.json +19 -0
  94. package/src/side-nav/side-menu.scss +38 -0
  95. package/src/side-nav-menu/nav-links.tsx +22 -0
  96. package/src/widgets/workflow-registry-link.extension.tsx +12 -0
  97. package/tools/i18next-parser.config.js +89 -0
  98. package/tools/setup-tests.ts +1 -0
  99. package/tools/update-openmrs-deps.mjs +43 -0
  100. package/translations/am.json +24 -0
  101. package/translations/en.json +24 -0
  102. package/translations/es.json +24 -0
  103. package/translations/fr.json +24 -0
  104. package/translations/he.json +24 -0
  105. package/translations/km.json +24 -0
  106. package/tsconfig.json +24 -0
  107. package/webpack.config.js +1 -0
@@ -0,0 +1,22 @@
1
+ import { SideNavMenuItem } from '@carbon/react';
2
+ import React from 'react';
3
+
4
+ interface NavLinksProps {}
5
+ const NavLinks: React.FC<NavLinksProps> = () => {
6
+ return (
7
+ <>
8
+ <SideNavMenuItem href="consultation/dashboard">Dashboard</SideNavMenuItem>
9
+ <SideNavMenuItem href="consultation/registry">Registration</SideNavMenuItem>
10
+ <SideNavMenuItem href="consultation/registry">Appointments</SideNavMenuItem>
11
+ <SideNavMenuItem href="consultation/registry">Triage</SideNavMenuItem>
12
+ <SideNavMenuItem href="consultation/registry">Consultation</SideNavMenuItem>
13
+ <SideNavMenuItem href="consultation/registry">Laboratory</SideNavMenuItem>
14
+ <SideNavMenuItem href="consultation/registry">Bookings</SideNavMenuItem>
15
+ <SideNavMenuItem href="consultation/registry">Reports</SideNavMenuItem>
16
+ <SideNavMenuItem href="consultation/registry">Registers</SideNavMenuItem>
17
+ <SideNavMenuItem href="consultation/registry">Appointments</SideNavMenuItem>
18
+ </>
19
+ );
20
+ };
21
+
22
+ export default NavLinks;
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { useTranslation } from 'react-i18next';
3
+ import { ConfigurableLink } from '@openmrs/esm-framework';
4
+
5
+ export const spaBasePath = `${window.spaBase}/workflow`;
6
+
7
+ const WorkflowRegistryLink = () => {
8
+ const { t } = useTranslation();
9
+ return <ConfigurableLink to={`${spaBasePath}/registry`}>Registry</ConfigurableLink>;
10
+ };
11
+
12
+ export default WorkflowRegistryLink;
@@ -0,0 +1,89 @@
1
+ module.exports = {
2
+ contextSeparator: '_',
3
+ // Key separator used in your translation keys
4
+
5
+ createOldCatalogs: false,
6
+ // Save the \_old files
7
+
8
+ defaultNamespace: 'translations',
9
+ // Default namespace used in your i18next config
10
+
11
+ defaultValue: '',
12
+ // Default value to give to empty keys
13
+ // You may also specify a function accepting the locale, namespace, and key as arguments
14
+
15
+ indentation: 2,
16
+ // Indentation of the catalog files
17
+
18
+ keepRemoved: false,
19
+ // Keep keys from the catalog that are no longer in code
20
+
21
+ keySeparator: '.',
22
+ // Key separator used in your translation keys
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
+
25
+ // see below for more details
26
+ lexers: {
27
+ hbs: ['HandlebarsLexer'],
28
+ handlebars: ['HandlebarsLexer'],
29
+
30
+ htm: ['HTMLLexer'],
31
+ html: ['HTMLLexer'],
32
+
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
+
39
+ default: ['JavascriptLexer'],
40
+ },
41
+
42
+ lineEnding: 'auto',
43
+ // Control the line ending. See options at https://github.com/ryanve/eol
44
+
45
+ locales: ['en'],
46
+ // An array of the locales in your applications
47
+
48
+ namespaceSeparator: ':',
49
+ // Namespace separator used in your translation keys
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
+
52
+ output: '$NAMESPACE/$LOCALE.json',
53
+ // Supports $LOCALE and $NAMESPACE injection
54
+ // Supports JSON (.json) and YAML (.yml) file formats
55
+ // Where to write the locale files relative to process.cwd()
56
+
57
+ pluralSeparator: '_',
58
+ // Plural separator used in your translation keys
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
+
61
+ input: undefined,
62
+ // An array of globs that describe where to look for source files
63
+ // relative to the location of the configuration file
64
+
65
+ sort: true,
66
+ // Whether or not to sort the catalog
67
+
68
+ useKeysAsDefaultValue: false,
69
+ // Whether to use the keys as the default value; ex. "Hello": "Hello", "World": "World"
70
+ // This option takes precedence over the `defaultValue` and `skipDefaultValues` options
71
+ // You may also specify a function accepting the locale and namespace as arguments
72
+
73
+ verbose: false,
74
+ // Display info about the parsing including some stats
75
+
76
+ failOnWarnings: false,
77
+ // Exit with an exit code of 1 on warnings
78
+
79
+ customValueTemplate: null,
80
+ // If you wish to customize the value output the value as an object, you can set your own format.
81
+ // ${defaultValue} is the default value you set in your translation function.
82
+ // Any other custom property will be automatically extracted.
83
+ //
84
+ // Example:
85
+ // {
86
+ // message: "${defaultValue}",
87
+ // description: "${maxLength}", // t('my-key', {maxLength: 150})
88
+ // }
89
+ };
@@ -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
+ }
@@ -0,0 +1,24 @@
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
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "casualGreeting": "hey",
3
+ "configSystem": "Sistema de configuración",
4
+ "configSystemExplainer": "El saludo que se muestra a continuación es impulsado por el sistema de configuración. Para cambiar las propiedades de configuración, haga clic en el icono de llave inglesa en la barra de navegación para abrir el panel Herramientas del implementador. Luego, escriba <2>plantilla</2> en la entrada <4>Configuración de búsqueda</4>. Esto debería filtrar las propiedades de configuración para mostrar solo aquellas que son relevantes para este módulo. Puede cambiar los valores de estas propiedades y hacer clic en <6>Guardar</6> para ver los cambios reflejados en la interfaz de usuario",
5
+ "connect": "Conectar",
6
+ "connectExplainer": "Póngase en contacto con la comunidad",
7
+ "dataFetching": "Obtención de datos",
8
+ "designDocs": "Documentación de diseño",
9
+ "designDocsExplainer": "Lea la documentación de diseño de O3",
10
+ "explainer": "Los siguientes ejemplos demuestran algunas características clave del marco O3",
11
+ "extensionExplainer": "Aquí hay algunos cuadros de colores. Debido a que se adjuntan como extensiones dentro de una ranura, un administrador puede cambiar los cuadros que se muestran mediante la configuración. Estos cuadros están definidos en este módulo, pero podrían adjuntarse a esta ranura incluso si estuvieran en un módulo diferente",
12
+ "extensionSystem": "Sistema de extensión",
13
+ "formalGreeting": "Hola",
14
+ "frontendDocs": "Documentación de interfaz",
15
+ "getPatient": "Consigue una paciente llamada",
16
+ "getStarted": "Comenzar",
17
+ "getStartedExplainer": "Cree un módulo frontend a partir de esta plantilla",
18
+ "learnExplainer": "Aprenda a usar el marco O3.",
19
+ "loading": "Cargando",
20
+ "patientGetterExplainer": "Intente hacer clic en el botón a continuación para buscar un paciente desde el backend",
21
+ "resources": "Recursos",
22
+ "usefulLinks": "A continuación hay algunos enlaces a recursos útiles",
23
+ "welcomeText": "Bienvenido a la aplicación Plantilla O3"
24
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "casualGreeting": "hey",
3
+ "configSystem": "Système de configuration",
4
+ "configSystemExplainer": "Le message d'accueil affiché ci-dessous est piloté par le système de configuration. Pour modifier les propriétés de configuration, cliquez sur l'icône de clé dans la barre de navigation pour afficher le panneau Outils de mise en œuvre. Saisissez ensuite <2>modèle</2> dans l'entrée <4>Configuration de la recherche</4>. Cela devrait filtrer les propriétés de configuration pour afficher uniquement celles qui sont pertinentes pour ce module. Vous pouvez modifier les valeurs de ces propriétés et cliquer sur <6>Enregistrer</6> pour voir les modifications reflétées dans l'interface utilisateur",
5
+ "connect": "Connecter",
6
+ "connectExplainer": "Entrez en contact avec la communauté",
7
+ "dataFetching": "Récupération de données",
8
+ "designDocs": "Documents de conception",
9
+ "designDocsExplainer": "Lisez la documentation de conception O3",
10
+ "explainer": "Les exemples suivants illustrent certaines fonctionnalités clés du cadre O3",
11
+ "extensionExplainer": "Voici quelques cases colorées. Parce qu'ils sont attachés en tant qu'extensions dans un emplacement, un administrateur peut modifier les cases affichées à l'aide de la configuration. Il se trouve que ces boîtes sont définies dans ce module, mais elles pourraient être attachées à cet emplacement même si elles se trouvaient dans un module différent",
12
+ "extensionSystem": "Système d'extension",
13
+ "formalGreeting": "bonjour",
14
+ "frontendDocs": "Documentation frontale",
15
+ "getPatient": "Obtenez un patient nommé",
16
+ "getStarted": "Commencer",
17
+ "getStartedExplainer": "Créer une interface à partir de ce modèle",
18
+ "learnExplainer": "Apprendre à utiliser le framework O3",
19
+ "loading": "Chargement",
20
+ "patientGetterExplainer": "Essayez de cliquer sur le bouton ci-dessous pour récupérer un patient depuis le backend",
21
+ "resources": "Ressources",
22
+ "usefulLinks": "Ci-dessous quelques liens vers des ressources utiles",
23
+ "welcomeText": "Bienvenue dans l'application O3 Template"
24
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "casualGreeting": "hey",
3
+ "configSystem": "מערכת התצורה",
4
+ "configSystemExplainer": "הברכה המוצגת להלן מונעת על ידי מערכת התצורה. כדי לשנות את מאפייני התצורה, לחץ על סמל מפתח הברגים בסרגל הניווט כדי למשוך את החלונית Implementer Tools. לאחר מכן, הקלד <2>תבנית</2> בקלט <4>תצורת חיפוש</4>. זה אמור לסנן את מאפייני התצורה כדי להציג רק את אלו הרלוונטיים למודול זה. אתה יכול לשנות את הערכים של מאפיינים אלה וללחוץ על <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 Template"
24
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "casualGreeting": "hey",
3
+ "configSystem": "ប្រព័ន្ធកំណត់រចនាសម្ព័ន្ធ",
4
+ "configSystemExplainer": "ការស្វាគមន៍ដែលបង្ហាញខាងក្រោមត្រូវបានជំរុញដោយប្រព័ន្ធកំណត់រចនាសម្ព័ន្ធ។ ដើម្បីផ្លាស់ប្តូរលក្ខណសម្បត្តិនៃការកំណត់រចនាសម្ព័ន្ធ សូមចុចរូបតំណាង spanner នៅក្នុងរបាររុករក ដើម្បីទាញបន្ទះឧបករណ៍អនុវត្ត។ បន្ទាប់មក វាយ <2>ពុម្ព</2> ទៅក្នុងធាតុបញ្ចូល <4>ការស្វែងរក</4>។ វាគួរត្រងលក្ខណសម្បត្តិនៃការកំណត់រចនាសម្ព័ន្ធ ដើម្បីបង្ហាញតែអ្វីដែលពាក់ព័ន្ធទៅនឹងម៉ូឌុលនេះប៉ុណ្ណោះ។ អ្នកអាចផ្លាស់ប្តូរតម្លៃនៃលក្ខណៈសម្បត្តិទាំងនេះ ហើយចុច <6>រក្សាទុក</6> ដើម្បីមើលការផ្លាស់ប្តូរដែលឆ្លុះបញ្ចាំងនៅក្នុង UI",
5
+ "connect": "ភ្ជាប់",
6
+ "connectExplainer": "ទាក់ទងជាមួយសហគមន៍",
7
+ "dataFetching": "ការទាញយកទិន្នន័យ",
8
+ "designDocs": "ឯកសាររចនា",
9
+ "designDocsExplainer": "អានឯកសាររចនា O3",
10
+ "explainer": "ឧទាហរណ៍ខាងក្រោមបង្ហាញពីលក្ខណៈសំខាន់ៗមួយចំនួននៃក្របខ័ណ្ឌ O3",
11
+ "extensionExplainer": "នេះគឺជាប្រអប់ពណ៌មួយចំនួន។ ដោយសារតែពួកវាត្រូវបានភ្ជាប់ជាផ្នែកបន្ថែមនៅក្នុងរន្ធដោត អ្នកគ្រប់គ្រងអាចផ្លាស់ប្តូរអ្វីដែលប្រអប់ត្រូវបានបង្ហាញដោយប្រើការកំណត់។ ប្រអប់ទាំងនេះត្រូវបានកំណត់នៅក្នុងម៉ូឌុលនេះ ប៉ុន្តែពួកវាអាចភ្ជាប់ជាមួយរន្ធដោតនេះ ទោះបីជាពួកគេស្ថិតនៅក្នុងម៉ូឌុលផ្សេងក៏ដោយ។",
12
+ "extensionSystem": "ប្រព័ន្ធបន្ថែម",
13
+ "formalGreeting": "សួស្តី",
14
+ "frontendDocs": "Frontend docs",
15
+ "getPatient": "យកអ្នកជំងឺឈ្មោះ",
16
+ "getStarted": "ការចាប់ផ្តើម",
17
+ "getStartedExplainer": "បង្កើតម៉ូឌុលផ្នែកខាងមុខពីគំរូនេះ។",
18
+ "learnExplainer": "រៀនពីរបៀបប្រើ O3 framework",
19
+ "loading": "កំពុងផ្ទុក",
20
+ "patientGetterExplainer": "ព្យាយាមចុចប៊ូតុងខាងក្រោមដើម្បីទាញយកអ្នកជំងឺពី API",
21
+ "resources": "ធនធាន",
22
+ "usefulLinks": "ខាងក្រោមនេះគឺជាតំណភ្ជាប់មួយចំនួនទៅកាន់ធនធានដែលមានប្រយោជន៍",
23
+ "welcomeText": "សូមស្វាគមន៍មកកាន់កម្មវិធីគំរូ O3"
24
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,24 @@
1
+ {
2
+ "compilerOptions": {
3
+ "esModuleInterop": true,
4
+ "module": "esnext",
5
+ "allowSyntheticDefaultImports": true,
6
+ "jsx": "react",
7
+ "skipLibCheck": true,
8
+ "moduleResolution": "node",
9
+ "lib": [
10
+ "dom",
11
+ "es5",
12
+ "scripthost",
13
+ "es2015",
14
+ "es2015.promise",
15
+ "es2016.array.include",
16
+ "es2018",
17
+ "es2020",
18
+ "es2022",
19
+ ],
20
+ "resolveJsonModule": true,
21
+ "noEmit": true,
22
+ "target": "esnext"
23
+ }
24
+ }
@@ -0,0 +1 @@
1
+ module.exports = require('openmrs/default-webpack-config');