@digihmis/esm-primary-navigation-app 1.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.
Files changed (209) hide show
  1. package/README.md +43 -0
  2. package/__mocks__/mock-session.ts +23 -0
  3. package/__mocks__/mock-user.ts +23 -0
  4. package/__mocks__/openmrs-esm-framework.mock.tsx +30 -0
  5. package/__mocks__/react-i18next.mock.js +49 -0
  6. package/dist/1480.js +1 -0
  7. package/dist/1480.js.map +1 -0
  8. package/dist/1646.js +1 -0
  9. package/dist/1646.js.map +1 -0
  10. package/dist/1716.js +1 -0
  11. package/dist/1716.js.map +1 -0
  12. package/dist/1797.js +1 -0
  13. package/dist/1797.js.map +1 -0
  14. package/dist/1869.js +1 -0
  15. package/dist/1869.js.map +1 -0
  16. package/dist/1877.js +1 -0
  17. package/dist/1877.js.map +1 -0
  18. package/dist/2317.js +1 -0
  19. package/dist/2317.js.map +1 -0
  20. package/dist/2416.js +1 -0
  21. package/dist/2416.js.map +1 -0
  22. package/dist/2711.js +1 -0
  23. package/dist/2711.js.map +1 -0
  24. package/dist/282.js +1 -0
  25. package/dist/282.js.map +1 -0
  26. package/dist/2881.js +1 -0
  27. package/dist/2881.js.map +1 -0
  28. package/dist/2939.js +15 -0
  29. package/dist/2939.js.map +1 -0
  30. package/dist/3378.js +1 -0
  31. package/dist/3378.js.map +1 -0
  32. package/dist/3963.js +1 -0
  33. package/dist/3963.js.map +1 -0
  34. package/dist/4106.js +1 -0
  35. package/dist/4106.js.map +1 -0
  36. package/dist/4111.js +1 -0
  37. package/dist/4111.js.map +1 -0
  38. package/dist/434.js +1 -0
  39. package/dist/434.js.map +1 -0
  40. package/dist/4348.js +1 -0
  41. package/dist/4348.js.map +1 -0
  42. package/dist/4383.js +1 -0
  43. package/dist/4383.js.map +1 -0
  44. package/dist/4658.js +1 -0
  45. package/dist/4658.js.map +1 -0
  46. package/dist/466.js +1 -0
  47. package/dist/466.js.map +1 -0
  48. package/dist/4928.js +1 -0
  49. package/dist/4928.js.map +1 -0
  50. package/dist/5117.js +1 -0
  51. package/dist/5117.js.map +1 -0
  52. package/dist/5132.js +1 -0
  53. package/dist/5132.js.map +1 -0
  54. package/dist/5145.js +1 -0
  55. package/dist/5145.js.map +1 -0
  56. package/dist/5503.js +1 -0
  57. package/dist/5503.js.map +1 -0
  58. package/dist/556.js +1 -0
  59. package/dist/556.js.map +1 -0
  60. package/dist/5644.js +1 -0
  61. package/dist/5644.js.map +1 -0
  62. package/dist/5867.js +12 -0
  63. package/dist/5867.js.map +1 -0
  64. package/dist/5940.js +1 -0
  65. package/dist/5940.js.map +1 -0
  66. package/dist/6047.js +1 -0
  67. package/dist/6047.js.map +1 -0
  68. package/dist/6371.js +1 -0
  69. package/dist/6371.js.map +1 -0
  70. package/dist/6377.js +1 -0
  71. package/dist/6377.js.map +1 -0
  72. package/dist/6444.js +1 -0
  73. package/dist/6444.js.map +1 -0
  74. package/dist/6508.js +1 -0
  75. package/dist/6508.js.map +1 -0
  76. package/dist/6724.js +1 -0
  77. package/dist/6724.js.map +1 -0
  78. package/dist/689.js +1 -0
  79. package/dist/689.js.map +1 -0
  80. package/dist/6904.js +1 -0
  81. package/dist/6904.js.map +1 -0
  82. package/dist/7044.js +1 -0
  83. package/dist/7044.js.map +1 -0
  84. package/dist/7045.js +1 -0
  85. package/dist/7045.js.map +1 -0
  86. package/dist/7175.js +1 -0
  87. package/dist/7175.js.map +1 -0
  88. package/dist/7182.js +1 -0
  89. package/dist/7182.js.map +1 -0
  90. package/dist/7302.js +1 -0
  91. package/dist/7302.js.map +1 -0
  92. package/dist/7587.js +1 -0
  93. package/dist/7587.js.map +1 -0
  94. package/dist/7742.js +1 -0
  95. package/dist/7742.js.map +1 -0
  96. package/dist/7786.js +1 -0
  97. package/dist/7786.js.map +1 -0
  98. package/dist/7912.js +1 -0
  99. package/dist/7912.js.map +1 -0
  100. package/dist/8349.js +1 -0
  101. package/dist/8349.js.map +1 -0
  102. package/dist/8358.js +1 -0
  103. package/dist/8358.js.map +1 -0
  104. package/dist/8359.js +1 -0
  105. package/dist/8359.js.map +1 -0
  106. package/dist/8695.js +1 -0
  107. package/dist/8695.js.map +1 -0
  108. package/dist/8924.js +1 -0
  109. package/dist/8924.js.map +1 -0
  110. package/dist/903.js +1 -0
  111. package/dist/903.js.map +1 -0
  112. package/dist/9072.js +1 -0
  113. package/dist/9072.js.map +1 -0
  114. package/dist/9105.js +1 -0
  115. package/dist/9105.js.map +1 -0
  116. package/dist/9712.js +1 -0
  117. package/dist/9712.js.map +1 -0
  118. package/dist/9806.js +1 -0
  119. package/dist/9806.js.map +1 -0
  120. package/dist/digihmis-esm-primary-navigation-app.js +6 -0
  121. package/dist/digihmis-esm-primary-navigation-app.js.buildmanifest.json +1542 -0
  122. package/dist/digihmis-esm-primary-navigation-app.js.map +1 -0
  123. package/dist/main.js +6 -0
  124. package/dist/main.js.map +1 -0
  125. package/dist/routes.json +1 -0
  126. package/jest.config.js +18 -0
  127. package/package.json +68 -0
  128. package/rspack.config.js +1 -0
  129. package/src/components/change-language/change-language-link.extension.tsx +37 -0
  130. package/src/components/change-language/change-language-link.scss +14 -0
  131. package/src/components/change-language/change-language.modal.tsx +115 -0
  132. package/src/components/change-language/change-language.resource.ts +35 -0
  133. package/src/components/change-language/change-language.scss +59 -0
  134. package/src/components/change-language/change-language.test.tsx +107 -0
  135. package/src/components/dashboard/dashboard.component.tsx +104 -0
  136. package/src/components/generic-link/generic-link.component.tsx +25 -0
  137. package/src/components/logo/logo.component.tsx +28 -0
  138. package/src/components/logo/logo.scss +11 -0
  139. package/src/components/logo/logo.test.tsx +79 -0
  140. package/src/components/nav-group/nav-group.component.tsx +52 -0
  141. package/src/components/navbar/app-menu-button.component.tsx +43 -0
  142. package/src/components/navbar/navbar.component.tsx +123 -0
  143. package/src/components/navbar/navbar.scss +51 -0
  144. package/src/components/navbar/types.ts +5 -0
  145. package/src/components/navbar/user-menu-button.component.tsx +44 -0
  146. package/src/components/navbar-header-panels/app-menu-panel.component.tsx +48 -0
  147. package/src/components/navbar-header-panels/app-menu-panel.scss +43 -0
  148. package/src/components/navbar-header-panels/notifications-menu-panel.component.tsx +23 -0
  149. package/src/components/navbar-header-panels/notifications-menu-panel.test.tsx +9 -0
  150. package/src/components/navbar-header-panels/notifications-menu.panel.scss +9 -0
  151. package/src/components/navbar-header-panels/side-menu-panel.component.tsx +37 -0
  152. package/src/components/navbar-header-panels/user-menu-panel.component.tsx +32 -0
  153. package/src/components/navbar-header-panels/user-menu-panel.scss +65 -0
  154. package/src/components/user-panel-switcher-item/user-panel-switcher.component.tsx +15 -0
  155. package/src/components/user-panel-switcher-item/user-panel-switcher.test.tsx +22 -0
  156. package/src/config-schema.ts +56 -0
  157. package/src/constants.ts +2 -0
  158. package/src/declarations.d.ts +1 -0
  159. package/src/index.ts +68 -0
  160. package/src/root.component.test.tsx +57 -0
  161. package/src/root.component.tsx +25 -0
  162. package/src/root.resource.tsx +13 -0
  163. package/src/root.scss +5 -0
  164. package/src/routes.json +78 -0
  165. package/src/setupTests.ts +7 -0
  166. package/src/utils.ts +3 -0
  167. package/translations/am.json +14 -0
  168. package/translations/ar.json +14 -0
  169. package/translations/ar_SY.json +14 -0
  170. package/translations/bn.json +14 -0
  171. package/translations/cs.json +14 -0
  172. package/translations/de.json +14 -0
  173. package/translations/en.json +14 -0
  174. package/translations/en_US.json +14 -0
  175. package/translations/es.json +14 -0
  176. package/translations/es_MX.json +14 -0
  177. package/translations/fr.json +14 -0
  178. package/translations/he.json +14 -0
  179. package/translations/hi.json +14 -0
  180. package/translations/hi_IN.json +14 -0
  181. package/translations/id.json +14 -0
  182. package/translations/it.json +14 -0
  183. package/translations/ka.json +14 -0
  184. package/translations/km.json +14 -0
  185. package/translations/ku.json +14 -0
  186. package/translations/ky.json +14 -0
  187. package/translations/lg.json +14 -0
  188. package/translations/ne.json +14 -0
  189. package/translations/pl.json +14 -0
  190. package/translations/pt.json +14 -0
  191. package/translations/pt_BR.json +14 -0
  192. package/translations/qu.json +14 -0
  193. package/translations/ro_RO.json +14 -0
  194. package/translations/ru_RU.json +14 -0
  195. package/translations/si.json +14 -0
  196. package/translations/sq.json +14 -0
  197. package/translations/sw.json +12 -0
  198. package/translations/sw_KE.json +14 -0
  199. package/translations/tr.json +14 -0
  200. package/translations/tr_TR.json +14 -0
  201. package/translations/uk.json +14 -0
  202. package/translations/uz.json +14 -0
  203. package/translations/uz@Latn.json +14 -0
  204. package/translations/uz_UZ.json +14 -0
  205. package/translations/vi.json +14 -0
  206. package/translations/zh.json +14 -0
  207. package/translations/zh_CN.json +14 -0
  208. package/translations/zh_TW.json +14 -0
  209. package/tsconfig.json +24 -0
@@ -0,0 +1,57 @@
1
+ import React from 'react';
2
+ import { of } from 'rxjs';
3
+ import { render, screen, waitFor } from '@testing-library/react';
4
+ import {
5
+ useConfig,
6
+ useAssignedExtensions,
7
+ useSession,
8
+ type AssignedExtension,
9
+ type Session,
10
+ useLeftNavStore,
11
+ } from '@openmrs/esm-framework';
12
+ import { isDesktop } from './utils';
13
+ import { mockUser } from '../__mocks__/mock-user';
14
+ import { mockSession } from '../__mocks__/mock-session';
15
+ import Root from './root.component';
16
+
17
+ const mockUserObservable = of(mockUser);
18
+ const mockSessionObservable = of({ data: mockSession });
19
+ const mockIsDesktop = jest.mocked(isDesktop);
20
+
21
+ const mockUseConfig = jest.mocked(useConfig);
22
+ const mockUseAssignedExtensions = jest.mocked(useAssignedExtensions);
23
+ const mockUseSession = jest.mocked(useSession);
24
+ const mockUseLeftNavStore = jest.mocked(useLeftNavStore);
25
+
26
+ mockUseConfig.mockReturnValue({
27
+ logo: { src: null, alt: null, name: 'Mock EMR', link: 'Mock EMR' },
28
+ });
29
+ mockUseAssignedExtensions.mockReturnValue(['mock-extension'] as unknown as AssignedExtension[]);
30
+ mockUseSession.mockReturnValue(mockSession as unknown as Session);
31
+ mockUseLeftNavStore.mockReturnValue({ slotName: '', basePath: '', mode: 'normal' });
32
+
33
+ jest.mock('./root.resource', () => ({
34
+ getSynchronizedCurrentUser: jest.fn(() => mockUserObservable),
35
+ getCurrentSession: jest.fn(() => mockSessionObservable),
36
+ }));
37
+
38
+ jest.mock('./utils', () => ({
39
+ isDesktop: jest.fn(() => true),
40
+ }));
41
+
42
+ describe('Root', () => {
43
+ it('should display navbar with title', async () => {
44
+ render(<Root />);
45
+ expect(screen.getByText(/mock emr/i)).toBeInTheDocument();
46
+ });
47
+
48
+ describe('when view is desktop', () => {
49
+ beforeEach(() => {
50
+ mockIsDesktop.mockImplementation(() => true);
51
+ });
52
+
53
+ it('does not render side menu button if desktop', async () => {
54
+ await waitFor(() => expect(screen.queryAllByLabelText('Open menu')).toHaveLength(0));
55
+ });
56
+ });
57
+ });
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import { BrowserRouter, Route, Routes } from 'react-router-dom';
3
+ import Navbar from './components/navbar/navbar.component';
4
+ import styles from './root.scss';
5
+
6
+ const Root: React.FC = () => {
7
+ return (
8
+ <BrowserRouter basename={window.getOpenmrsSpaBase()}>
9
+ <Routes>
10
+ <Route path="login/*" element={null} />
11
+ <Route path="logout/*" element={null} />
12
+ <Route
13
+ path="*"
14
+ element={
15
+ <div className={styles.primaryNavContainer}>
16
+ <Navbar />
17
+ </div>
18
+ }
19
+ />
20
+ </Routes>
21
+ </BrowserRouter>
22
+ );
23
+ };
24
+
25
+ export default Root;
@@ -0,0 +1,13 @@
1
+ import { getCurrentUser, openmrsObservableFetch, restBaseUrl } from '@openmrs/esm-framework/src/internal';
2
+
3
+ export function getCurrentSession() {
4
+ return openmrsObservableFetch(`${restBaseUrl}/session`);
5
+ }
6
+
7
+ /**
8
+ * Returns an observable producing the current user, but also applies any unsynchronized user property
9
+ * changes to that user.
10
+ */
11
+ export function getSynchronizedCurrentUser() {
12
+ return getCurrentUser({ includeAuthStatus: true });
13
+ }
package/src/root.scss ADDED
@@ -0,0 +1,5 @@
1
+ @use '@openmrs/esm-styleguide/src/vars' as *;
2
+
3
+ .primaryNavContainer {
4
+ height: var(--omrs-topnav-height);
5
+ }
@@ -0,0 +1,78 @@
1
+ {
2
+ "$schema": "https://json.openmrs.org/routes.schema.json",
3
+ "backendDependencies": {
4
+ "webservices.rest": ">=2.2.0"
5
+ },
6
+ "pages": [
7
+ {
8
+ "component": "root",
9
+ "routeRegex": "^(?!(?:login|change-password)/?)",
10
+ "online": true,
11
+ "offline": true,
12
+ "containerDomId": "omrs-top-nav-app-container"
13
+ },
14
+ {
15
+ "component": "redirect",
16
+ "routeRegex": "^$",
17
+ "online": true,
18
+ "offline": true
19
+ }
20
+ ],
21
+ "extensions": [
22
+ {
23
+ "name": "default-user-panel",
24
+ "slot": "user-panel-slot",
25
+ "component": "userPanel",
26
+ "online": true,
27
+ "offline": true,
28
+ "order": 0
29
+ },
30
+ {
31
+ "name": "change-language",
32
+ "slot": "user-panel-slot",
33
+ "component": "changeLanguageLink",
34
+ "online": true,
35
+ "offline": true,
36
+ "order": 1
37
+ },
38
+ {
39
+ "name": "link",
40
+ "component": "linkComponent",
41
+ "online": true,
42
+ "offline": true
43
+ },
44
+ {
45
+ "name": "nav-group",
46
+ "component": "navGroup",
47
+ "online": true,
48
+ "offline": true
49
+ },
50
+ {
51
+ "name": "dashboard",
52
+ "component": "dashboard",
53
+ "online": true,
54
+ "offline": true
55
+ },
56
+ {
57
+ "name": "user-menu-button",
58
+ "component": "userMenuButton",
59
+ "online": true,
60
+ "offline": true,
61
+ "slot": "top-nav-actions-slot",
62
+ "order": 40
63
+ },
64
+ {
65
+ "name": "app-menu-button",
66
+ "component": "appMenuButton",
67
+ "online": true,
68
+ "offline": true,
69
+ "slot": "top-nav-app-menu-slot"
70
+ }
71
+ ],
72
+ "modals": [
73
+ {
74
+ "name": "change-language-modal",
75
+ "component": "changeLanguageModal"
76
+ }
77
+ ]
78
+ }
@@ -0,0 +1,7 @@
1
+ import '@testing-library/jest-dom';
2
+
3
+ const { getComputedStyle } = window;
4
+
5
+ window.getComputedStyle = (elt) => getComputedStyle(elt);
6
+ window.getOpenmrsSpaBase = jest.fn();
7
+ window['getOpenmrsSpaBase'] = jest.fn().mockImplementation(() => '/');
package/src/utils.ts ADDED
@@ -0,0 +1,3 @@
1
+ import type { LayoutType } from '@openmrs/esm-framework';
2
+
3
+ export const isDesktop = (layout: LayoutType) => layout === 'small-desktop' || layout === 'large-desktop';
@@ -0,0 +1,14 @@
1
+ {
2
+ "AppMenuTooltip": "App Menu",
3
+ "cancel": "Cancel",
4
+ "change": "Change",
5
+ "changeDefaultLocale": "Update your default locale",
6
+ "changeDefaultLocaleExplanation": "Leave this unchecked to change language for this session only",
7
+ "changeLanguage": "Change language",
8
+ "changingLanguage": "Changing language",
9
+ "noPathInDashboardExtension": "Cannot render the dashboard extension without the property \"path\" being set in the configuration schema",
10
+ "notifications": "Notifications",
11
+ "userMenu": "User menu",
12
+ "userMenuOptions": "User menu options",
13
+ "userMenuTooltip": "My Account"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "AppMenuTooltip": "App Menu",
3
+ "cancel": "Cancel",
4
+ "change": "تغيير",
5
+ "changeDefaultLocale": "Update your default locale",
6
+ "changeDefaultLocaleExplanation": "Leave this unchecked to change language for this session only",
7
+ "changeLanguage": "Change language",
8
+ "changingLanguage": "Changing language",
9
+ "noPathInDashboardExtension": "Cannot render the dashboard extension without the property \"path\" being set in the configuration schema",
10
+ "notifications": "الإشعارات",
11
+ "userMenu": "User menu",
12
+ "userMenuOptions": "User menu options",
13
+ "userMenuTooltip": "My Account"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "AppMenuTooltip": "App Menu",
3
+ "cancel": "Cancel",
4
+ "change": "Change",
5
+ "changeDefaultLocale": "Update your default locale",
6
+ "changeDefaultLocaleExplanation": "Leave this unchecked to change language for this session only",
7
+ "changeLanguage": "Change language",
8
+ "changingLanguage": "Changing language",
9
+ "noPathInDashboardExtension": "Cannot render the dashboard extension without the property \"path\" being set in the configuration schema",
10
+ "notifications": "Notifications",
11
+ "userMenu": "User menu",
12
+ "userMenuOptions": "User menu options",
13
+ "userMenuTooltip": "My Account"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "AppMenuTooltip": "App Menu",
3
+ "cancel": "Cancel",
4
+ "change": "Change",
5
+ "changeDefaultLocale": "Update your default locale",
6
+ "changeDefaultLocaleExplanation": "Leave this unchecked to change language for this session only",
7
+ "changeLanguage": "Change language",
8
+ "changingLanguage": "Changing language",
9
+ "noPathInDashboardExtension": "Cannot render the dashboard extension without the property \"path\" being set in the configuration schema",
10
+ "notifications": "Notifications",
11
+ "userMenu": "User menu",
12
+ "userMenuOptions": "User menu options",
13
+ "userMenuTooltip": "My Account"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "AppMenuTooltip": "App Menu",
3
+ "cancel": "Cancel",
4
+ "change": "Change",
5
+ "changeDefaultLocale": "Update your default locale",
6
+ "changeDefaultLocaleExplanation": "Leave this unchecked to change language for this session only",
7
+ "changeLanguage": "Change language",
8
+ "changingLanguage": "Changing language",
9
+ "noPathInDashboardExtension": "Cannot render the dashboard extension without the property \"path\" being set in the configuration schema",
10
+ "notifications": "Notifications",
11
+ "userMenu": "User menu",
12
+ "userMenuOptions": "User menu options",
13
+ "userMenuTooltip": "My Account"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "AppMenuTooltip": "App Menu",
3
+ "cancel": "Cancel",
4
+ "change": "Change",
5
+ "changeDefaultLocale": "Update your default locale",
6
+ "changeDefaultLocaleExplanation": "Leave this unchecked to change language for this session only",
7
+ "changeLanguage": "Change language",
8
+ "changingLanguage": "Changing language",
9
+ "noPathInDashboardExtension": "Cannot render the dashboard extension without the property \"path\" being set in the configuration schema",
10
+ "notifications": "Notifications",
11
+ "userMenu": "User menu",
12
+ "userMenuOptions": "User menu options",
13
+ "userMenuTooltip": "My Account"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "AppMenuTooltip": "App Menu",
3
+ "cancel": "Cancel",
4
+ "change": "Change",
5
+ "changeDefaultLocale": "Update your default locale",
6
+ "changeDefaultLocaleExplanation": "Leave this unchecked to change language for this session only",
7
+ "changeLanguage": "Change language",
8
+ "changingLanguage": "Changing language",
9
+ "noPathInDashboardExtension": "Cannot render the dashboard extension without the property \"path\" being set in the configuration schema",
10
+ "notifications": "Notifications",
11
+ "userMenu": "User menu",
12
+ "userMenuOptions": "User menu options",
13
+ "userMenuTooltip": "My Account"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "AppMenuTooltip": "App Menu",
3
+ "cancel": "Cancel",
4
+ "change": "Change",
5
+ "changeDefaultLocale": "Update your default locale",
6
+ "changeDefaultLocaleExplanation": "Leave this unchecked to change language for this session only",
7
+ "changeLanguage": "Change language",
8
+ "changingLanguage": "Changing language",
9
+ "noPathInDashboardExtension": "Cannot render the dashboard extension without the property \"path\" being set in the configuration schema",
10
+ "notifications": "Notifications",
11
+ "userMenu": "User menu",
12
+ "userMenuOptions": "User menu options",
13
+ "userMenuTooltip": "My Account"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "AppMenuTooltip": "Menú de la Aplicación",
3
+ "cancel": "Cancelar",
4
+ "change": "Cambiar",
5
+ "changeDefaultLocale": "Actualice su configuración regional predeterminada",
6
+ "changeDefaultLocaleExplanation": "Deje esta opción sin marcar para cambiar el idioma únicamente de esta sesión",
7
+ "changeLanguage": "Cambiar idioma",
8
+ "changingLanguage": "Cambiando idioma",
9
+ "noPathInDashboardExtension": "No se puede representar la extensión del panel sin que la propiedad \"ruta\" esté configurada en el esquema de configuración",
10
+ "notifications": "Notificaciones",
11
+ "userMenu": "Menú de usuario",
12
+ "userMenuOptions": " Opciones del menú de usuario",
13
+ "userMenuTooltip": "Mi Cuenta"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "AppMenuTooltip": "App Menu",
3
+ "cancel": "Cancel",
4
+ "change": "Change",
5
+ "changeDefaultLocale": "Update your default locale",
6
+ "changeDefaultLocaleExplanation": "Leave this unchecked to change language for this session only",
7
+ "changeLanguage": "Change language",
8
+ "changingLanguage": "Changing language",
9
+ "noPathInDashboardExtension": "Cannot render the dashboard extension without the property \"path\" being set in the configuration schema",
10
+ "notifications": "Notifications",
11
+ "userMenu": "User menu",
12
+ "userMenuOptions": "User menu options",
13
+ "userMenuTooltip": "My Account"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "AppMenuTooltip": "Applications",
3
+ "cancel": "Annuler",
4
+ "change": "Modifier",
5
+ "changeDefaultLocale": "Modifier la langue par défaut",
6
+ "changeDefaultLocaleExplanation": "Laisser cette case non-cochés afin changer la langue uniquement pour cette session",
7
+ "changeLanguage": "Changer de langue",
8
+ "changingLanguage": "Changement de langue",
9
+ "noPathInDashboardExtension": "Impossible d'afficher l'extension de tableau de bord sans que la propriété \"path\" ne soit configurée dans le schéma de configuration",
10
+ "notifications": "Notifications",
11
+ "userMenu": "Menu utilisateur",
12
+ "userMenuOptions": "Options du menu utilisateur",
13
+ "userMenuTooltip": "Mon compte"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "AppMenuTooltip": "תפריט יישום",
3
+ "cancel": "Cancel",
4
+ "change": "שינוי",
5
+ "changeDefaultLocale": "Update your default locale",
6
+ "changeDefaultLocaleExplanation": "Leave this unchecked to change language for this session only",
7
+ "changeLanguage": "Change language",
8
+ "changingLanguage": "Changing language",
9
+ "noPathInDashboardExtension": "Cannot render the dashboard extension without the property \"path\" being set in the configuration schema",
10
+ "notifications": "התראות",
11
+ "userMenu": "תפריט משתמש",
12
+ "userMenuOptions": "אפשרויות תפריט משתמש",
13
+ "userMenuTooltip": "My Account"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "AppMenuTooltip": "App Menu",
3
+ "cancel": "Cancel",
4
+ "change": "Change",
5
+ "changeDefaultLocale": "Update your default locale",
6
+ "changeDefaultLocaleExplanation": "Leave this unchecked to change language for this session only",
7
+ "changeLanguage": "Change language",
8
+ "changingLanguage": "Changing language",
9
+ "noPathInDashboardExtension": "Cannot render the dashboard extension without the property \"path\" being set in the configuration schema",
10
+ "notifications": "Notifications",
11
+ "userMenu": "User menu",
12
+ "userMenuOptions": "User menu options",
13
+ "userMenuTooltip": "My Account"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "AppMenuTooltip": "App Menu",
3
+ "cancel": "Cancel",
4
+ "change": "Change",
5
+ "changeDefaultLocale": "Update your default locale",
6
+ "changeDefaultLocaleExplanation": "Leave this unchecked to change language for this session only",
7
+ "changeLanguage": "Change language",
8
+ "changingLanguage": "Changing language",
9
+ "noPathInDashboardExtension": "Cannot render the dashboard extension without the property \"path\" being set in the configuration schema",
10
+ "notifications": "Notifications",
11
+ "userMenu": "User menu",
12
+ "userMenuOptions": "User menu options",
13
+ "userMenuTooltip": "My Account"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "AppMenuTooltip": "Menu Aplikasi",
3
+ "cancel": "Batal",
4
+ "change": "Ubah",
5
+ "changeDefaultLocale": "Update your default locale",
6
+ "changeDefaultLocaleExplanation": "Leave this unchecked to change language for this session only",
7
+ "changeLanguage": "Ubah bahasa",
8
+ "changingLanguage": "Mengubah bahasa",
9
+ "noPathInDashboardExtension": "Cannot render the dashboard extension without the property \"path\" being set in the configuration schema",
10
+ "notifications": "Notifikasi",
11
+ "userMenu": "Menu pengguna",
12
+ "userMenuOptions": "Opsi menu pengguna",
13
+ "userMenuTooltip": "Akun Saya"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "AppMenuTooltip": "Menu App",
3
+ "cancel": "Annulla",
4
+ "change": "Cambia",
5
+ "changeDefaultLocale": "Modifica la lingua predefinita",
6
+ "changeDefaultLocaleExplanation": "Ignora questa scelta per cambiare lingua soltanto per la sessione corrente",
7
+ "changeLanguage": "Cambia lingua",
8
+ "changingLanguage": "Cambio lingua in corso",
9
+ "noPathInDashboardExtension": "Impossibile visualizzare l'estensione della dashboard senza aver impostato la proprietà \"path\" nelle configurazioni",
10
+ "notifications": "Notifiche",
11
+ "userMenu": "Menu utente",
12
+ "userMenuOptions": "Opzioni menu utente",
13
+ "userMenuTooltip": "Il mio account"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "AppMenuTooltip": "აპის მენიუ",
3
+ "cancel": "გაუქმება",
4
+ "change": "შეცვლა",
5
+ "changeDefaultLocale": "Update your default locale",
6
+ "changeDefaultLocaleExplanation": "Leave this unchecked to change language for this session only",
7
+ "changeLanguage": "ენის შეცვლა",
8
+ "changingLanguage": "მიმდინარეობს ენის შეცვლა",
9
+ "noPathInDashboardExtension": "Cannot render the dashboard extension without the property \"path\" being set in the configuration schema",
10
+ "notifications": "გაფრთხილებები",
11
+ "userMenu": "მომხმარებლის მენიუ",
12
+ "userMenuOptions": "მომხმარებლის მენიუს მორგება",
13
+ "userMenuTooltip": "ჩემი ანგარიში"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "AppMenuTooltip": "App Menu",
3
+ "cancel": "Cancel",
4
+ "change": "ផ្លាស់ប្តូរ",
5
+ "changeDefaultLocale": "Update your default locale",
6
+ "changeDefaultLocaleExplanation": "Leave this unchecked to change language for this session only",
7
+ "changeLanguage": "Change language",
8
+ "changingLanguage": "Changing language",
9
+ "noPathInDashboardExtension": "Cannot render the dashboard extension without the property \"path\" being set in the configuration schema",
10
+ "notifications": "ការជូនដំណឹង",
11
+ "userMenu": "User menu",
12
+ "userMenuOptions": "User menu options",
13
+ "userMenuTooltip": "My Account"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "AppMenuTooltip": "App Menu",
3
+ "cancel": "Cancel",
4
+ "change": "Change",
5
+ "changeDefaultLocale": "Update your default locale",
6
+ "changeDefaultLocaleExplanation": "Leave this unchecked to change language for this session only",
7
+ "changeLanguage": "Change language",
8
+ "changingLanguage": "Changing language",
9
+ "noPathInDashboardExtension": "Cannot render the dashboard extension without the property \"path\" being set in the configuration schema",
10
+ "notifications": "Notifications",
11
+ "userMenu": "User menu",
12
+ "userMenuOptions": "User menu options",
13
+ "userMenuTooltip": "My Account"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "AppMenuTooltip": "App Menu",
3
+ "cancel": "Cancel",
4
+ "change": "Change",
5
+ "changeDefaultLocale": "Update your default locale",
6
+ "changeDefaultLocaleExplanation": "Leave this unchecked to change language for this session only",
7
+ "changeLanguage": "Change language",
8
+ "changingLanguage": "Changing language",
9
+ "noPathInDashboardExtension": "Cannot render the dashboard extension without the property \"path\" being set in the configuration schema",
10
+ "notifications": "Notifications",
11
+ "userMenu": "User menu",
12
+ "userMenuOptions": "User menu options",
13
+ "userMenuTooltip": "My Account"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "AppMenuTooltip": "App Menu",
3
+ "cancel": "Cancel",
4
+ "change": "Change",
5
+ "changeDefaultLocale": "Update your default locale",
6
+ "changeDefaultLocaleExplanation": "Leave this unchecked to change language for this session only",
7
+ "changeLanguage": "Change language",
8
+ "changingLanguage": "Changing language",
9
+ "noPathInDashboardExtension": "Cannot render the dashboard extension without the property \"path\" being set in the configuration schema",
10
+ "notifications": "Notifications",
11
+ "userMenu": "User menu",
12
+ "userMenuOptions": "User menu options",
13
+ "userMenuTooltip": "My Account"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "AppMenuTooltip": "App Menu",
3
+ "cancel": "Cancel",
4
+ "change": "Change",
5
+ "changeDefaultLocale": "Update your default locale",
6
+ "changeDefaultLocaleExplanation": "Leave this unchecked to change language for this session only",
7
+ "changeLanguage": "Change language",
8
+ "changingLanguage": "Changing language",
9
+ "noPathInDashboardExtension": "Cannot render the dashboard extension without the property \"path\" being set in the configuration schema",
10
+ "notifications": "Notifications",
11
+ "userMenu": "User menu",
12
+ "userMenuOptions": "User menu options",
13
+ "userMenuTooltip": "My Account"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "AppMenuTooltip": "App Menu",
3
+ "cancel": "Cancel",
4
+ "change": "Change",
5
+ "changeDefaultLocale": "Update your default locale",
6
+ "changeDefaultLocaleExplanation": "Leave this unchecked to change language for this session only",
7
+ "changeLanguage": "Change language",
8
+ "changingLanguage": "Changing language",
9
+ "noPathInDashboardExtension": "Cannot render the dashboard extension without the property \"path\" being set in the configuration schema",
10
+ "notifications": "Notifications",
11
+ "userMenu": "User menu",
12
+ "userMenuOptions": "User menu options",
13
+ "userMenuTooltip": "My Account"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "AppMenuTooltip": "Menu da Aplicação",
3
+ "cancel": "Cancelar",
4
+ "change": "Alterar",
5
+ "changeDefaultLocale": "Update your default locale",
6
+ "changeDefaultLocaleExplanation": "Leave this unchecked to change language for this session only",
7
+ "changeLanguage": "Alterar língua",
8
+ "changingLanguage": "Alterando língua",
9
+ "noPathInDashboardExtension": "Cannot render the dashboard extension without the property \"path\" being set in the configuration schema",
10
+ "notifications": "Notificações",
11
+ "userMenu": "User menu",
12
+ "userMenuOptions": "User menu options",
13
+ "userMenuTooltip": "Minha Conta"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "AppMenuTooltip": "Menu do Aplicativo",
3
+ "cancel": "Cancelar",
4
+ "change": "Alterar",
5
+ "changeDefaultLocale": "Update your default locale",
6
+ "changeDefaultLocaleExplanation": "Leave this unchecked to change language for this session only",
7
+ "changeLanguage": "Alterar idioma",
8
+ "changingLanguage": "Alterando idioma",
9
+ "noPathInDashboardExtension": "Cannot render the dashboard extension without the property \"path\" being set in the configuration schema",
10
+ "notifications": "Notificações",
11
+ "userMenu": "Menu do usuário",
12
+ "userMenuOptions": "User menu options",
13
+ "userMenuTooltip": "Minha Conta"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "AppMenuTooltip": "App Menu",
3
+ "cancel": "Cancel",
4
+ "change": "Change",
5
+ "changeDefaultLocale": "Update your default locale",
6
+ "changeDefaultLocaleExplanation": "Leave this unchecked to change language for this session only",
7
+ "changeLanguage": "Change language",
8
+ "changingLanguage": "Changing language",
9
+ "noPathInDashboardExtension": "Cannot render the dashboard extension without the property \"path\" being set in the configuration schema",
10
+ "notifications": "Notifications",
11
+ "userMenu": "User menu",
12
+ "userMenuOptions": "User menu options",
13
+ "userMenuTooltip": "My Account"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "AppMenuTooltip": "Meniu aplicație",
3
+ "cancel": "Anulează",
4
+ "change": "Schimbă",
5
+ "changeDefaultLocale": "Update your default locale",
6
+ "changeDefaultLocaleExplanation": "Leave this unchecked to change language for this session only",
7
+ "changeLanguage": "Schimbă limba",
8
+ "changingLanguage": "Se schimbă limba",
9
+ "noPathInDashboardExtension": "Nu se poate reda extensia tabloului de bord fără ca proprietatea \"path\" să fie setată în schema de configurare",
10
+ "notifications": "Notificări",
11
+ "userMenu": "Meniul utilizatorului",
12
+ "userMenuOptions": "Opțiuni meniu utilizator",
13
+ "userMenuTooltip": "Contul meu"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "AppMenuTooltip": "App Menu",
3
+ "cancel": "Cancel",
4
+ "change": "Change",
5
+ "changeDefaultLocale": "Update your default locale",
6
+ "changeDefaultLocaleExplanation": "Leave this unchecked to change language for this session only",
7
+ "changeLanguage": "Change language",
8
+ "changingLanguage": "Changing language",
9
+ "noPathInDashboardExtension": "Cannot render the dashboard extension without the property \"path\" being set in the configuration schema",
10
+ "notifications": "Notifications",
11
+ "userMenu": "User menu",
12
+ "userMenuOptions": "User menu options",
13
+ "userMenuTooltip": "My Account"
14
+ }