@j2inn/fin5-ui-utils 3.0.6 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. package/README.md +0 -0
  2. package/dist/fantomProps/createFin5Props/index.d.ts +12 -12
  3. package/dist/fantomProps/createFin5Props/index.js +146 -146
  4. package/dist/fantomProps/createFin5Props/runCreateFin5Props.d.ts +2 -2
  5. package/dist/fantomProps/createFin5Props/runCreateFin5Props.js +16 -16
  6. package/dist/fantomProps/fantomPropsToObject.d.ts +8 -8
  7. package/dist/fantomProps/fantomPropsToObject.js +183 -183
  8. package/dist/fantomProps/generateJsonFromFantomPropsFile.d.ts +4 -4
  9. package/dist/fantomProps/generateJsonFromFantomPropsFile.js +41 -41
  10. package/dist/fantomProps/localePropsToJson.d.ts +1 -1
  11. package/dist/fantomProps/localePropsToJson.js +50 -50
  12. package/dist/fantomProps/readFantomPropsFile.d.ts +5 -5
  13. package/dist/fantomProps/readFantomPropsFile.js +61 -61
  14. package/dist/fin5Top/fin5FileUpload.d.ts +24 -24
  15. package/dist/fin5Top/fin5FileUpload.js +51 -51
  16. package/dist/fin5Top/fin5Top.d.ts +115 -115
  17. package/dist/fin5Top/fin5Top.js +58 -58
  18. package/dist/fin5Top/finEdge2Cloud.d.ts +6 -6
  19. package/dist/fin5Top/finEdge2Cloud.js +15 -15
  20. package/dist/fin5Top/getFin5BinUrl.d.ts +2 -2
  21. package/dist/fin5Top/getFin5BinUrl.js +9 -9
  22. package/dist/fin5Top/openFin5Alarm.d.ts +22 -22
  23. package/dist/fin5Top/openFin5Alarm.js +23 -23
  24. package/dist/fin5Top/openFin5Historian.d.ts +3 -3
  25. package/dist/fin5Top/openFin5Historian.js +19 -19
  26. package/dist/fin5Top/useFin5AppURLHashParameter.d.ts +18 -18
  27. package/dist/fin5Top/useFin5AppURLHashParameter.js +128 -128
  28. package/dist/index.d.ts +30 -30
  29. package/dist/index.js +64 -64
  30. package/dist/jobs/jobUtils.d.ts +14 -14
  31. package/dist/jobs/jobUtils.js +15 -15
  32. package/dist/react/app/Fin5AppContainer.d.ts +36 -36
  33. package/dist/react/app/Fin5AppContainer.js +102 -102
  34. package/dist/react/app/Fin5AppRootStore.d.ts +39 -39
  35. package/dist/react/app/Fin5AppRootStore.js +69 -69
  36. package/dist/react/components/ErrorBoundary.d.ts +57 -57
  37. package/dist/react/components/ErrorBoundary.js +150 -150
  38. package/dist/react/components/ErrorDisplayer.d.ts +19 -19
  39. package/dist/react/components/ErrorDisplayer.js +36 -36
  40. package/dist/react/components/Loader.d.ts +9 -9
  41. package/dist/react/components/Loader.js +17 -17
  42. package/dist/react/components/LoadingSpinner.d.ts +2 -2
  43. package/dist/react/components/LoadingSpinner.js +27 -27
  44. package/dist/react/components/RecordImage.d.ts +20 -20
  45. package/dist/react/components/RecordImage.js +51 -51
  46. package/dist/react/components/charts/QRCode.d.ts +25 -25
  47. package/dist/react/components/charts/QRCode.js +81 -81
  48. package/dist/react/components/charts/pie/PieChart.d.ts +93 -93
  49. package/dist/react/components/charts/pie/PieChart.js +202 -202
  50. package/dist/react/components/charts/pie/SimplePieChart.d.ts +20 -20
  51. package/dist/react/components/charts/pie/SimplePieChart.js +55 -55
  52. package/dist/react/components/graphics/GraphicViewer.d.ts +10 -10
  53. package/dist/react/components/graphics/GraphicViewer.js +29 -29
  54. package/dist/react/components/graphics/GraphicsTabViewer.d.ts +17 -17
  55. package/dist/react/components/graphics/GraphicsTabViewer.js +90 -90
  56. package/dist/react/components/navigation/BasicLayout.d.ts +41 -41
  57. package/dist/react/components/navigation/BasicLayout.js +155 -155
  58. package/dist/react/components/navigation/HeaderSiderLayout.d.ts +13 -13
  59. package/dist/react/components/navigation/HeaderSiderLayout.js +110 -110
  60. package/dist/react/components/navigation/MenuPage.d.ts +37 -37
  61. package/dist/react/components/navigation/MenuPage.js +36 -36
  62. package/dist/react/components/navigation/MenuTrigger.d.ts +9 -9
  63. package/dist/react/components/navigation/MenuTrigger.js +33 -33
  64. package/dist/react/components/navigation/ReactRouterHeaderSiderLayout.d.ts +11 -11
  65. package/dist/react/components/navigation/ReactRouterHeaderSiderLayout.js +25 -25
  66. package/dist/react/components/navigation/ReactRouterLayout.d.ts +35 -35
  67. package/dist/react/components/navigation/ReactRouterLayout.js +113 -113
  68. package/dist/react/components/navigation/customRouting/Router.d.ts +12 -12
  69. package/dist/react/components/navigation/customRouting/Router.js +45 -45
  70. package/dist/react/components/navigation/customRouting/RouterLayout.d.ts +11 -11
  71. package/dist/react/components/navigation/customRouting/RouterLayout.js +61 -61
  72. package/dist/react/components/resolvable/configurationForm/ConfigurationForm.d.ts +27 -27
  73. package/dist/react/components/resolvable/configurationForm/ConfigurationForm.js +95 -95
  74. package/dist/react/components/resolvable/configurationForm/ConfigurationFormEntry.d.ts +16 -16
  75. package/dist/react/components/resolvable/configurationForm/ConfigurationFormEntry.js +88 -88
  76. package/dist/react/components/resolvable/configurationForm/getSectionDefault.d.ts +16 -16
  77. package/dist/react/components/resolvable/configurationForm/getSectionDefault.js +99 -99
  78. package/dist/react/hooks/useFin5BinUrl.d.ts +6 -6
  79. package/dist/react/hooks/useFin5BinUrl.js +15 -15
  80. package/dist_es/fantomProps/createFin5Props/index.d.ts +12 -12
  81. package/dist_es/fantomProps/createFin5Props/index.js +140 -140
  82. package/dist_es/fantomProps/createFin5Props/index.js.map +0 -0
  83. package/dist_es/fantomProps/createFin5Props/runCreateFin5Props.d.ts +2 -2
  84. package/dist_es/fantomProps/createFin5Props/runCreateFin5Props.js +11 -11
  85. package/dist_es/fantomProps/createFin5Props/runCreateFin5Props.js.map +0 -0
  86. package/dist_es/fantomProps/fantomPropsToObject.d.ts +8 -8
  87. package/dist_es/fantomProps/fantomPropsToObject.js +178 -178
  88. package/dist_es/fantomProps/fantomPropsToObject.js.map +0 -0
  89. package/dist_es/fantomProps/generateJsonFromFantomPropsFile.d.ts +4 -4
  90. package/dist_es/fantomProps/generateJsonFromFantomPropsFile.js +12 -12
  91. package/dist_es/fantomProps/generateJsonFromFantomPropsFile.js.map +0 -0
  92. package/dist_es/fantomProps/localePropsToJson.d.ts +1 -1
  93. package/dist_es/fantomProps/localePropsToJson.js +21 -21
  94. package/dist_es/fantomProps/localePropsToJson.js.map +0 -0
  95. package/dist_es/fantomProps/readFantomPropsFile.d.ts +5 -5
  96. package/dist_es/fantomProps/readFantomPropsFile.js +35 -35
  97. package/dist_es/fantomProps/readFantomPropsFile.js.map +0 -0
  98. package/dist_es/fin5Top/fin5FileUpload.d.ts +24 -24
  99. package/dist_es/fin5Top/fin5FileUpload.js +47 -47
  100. package/dist_es/fin5Top/fin5Top.d.ts +115 -115
  101. package/dist_es/fin5Top/fin5Top.js +54 -54
  102. package/dist_es/fin5Top/fin5Top.js.map +0 -0
  103. package/dist_es/fin5Top/finEdge2Cloud.d.ts +6 -6
  104. package/dist_es/fin5Top/finEdge2Cloud.js +11 -11
  105. package/dist_es/fin5Top/getFin5BinUrl.d.ts +2 -2
  106. package/dist_es/fin5Top/getFin5BinUrl.js +5 -5
  107. package/dist_es/fin5Top/getFin5BinUrl.js.map +0 -0
  108. package/dist_es/fin5Top/openFin5Alarm.d.ts +22 -22
  109. package/dist_es/fin5Top/openFin5Alarm.js +19 -19
  110. package/dist_es/fin5Top/openFin5Alarm.js.map +0 -0
  111. package/dist_es/fin5Top/openFin5Historian.d.ts +3 -3
  112. package/dist_es/fin5Top/openFin5Historian.js +15 -15
  113. package/dist_es/fin5Top/openFin5Historian.js.map +0 -0
  114. package/dist_es/fin5Top/useFin5AppURLHashParameter.d.ts +18 -18
  115. package/dist_es/fin5Top/useFin5AppURLHashParameter.js +119 -119
  116. package/dist_es/fin5Top/useFin5AppURLHashParameter.js.map +0 -0
  117. package/dist_es/index.d.ts +30 -30
  118. package/dist_es/index.js +48 -48
  119. package/dist_es/index.js.map +0 -0
  120. package/dist_es/jobs/jobUtils.d.ts +14 -14
  121. package/dist_es/jobs/jobUtils.js +9 -9
  122. package/dist_es/react/app/Fin5AppContainer.d.ts +36 -36
  123. package/dist_es/react/app/Fin5AppContainer.js +73 -73
  124. package/dist_es/react/app/Fin5AppContainer.jsx +82 -0
  125. package/dist_es/react/app/Fin5AppContainer.jsx.map +1 -0
  126. package/dist_es/react/app/Fin5AppRootStore.d.ts +39 -39
  127. package/dist_es/react/app/Fin5AppRootStore.js +65 -65
  128. package/dist_es/react/app/Fin5AppRootStore.js.map +0 -0
  129. package/dist_es/react/components/ErrorBoundary.d.ts +57 -57
  130. package/dist_es/react/components/ErrorBoundary.js +123 -123
  131. package/dist_es/react/components/ErrorBoundary.jsx +150 -0
  132. package/dist_es/react/components/ErrorBoundary.jsx.map +1 -0
  133. package/dist_es/react/components/ErrorDisplayer.d.ts +19 -19
  134. package/dist_es/react/components/ErrorDisplayer.js +28 -28
  135. package/dist_es/react/components/ErrorDisplayer.jsx +36 -0
  136. package/dist_es/react/components/ErrorDisplayer.jsx.map +1 -0
  137. package/dist_es/react/components/Loader.d.ts +9 -9
  138. package/dist_es/react/components/Loader.js +12 -12
  139. package/dist_es/react/components/Loader.jsx +13 -0
  140. package/dist_es/react/components/Loader.jsx.map +1 -0
  141. package/dist_es/react/components/LoadingSpinner.d.ts +2 -2
  142. package/dist_es/react/components/LoadingSpinner.js +20 -20
  143. package/dist_es/react/components/LoadingSpinner.jsx +23 -0
  144. package/dist_es/react/components/LoadingSpinner.jsx.map +1 -0
  145. package/dist_es/react/components/RecordImage.d.ts +20 -20
  146. package/dist_es/react/components/RecordImage.js +24 -24
  147. package/dist_es/react/components/charts/QRCode.d.ts +25 -25
  148. package/dist_es/react/components/charts/QRCode.js +53 -53
  149. package/dist_es/react/components/charts/pie/PieChart.d.ts +93 -93
  150. package/dist_es/react/components/charts/pie/PieChart.js +175 -175
  151. package/dist_es/react/components/charts/pie/SimplePieChart.d.ts +20 -20
  152. package/dist_es/react/components/charts/pie/SimplePieChart.js +25 -25
  153. package/dist_es/react/components/graphics/GraphicViewer.d.ts +10 -10
  154. package/dist_es/react/components/graphics/GraphicViewer.js +22 -22
  155. package/dist_es/react/components/graphics/GraphicsTabViewer.d.ts +17 -17
  156. package/dist_es/react/components/graphics/GraphicsTabViewer.js +60 -60
  157. package/dist_es/react/components/navigation/BasicLayout.d.ts +41 -41
  158. package/dist_es/react/components/navigation/BasicLayout.js +124 -124
  159. package/dist_es/react/components/navigation/BasicLayout.jsx +105 -0
  160. package/dist_es/react/components/navigation/BasicLayout.jsx.map +1 -0
  161. package/dist_es/react/components/navigation/HeaderSiderLayout.d.ts +13 -13
  162. package/dist_es/react/components/navigation/HeaderSiderLayout.js +80 -80
  163. package/dist_es/react/components/navigation/MenuPage.d.ts +37 -37
  164. package/dist_es/react/components/navigation/MenuPage.js +30 -30
  165. package/dist_es/react/components/navigation/MenuPage.jsx +31 -0
  166. package/dist_es/react/components/navigation/MenuPage.jsx.map +1 -0
  167. package/dist_es/react/components/navigation/MenuTrigger.d.ts +9 -9
  168. package/dist_es/react/components/navigation/MenuTrigger.js +28 -28
  169. package/dist_es/react/components/navigation/ReactRouterHeaderSiderLayout.d.ts +11 -11
  170. package/dist_es/react/components/navigation/ReactRouterHeaderSiderLayout.js +18 -18
  171. package/dist_es/react/components/navigation/ReactRouterLayout.d.ts +35 -35
  172. package/dist_es/react/components/navigation/ReactRouterLayout.js +81 -81
  173. package/dist_es/react/components/navigation/Router.d.ts +12 -0
  174. package/dist_es/react/components/navigation/Router.jsx +19 -0
  175. package/dist_es/react/components/navigation/Router.jsx.map +1 -0
  176. package/dist_es/react/components/navigation/customRouting/Router.d.ts +12 -12
  177. package/dist_es/react/components/navigation/customRouting/Router.js +18 -18
  178. package/dist_es/react/components/navigation/customRouting/RouterLayout.d.ts +11 -11
  179. package/dist_es/react/components/navigation/customRouting/RouterLayout.js +34 -34
  180. package/dist_es/react/components/resolvable/configurationForm/ConfigurationForm.d.ts +27 -27
  181. package/dist_es/react/components/resolvable/configurationForm/ConfigurationForm.js +64 -64
  182. package/dist_es/react/components/resolvable/configurationForm/ConfigurationFormEntry.d.ts +16 -16
  183. package/dist_es/react/components/resolvable/configurationForm/ConfigurationFormEntry.js +58 -58
  184. package/dist_es/react/components/resolvable/configurationForm/getSectionDefault.d.ts +16 -16
  185. package/dist_es/react/components/resolvable/configurationForm/getSectionDefault.js +94 -94
  186. package/dist_es/react/hooks/useFin5BinUrl.d.ts +6 -6
  187. package/dist_es/react/hooks/useFin5BinUrl.js +11 -11
  188. package/package.json +13 -13
@@ -1,74 +1,74 @@
1
- /*
2
- * Copyright (c) 2022, J2 Innovations. All Rights Reserved
3
- */
4
- import React, { useEffect, useRef, useState } from 'react';
5
- import { AppRootStoreContext, AppStoreContext } from '@j2inn/app';
6
- import { observer } from 'mobx-react-lite';
7
- import { Fin5AppRootStore } from './Fin5AppRootStore';
8
- import { Client, } from 'haystack-nclient';
9
- import { ClientContext } from 'haystack-react';
10
- import { I18NProvider } from '@j2inn/utils';
11
- import { ThemeProvider } from 'react-jss';
12
- import { DEFAULT_THEME, GenerateTheme } from '@j2inn/ui';
13
- import { fin5Top } from '../../fin5Top/fin5Top';
14
- import { useFin5AppURLHashParameter } from '../../fin5Top/useFin5AppURLHashParameter';
15
- import { HRef } from 'haystack-core';
16
- import { ErrorBoundary } from '../components/ErrorBoundary';
17
- import Loader from '../components/Loader';
18
- const PATH_PREFIX = 'finApp';
19
- const getServiceUrl = ({ origin, path }) => `${origin}/${PATH_PREFIX}/api/${path}`;
20
- const getOpUrl = ({ origin, project, op }) => `${origin}/api/${project}/${op}`;
21
- const getHaystackServiceUrl = ({ origin, project, path, }) => `${origin}/${PATH_PREFIX}/api/haystack${project ? `/${project}` : ''}/${path}`;
22
- const getHostServiceUrl = ({ origin, path, }) => `${origin}/${PATH_PREFIX}/api/host/${path}`;
23
- /**
24
- * Creates a basic application container environment to run a view in FIN5.
25
- */
26
- export const Fin5AppContainer = observer(({ children, appStore, client, project, theme = GenerateTheme(DEFAULT_THEME).light, }) => {
27
- const [loading, setLoading] = useState(true);
28
- const [loadingi18n, setLoadingi18n] = useState(true);
29
- const rootStoreRef = useRef(null);
30
- const rootStore = rootStoreRef.current ??
31
- (rootStoreRef.current = new Fin5AppRootStore());
32
- const [hashProjName] = useFin5AppURLHashParameter('projectName');
33
- const containerProject = project || hashProjName || fin5Top?.finstack?.projectName || '';
34
- const locale = fin5Top?.languageManager?.currentLang ?? navigator?.language;
35
- rootStore.locale = locale;
36
- if (!rootStore.allLocales.includes(locale)) {
37
- rootStore.allLocales.push(locale);
38
- }
39
- const target = fin5Top?.app?.TargetRef?.() || '';
40
- rootStore.target = target ? HRef.make(target).value : '';
41
- const getClient = () => client ??
42
- new Client({
43
- base: new URL(window.location.href),
44
- project: containerProject,
45
- options: { headers: { accept: 'text/zinc' } },
46
- getServiceUrl,
47
- getOpUrl,
48
- getHaystackServiceUrl,
49
- getHostServiceUrl,
50
- });
51
- const [containerClient, setContainerClient] = useState(getClient);
52
- useEffect(() => {
53
- setLoading(true);
54
- const newClient = getClient();
55
- setContainerClient(newClient);
56
- // Load everything network wise before we load
57
- // the application.
58
- Promise.all([
59
- newClient.ext.eval('finGetCurrentUser()'),
60
- newClient.ext.loadDefs(),
61
- ]).then(([userGrid]) => {
62
- rootStore.currentUser = userGrid.first;
63
- setLoading(false);
64
- });
65
- }, [client, containerProject]);
66
- return (React.createElement(AppRootStoreContext.Provider, { value: rootStore },
67
- React.createElement(AppStoreContext.Provider, { value: appStore },
68
- React.createElement(ClientContext.Provider, { value: containerClient },
69
- React.createElement(I18NProvider, { locale: locale, setLoading: setLoadingi18n },
70
- React.createElement(ThemeProvider, { theme: theme },
71
- React.createElement(Loader, { loading: loading || loadingi18n },
72
- React.createElement(ErrorBoundary, { mode: "global" /* ErrorBoundaryMode.global */ }, children))))))));
73
- });
1
+ /*
2
+ * Copyright (c) 2022, J2 Innovations. All Rights Reserved
3
+ */
4
+ import React, { useEffect, useRef, useState } from 'react';
5
+ import { AppRootStoreContext, AppStoreContext } from '@j2inn/app';
6
+ import { observer } from 'mobx-react-lite';
7
+ import { Fin5AppRootStore } from './Fin5AppRootStore';
8
+ import { Client, } from 'haystack-nclient';
9
+ import { ClientContext } from 'haystack-react';
10
+ import { I18NProvider } from '@j2inn/utils';
11
+ import { ThemeProvider } from 'react-jss';
12
+ import { DEFAULT_THEME, GenerateTheme } from '@j2inn/ui';
13
+ import { fin5Top } from '../../fin5Top/fin5Top';
14
+ import { useFin5AppURLHashParameter } from '../../fin5Top/useFin5AppURLHashParameter';
15
+ import { HRef } from 'haystack-core';
16
+ import { ErrorBoundary } from '../components/ErrorBoundary';
17
+ import Loader from '../components/Loader';
18
+ const PATH_PREFIX = 'finApp';
19
+ const getServiceUrl = ({ origin, path }) => `${origin}/${PATH_PREFIX}/api/${path}`;
20
+ const getOpUrl = ({ origin, project, op }) => `${origin}/api/${project}/${op}`;
21
+ const getHaystackServiceUrl = ({ origin, project, path, }) => `${origin}/${PATH_PREFIX}/api/haystack${project ? `/${project}` : ''}/${path}`;
22
+ const getHostServiceUrl = ({ origin, path, }) => `${origin}/${PATH_PREFIX}/api/host/${path}`;
23
+ /**
24
+ * Creates a basic application container environment to run a view in FIN5.
25
+ */
26
+ export const Fin5AppContainer = observer(({ children, appStore, client, project, theme = GenerateTheme(DEFAULT_THEME).light, }) => {
27
+ const [loading, setLoading] = useState(true);
28
+ const [loadingi18n, setLoadingi18n] = useState(true);
29
+ const rootStoreRef = useRef(null);
30
+ const rootStore = rootStoreRef.current ??
31
+ (rootStoreRef.current = new Fin5AppRootStore());
32
+ const [hashProjName] = useFin5AppURLHashParameter('projectName');
33
+ const containerProject = project || hashProjName || fin5Top?.finstack?.projectName || '';
34
+ const locale = fin5Top?.languageManager?.currentLang ?? navigator?.language;
35
+ rootStore.locale = locale;
36
+ if (!rootStore.allLocales.includes(locale)) {
37
+ rootStore.allLocales.push(locale);
38
+ }
39
+ const target = fin5Top?.app?.TargetRef?.() || '';
40
+ rootStore.target = target ? HRef.make(target).value : '';
41
+ const getClient = () => client ??
42
+ new Client({
43
+ base: new URL(window.location.href),
44
+ project: containerProject,
45
+ options: { headers: { accept: 'text/zinc' } },
46
+ getServiceUrl,
47
+ getOpUrl,
48
+ getHaystackServiceUrl,
49
+ getHostServiceUrl,
50
+ });
51
+ const [containerClient, setContainerClient] = useState(getClient);
52
+ useEffect(() => {
53
+ setLoading(true);
54
+ const newClient = getClient();
55
+ setContainerClient(newClient);
56
+ // Load everything network wise before we load
57
+ // the application.
58
+ Promise.all([
59
+ newClient.ext.eval('finGetCurrentUser()'),
60
+ newClient.ext.loadDefs(),
61
+ ]).then(([userGrid]) => {
62
+ rootStore.currentUser = userGrid.first;
63
+ setLoading(false);
64
+ });
65
+ }, [client, containerProject]);
66
+ return (React.createElement(AppRootStoreContext.Provider, { value: rootStore },
67
+ React.createElement(AppStoreContext.Provider, { value: appStore },
68
+ React.createElement(ClientContext.Provider, { value: containerClient },
69
+ React.createElement(I18NProvider, { locale: locale, setLoading: setLoadingi18n },
70
+ React.createElement(ThemeProvider, { theme: theme },
71
+ React.createElement(Loader, { loading: loading || loadingi18n },
72
+ React.createElement(ErrorBoundary, { mode: "global" /* ErrorBoundaryMode.global */ }, children))))))));
73
+ });
74
74
  //# sourceMappingURL=Fin5AppContainer.js.map
@@ -0,0 +1,82 @@
1
+ /*
2
+ * Copyright (c) 2022, J2 Innovations. All Rights Reserved
3
+ */
4
+ import React, { useEffect, useRef, useState } from 'react';
5
+ import { AppRootStoreContext, AppStoreContext } from '@j2inn/app';
6
+ import { observer } from 'mobx-react-lite';
7
+ import { Fin5AppRootStore } from './Fin5AppRootStore';
8
+ import { Client, } from 'haystack-nclient';
9
+ import { ClientContext } from 'haystack-react';
10
+ import { I18NProvider } from '@j2inn/utils';
11
+ import { ThemeProvider } from 'react-jss';
12
+ import { DEFAULT_THEME, GenerateTheme } from '@j2inn/ui';
13
+ import { fin5Top } from '../../fin5Top/fin5Top';
14
+ import { useFin5AppURLHashParameter } from '../../fin5Top/useFin5AppURLHashParameter';
15
+ import { HRef } from 'haystack-core';
16
+ import { ErrorBoundary } from '../components/ErrorBoundary';
17
+ import Loader from '../components/Loader';
18
+ const PATH_PREFIX = 'finApp';
19
+ const getServiceUrl = ({ origin, path }) => `${origin}/${PATH_PREFIX}/api/${path}`;
20
+ const getOpUrl = ({ origin, project, op }) => `${origin}/api/${project}/${op}`;
21
+ const getHaystackServiceUrl = ({ origin, project, path, }) => `${origin}/${PATH_PREFIX}/api/haystack${project ? `/${project}` : ''}/${path}`;
22
+ const getHostServiceUrl = ({ origin, path, }) => `${origin}/${PATH_PREFIX}/api/host/${path}`;
23
+ /**
24
+ * Creates a basic application container environment to run a view in FIN5.
25
+ */
26
+ export const Fin5AppContainer = observer(({ children, appStore, client, project, theme = GenerateTheme(DEFAULT_THEME).light, }) => {
27
+ const [loading, setLoading] = useState(true);
28
+ const [loadingi18n, setLoadingi18n] = useState(true);
29
+ const rootStoreRef = useRef(null);
30
+ const rootStore = rootStoreRef.current ??
31
+ (rootStoreRef.current = new Fin5AppRootStore());
32
+ const [hashProjName] = useFin5AppURLHashParameter('projectName');
33
+ const containerProject = project || hashProjName || fin5Top?.finstack?.projectName || '';
34
+ const locale = fin5Top?.languageManager?.currentLang ?? navigator?.language;
35
+ rootStore.locale = locale;
36
+ if (!rootStore.allLocales.includes(locale)) {
37
+ rootStore.allLocales.push(locale);
38
+ }
39
+ const target = fin5Top?.app?.TargetRef?.() || '';
40
+ rootStore.target = target ? HRef.make(target).value : '';
41
+ const getClient = () => client ??
42
+ new Client({
43
+ base: new URL(window.location.href),
44
+ project: containerProject,
45
+ options: { headers: { accept: 'text/zinc' } },
46
+ getServiceUrl,
47
+ getOpUrl,
48
+ getHaystackServiceUrl,
49
+ getHostServiceUrl,
50
+ });
51
+ const [containerClient, setContainerClient] = useState(getClient);
52
+ useEffect(() => {
53
+ setLoading(true);
54
+ const newClient = getClient();
55
+ setContainerClient(newClient);
56
+ // Load everything network wise before we load
57
+ // the application.
58
+ Promise.all([
59
+ newClient.ext.eval('finGetCurrentUser()'),
60
+ newClient.ext.loadDefs(),
61
+ ]).then(([userGrid]) => {
62
+ rootStore.currentUser = userGrid.first;
63
+ setLoading(false);
64
+ });
65
+ }, [client, containerProject]);
66
+ return (<AppRootStoreContext.Provider value={rootStore}>
67
+ <AppStoreContext.Provider value={appStore}>
68
+ <ClientContext.Provider value={containerClient}>
69
+ <I18NProvider locale={locale} setLoading={setLoadingi18n}>
70
+ <ThemeProvider theme={theme}>
71
+ <Loader loading={loading || loadingi18n}>
72
+ <ErrorBoundary mode={"global" /* ErrorBoundaryMode.global */}>
73
+ {children}
74
+ </ErrorBoundary>
75
+ </Loader>
76
+ </ThemeProvider>
77
+ </I18NProvider>
78
+ </ClientContext.Provider>
79
+ </AppStoreContext.Provider>
80
+ </AppRootStoreContext.Provider>);
81
+ });
82
+ //# sourceMappingURL=Fin5AppContainer.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Fin5AppContainer.jsx","sourceRoot":"","sources":["../../../src/react/app/Fin5AppContainer.tsx"],"names":[],"mappings":"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"}
@@ -1,39 +1,39 @@
1
- import { App, AppAccessLevel, AppRootStore, AppView, CustomHistory } from '@j2inn/app';
2
- import { HDict } from 'haystack-core';
3
- /**
4
- * An application root store for use with FIN5.
5
- */
6
- export declare class Fin5AppRootStore implements AppRootStore {
7
- constructor();
8
- get app(): {
9
- id: string;
10
- name: string;
11
- app: App;
12
- view: AppView;
13
- } | undefined;
14
- get sidebar(): {
15
- id: string;
16
- name: string;
17
- app: App;
18
- view: AppView;
19
- } | undefined;
20
- readonly apps: App[];
21
- project: string;
22
- sidebarOpen: boolean;
23
- open(): void;
24
- openSidebar(): void;
25
- locale: string;
26
- allLocales: string[];
27
- target: string;
28
- targetSidebar: string;
29
- readonly history: CustomHistory;
30
- readonly historySidebar: CustomHistory;
31
- currentUser: HDict | undefined;
32
- postAppMessage(): void;
33
- registerQuicklinks(): void;
34
- unregisterQuicklinks(): void;
35
- registerSidebars(): void;
36
- unregisterSidebars(): void;
37
- hasAppAccess: (_: string, access: AppAccessLevel) => boolean;
38
- hasSidebar(_name: string): boolean;
39
- }
1
+ import { App, AppAccessLevel, AppRootStore, AppView, CustomHistory } from '@j2inn/app';
2
+ import { HDict } from 'haystack-core';
3
+ /**
4
+ * An application root store for use with FIN5.
5
+ */
6
+ export declare class Fin5AppRootStore implements AppRootStore {
7
+ constructor();
8
+ get app(): {
9
+ id: string;
10
+ name: string;
11
+ app: App;
12
+ view: AppView;
13
+ } | undefined;
14
+ get sidebar(): {
15
+ id: string;
16
+ name: string;
17
+ app: App;
18
+ view: AppView;
19
+ } | undefined;
20
+ readonly apps: App[];
21
+ project: string;
22
+ sidebarOpen: boolean;
23
+ open(): void;
24
+ openSidebar(): void;
25
+ locale: string;
26
+ allLocales: string[];
27
+ target: string;
28
+ targetSidebar: string;
29
+ readonly history: CustomHistory;
30
+ readonly historySidebar: CustomHistory;
31
+ currentUser: HDict | undefined;
32
+ postAppMessage(): void;
33
+ registerQuicklinks(): void;
34
+ unregisterQuicklinks(): void;
35
+ registerSidebars(): void;
36
+ unregisterSidebars(): void;
37
+ hasAppAccess: (_: string, access: AppAccessLevel) => boolean;
38
+ hasSidebar(_name: string): boolean;
39
+ }
@@ -1,66 +1,66 @@
1
- /*
2
- * Copyright (c) 2022, J2 Innovations. All Rights Reserved
3
- */
4
- import { makeAutoObservable, observable } from 'mobx';
5
- /**
6
- * An application root store for use with FIN5.
7
- */
8
- export class Fin5AppRootStore {
9
- constructor() {
10
- makeAutoObservable(this, {
11
- currentUser: observable.ref,
12
- apps: observable.ref,
13
- });
14
- }
15
- get app() {
16
- return undefined;
17
- }
18
- get sidebar() {
19
- return undefined;
20
- }
21
- apps = [];
22
- project = '';
23
- sidebarOpen = false;
24
- open() { }
25
- openSidebar() { }
26
- locale = '';
27
- allLocales = [];
28
- target = '';
29
- targetSidebar = '';
30
- history = {
31
- state: {},
32
- pushState: (state) => {
33
- this.history.state = state;
34
- },
35
- replaceState: (state) => {
36
- this.history.state = state;
37
- },
38
- };
39
- historySidebar = {
40
- state: {},
41
- pushState: (state) => {
42
- this.historySidebar.state = state;
43
- },
44
- replaceState: (state) => {
45
- this.historySidebar.state = state;
46
- },
47
- };
48
- currentUser;
49
- postAppMessage() { }
50
- registerQuicklinks() { }
51
- unregisterQuicklinks() { }
52
- registerSidebars() { }
53
- unregisterSidebars() { }
54
- hasAppAccess = (_, access) => {
55
- // For FIN5, an operator only has readonly app level access.
56
- const user = this.currentUser;
57
- return user?.get('userRole')?.value === 'op'
58
- ? access === 'read'
59
- : !!user;
60
- };
61
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
62
- hasSidebar(_name) {
63
- return false;
64
- }
65
- }
1
+ /*
2
+ * Copyright (c) 2022, J2 Innovations. All Rights Reserved
3
+ */
4
+ import { makeAutoObservable, observable } from 'mobx';
5
+ /**
6
+ * An application root store for use with FIN5.
7
+ */
8
+ export class Fin5AppRootStore {
9
+ constructor() {
10
+ makeAutoObservable(this, {
11
+ currentUser: observable.ref,
12
+ apps: observable.ref,
13
+ });
14
+ }
15
+ get app() {
16
+ return undefined;
17
+ }
18
+ get sidebar() {
19
+ return undefined;
20
+ }
21
+ apps = [];
22
+ project = '';
23
+ sidebarOpen = false;
24
+ open() { }
25
+ openSidebar() { }
26
+ locale = '';
27
+ allLocales = [];
28
+ target = '';
29
+ targetSidebar = '';
30
+ history = {
31
+ state: {},
32
+ pushState: (state) => {
33
+ this.history.state = state;
34
+ },
35
+ replaceState: (state) => {
36
+ this.history.state = state;
37
+ },
38
+ };
39
+ historySidebar = {
40
+ state: {},
41
+ pushState: (state) => {
42
+ this.historySidebar.state = state;
43
+ },
44
+ replaceState: (state) => {
45
+ this.historySidebar.state = state;
46
+ },
47
+ };
48
+ currentUser;
49
+ postAppMessage() { }
50
+ registerQuicklinks() { }
51
+ unregisterQuicklinks() { }
52
+ registerSidebars() { }
53
+ unregisterSidebars() { }
54
+ hasAppAccess = (_, access) => {
55
+ // For FIN5, an operator only has readonly app level access.
56
+ const user = this.currentUser;
57
+ return user?.get('userRole')?.value === 'op'
58
+ ? access === 'read'
59
+ : !!user;
60
+ };
61
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
62
+ hasSidebar(_name) {
63
+ return false;
64
+ }
65
+ }
66
66
  //# sourceMappingURL=Fin5AppRootStore.js.map
File without changes
@@ -1,57 +1,57 @@
1
- import React, { ErrorInfo, ReactNode } from 'react';
2
- /**
3
- * An error boundary can work at the global level (where something really screws up)
4
- * or an an app level (where the error is captured just for the running application).
5
- */
6
- export declare const enum ErrorBoundaryMode {
7
- global = "global",
8
- app = "app"
9
- }
10
- /**
11
- * The properties for an error boundary.
12
- */
13
- interface ErrorBoundaryProps {
14
- /**
15
- * The associated application id.
16
- */
17
- appId?: string;
18
- /**
19
- * The error mode.
20
- */
21
- mode: ErrorBoundaryMode;
22
- /**
23
- * Optional callback to display a report dialog.
24
- */
25
- showReportDialog?: () => void;
26
- /**
27
- * Optional callback used to capture the error.
28
- */
29
- onError?: (error: Error) => void;
30
- /**
31
- * Child components.
32
- */
33
- children?: React.ReactNode;
34
- }
35
- /**
36
- * The state for an error boundary.
37
- */
38
- interface ErrorBoundryState {
39
- /**
40
- * The last captured error.
41
- */
42
- error?: Error;
43
- }
44
- /**
45
- * A common error boundary used to capture errors.
46
- */
47
- export declare class ErrorBoundary extends React.Component<ErrorBoundaryProps, ErrorBoundryState> {
48
- state: {
49
- error?: Error;
50
- };
51
- componentDidCatch(error: Error, info: ErrorInfo): void;
52
- static getDerivedStateFromError(error: Error): {
53
- error: Error;
54
- };
55
- render(): ReactNode | JSX.Element;
56
- }
57
- export {};
1
+ import React, { ErrorInfo, ReactNode } from 'react';
2
+ /**
3
+ * An error boundary can work at the global level (where something really screws up)
4
+ * or an an app level (where the error is captured just for the running application).
5
+ */
6
+ export declare const enum ErrorBoundaryMode {
7
+ global = "global",
8
+ app = "app"
9
+ }
10
+ /**
11
+ * The properties for an error boundary.
12
+ */
13
+ interface ErrorBoundaryProps {
14
+ /**
15
+ * The associated application id.
16
+ */
17
+ appId?: string;
18
+ /**
19
+ * The error mode.
20
+ */
21
+ mode: ErrorBoundaryMode;
22
+ /**
23
+ * Optional callback to display a report dialog.
24
+ */
25
+ showReportDialog?: () => void;
26
+ /**
27
+ * Optional callback used to capture the error.
28
+ */
29
+ onError?: (error: Error) => void;
30
+ /**
31
+ * Child components.
32
+ */
33
+ children?: React.ReactNode;
34
+ }
35
+ /**
36
+ * The state for an error boundary.
37
+ */
38
+ interface ErrorBoundryState {
39
+ /**
40
+ * The last captured error.
41
+ */
42
+ error?: Error;
43
+ }
44
+ /**
45
+ * A common error boundary used to capture errors.
46
+ */
47
+ export declare class ErrorBoundary extends React.Component<ErrorBoundaryProps, ErrorBoundryState> {
48
+ state: {
49
+ error?: Error;
50
+ };
51
+ componentDidCatch(error: Error, info: ErrorInfo): void;
52
+ static getDerivedStateFromError(error: Error): {
53
+ error: Error;
54
+ };
55
+ render(): ReactNode | JSX.Element;
56
+ }
57
+ export {};