@j2inn/fin5-ui-utils 6.0.5-beta.0 → 6.1.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 (216) hide show
  1. package/README.md +5 -5
  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 +65 -66
  14. package/dist/fantomProps/readFantomPropsFile.js.map +1 -1
  15. package/dist/fin5Top/fin5FileUpload.d.ts +24 -24
  16. package/dist/fin5Top/fin5FileUpload.js +51 -51
  17. package/dist/fin5Top/fin5Top.d.ts +124 -124
  18. package/dist/fin5Top/fin5Top.js +53 -53
  19. package/dist/fin5Top/finEdge2Cloud.d.ts +6 -6
  20. package/dist/fin5Top/finEdge2Cloud.js +15 -15
  21. package/dist/fin5Top/getFin5BinUrl.d.ts +2 -2
  22. package/dist/fin5Top/getFin5BinUrl.js +9 -9
  23. package/dist/fin5Top/openFin5Alarm.d.ts +22 -22
  24. package/dist/fin5Top/openFin5Alarm.js +23 -23
  25. package/dist/fin5Top/openFin5Historian.d.ts +3 -3
  26. package/dist/fin5Top/openFin5Historian.js +19 -19
  27. package/dist/fin5Top/useFin5AppURLHashParameter.d.ts +18 -18
  28. package/dist/fin5Top/useFin5AppURLHashParameter.js +133 -133
  29. package/dist/index.d.ts +35 -35
  30. package/dist/index.js +69 -69
  31. package/dist/jobs/jobUtils.d.ts +14 -14
  32. package/dist/jobs/jobUtils.js +15 -15
  33. package/dist/react/app/Fin5AppContainer.d.ts +36 -36
  34. package/dist/react/app/Fin5AppContainer.js +145 -102
  35. package/dist/react/app/Fin5AppContainer.js.map +1 -1
  36. package/dist/react/app/Fin5AppRootStore.d.ts +40 -40
  37. package/dist/react/app/Fin5AppRootStore.js +90 -69
  38. package/dist/react/app/Fin5AppRootStore.js.map +1 -1
  39. package/dist/react/components/ErrorBoundary.d.ts +57 -57
  40. package/dist/react/components/ErrorBoundary.js +150 -150
  41. package/dist/react/components/ErrorDisplayer.d.ts +19 -19
  42. package/dist/react/components/ErrorDisplayer.js +36 -36
  43. package/dist/react/components/Loader.d.ts +9 -9
  44. package/dist/react/components/Loader.js +17 -17
  45. package/dist/react/components/LoadingSpinner.d.ts +2 -2
  46. package/dist/react/components/LoadingSpinner.js +27 -27
  47. package/dist/react/components/RecordImage.d.ts +20 -20
  48. package/dist/react/components/RecordImage.js +51 -51
  49. package/dist/react/components/charts/QRCode.d.ts +25 -25
  50. package/dist/react/components/charts/QRCode.js +82 -82
  51. package/dist/react/components/charts/line-bar/Chart.d.ts +166 -166
  52. package/dist/react/components/charts/line-bar/Chart.js +442 -442
  53. package/dist/react/components/charts/line-bar/HGridChart.d.ts +58 -58
  54. package/dist/react/components/charts/line-bar/HGridChart.js +285 -285
  55. package/dist/react/components/charts/pie/PieChart.d.ts +94 -94
  56. package/dist/react/components/charts/pie/PieChart.js +204 -204
  57. package/dist/react/components/charts/pie/SimplePieChart.d.ts +21 -21
  58. package/dist/react/components/charts/pie/SimplePieChart.js +55 -55
  59. package/dist/react/components/graphics/GraphicViewer.d.ts +10 -10
  60. package/dist/react/components/graphics/GraphicViewer.js +29 -29
  61. package/dist/react/components/graphics/GraphicsTabViewer.d.ts +17 -17
  62. package/dist/react/components/graphics/GraphicsTabViewer.js +90 -90
  63. package/dist/react/components/makeCustomElement.d.ts +16 -16
  64. package/dist/react/components/makeCustomElement.js +150 -150
  65. package/dist/react/components/navigation/BasicLayout.d.ts +41 -41
  66. package/dist/react/components/navigation/BasicLayout.js +155 -155
  67. package/dist/react/components/navigation/HeaderSiderLayout.d.ts +13 -13
  68. package/dist/react/components/navigation/HeaderSiderLayout.js +110 -110
  69. package/dist/react/components/navigation/MenuPage.d.ts +37 -37
  70. package/dist/react/components/navigation/MenuPage.js +36 -36
  71. package/dist/react/components/navigation/MenuTrigger.d.ts +9 -9
  72. package/dist/react/components/navigation/MenuTrigger.js +33 -33
  73. package/dist/react/components/navigation/ReactRouterHeaderSiderLayout.d.ts +11 -11
  74. package/dist/react/components/navigation/ReactRouterHeaderSiderLayout.js +25 -25
  75. package/dist/react/components/navigation/ReactRouterLayout.d.ts +46 -46
  76. package/dist/react/components/navigation/ReactRouterLayout.js +132 -132
  77. package/dist/react/components/navigation/customRouting/Router.d.ts +12 -12
  78. package/dist/react/components/navigation/customRouting/Router.js +45 -45
  79. package/dist/react/components/navigation/customRouting/RouterLayout.d.ts +11 -11
  80. package/dist/react/components/navigation/customRouting/RouterLayout.js +61 -61
  81. package/dist/react/components/resolvable/configurationForm/ConfigurationForm.d.ts +27 -27
  82. package/dist/react/components/resolvable/configurationForm/ConfigurationForm.js +95 -95
  83. package/dist/react/components/resolvable/configurationForm/ConfigurationFormEntry.d.ts +16 -16
  84. package/dist/react/components/resolvable/configurationForm/ConfigurationFormEntry.js +88 -88
  85. package/dist/react/components/resolvable/configurationForm/getSectionDefault.d.ts +16 -16
  86. package/dist/react/components/resolvable/configurationForm/getSectionDefault.js +99 -99
  87. package/dist/react/hooks/useFin5BinUrl.d.ts +6 -6
  88. package/dist/react/hooks/useFin5BinUrl.js +15 -15
  89. package/dist/react/hooks/useFin5ColorScheme.d.ts +2 -2
  90. package/dist/react/hooks/useFin5ColorScheme.js +49 -49
  91. package/dist/react/hooks/useScreenSize.d.ts +7 -7
  92. package/dist/react/hooks/useScreenSize.js +31 -31
  93. package/dist_es/fantomProps/createFin5Props/index.d.ts +12 -12
  94. package/dist_es/fantomProps/createFin5Props/index.js +140 -140
  95. package/dist_es/fantomProps/createFin5Props/runCreateFin5Props.d.ts +2 -2
  96. package/dist_es/fantomProps/createFin5Props/runCreateFin5Props.js +11 -11
  97. package/dist_es/fantomProps/fantomPropsToObject.d.ts +8 -8
  98. package/dist_es/fantomProps/fantomPropsToObject.js +178 -178
  99. package/dist_es/fantomProps/generateJsonFromFantomPropsFile.d.ts +4 -4
  100. package/dist_es/fantomProps/generateJsonFromFantomPropsFile.js +12 -12
  101. package/dist_es/fantomProps/localePropsToJson.d.ts +1 -1
  102. package/dist_es/fantomProps/localePropsToJson.js +21 -21
  103. package/dist_es/fantomProps/readFantomPropsFile.d.ts +5 -5
  104. package/dist_es/fantomProps/readFantomPropsFile.js +39 -40
  105. package/dist_es/fantomProps/readFantomPropsFile.js.map +1 -1
  106. package/dist_es/fin5Top/fin5FileUpload.d.ts +24 -24
  107. package/dist_es/fin5Top/fin5FileUpload.js +47 -47
  108. package/dist_es/fin5Top/fin5Top.d.ts +124 -124
  109. package/dist_es/fin5Top/fin5Top.js +49 -49
  110. package/dist_es/fin5Top/finEdge2Cloud.d.ts +6 -6
  111. package/dist_es/fin5Top/finEdge2Cloud.js +11 -11
  112. package/dist_es/fin5Top/getFin5BinUrl.d.ts +2 -2
  113. package/dist_es/fin5Top/getFin5BinUrl.js +5 -5
  114. package/dist_es/fin5Top/openFin5Alarm.d.ts +22 -22
  115. package/dist_es/fin5Top/openFin5Alarm.js +19 -19
  116. package/dist_es/fin5Top/openFin5Historian.d.ts +3 -3
  117. package/dist_es/fin5Top/openFin5Historian.js +15 -15
  118. package/dist_es/fin5Top/useFin5AppURLHashParameter.d.ts +18 -18
  119. package/dist_es/fin5Top/useFin5AppURLHashParameter.js +124 -124
  120. package/dist_es/index.d.ts +35 -35
  121. package/dist_es/index.js +53 -53
  122. package/dist_es/jobs/jobUtils.d.ts +14 -14
  123. package/dist_es/jobs/jobUtils.js +9 -9
  124. package/dist_es/react/app/Fin5AppContainer.d.ts +36 -36
  125. package/dist_es/react/app/Fin5AppContainer.js +116 -73
  126. package/dist_es/react/app/Fin5AppContainer.js.map +1 -1
  127. package/dist_es/react/app/Fin5AppRootStore.d.ts +40 -40
  128. package/dist_es/react/app/Fin5AppRootStore.js +86 -65
  129. package/dist_es/react/app/Fin5AppRootStore.js.map +1 -1
  130. package/dist_es/react/components/ErrorBoundary.d.ts +57 -57
  131. package/dist_es/react/components/ErrorBoundary.js +123 -123
  132. package/dist_es/react/components/ErrorDisplayer.d.ts +19 -19
  133. package/dist_es/react/components/ErrorDisplayer.js +28 -28
  134. package/dist_es/react/components/Loader.d.ts +9 -9
  135. package/dist_es/react/components/Loader.js +12 -12
  136. package/dist_es/react/components/LoadingSpinner.d.ts +2 -2
  137. package/dist_es/react/components/LoadingSpinner.js +20 -20
  138. package/dist_es/react/components/RecordImage.d.ts +20 -20
  139. package/dist_es/react/components/RecordImage.js +24 -24
  140. package/dist_es/react/components/charts/QRCode.d.ts +25 -25
  141. package/dist_es/react/components/charts/QRCode.js +52 -52
  142. package/dist_es/react/components/charts/line-bar/Chart.d.ts +166 -166
  143. package/dist_es/react/components/charts/line-bar/Chart.js +415 -415
  144. package/dist_es/react/components/charts/line-bar/HGridChart.d.ts +58 -58
  145. package/dist_es/react/components/charts/line-bar/HGridChart.js +250 -250
  146. package/dist_es/react/components/charts/pie/PieChart.d.ts +94 -94
  147. package/dist_es/react/components/charts/pie/PieChart.js +177 -177
  148. package/dist_es/react/components/charts/pie/SimplePieChart.d.ts +21 -21
  149. package/dist_es/react/components/charts/pie/SimplePieChart.js +25 -25
  150. package/dist_es/react/components/graphics/GraphicViewer.d.ts +10 -10
  151. package/dist_es/react/components/graphics/GraphicViewer.js +22 -22
  152. package/dist_es/react/components/graphics/GraphicsTabViewer.d.ts +17 -17
  153. package/dist_es/react/components/graphics/GraphicsTabViewer.js +60 -60
  154. package/dist_es/react/components/makeCustomElement.d.ts +16 -16
  155. package/dist_es/react/components/makeCustomElement.js +142 -142
  156. package/dist_es/react/components/navigation/BasicLayout.d.ts +41 -41
  157. package/dist_es/react/components/navigation/BasicLayout.js +124 -124
  158. package/dist_es/react/components/navigation/HeaderSiderLayout.d.ts +13 -13
  159. package/dist_es/react/components/navigation/HeaderSiderLayout.js +80 -80
  160. package/dist_es/react/components/navigation/MenuPage.d.ts +37 -37
  161. package/dist_es/react/components/navigation/MenuPage.js +30 -30
  162. package/dist_es/react/components/navigation/MenuTrigger.d.ts +9 -9
  163. package/dist_es/react/components/navigation/MenuTrigger.js +28 -28
  164. package/dist_es/react/components/navigation/ReactRouterHeaderSiderLayout.d.ts +11 -11
  165. package/dist_es/react/components/navigation/ReactRouterHeaderSiderLayout.js +18 -18
  166. package/dist_es/react/components/navigation/ReactRouterLayout.d.ts +46 -46
  167. package/dist_es/react/components/navigation/ReactRouterLayout.js +99 -99
  168. package/dist_es/react/components/navigation/customRouting/Router.d.ts +12 -12
  169. package/dist_es/react/components/navigation/customRouting/Router.js +18 -18
  170. package/dist_es/react/components/navigation/customRouting/RouterLayout.d.ts +11 -11
  171. package/dist_es/react/components/navigation/customRouting/RouterLayout.js +34 -34
  172. package/dist_es/react/components/resolvable/configurationForm/ConfigurationForm.d.ts +27 -27
  173. package/dist_es/react/components/resolvable/configurationForm/ConfigurationForm.js +64 -64
  174. package/dist_es/react/components/resolvable/configurationForm/ConfigurationFormEntry.d.ts +16 -16
  175. package/dist_es/react/components/resolvable/configurationForm/ConfigurationFormEntry.js +58 -58
  176. package/dist_es/react/components/resolvable/configurationForm/getSectionDefault.d.ts +16 -16
  177. package/dist_es/react/components/resolvable/configurationForm/getSectionDefault.js +94 -94
  178. package/dist_es/react/hooks/useFin5BinUrl.d.ts +6 -6
  179. package/dist_es/react/hooks/useFin5BinUrl.js +11 -11
  180. package/dist_es/react/hooks/useFin5ColorScheme.d.ts +2 -2
  181. package/dist_es/react/hooks/useFin5ColorScheme.js +45 -45
  182. package/dist_es/react/hooks/useScreenSize.d.ts +7 -7
  183. package/dist_es/react/hooks/useScreenSize.js +27 -27
  184. package/package.json +1 -1
  185. package/dist_es/react/app/Fin5AppContainer.jsx +0 -82
  186. package/dist_es/react/app/Fin5AppContainer.jsx.map +0 -1
  187. package/dist_es/react/components/ErrorBoundary.jsx +0 -150
  188. package/dist_es/react/components/ErrorBoundary.jsx.map +0 -1
  189. package/dist_es/react/components/ErrorDisplayer.jsx +0 -36
  190. package/dist_es/react/components/ErrorDisplayer.jsx.map +0 -1
  191. package/dist_es/react/components/Loader.jsx +0 -13
  192. package/dist_es/react/components/Loader.jsx.map +0 -1
  193. package/dist_es/react/components/LoadingSpinner.jsx +0 -22
  194. package/dist_es/react/components/LoadingSpinner.jsx.map +0 -1
  195. package/dist_es/react/components/charts/line-bar/ZincGridChart.d.ts +0 -12
  196. package/dist_es/react/components/charts/line-bar/ZincGridChart.js +0 -17
  197. package/dist_es/react/components/charts/line-bar/ZincGridChart.js.map +0 -1
  198. package/dist_es/react/components/graphics/GraphicViewer.jsx +0 -23
  199. package/dist_es/react/components/graphics/GraphicViewer.jsx.map +0 -1
  200. package/dist_es/react/components/graphics/GraphicsTabViewer.jsx +0 -63
  201. package/dist_es/react/components/graphics/GraphicsTabViewer.jsx.map +0 -1
  202. package/dist_es/react/components/navigation/BasicLayout.jsx +0 -133
  203. package/dist_es/react/components/navigation/BasicLayout.jsx.map +0 -1
  204. package/dist_es/react/components/navigation/MenuPage.jsx +0 -31
  205. package/dist_es/react/components/navigation/MenuPage.jsx.map +0 -1
  206. package/dist_es/react/components/navigation/Router.d.ts +0 -12
  207. package/dist_es/react/components/navigation/Router.js +0 -19
  208. package/dist_es/react/components/navigation/Router.js.map +0 -1
  209. package/dist_es/react/components/navigation/Router.jsx +0 -19
  210. package/dist_es/react/components/navigation/Router.jsx.map +0 -1
  211. package/dist_es/react/components/navigation/react-router/BasicLayout.d.ts +0 -23
  212. package/dist_es/react/components/navigation/react-router/BasicLayout.js +0 -82
  213. package/dist_es/react/components/navigation/react-router/BasicLayout.js.map +0 -1
  214. package/dist_es/react/components/navigation/react-router/ReactRouterBasicLayout.d.ts +0 -24
  215. package/dist_es/react/components/navigation/react-router/ReactRouterBasicLayout.js +0 -82
  216. package/dist_es/react/components/navigation/react-router/ReactRouterBasicLayout.js.map +0 -1
@@ -1,151 +1,151 @@
1
- "use strict";
2
- /*
3
- * Copyright (c) 2022, J2 Innovations. All Rights Reserved
4
- */
5
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- var desc = Object.getOwnPropertyDescriptor(m, k);
8
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
- desc = { enumerable: true, get: function() { return m[k]; } };
10
- }
11
- Object.defineProperty(o, k2, desc);
12
- }) : (function(o, m, k, k2) {
13
- if (k2 === undefined) k2 = k;
14
- o[k2] = m[k];
15
- }));
16
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
- Object.defineProperty(o, "default", { enumerable: true, value: v });
18
- }) : function(o, v) {
19
- o["default"] = v;
20
- });
21
- var __importStar = (this && this.__importStar) || function (mod) {
22
- if (mod && mod.__esModule) return mod;
23
- var result = {};
24
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
- __setModuleDefault(result, mod);
26
- return result;
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.ErrorBoundary = void 0;
30
- const react_1 = __importStar(require("react"));
31
- const ui_1 = require("@j2inn/ui");
32
- const utils_1 = require("@j2inn/utils");
33
- const react_jss_1 = require("react-jss");
34
- const boundryStyles = (0, react_jss_1.createUseStyles)((theme) => ({
35
- errorBoundry: {
36
- backgroundColor: theme.bodyBg,
37
- flex: `1 1 auto`,
38
- },
39
- boundryContainer: {
40
- margin: '0 auto',
41
- flex: `1 1 auto`,
42
- padding: `2rem`,
43
- maxWidth: 1024,
44
- backgroundColor: theme.bgColor,
45
- [`& h1, & h3`]: {
46
- paddingBottom: `1rem`,
47
- },
48
- },
49
- errorDetails: {
50
- [`& pre`]: {
51
- overflow: 'auto',
52
- marginTop: '1rem',
53
- backgroundColor: ui_1.ColorVals.Black,
54
- color: ui_1.ColorVals.White,
55
- padding: '0.3rem',
56
- },
57
- },
58
- }));
59
- function get(i18n, key, fallback) {
60
- return i18n.has(key) ? i18n.get(key) : fallback;
61
- }
62
- /**
63
- * Format an error message into something more useful for the clipboard.
64
- */
65
- function formatErrorMessage(error, appId) {
66
- return JSON.stringify({
67
- timestamp: new Date().toISOString(),
68
- appId: appId ?? '',
69
- location: location.href,
70
- navigator: {
71
- cookieEnabled: navigator.cookieEnabled,
72
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
73
- deviceMemory: navigator.deviceMemory,
74
- language: navigator.language,
75
- languages: navigator.languages,
76
- onLine: navigator.onLine,
77
- userAgent: navigator.userAgent,
78
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
79
- userAgentData: navigator.userAgentData,
80
- vendor: navigator.vendor,
81
- },
82
- error: String(error.stack),
83
- }, null, 2);
84
- }
85
- /**
86
- * Shows the internal error details to a user.
87
- */
88
- const ErrorDetails = ({ showDetails, setShowDetails, error, appId, }) => {
89
- const i18n = (0, utils_1.usei18n)();
90
- const classes = boundryStyles();
91
- const theme = (0, react_jss_1.useTheme)();
92
- const copyToClipboard = () => {
93
- navigator.clipboard.writeText(formatErrorMessage(error, appId));
94
- ui_1.Message.success(theme, get(i18n, 'finUi.errorBoundary.copiedErrorToClipboard', 'Copied error to clipboard'));
95
- };
96
- return (react_1.default.createElement("div", { className: classes.errorDetails },
97
- react_1.default.createElement(ui_1.Checkbox, { onChange: (e) => {
98
- setShowDetails(e.target.checked);
99
- }, defaultChecked: showDetails, value: showDetails }, get(i18n, 'finUi.errorBoundary.showDetails', 'Show details')),
100
- showDetails && (react_1.default.createElement(react_1.default.Fragment, null,
101
- react_1.default.createElement("pre", null, error.stack),
102
- react_1.default.createElement(ui_1.Container, { horizontal: true, middle: true, right: true },
103
- react_1.default.createElement(ui_1.Button, { onClick: copyToClipboard }, get(i18n, 'finUi.errorBoundary.copyToClipboard', 'Copy to clipboard')))))));
104
- };
105
- /**
106
- * The inner error boundary component. This is required so
107
- * we can use hooks that can't be used in a normal class component.
108
- */
109
- const ErrorBoundaryInner = ({ error, mode, appId, showReportDialog, }) => {
110
- const i18n = (0, utils_1.usei18n)();
111
- const [showDetails, setShowDetails] = (0, react_1.useState)(true);
112
- const classes = boundryStyles();
113
- const title = `finUi.errorBoundary.${mode}.title`;
114
- const appName = `${appId}.name`;
115
- const header = get(i18n, title, mode === 'global' ? 'Error' : 'Application error') +
116
- (appId ? `: ${get(i18n, appName, appName)}` : '');
117
- const continueMsg = get(i18n, `finUi.errorBoundary.${mode}.continue`, mode === 'global'
118
- ? 'To continue, please reload or navigate to the home page.'
119
- : 'To continue, please reload, navigate to the home page or another application.');
120
- return (react_1.default.createElement(ui_1.Container, { vertical: true, top: true, center: true, className: classes.errorBoundry },
121
- react_1.default.createElement("div", { className: classes.boundryContainer, style: { gap: `1rem` } },
122
- react_1.default.createElement("h1", null, header),
123
- react_1.default.createElement("h3", null, get(i18n, 'finUi.errorBoundary.description', 'The application has encountered an error when trying to display some content.')),
124
- react_1.default.createElement("p", null, continueMsg),
125
- react_1.default.createElement("div", null,
126
- react_1.default.createElement(ErrorDetails, { showDetails: showDetails, setShowDetails: setShowDetails, error: error, appId: appId })),
127
- react_1.default.createElement(ui_1.Divider, null),
128
- react_1.default.createElement(ui_1.Container, { horizontal: true, middle: true, left: true, style: { gap: `1rem` } },
129
- react_1.default.createElement(ui_1.Button, { onClick: () => window.location.reload(), type: 'primary' }, get(i18n, 'finUi.common.reload', 'Reload')),
130
- react_1.default.createElement(ui_1.Button, { onClick: () => window.location.assign('/') }, get(i18n, 'finUi.common.home', 'Home'))),
131
- showReportDialog && (react_1.default.createElement("div", { style: { marginTop: `0.5rem` } },
132
- react_1.default.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.')))))));
133
- };
134
- /**
135
- * A common error boundary used to capture errors.
136
- */
137
- class ErrorBoundary extends react_1.default.Component {
138
- state = {};
139
- componentDidCatch(error, info) {
140
- this.props.onError?.(error);
141
- console.error(error, info);
142
- }
143
- static getDerivedStateFromError(error) {
144
- return { error };
145
- }
146
- render() {
147
- return this.state.error ? (react_1.default.createElement(ErrorBoundaryInner, { error: this.state.error, mode: this.props.mode, appId: this.props.appId, showReportDialog: this.props.showReportDialog })) : (this.props.children);
148
- }
149
- }
150
- exports.ErrorBoundary = ErrorBoundary;
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2022, J2 Innovations. All Rights Reserved
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || function (mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
+ __setModuleDefault(result, mod);
26
+ return result;
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.ErrorBoundary = void 0;
30
+ const react_1 = __importStar(require("react"));
31
+ const ui_1 = require("@j2inn/ui");
32
+ const utils_1 = require("@j2inn/utils");
33
+ const react_jss_1 = require("react-jss");
34
+ const boundryStyles = (0, react_jss_1.createUseStyles)((theme) => ({
35
+ errorBoundry: {
36
+ backgroundColor: theme.bodyBg,
37
+ flex: `1 1 auto`,
38
+ },
39
+ boundryContainer: {
40
+ margin: '0 auto',
41
+ flex: `1 1 auto`,
42
+ padding: `2rem`,
43
+ maxWidth: 1024,
44
+ backgroundColor: theme.bgColor,
45
+ [`& h1, & h3`]: {
46
+ paddingBottom: `1rem`,
47
+ },
48
+ },
49
+ errorDetails: {
50
+ [`& pre`]: {
51
+ overflow: 'auto',
52
+ marginTop: '1rem',
53
+ backgroundColor: ui_1.ColorVals.Black,
54
+ color: ui_1.ColorVals.White,
55
+ padding: '0.3rem',
56
+ },
57
+ },
58
+ }));
59
+ function get(i18n, key, fallback) {
60
+ return i18n.has(key) ? i18n.get(key) : fallback;
61
+ }
62
+ /**
63
+ * Format an error message into something more useful for the clipboard.
64
+ */
65
+ function formatErrorMessage(error, appId) {
66
+ return JSON.stringify({
67
+ timestamp: new Date().toISOString(),
68
+ appId: appId ?? '',
69
+ location: location.href,
70
+ navigator: {
71
+ cookieEnabled: navigator.cookieEnabled,
72
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
73
+ deviceMemory: navigator.deviceMemory,
74
+ language: navigator.language,
75
+ languages: navigator.languages,
76
+ onLine: navigator.onLine,
77
+ userAgent: navigator.userAgent,
78
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
79
+ userAgentData: navigator.userAgentData,
80
+ vendor: navigator.vendor,
81
+ },
82
+ error: String(error.stack),
83
+ }, null, 2);
84
+ }
85
+ /**
86
+ * Shows the internal error details to a user.
87
+ */
88
+ const ErrorDetails = ({ showDetails, setShowDetails, error, appId, }) => {
89
+ const i18n = (0, utils_1.usei18n)();
90
+ const classes = boundryStyles();
91
+ const theme = (0, react_jss_1.useTheme)();
92
+ const copyToClipboard = () => {
93
+ navigator.clipboard.writeText(formatErrorMessage(error, appId));
94
+ ui_1.Message.success(theme, get(i18n, 'finUi.errorBoundary.copiedErrorToClipboard', 'Copied error to clipboard'));
95
+ };
96
+ return (react_1.default.createElement("div", { className: classes.errorDetails },
97
+ react_1.default.createElement(ui_1.Checkbox, { onChange: (e) => {
98
+ setShowDetails(e.target.checked);
99
+ }, defaultChecked: showDetails, value: showDetails }, get(i18n, 'finUi.errorBoundary.showDetails', 'Show details')),
100
+ showDetails && (react_1.default.createElement(react_1.default.Fragment, null,
101
+ react_1.default.createElement("pre", null, error.stack),
102
+ react_1.default.createElement(ui_1.Container, { horizontal: true, middle: true, right: true },
103
+ react_1.default.createElement(ui_1.Button, { onClick: copyToClipboard }, get(i18n, 'finUi.errorBoundary.copyToClipboard', 'Copy to clipboard')))))));
104
+ };
105
+ /**
106
+ * The inner error boundary component. This is required so
107
+ * we can use hooks that can't be used in a normal class component.
108
+ */
109
+ const ErrorBoundaryInner = ({ error, mode, appId, showReportDialog, }) => {
110
+ const i18n = (0, utils_1.usei18n)();
111
+ const [showDetails, setShowDetails] = (0, react_1.useState)(true);
112
+ const classes = boundryStyles();
113
+ const title = `finUi.errorBoundary.${mode}.title`;
114
+ const appName = `${appId}.name`;
115
+ const header = get(i18n, title, mode === 'global' ? 'Error' : 'Application error') +
116
+ (appId ? `: ${get(i18n, appName, appName)}` : '');
117
+ const continueMsg = get(i18n, `finUi.errorBoundary.${mode}.continue`, mode === 'global'
118
+ ? 'To continue, please reload or navigate to the home page.'
119
+ : 'To continue, please reload, navigate to the home page or another application.');
120
+ return (react_1.default.createElement(ui_1.Container, { vertical: true, top: true, center: true, className: classes.errorBoundry },
121
+ react_1.default.createElement("div", { className: classes.boundryContainer, style: { gap: `1rem` } },
122
+ react_1.default.createElement("h1", null, header),
123
+ react_1.default.createElement("h3", null, get(i18n, 'finUi.errorBoundary.description', 'The application has encountered an error when trying to display some content.')),
124
+ react_1.default.createElement("p", null, continueMsg),
125
+ react_1.default.createElement("div", null,
126
+ react_1.default.createElement(ErrorDetails, { showDetails: showDetails, setShowDetails: setShowDetails, error: error, appId: appId })),
127
+ react_1.default.createElement(ui_1.Divider, null),
128
+ react_1.default.createElement(ui_1.Container, { horizontal: true, middle: true, left: true, style: { gap: `1rem` } },
129
+ react_1.default.createElement(ui_1.Button, { onClick: () => window.location.reload(), type: 'primary' }, get(i18n, 'finUi.common.reload', 'Reload')),
130
+ react_1.default.createElement(ui_1.Button, { onClick: () => window.location.assign('/') }, get(i18n, 'finUi.common.home', 'Home'))),
131
+ showReportDialog && (react_1.default.createElement("div", { style: { marginTop: `0.5rem` } },
132
+ react_1.default.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.')))))));
133
+ };
134
+ /**
135
+ * A common error boundary used to capture errors.
136
+ */
137
+ class ErrorBoundary extends react_1.default.Component {
138
+ state = {};
139
+ componentDidCatch(error, info) {
140
+ this.props.onError?.(error);
141
+ console.error(error, info);
142
+ }
143
+ static getDerivedStateFromError(error) {
144
+ return { error };
145
+ }
146
+ render() {
147
+ return this.state.error ? (react_1.default.createElement(ErrorBoundaryInner, { error: this.state.error, mode: this.props.mode, appId: this.props.appId, showReportDialog: this.props.showReportDialog })) : (this.props.children);
148
+ }
149
+ }
150
+ exports.ErrorBoundary = ErrorBoundary;
151
151
  //# 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 {};
@@ -1,37 +1,37 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ErrorDisplayer = exports.DefaultErrorBoundary = void 0;
7
- const ui_1 = require("@j2inn/ui");
8
- const react_1 = __importDefault(require("react"));
9
- class DefaultErrorBoundary extends react_1.default.Component {
10
- state = {};
11
- static getDerivedStateFromError(error) {
12
- // Update state so the next render will show the fallback UI.
13
- return { error: error };
14
- }
15
- componentDidCatch(error, errorInfo) {
16
- // You can also log the error to an error reporting service
17
- console.error(error, errorInfo);
18
- }
19
- render() {
20
- if (this.state.error) {
21
- // You can render any custom fallback UI
22
- return (react_1.default.createElement(exports.ErrorDisplayer, { error: this.state.error, extra: [
23
- react_1.default.createElement(ui_1.Button, { type: 'primary', key: 'refresh', onClick: () => window.location.reload() }, "Refresh The Page"),
24
- ] }));
25
- }
26
- return this.props.children;
27
- }
28
- }
29
- exports.DefaultErrorBoundary = DefaultErrorBoundary;
30
- const ErrorDisplayer = ({ error, extra, }) => {
31
- return (react_1.default.createElement(ui_1.Result, { status: 'error', title: 'Ouch... Something Went Wrong', subTitle: react_1.default.createElement(ui_1.Container, { center: true },
32
- react_1.default.createElement(ui_1.Collapse, { style: { width: 600, textAlign: 'left' } },
33
- react_1.default.createElement(ui_1.Collapse.Panel, { header: `${error.toString()}`, key: '1' },
34
- react_1.default.createElement(ui_1.Typography.Text, { style: { width: 400 } }, error.stack)))), extra: extra }));
35
- };
36
- exports.ErrorDisplayer = ErrorDisplayer;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ErrorDisplayer = exports.DefaultErrorBoundary = void 0;
7
+ const ui_1 = require("@j2inn/ui");
8
+ const react_1 = __importDefault(require("react"));
9
+ class DefaultErrorBoundary extends react_1.default.Component {
10
+ state = {};
11
+ static getDerivedStateFromError(error) {
12
+ // Update state so the next render will show the fallback UI.
13
+ return { error: error };
14
+ }
15
+ componentDidCatch(error, errorInfo) {
16
+ // You can also log the error to an error reporting service
17
+ console.error(error, errorInfo);
18
+ }
19
+ render() {
20
+ if (this.state.error) {
21
+ // You can render any custom fallback UI
22
+ return (react_1.default.createElement(exports.ErrorDisplayer, { error: this.state.error, extra: [
23
+ react_1.default.createElement(ui_1.Button, { type: 'primary', key: 'refresh', onClick: () => window.location.reload() }, "Refresh The Page"),
24
+ ] }));
25
+ }
26
+ return this.props.children;
27
+ }
28
+ }
29
+ exports.DefaultErrorBoundary = DefaultErrorBoundary;
30
+ const ErrorDisplayer = ({ error, extra, }) => {
31
+ return (react_1.default.createElement(ui_1.Result, { status: 'error', title: 'Ouch... Something Went Wrong', subTitle: react_1.default.createElement(ui_1.Container, { center: true },
32
+ react_1.default.createElement(ui_1.Collapse, { style: { width: 600, textAlign: 'left' } },
33
+ react_1.default.createElement(ui_1.Collapse.Panel, { header: `${error.toString()}`, key: '1' },
34
+ react_1.default.createElement(ui_1.Typography.Text, { style: { width: 400 } }, error.stack)))), extra: extra }));
35
+ };
36
+ exports.ErrorDisplayer = ErrorDisplayer;
37
37
  //# sourceMappingURL=ErrorDisplayer.js.map
@@ -1,9 +1,9 @@
1
- import React from 'react';
2
- /**
3
- * A simple UI loader.
4
- */
5
- declare const Loader: ({ loading, children, }: {
6
- loading: boolean;
7
- children?: React.ReactNode;
8
- }) => JSX.Element;
9
- export default Loader;
1
+ import React from 'react';
2
+ /**
3
+ * A simple UI loader.
4
+ */
5
+ declare const Loader: ({ loading, children, }: {
6
+ loading: boolean;
7
+ children?: React.ReactNode;
8
+ }) => JSX.Element;
9
+ export default Loader;
@@ -1,18 +1,18 @@
1
- "use strict";
2
- /*
3
- * Copyright (c) 2022, J2 Innovations. All Rights Reserved
4
- */
5
- var __importDefault = (this && this.__importDefault) || function (mod) {
6
- return (mod && mod.__esModule) ? mod : { "default": mod };
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- const react_1 = __importDefault(require("react"));
10
- const LoadingSpinner_1 = require("./LoadingSpinner");
11
- /**
12
- * A simple UI loader.
13
- */
14
- const Loader = ({ loading, children, }) => {
15
- return loading ? react_1.default.createElement(LoadingSpinner_1.LoadingSpinner, null) : react_1.default.createElement(react_1.default.Fragment, null, children);
16
- };
17
- exports.default = Loader;
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2022, J2 Innovations. All Rights Reserved
4
+ */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ const react_1 = __importDefault(require("react"));
10
+ const LoadingSpinner_1 = require("./LoadingSpinner");
11
+ /**
12
+ * A simple UI loader.
13
+ */
14
+ const Loader = ({ loading, children, }) => {
15
+ return loading ? react_1.default.createElement(LoadingSpinner_1.LoadingSpinner, null) : react_1.default.createElement(react_1.default.Fragment, null, children);
16
+ };
17
+ exports.default = Loader;
18
18
  //# sourceMappingURL=Loader.js.map
@@ -1,2 +1,2 @@
1
- import React from 'react';
2
- export declare const LoadingSpinner: React.FC;
1
+ import React from 'react';
2
+ export declare const LoadingSpinner: React.FC;
@@ -1,28 +1,28 @@
1
- "use strict";
2
- /*
3
- * Copyright (c) 2022, J2 Innovations. All Rights Reserved
4
- */
5
- var __importDefault = (this && this.__importDefault) || function (mod) {
6
- return (mod && mod.__esModule) ? mod : { "default": mod };
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.LoadingSpinner = void 0;
10
- const ui_1 = require("@j2inn/ui");
11
- const react_1 = __importDefault(require("react"));
12
- const react_jss_1 = require("react-jss");
13
- const useStyles = (0, react_jss_1.createUseStyles)({
14
- container: {
15
- display: 'flex',
16
- alignItems: 'center',
17
- justifyContent: 'center',
18
- height: '100%',
19
- width: '100%',
20
- },
21
- });
22
- const LoadingSpinner = () => {
23
- const classes = useStyles();
24
- return (react_1.default.createElement("div", { className: classes.container },
25
- react_1.default.createElement(ui_1.Spin, { size: 'large' })));
26
- };
27
- exports.LoadingSpinner = LoadingSpinner;
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2022, J2 Innovations. All Rights Reserved
4
+ */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.LoadingSpinner = void 0;
10
+ const ui_1 = require("@j2inn/ui");
11
+ const react_1 = __importDefault(require("react"));
12
+ const react_jss_1 = require("react-jss");
13
+ const useStyles = (0, react_jss_1.createUseStyles)({
14
+ container: {
15
+ display: 'flex',
16
+ alignItems: 'center',
17
+ justifyContent: 'center',
18
+ height: '100%',
19
+ width: '100%',
20
+ },
21
+ });
22
+ const LoadingSpinner = () => {
23
+ const classes = useStyles();
24
+ return (react_1.default.createElement("div", { className: classes.container },
25
+ react_1.default.createElement(ui_1.Spin, { size: 'large' })));
26
+ };
27
+ exports.LoadingSpinner = LoadingSpinner;
28
28
  //# sourceMappingURL=LoadingSpinner.js.map
@@ -1,20 +1,20 @@
1
- import { HRef } from 'haystack-core';
2
- import React from 'react';
3
- export interface RecordImageProps {
4
- /**
5
- * Ref of the image bin record.
6
- */
7
- imageRef?: HRef;
8
- /**
9
- * Fallback component to be displayed if the imageRef is not valid or the image is not found.
10
- */
11
- fallbackComponent?: React.ReactElement;
12
- /**
13
- * Props for img customization
14
- */
15
- imgProps?: Omit<React.DetailedHTMLProps<React.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, 'src'>;
16
- }
17
- /**
18
- * Displays an image from a bin record or a fallback if the given imageRef is not valid or if the image can't be found.
19
- */
20
- export declare const RecordImage: ({ imageRef, fallbackComponent, imgProps, }: RecordImageProps) => JSX.Element;
1
+ import { HRef } from 'haystack-core';
2
+ import React from 'react';
3
+ export interface RecordImageProps {
4
+ /**
5
+ * Ref of the image bin record.
6
+ */
7
+ imageRef?: HRef;
8
+ /**
9
+ * Fallback component to be displayed if the imageRef is not valid or the image is not found.
10
+ */
11
+ fallbackComponent?: React.ReactElement;
12
+ /**
13
+ * Props for img customization
14
+ */
15
+ imgProps?: Omit<React.DetailedHTMLProps<React.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, 'src'>;
16
+ }
17
+ /**
18
+ * Displays an image from a bin record or a fallback if the given imageRef is not valid or if the image can't be found.
19
+ */
20
+ export declare const RecordImage: ({ imageRef, fallbackComponent, imgProps, }: RecordImageProps) => JSX.Element;