@j2inn/fin5-ui-utils 8.2.0 → 9.0.0-beta.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 (243) hide show
  1. package/dist/fantomProps/createFin5Props/index.d.ts +12 -12
  2. package/dist/fantomProps/createFin5Props/index.js +146 -146
  3. package/dist/fantomProps/createFin5Props/index.js.map +1 -1
  4. package/dist/fantomProps/createFin5Props/runCreateFin5Props.d.ts +2 -2
  5. package/dist/fantomProps/createFin5Props/runCreateFin5Props.js +20 -20
  6. package/dist/fantomProps/createFin5Props/runCreateFin5Props.js.map +1 -1
  7. package/dist/fantomProps/fantomPropsToObject.d.ts +8 -8
  8. package/dist/fantomProps/fantomPropsToObject.js +182 -183
  9. package/dist/fantomProps/fantomPropsToObject.js.map +1 -1
  10. package/dist/fantomProps/generateJsonFromFantomPropsFile.d.ts +4 -4
  11. package/dist/fantomProps/generateJsonFromFantomPropsFile.js +51 -41
  12. package/dist/fantomProps/generateJsonFromFantomPropsFile.js.map +1 -1
  13. package/dist/fantomProps/localePropsToJson.d.ts +1 -1
  14. package/dist/fantomProps/localePropsToJson.js +60 -50
  15. package/dist/fantomProps/localePropsToJson.js.map +1 -1
  16. package/dist/fantomProps/readFantomPropsFile.d.ts +5 -5
  17. package/dist/fantomProps/readFantomPropsFile.js +74 -65
  18. package/dist/fantomProps/readFantomPropsFile.js.map +1 -1
  19. package/dist/fin5Top/fin5FileUpload.d.ts +24 -24
  20. package/dist/fin5Top/fin5FileUpload.js +51 -51
  21. package/dist/fin5Top/fin5FileUpload.js.map +1 -1
  22. package/dist/fin5Top/fin5Top.d.ts +188 -188
  23. package/dist/fin5Top/fin5Top.js +86 -86
  24. package/dist/fin5Top/fin5Top.js.map +1 -1
  25. package/dist/fin5Top/finEdge2Cloud.d.ts +6 -6
  26. package/dist/fin5Top/finEdge2Cloud.js +15 -15
  27. package/dist/fin5Top/getFin5BinUrl.d.ts +2 -2
  28. package/dist/fin5Top/getFin5BinUrl.js +9 -9
  29. package/dist/fin5Top/openFin5Alarm.d.ts +22 -22
  30. package/dist/fin5Top/openFin5Alarm.js +23 -23
  31. package/dist/fin5Top/openFin5Alarm.js.map +1 -1
  32. package/dist/fin5Top/openFin5Historian.d.ts +3 -3
  33. package/dist/fin5Top/openFin5Historian.js +19 -19
  34. package/dist/fin5Top/openFin5Historian.js.map +1 -1
  35. package/dist/fin5Top/useFin5AppURLHashParameter.d.ts +18 -18
  36. package/dist/fin5Top/useFin5AppURLHashParameter.js +133 -133
  37. package/dist/fin5Top/useFin5AppURLHashParameter.js.map +1 -1
  38. package/dist/index.d.ts +35 -35
  39. package/dist/index.js +69 -69
  40. package/dist/jobs/jobUtils.d.ts +14 -14
  41. package/dist/jobs/jobUtils.js +15 -15
  42. package/dist/jobs/jobUtils.js.map +1 -1
  43. package/dist/react/app/Fin5AppContainer.d.ts +36 -36
  44. package/dist/react/app/Fin5AppContainer.js +171 -161
  45. package/dist/react/app/Fin5AppContainer.js.map +1 -1
  46. package/dist/react/app/Fin5AppRootStore.d.ts +42 -42
  47. package/dist/react/app/Fin5AppRootStore.js +114 -114
  48. package/dist/react/app/Fin5AppRootStore.js.map +1 -1
  49. package/dist/react/components/ErrorBoundary.d.ts +57 -57
  50. package/dist/react/components/ErrorBoundary.js +160 -150
  51. package/dist/react/components/ErrorBoundary.js.map +1 -1
  52. package/dist/react/components/ErrorDisplayer.d.ts +19 -19
  53. package/dist/react/components/ErrorDisplayer.js +36 -36
  54. package/dist/react/components/ErrorDisplayer.js.map +1 -1
  55. package/dist/react/components/Loader.d.ts +9 -9
  56. package/dist/react/components/Loader.js +17 -17
  57. package/dist/react/components/LoadingSpinner.d.ts +2 -2
  58. package/dist/react/components/LoadingSpinner.js +27 -27
  59. package/dist/react/components/RecordImage.d.ts +20 -20
  60. package/dist/react/components/RecordImage.js +61 -51
  61. package/dist/react/components/RecordImage.js.map +1 -1
  62. package/dist/react/components/charts/QRCode.d.ts +25 -25
  63. package/dist/react/components/charts/QRCode.js +92 -82
  64. package/dist/react/components/charts/QRCode.js.map +1 -1
  65. package/dist/react/components/charts/line-bar/Chart.d.ts +166 -166
  66. package/dist/react/components/charts/line-bar/Chart.js +452 -442
  67. package/dist/react/components/charts/line-bar/Chart.js.map +1 -1
  68. package/dist/react/components/charts/line-bar/HGridChart.d.ts +58 -58
  69. package/dist/react/components/charts/line-bar/HGridChart.js +295 -285
  70. package/dist/react/components/charts/line-bar/HGridChart.js.map +1 -1
  71. package/dist/react/components/charts/pie/PieChart.d.ts +94 -94
  72. package/dist/react/components/charts/pie/PieChart.js +214 -204
  73. package/dist/react/components/charts/pie/PieChart.js.map +1 -1
  74. package/dist/react/components/charts/pie/SimplePieChart.d.ts +21 -21
  75. package/dist/react/components/charts/pie/SimplePieChart.js +65 -55
  76. package/dist/react/components/charts/pie/SimplePieChart.js.map +1 -1
  77. package/dist/react/components/graphics/GraphicViewer.d.ts +10 -10
  78. package/dist/react/components/graphics/GraphicViewer.js +29 -29
  79. package/dist/react/components/graphics/GraphicsTabViewer.d.ts +17 -17
  80. package/dist/react/components/graphics/GraphicsTabViewer.js +100 -90
  81. package/dist/react/components/graphics/GraphicsTabViewer.js.map +1 -1
  82. package/dist/react/components/makeCustomElement.d.ts +16 -16
  83. package/dist/react/components/makeCustomElement.js +150 -150
  84. package/dist/react/components/makeCustomElement.js.map +1 -1
  85. package/dist/react/components/navigation/BasicLayout.d.ts +41 -41
  86. package/dist/react/components/navigation/BasicLayout.js +165 -155
  87. package/dist/react/components/navigation/BasicLayout.js.map +1 -1
  88. package/dist/react/components/navigation/HeaderSiderLayout.d.ts +13 -13
  89. package/dist/react/components/navigation/HeaderSiderLayout.js +119 -110
  90. package/dist/react/components/navigation/HeaderSiderLayout.js.map +1 -1
  91. package/dist/react/components/navigation/MenuPage.d.ts +37 -37
  92. package/dist/react/components/navigation/MenuPage.js +35 -36
  93. package/dist/react/components/navigation/MenuPage.js.map +1 -1
  94. package/dist/react/components/navigation/MenuTrigger.d.ts +9 -9
  95. package/dist/react/components/navigation/MenuTrigger.js +33 -33
  96. package/dist/react/components/navigation/ReactRouterHeaderSiderLayout.d.ts +11 -11
  97. package/dist/react/components/navigation/ReactRouterHeaderSiderLayout.js +25 -25
  98. package/dist/react/components/navigation/ReactRouterHeaderSiderLayout.js.map +1 -1
  99. package/dist/react/components/navigation/ReactRouterLayout.d.ts +45 -46
  100. package/dist/react/components/navigation/ReactRouterLayout.js +142 -132
  101. package/dist/react/components/navigation/ReactRouterLayout.js.map +1 -1
  102. package/dist/react/components/navigation/customRouting/Router.d.ts +12 -12
  103. package/dist/react/components/navigation/customRouting/Router.js +54 -45
  104. package/dist/react/components/navigation/customRouting/Router.js.map +1 -1
  105. package/dist/react/components/navigation/customRouting/RouterLayout.d.ts +11 -11
  106. package/dist/react/components/navigation/customRouting/RouterLayout.js +71 -61
  107. package/dist/react/components/navigation/customRouting/RouterLayout.js.map +1 -1
  108. package/dist/react/components/resolvable/configurationForm/ConfigurationForm.d.ts +26 -27
  109. package/dist/react/components/resolvable/configurationForm/ConfigurationForm.js +105 -95
  110. package/dist/react/components/resolvable/configurationForm/ConfigurationForm.js.map +1 -1
  111. package/dist/react/components/resolvable/configurationForm/ConfigurationFormEntry.d.ts +15 -16
  112. package/dist/react/components/resolvable/configurationForm/ConfigurationFormEntry.js +98 -88
  113. package/dist/react/components/resolvable/configurationForm/ConfigurationFormEntry.js.map +1 -1
  114. package/dist/react/components/resolvable/configurationForm/getSectionDefault.d.ts +16 -16
  115. package/dist/react/components/resolvable/configurationForm/getSectionDefault.js +99 -99
  116. package/dist/react/components/resolvable/configurationForm/getSectionDefault.js.map +1 -1
  117. package/dist/react/hooks/useFin5BinUrl.d.ts +6 -6
  118. package/dist/react/hooks/useFin5BinUrl.js +15 -15
  119. package/dist/react/hooks/useFin5ColorScheme.d.ts +2 -2
  120. package/dist/react/hooks/useFin5ColorScheme.js +55 -56
  121. package/dist/react/hooks/useFin5ColorScheme.js.map +1 -1
  122. package/dist/react/hooks/useScreenSize.d.ts +7 -7
  123. package/dist/react/hooks/useScreenSize.js +31 -31
  124. package/dist_es/fantomProps/createFin5Props/index.d.ts +12 -12
  125. package/dist_es/fantomProps/createFin5Props/index.js +140 -140
  126. package/dist_es/fantomProps/createFin5Props/index.js.map +1 -1
  127. package/dist_es/fantomProps/createFin5Props/runCreateFin5Props.d.ts +2 -2
  128. package/dist_es/fantomProps/createFin5Props/runCreateFin5Props.js +15 -15
  129. package/dist_es/fantomProps/createFin5Props/runCreateFin5Props.js.map +1 -1
  130. package/dist_es/fantomProps/fantomPropsToObject.d.ts +8 -8
  131. package/dist_es/fantomProps/fantomPropsToObject.js +178 -178
  132. package/dist_es/fantomProps/fantomPropsToObject.js.map +1 -1
  133. package/dist_es/fantomProps/generateJsonFromFantomPropsFile.d.ts +4 -4
  134. package/dist_es/fantomProps/generateJsonFromFantomPropsFile.js +12 -12
  135. package/dist_es/fantomProps/localePropsToJson.d.ts +1 -1
  136. package/dist_es/fantomProps/localePropsToJson.js +21 -21
  137. package/dist_es/fantomProps/localePropsToJson.js.map +1 -1
  138. package/dist_es/fantomProps/readFantomPropsFile.d.ts +5 -5
  139. package/dist_es/fantomProps/readFantomPropsFile.js +38 -39
  140. package/dist_es/fantomProps/readFantomPropsFile.js.map +1 -1
  141. package/dist_es/fin5Top/fin5FileUpload.d.ts +24 -24
  142. package/dist_es/fin5Top/fin5FileUpload.js +47 -47
  143. package/dist_es/fin5Top/fin5FileUpload.js.map +1 -1
  144. package/dist_es/fin5Top/fin5Top.d.ts +188 -188
  145. package/dist_es/fin5Top/fin5Top.js +81 -81
  146. package/dist_es/fin5Top/fin5Top.js.map +1 -1
  147. package/dist_es/fin5Top/finEdge2Cloud.d.ts +6 -6
  148. package/dist_es/fin5Top/finEdge2Cloud.js +11 -11
  149. package/dist_es/fin5Top/getFin5BinUrl.d.ts +2 -2
  150. package/dist_es/fin5Top/getFin5BinUrl.js +5 -5
  151. package/dist_es/fin5Top/openFin5Alarm.d.ts +22 -22
  152. package/dist_es/fin5Top/openFin5Alarm.js +19 -19
  153. package/dist_es/fin5Top/openFin5Alarm.js.map +1 -1
  154. package/dist_es/fin5Top/openFin5Historian.d.ts +3 -3
  155. package/dist_es/fin5Top/openFin5Historian.js +15 -15
  156. package/dist_es/fin5Top/openFin5Historian.js.map +1 -1
  157. package/dist_es/fin5Top/useFin5AppURLHashParameter.d.ts +18 -18
  158. package/dist_es/fin5Top/useFin5AppURLHashParameter.js +124 -124
  159. package/dist_es/fin5Top/useFin5AppURLHashParameter.js.map +1 -1
  160. package/dist_es/index.d.ts +35 -35
  161. package/dist_es/index.js +53 -53
  162. package/dist_es/jobs/jobUtils.d.ts +14 -14
  163. package/dist_es/jobs/jobUtils.js +9 -9
  164. package/dist_es/react/app/Fin5AppContainer.d.ts +36 -36
  165. package/dist_es/react/app/Fin5AppContainer.js +132 -132
  166. package/dist_es/react/app/Fin5AppContainer.js.map +1 -1
  167. package/dist_es/react/app/Fin5AppRootStore.d.ts +42 -42
  168. package/dist_es/react/app/Fin5AppRootStore.js +110 -110
  169. package/dist_es/react/app/Fin5AppRootStore.js.map +1 -1
  170. package/dist_es/react/components/ErrorBoundary.d.ts +57 -57
  171. package/dist_es/react/components/ErrorBoundary.js +123 -123
  172. package/dist_es/react/components/ErrorDisplayer.d.ts +19 -19
  173. package/dist_es/react/components/ErrorDisplayer.js +28 -28
  174. package/dist_es/react/components/ErrorDisplayer.js.map +1 -1
  175. package/dist_es/react/components/Loader.d.ts +9 -9
  176. package/dist_es/react/components/Loader.js +12 -12
  177. package/dist_es/react/components/LoadingSpinner.d.ts +2 -2
  178. package/dist_es/react/components/LoadingSpinner.js +20 -20
  179. package/dist_es/react/components/RecordImage.d.ts +20 -20
  180. package/dist_es/react/components/RecordImage.js +24 -24
  181. package/dist_es/react/components/RecordImage.js.map +1 -1
  182. package/dist_es/react/components/charts/QRCode.d.ts +25 -25
  183. package/dist_es/react/components/charts/QRCode.js +52 -52
  184. package/dist_es/react/components/charts/QRCode.js.map +1 -1
  185. package/dist_es/react/components/charts/line-bar/Chart.d.ts +166 -166
  186. package/dist_es/react/components/charts/line-bar/Chart.js +415 -415
  187. package/dist_es/react/components/charts/line-bar/Chart.js.map +1 -1
  188. package/dist_es/react/components/charts/line-bar/HGridChart.d.ts +58 -58
  189. package/dist_es/react/components/charts/line-bar/HGridChart.js +250 -250
  190. package/dist_es/react/components/charts/line-bar/HGridChart.js.map +1 -1
  191. package/dist_es/react/components/charts/pie/PieChart.d.ts +94 -94
  192. package/dist_es/react/components/charts/pie/PieChart.js +177 -177
  193. package/dist_es/react/components/charts/pie/PieChart.js.map +1 -1
  194. package/dist_es/react/components/charts/pie/SimplePieChart.d.ts +21 -21
  195. package/dist_es/react/components/charts/pie/SimplePieChart.js +25 -25
  196. package/dist_es/react/components/graphics/GraphicViewer.d.ts +10 -10
  197. package/dist_es/react/components/graphics/GraphicViewer.js +22 -22
  198. package/dist_es/react/components/graphics/GraphicsTabViewer.d.ts +17 -17
  199. package/dist_es/react/components/graphics/GraphicsTabViewer.js +60 -60
  200. package/dist_es/react/components/graphics/GraphicsTabViewer.js.map +1 -1
  201. package/dist_es/react/components/makeCustomElement.d.ts +16 -16
  202. package/dist_es/react/components/makeCustomElement.js +142 -142
  203. package/dist_es/react/components/makeCustomElement.js.map +1 -1
  204. package/dist_es/react/components/navigation/BasicLayout.d.ts +41 -41
  205. package/dist_es/react/components/navigation/BasicLayout.js +124 -124
  206. package/dist_es/react/components/navigation/BasicLayout.js.map +1 -1
  207. package/dist_es/react/components/navigation/HeaderSiderLayout.d.ts +13 -13
  208. package/dist_es/react/components/navigation/HeaderSiderLayout.js +80 -80
  209. package/dist_es/react/components/navigation/HeaderSiderLayout.js.map +1 -1
  210. package/dist_es/react/components/navigation/MenuPage.d.ts +37 -37
  211. package/dist_es/react/components/navigation/MenuPage.js +30 -30
  212. package/dist_es/react/components/navigation/MenuPage.js.map +1 -1
  213. package/dist_es/react/components/navigation/MenuTrigger.d.ts +9 -9
  214. package/dist_es/react/components/navigation/MenuTrigger.js +28 -28
  215. package/dist_es/react/components/navigation/ReactRouterHeaderSiderLayout.d.ts +11 -11
  216. package/dist_es/react/components/navigation/ReactRouterHeaderSiderLayout.js +18 -18
  217. package/dist_es/react/components/navigation/ReactRouterHeaderSiderLayout.js.map +1 -1
  218. package/dist_es/react/components/navigation/ReactRouterLayout.d.ts +45 -46
  219. package/dist_es/react/components/navigation/ReactRouterLayout.js +99 -99
  220. package/dist_es/react/components/navigation/ReactRouterLayout.js.map +1 -1
  221. package/dist_es/react/components/navigation/customRouting/Router.d.ts +12 -12
  222. package/dist_es/react/components/navigation/customRouting/Router.js +18 -18
  223. package/dist_es/react/components/navigation/customRouting/Router.js.map +1 -1
  224. package/dist_es/react/components/navigation/customRouting/RouterLayout.d.ts +11 -11
  225. package/dist_es/react/components/navigation/customRouting/RouterLayout.js +34 -34
  226. package/dist_es/react/components/navigation/customRouting/RouterLayout.js.map +1 -1
  227. package/dist_es/react/components/resolvable/configurationForm/ConfigurationForm.d.ts +26 -27
  228. package/dist_es/react/components/resolvable/configurationForm/ConfigurationForm.js +64 -64
  229. package/dist_es/react/components/resolvable/configurationForm/ConfigurationForm.js.map +1 -1
  230. package/dist_es/react/components/resolvable/configurationForm/ConfigurationFormEntry.d.ts +15 -16
  231. package/dist_es/react/components/resolvable/configurationForm/ConfigurationFormEntry.js +58 -58
  232. package/dist_es/react/components/resolvable/configurationForm/ConfigurationFormEntry.js.map +1 -1
  233. package/dist_es/react/components/resolvable/configurationForm/getSectionDefault.d.ts +16 -16
  234. package/dist_es/react/components/resolvable/configurationForm/getSectionDefault.js +94 -94
  235. package/dist_es/react/components/resolvable/configurationForm/getSectionDefault.js.map +1 -1
  236. package/dist_es/react/hooks/useFin5BinUrl.d.ts +6 -6
  237. package/dist_es/react/hooks/useFin5BinUrl.js +11 -11
  238. package/dist_es/react/hooks/useFin5ColorScheme.d.ts +2 -2
  239. package/dist_es/react/hooks/useFin5ColorScheme.js +52 -52
  240. package/dist_es/react/hooks/useFin5ColorScheme.js.map +1 -1
  241. package/dist_es/react/hooks/useScreenSize.d.ts +7 -7
  242. package/dist_es/react/hooks/useScreenSize.js +27 -27
  243. package/package.json +26 -49
@@ -1,111 +1,111 @@
1
- /*
2
- * Copyright (c) 2022, J2 Innovations. All Rights Reserved
3
- */
4
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
5
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
6
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
8
- return c > 3 && r && Object.defineProperty(target, key, r), r;
9
- };
10
- import { action, makeAutoObservable, observable } from 'mobx';
11
- /**
12
- * An application root store for use with FIN5.
13
- */
14
- export class Fin5AppRootStore {
15
- project = '';
16
- sidebarOpen = false;
17
- locale = '';
18
- allLocales = [];
19
- target = '';
20
- targetSidebar = '';
21
- currentUser;
22
- get app() {
23
- return undefined;
24
- }
25
- get sidebar() {
26
- return undefined;
27
- }
28
- apps = [];
29
- history = {
30
- state: {},
31
- pushState: (state) => {
32
- this.history.state = state;
33
- },
34
- replaceState: (state) => {
35
- this.history.state = state;
36
- },
37
- };
38
- historySidebar = {
39
- state: {},
40
- pushState: (state) => {
41
- this.historySidebar.state = state;
42
- },
43
- replaceState: (state) => {
44
- this.historySidebar.state = state;
45
- },
46
- };
47
- setTarget(target) {
48
- this.target = target;
49
- }
50
- setTargetSidebar(targetSidebar) {
51
- this.targetSidebar = targetSidebar;
52
- }
53
- constructor() {
54
- makeAutoObservable(this, {
55
- currentUser: observable.ref,
56
- apps: observable.ref,
57
- });
58
- }
59
- openAppInNewWindow() { }
60
- open(appId, state) {
61
- if (this.hasAppAccess(appId)) {
62
- if (state) {
63
- this.history.pushState(state);
64
- }
65
- }
66
- }
67
- openSidebar() { }
68
- postAppMessage() { }
69
- registerSidebars() { }
70
- unregisterSidebars() { }
71
- registerQuicklinks() { }
72
- unregisterQuicklinks() { }
73
- hasAppAccess = (appId) => {
74
- // For FIN5, an operator only has readonly app level access.
75
- const user = this.currentUser;
76
- if (user) {
77
- if (!user.has('userRole')) {
78
- return false;
79
- }
80
- if (user.get('userRole')?.value === 'su') {
81
- return true;
82
- }
83
- // if no appAccess is present, then all apps are granted
84
- if (user.has('appAccess')) {
85
- const appAccess = user.get('appAccess')?.value;
86
- const apps = appAccess?.split(',');
87
- return apps?.includes(appId) ?? false;
88
- }
89
- else {
90
- return true;
91
- }
92
- }
93
- return false;
94
- };
95
- hasSidebar() {
96
- return false;
97
- }
98
- }
99
- __decorate([
100
- observable
101
- ], Fin5AppRootStore.prototype, "target", void 0);
102
- __decorate([
103
- observable
104
- ], Fin5AppRootStore.prototype, "targetSidebar", void 0);
105
- __decorate([
106
- action
107
- ], Fin5AppRootStore.prototype, "setTarget", null);
108
- __decorate([
109
- action
110
- ], Fin5AppRootStore.prototype, "setTargetSidebar", null);
1
+ /*
2
+ * Copyright (c) 2022, J2 Innovations. All Rights Reserved
3
+ */
4
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
5
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
6
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
8
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
9
+ };
10
+ import { action, makeAutoObservable, observable } from 'mobx';
11
+ /**
12
+ * An application root store for use with FIN5.
13
+ */
14
+ export class Fin5AppRootStore {
15
+ project = '';
16
+ sidebarOpen = false;
17
+ locale = '';
18
+ allLocales = [];
19
+ target = '';
20
+ targetSidebar = '';
21
+ currentUser;
22
+ get app() {
23
+ return undefined;
24
+ }
25
+ get sidebar() {
26
+ return undefined;
27
+ }
28
+ apps = [];
29
+ history = {
30
+ state: {},
31
+ pushState: (state) => {
32
+ this.history.state = state;
33
+ },
34
+ replaceState: (state) => {
35
+ this.history.state = state;
36
+ },
37
+ };
38
+ historySidebar = {
39
+ state: {},
40
+ pushState: (state) => {
41
+ this.historySidebar.state = state;
42
+ },
43
+ replaceState: (state) => {
44
+ this.historySidebar.state = state;
45
+ },
46
+ };
47
+ setTarget(target) {
48
+ this.target = target;
49
+ }
50
+ setTargetSidebar(targetSidebar) {
51
+ this.targetSidebar = targetSidebar;
52
+ }
53
+ constructor() {
54
+ makeAutoObservable(this, {
55
+ currentUser: observable.ref,
56
+ apps: observable.ref,
57
+ });
58
+ }
59
+ openAppInNewWindow() { }
60
+ open(appId, state) {
61
+ if (this.hasAppAccess(appId)) {
62
+ if (state) {
63
+ this.history.pushState(state);
64
+ }
65
+ }
66
+ }
67
+ openSidebar() { }
68
+ postAppMessage() { }
69
+ registerSidebars() { }
70
+ unregisterSidebars() { }
71
+ registerQuicklinks() { }
72
+ unregisterQuicklinks() { }
73
+ hasAppAccess = (appId) => {
74
+ // For FIN5, an operator only has readonly app level access.
75
+ const user = this.currentUser;
76
+ if (user) {
77
+ if (!user.has('userRole')) {
78
+ return false;
79
+ }
80
+ if (user.get('userRole')?.value === 'su') {
81
+ return true;
82
+ }
83
+ // if no appAccess is present, then all apps are granted
84
+ if (user.has('appAccess')) {
85
+ const appAccess = user.get('appAccess')?.value;
86
+ const apps = appAccess?.split(',');
87
+ return apps?.includes(appId) ?? false;
88
+ }
89
+ else {
90
+ return true;
91
+ }
92
+ }
93
+ return false;
94
+ };
95
+ hasSidebar() {
96
+ return false;
97
+ }
98
+ }
99
+ __decorate([
100
+ observable
101
+ ], Fin5AppRootStore.prototype, "target", void 0);
102
+ __decorate([
103
+ observable
104
+ ], Fin5AppRootStore.prototype, "targetSidebar", void 0);
105
+ __decorate([
106
+ action
107
+ ], Fin5AppRootStore.prototype, "setTarget", null);
108
+ __decorate([
109
+ action
110
+ ], Fin5AppRootStore.prototype, "setTargetSidebar", null);
111
111
  //# sourceMappingURL=Fin5AppRootStore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Fin5AppRootStore.js","sourceRoot":"","sources":["../../../src/react/app/Fin5AppRootStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Fin5AppRootStore.js","sourceRoot":"","sources":["../../../src/react/app/Fin5AppRootStore.ts"],"names":[],"mappings":"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"}
@@ -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 {};
@@ -1,124 +1,124 @@
1
- /*
2
- * Copyright (c) 2022, J2 Innovations. All Rights Reserved
3
- */
4
- import React, { useState } from 'react';
5
- import { Button, Checkbox, Divider, Message, Container, ColorVals, } from '@j2inn/ui';
6
- import { usei18n } from '@j2inn/utils';
7
- import { createUseStyles, useTheme } from 'react-jss';
8
- const boundryStyles = createUseStyles((theme) => ({
9
- errorBoundry: {
10
- backgroundColor: theme.bodyBg,
11
- flex: `1 1 auto`,
12
- },
13
- boundryContainer: {
14
- margin: '0 auto',
15
- flex: `1 1 auto`,
16
- padding: `2rem`,
17
- maxWidth: 1024,
18
- backgroundColor: theme.bgColor,
19
- [`& h1, & h3`]: {
20
- paddingBottom: `1rem`,
21
- },
22
- },
23
- errorDetails: {
24
- [`& pre`]: {
25
- overflow: 'auto',
26
- marginTop: '1rem',
27
- backgroundColor: ColorVals.Black,
28
- color: ColorVals.White,
29
- padding: '0.3rem',
30
- },
31
- },
32
- }));
33
- function get(i18n, key, fallback) {
34
- return i18n.has(key) ? i18n.get(key) : fallback;
35
- }
36
- /**
37
- * Format an error message into something more useful for the clipboard.
38
- */
39
- function formatErrorMessage(error, appId) {
40
- return JSON.stringify({
41
- timestamp: new Date().toISOString(),
42
- appId: appId ?? '',
43
- location: location.href,
44
- navigator: {
45
- cookieEnabled: navigator.cookieEnabled,
46
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
47
- deviceMemory: navigator.deviceMemory,
48
- language: navigator.language,
49
- languages: navigator.languages,
50
- onLine: navigator.onLine,
51
- userAgent: navigator.userAgent,
52
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
53
- userAgentData: navigator.userAgentData,
54
- vendor: navigator.vendor,
55
- },
56
- error: String(error.stack),
57
- }, null, 2);
58
- }
59
- /**
60
- * Shows the internal error details to a user.
61
- */
62
- const ErrorDetails = ({ showDetails, setShowDetails, error, appId, }) => {
63
- const i18n = usei18n();
64
- const classes = boundryStyles();
65
- const theme = useTheme();
66
- const copyToClipboard = () => {
67
- navigator.clipboard.writeText(formatErrorMessage(error, appId));
68
- Message.success(theme, get(i18n, 'finUi.errorBoundary.copiedErrorToClipboard', 'Copied error to clipboard'));
69
- };
70
- return (React.createElement("div", { className: classes.errorDetails },
71
- React.createElement(Checkbox, { onChange: (e) => {
72
- setShowDetails(e.target.checked);
73
- }, defaultChecked: showDetails, value: showDetails }, get(i18n, 'finUi.errorBoundary.showDetails', 'Show details')),
74
- showDetails && (React.createElement(React.Fragment, null,
75
- React.createElement("pre", null, error.stack),
76
- React.createElement(Container, { horizontal: true, middle: true, right: true },
77
- React.createElement(Button, { onClick: copyToClipboard }, get(i18n, 'finUi.errorBoundary.copyToClipboard', 'Copy to clipboard')))))));
78
- };
79
- /**
80
- * The inner error boundary component. This is required so
81
- * we can use hooks that can't be used in a normal class component.
82
- */
83
- const ErrorBoundaryInner = ({ error, mode, appId, showReportDialog, }) => {
84
- const i18n = usei18n();
85
- const [showDetails, setShowDetails] = useState(true);
86
- const classes = boundryStyles();
87
- const title = `finUi.errorBoundary.${mode}.title`;
88
- const appName = `${appId}.name`;
89
- const header = get(i18n, title, mode === 'global' ? 'Error' : 'Application error') +
90
- (appId ? `: ${get(i18n, appName, appName)}` : '');
91
- const continueMsg = get(i18n, `finUi.errorBoundary.${mode}.continue`, mode === 'global'
92
- ? 'To continue, please reload or navigate to the home page.'
93
- : 'To continue, please reload, navigate to the home page or another application.');
94
- return (React.createElement(Container, { vertical: true, top: true, center: true, className: classes.errorBoundry },
95
- React.createElement("div", { className: classes.boundryContainer, style: { gap: `1rem` } },
96
- React.createElement("h1", null, header),
97
- React.createElement("h3", null, get(i18n, 'finUi.errorBoundary.description', 'The application has encountered an error when trying to display some content.')),
98
- React.createElement("p", null, continueMsg),
99
- React.createElement("div", null,
100
- React.createElement(ErrorDetails, { showDetails: showDetails, setShowDetails: setShowDetails, error: error, appId: appId })),
101
- React.createElement(Divider, null),
102
- React.createElement(Container, { horizontal: true, middle: true, left: true, style: { gap: `1rem` } },
103
- React.createElement(Button, { onClick: () => window.location.reload(), type: 'primary' }, get(i18n, 'finUi.common.reload', 'Reload')),
104
- React.createElement(Button, { onClick: () => window.location.assign('/') }, get(i18n, 'finUi.common.home', 'Home'))),
105
- showReportDialog && (React.createElement("div", { style: { marginTop: `0.5rem` } },
106
- React.createElement("small", { onClick: showReportDialog }, get(i18n, 'finUi.errorBoundary.additionalDetails', 'If you’d like, click here to include an additional error report to our team. Any details you provide will be helpful.')))))));
107
- };
108
- /**
109
- * A common error boundary used to capture errors.
110
- */
111
- export class ErrorBoundary extends React.Component {
112
- state = {};
113
- componentDidCatch(error, info) {
114
- this.props.onError?.(error);
115
- console.error(error, info);
116
- }
117
- static getDerivedStateFromError(error) {
118
- return { error };
119
- }
120
- render() {
121
- return this.state.error ? (React.createElement(ErrorBoundaryInner, { error: this.state.error, mode: this.props.mode, appId: this.props.appId, showReportDialog: this.props.showReportDialog })) : (this.props.children);
122
- }
123
- }
1
+ /*
2
+ * Copyright (c) 2022, J2 Innovations. All Rights Reserved
3
+ */
4
+ import React, { useState } from 'react';
5
+ import { Button, Checkbox, Divider, Message, Container, ColorVals, } from '@j2inn/ui';
6
+ import { usei18n } from '@j2inn/utils';
7
+ import { createUseStyles, useTheme } from 'react-jss';
8
+ const boundryStyles = createUseStyles((theme) => ({
9
+ errorBoundry: {
10
+ backgroundColor: theme.bodyBg,
11
+ flex: `1 1 auto`,
12
+ },
13
+ boundryContainer: {
14
+ margin: '0 auto',
15
+ flex: `1 1 auto`,
16
+ padding: `2rem`,
17
+ maxWidth: 1024,
18
+ backgroundColor: theme.bgColor,
19
+ [`& h1, & h3`]: {
20
+ paddingBottom: `1rem`,
21
+ },
22
+ },
23
+ errorDetails: {
24
+ [`& pre`]: {
25
+ overflow: 'auto',
26
+ marginTop: '1rem',
27
+ backgroundColor: ColorVals.Black,
28
+ color: ColorVals.White,
29
+ padding: '0.3rem',
30
+ },
31
+ },
32
+ }));
33
+ function get(i18n, key, fallback) {
34
+ return i18n.has(key) ? i18n.get(key) : fallback;
35
+ }
36
+ /**
37
+ * Format an error message into something more useful for the clipboard.
38
+ */
39
+ function formatErrorMessage(error, appId) {
40
+ return JSON.stringify({
41
+ timestamp: new Date().toISOString(),
42
+ appId: appId ?? '',
43
+ location: location.href,
44
+ navigator: {
45
+ cookieEnabled: navigator.cookieEnabled,
46
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
47
+ deviceMemory: navigator.deviceMemory,
48
+ language: navigator.language,
49
+ languages: navigator.languages,
50
+ onLine: navigator.onLine,
51
+ userAgent: navigator.userAgent,
52
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
53
+ userAgentData: navigator.userAgentData,
54
+ vendor: navigator.vendor,
55
+ },
56
+ error: String(error.stack),
57
+ }, null, 2);
58
+ }
59
+ /**
60
+ * Shows the internal error details to a user.
61
+ */
62
+ const ErrorDetails = ({ showDetails, setShowDetails, error, appId, }) => {
63
+ const i18n = usei18n();
64
+ const classes = boundryStyles();
65
+ const theme = useTheme();
66
+ const copyToClipboard = () => {
67
+ navigator.clipboard.writeText(formatErrorMessage(error, appId));
68
+ Message.success(theme, get(i18n, 'finUi.errorBoundary.copiedErrorToClipboard', 'Copied error to clipboard'));
69
+ };
70
+ return (React.createElement("div", { className: classes.errorDetails },
71
+ React.createElement(Checkbox, { onChange: (e) => {
72
+ setShowDetails(e.target.checked);
73
+ }, defaultChecked: showDetails, value: showDetails }, get(i18n, 'finUi.errorBoundary.showDetails', 'Show details')),
74
+ showDetails && (React.createElement(React.Fragment, null,
75
+ React.createElement("pre", null, error.stack),
76
+ React.createElement(Container, { horizontal: true, middle: true, right: true },
77
+ React.createElement(Button, { onClick: copyToClipboard }, get(i18n, 'finUi.errorBoundary.copyToClipboard', 'Copy to clipboard')))))));
78
+ };
79
+ /**
80
+ * The inner error boundary component. This is required so
81
+ * we can use hooks that can't be used in a normal class component.
82
+ */
83
+ const ErrorBoundaryInner = ({ error, mode, appId, showReportDialog, }) => {
84
+ const i18n = usei18n();
85
+ const [showDetails, setShowDetails] = useState(true);
86
+ const classes = boundryStyles();
87
+ const title = `finUi.errorBoundary.${mode}.title`;
88
+ const appName = `${appId}.name`;
89
+ const header = get(i18n, title, mode === 'global' ? 'Error' : 'Application error') +
90
+ (appId ? `: ${get(i18n, appName, appName)}` : '');
91
+ const continueMsg = get(i18n, `finUi.errorBoundary.${mode}.continue`, mode === 'global'
92
+ ? 'To continue, please reload or navigate to the home page.'
93
+ : 'To continue, please reload, navigate to the home page or another application.');
94
+ return (React.createElement(Container, { vertical: true, top: true, center: true, className: classes.errorBoundry },
95
+ React.createElement("div", { className: classes.boundryContainer, style: { gap: `1rem` } },
96
+ React.createElement("h1", null, header),
97
+ React.createElement("h3", null, get(i18n, 'finUi.errorBoundary.description', 'The application has encountered an error when trying to display some content.')),
98
+ React.createElement("p", null, continueMsg),
99
+ React.createElement("div", null,
100
+ React.createElement(ErrorDetails, { showDetails: showDetails, setShowDetails: setShowDetails, error: error, appId: appId })),
101
+ React.createElement(Divider, null),
102
+ React.createElement(Container, { horizontal: true, middle: true, left: true, style: { gap: `1rem` } },
103
+ React.createElement(Button, { onClick: () => window.location.reload(), type: 'primary' }, get(i18n, 'finUi.common.reload', 'Reload')),
104
+ React.createElement(Button, { onClick: () => window.location.assign('/') }, get(i18n, 'finUi.common.home', 'Home'))),
105
+ showReportDialog && (React.createElement("div", { style: { marginTop: `0.5rem` } },
106
+ React.createElement("small", { onClick: showReportDialog }, get(i18n, 'finUi.errorBoundary.additionalDetails', 'If you’d like, click here to include an additional error report to our team. Any details you provide will be helpful.')))))));
107
+ };
108
+ /**
109
+ * A common error boundary used to capture errors.
110
+ */
111
+ export class ErrorBoundary extends React.Component {
112
+ state = {};
113
+ componentDidCatch(error, info) {
114
+ this.props.onError?.(error);
115
+ console.error(error, info);
116
+ }
117
+ static getDerivedStateFromError(error) {
118
+ return { error };
119
+ }
120
+ render() {
121
+ return this.state.error ? (React.createElement(ErrorBoundaryInner, { error: this.state.error, mode: this.props.mode, appId: this.props.appId, showReportDialog: this.props.showReportDialog })) : (this.props.children);
122
+ }
123
+ }
124
124
  //# sourceMappingURL=ErrorBoundary.js.map
@@ -1,19 +1,19 @@
1
- import React, { ErrorInfo, ReactNode } from 'react';
2
- interface ErrorBoundaryState {
3
- error?: Error;
4
- }
5
- interface ErrorBoundaryProps {
6
- children: ReactNode;
7
- }
8
- export declare class DefaultErrorBoundary extends React.Component<ErrorBoundaryProps> {
9
- state: ErrorBoundaryState;
10
- static getDerivedStateFromError(error: Error): ErrorBoundaryState;
11
- componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
12
- render(): ReactNode;
13
- }
14
- export interface ErrorDisplayerProps {
15
- error: Error;
16
- extra: React.ReactNode;
17
- }
18
- export declare const ErrorDisplayer: React.FC<ErrorDisplayerProps>;
19
- export {};
1
+ import React, { ErrorInfo, ReactNode } from 'react';
2
+ interface ErrorBoundaryState {
3
+ error?: Error;
4
+ }
5
+ interface ErrorBoundaryProps {
6
+ children: ReactNode;
7
+ }
8
+ export declare class DefaultErrorBoundary extends React.Component<ErrorBoundaryProps> {
9
+ state: ErrorBoundaryState;
10
+ static getDerivedStateFromError(error: Error): ErrorBoundaryState;
11
+ componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
12
+ render(): ReactNode;
13
+ }
14
+ export interface ErrorDisplayerProps {
15
+ error: Error;
16
+ extra: React.ReactNode;
17
+ }
18
+ export declare const ErrorDisplayer: React.FC<ErrorDisplayerProps>;
19
+ export {};