@j2inn/fin5-ui-utils 0.0.4 → 0.0.5-beta.1
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.
- package/dist/fantomProps/createFin5Props/index.d.ts +12 -0
- package/dist/fantomProps/createFin5Props/index.js +147 -0
- package/dist/fantomProps/createFin5Props/index.js.map +1 -0
- package/dist/fantomProps/createFin5Props/runCreateFin5Props.d.ts +2 -0
- package/dist/fantomProps/createFin5Props/runCreateFin5Props.js +17 -0
- package/dist/fantomProps/createFin5Props/runCreateFin5Props.js.map +1 -0
- package/dist/fantomProps/fantomPropsToObject.js +3 -0
- package/dist/fantomProps/fantomPropsToObject.js.map +1 -1
- package/dist/fantomProps/generateJsonFromFantomPropsFile.js +3 -0
- package/dist/fantomProps/generateJsonFromFantomPropsFile.js.map +1 -1
- package/dist/fantomProps/localePropsToJson.js +3 -0
- package/dist/fantomProps/localePropsToJson.js.map +1 -1
- package/dist/fantomProps/readFantomPropsFile.js +3 -0
- package/dist/fantomProps/readFantomPropsFile.js.map +1 -1
- package/dist/fin5Top/fin5Top.js +3 -0
- package/dist/fin5Top/fin5Top.js.map +1 -1
- package/dist/fin5Top/getFin5BinUrl.js +3 -0
- package/dist/fin5Top/getFin5BinUrl.js.map +1 -1
- package/dist/fin5Top/openFin5Alarm.js +5 -2
- package/dist/fin5Top/openFin5Alarm.js.map +1 -1
- package/dist/fin5Top/openFin5Historian.js +5 -2
- package/dist/fin5Top/openFin5Historian.js.map +1 -1
- package/dist/fin5Top/useFin5AppURLHashParameter.d.ts +7 -0
- package/dist/fin5Top/useFin5AppURLHashParameter.js +72 -0
- package/dist/fin5Top/useFin5AppURLHashParameter.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/react/app/Fin5AppContainer.d.ts +36 -0
- package/dist/react/app/Fin5AppContainer.jsx +102 -0
- package/dist/react/app/Fin5AppContainer.jsx.map +1 -0
- package/dist/react/app/Fin5AppRootStore.d.ts +38 -0
- package/dist/react/app/Fin5AppRootStore.js +66 -0
- package/dist/react/app/Fin5AppRootStore.js.map +1 -0
- package/dist/react/components/ErrorBoundary.d.ts +57 -0
- package/dist/react/components/ErrorBoundary.jsx +177 -0
- package/dist/react/components/ErrorBoundary.jsx.map +1 -0
- package/dist/react/components/Loader.d.ts +9 -0
- package/dist/react/components/Loader.jsx +18 -0
- package/dist/react/components/Loader.jsx.map +1 -0
- package/dist/react/components/LoadingSpinner.jsx +3 -0
- package/dist/react/components/LoadingSpinner.jsx.map +1 -1
- package/dist/react/components/navigation/BasicLayout.jsx +3 -0
- package/dist/react/components/navigation/BasicLayout.jsx.map +1 -1
- package/dist/react/components/navigation/MenuPage.jsx +3 -0
- package/dist/react/components/navigation/MenuPage.jsx.map +1 -1
- package/dist/react/components/navigation/Router.jsx +3 -0
- package/dist/react/components/navigation/Router.jsx.map +1 -1
- package/dist_es/fantomProps/createFin5Props/index.d.ts +12 -0
- package/dist_es/fantomProps/createFin5Props/index.js +141 -0
- package/dist_es/fantomProps/createFin5Props/index.js.map +1 -0
- package/dist_es/fantomProps/createFin5Props/runCreateFin5Props.d.ts +2 -0
- package/dist_es/fantomProps/createFin5Props/runCreateFin5Props.js +12 -0
- package/dist_es/fantomProps/createFin5Props/runCreateFin5Props.js.map +1 -0
- package/dist_es/fantomProps/fantomPropsToObject.js +3 -0
- package/dist_es/fantomProps/fantomPropsToObject.js.map +1 -1
- package/dist_es/fantomProps/generateJsonFromFantomPropsFile.js +3 -0
- package/dist_es/fantomProps/generateJsonFromFantomPropsFile.js.map +1 -1
- package/dist_es/fantomProps/localePropsToJson.js +3 -0
- package/dist_es/fantomProps/localePropsToJson.js.map +1 -1
- package/dist_es/fantomProps/readFantomPropsFile.js +3 -0
- package/dist_es/fantomProps/readFantomPropsFile.js.map +1 -1
- package/dist_es/fin5Top/fin5Top.js +3 -0
- package/dist_es/fin5Top/fin5Top.js.map +1 -1
- package/dist_es/fin5Top/getFin5BinUrl.js +3 -0
- package/dist_es/fin5Top/getFin5BinUrl.js.map +1 -1
- package/dist_es/fin5Top/openFin5Alarm.js +3 -0
- package/dist_es/fin5Top/openFin5Alarm.js.map +1 -1
- package/dist_es/fin5Top/openFin5Historian.js +3 -0
- package/dist_es/fin5Top/openFin5Historian.js.map +1 -1
- package/dist_es/fin5Top/useFin5AppURLHashParameter.d.ts +7 -0
- package/dist_es/fin5Top/useFin5AppURLHashParameter.js +68 -0
- package/dist_es/fin5Top/useFin5AppURLHashParameter.js.map +1 -0
- package/dist_es/index.d.ts +6 -0
- package/dist_es/index.js +12 -0
- package/dist_es/index.js.map +1 -1
- package/dist_es/react/app/Fin5AppContainer.d.ts +36 -0
- package/dist_es/react/app/Fin5AppContainer.jsx +73 -0
- package/dist_es/react/app/Fin5AppContainer.jsx.map +1 -0
- package/dist_es/react/app/Fin5AppRootStore.d.ts +38 -0
- package/dist_es/react/app/Fin5AppRootStore.js +62 -0
- package/dist_es/react/app/Fin5AppRootStore.js.map +1 -0
- package/dist_es/react/components/ErrorBoundary.d.ts +57 -0
- package/dist_es/react/components/ErrorBoundary.jsx +150 -0
- package/dist_es/react/components/ErrorBoundary.jsx.map +1 -0
- package/dist_es/react/components/Loader.d.ts +9 -0
- package/dist_es/react/components/Loader.jsx +13 -0
- package/dist_es/react/components/Loader.jsx.map +1 -0
- package/dist_es/react/components/LoadingSpinner.jsx +3 -0
- package/dist_es/react/components/LoadingSpinner.jsx.map +1 -1
- package/dist_es/react/components/navigation/BasicLayout.jsx +3 -0
- package/dist_es/react/components/navigation/BasicLayout.jsx.map +1 -1
- package/dist_es/react/components/navigation/MenuPage.jsx +3 -0
- package/dist_es/react/components/navigation/MenuPage.jsx.map +1 -1
- package/dist_es/react/components/navigation/Router.jsx +3 -0
- package/dist_es/react/components/navigation/Router.jsx.map +1 -1
- package/package.json +20 -10
|
@@ -0,0 +1,102 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
29
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
30
|
+
};
|
|
31
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
|
+
exports.Fin5AppContainer = void 0;
|
|
33
|
+
const react_1 = __importStar(require("react"));
|
|
34
|
+
const app_1 = require("@j2inn/app");
|
|
35
|
+
const mobx_react_lite_1 = require("mobx-react-lite");
|
|
36
|
+
const Fin5AppRootStore_1 = require("./Fin5AppRootStore");
|
|
37
|
+
const haystack_nclient_1 = require("haystack-nclient");
|
|
38
|
+
const haystack_react_1 = require("haystack-react");
|
|
39
|
+
const utils_1 = require("@j2inn/utils");
|
|
40
|
+
const react_jss_1 = require("react-jss");
|
|
41
|
+
const ui_1 = require("@j2inn/ui");
|
|
42
|
+
const fin5Top_1 = require("../../fin5Top/fin5Top");
|
|
43
|
+
const useFin5AppURLHashParameter_1 = require("../../fin5Top/useFin5AppURLHashParameter");
|
|
44
|
+
const haystack_core_1 = require("haystack-core");
|
|
45
|
+
const ErrorBoundary_1 = require("../components/ErrorBoundary");
|
|
46
|
+
const Loader_1 = __importDefault(require("../components/Loader"));
|
|
47
|
+
/**
|
|
48
|
+
* Creates a basic application container environment to run a view in FIN5.
|
|
49
|
+
*/
|
|
50
|
+
exports.Fin5AppContainer = (0, mobx_react_lite_1.observer)(({ children, appStore, client, project, theme = (0, ui_1.GenerateTheme)(ui_1.DEFAULT_THEME).light, }) => {
|
|
51
|
+
const [loading, setLoading] = (0, react_1.useState)(true);
|
|
52
|
+
const [loadingi18n, setLoadingi18n] = (0, react_1.useState)(true);
|
|
53
|
+
const rootStoreRef = (0, react_1.useRef)(null);
|
|
54
|
+
const rootStore = rootStoreRef.current ??
|
|
55
|
+
(rootStoreRef.current = new Fin5AppRootStore_1.Fin5AppRootStore());
|
|
56
|
+
const [hashProjName] = (0, useFin5AppURLHashParameter_1.useFin5AppURLHashParameter)('projectName');
|
|
57
|
+
const containerProject = project || hashProjName || fin5Top_1.fin5Top?.finstack?.projectName || '';
|
|
58
|
+
const locale = fin5Top_1.fin5Top?.languageManager?.currentLang ?? navigator?.language;
|
|
59
|
+
rootStore.locale = locale;
|
|
60
|
+
if (!rootStore.allLocales.includes(locale)) {
|
|
61
|
+
rootStore.allLocales.push(locale);
|
|
62
|
+
}
|
|
63
|
+
const target = fin5Top_1.fin5Top?.app?.TargetRef?.() || '';
|
|
64
|
+
rootStore.target = target ? haystack_core_1.HRef.make(target).value : '';
|
|
65
|
+
const getClient = () => client ??
|
|
66
|
+
new haystack_nclient_1.Client({
|
|
67
|
+
base: new URL(window.location.href),
|
|
68
|
+
project: containerProject,
|
|
69
|
+
options: { headers: { accept: 'text/zinc' } },
|
|
70
|
+
});
|
|
71
|
+
const [containerClient, setContainerClient] = (0, react_1.useState)(getClient);
|
|
72
|
+
(0, react_1.useEffect)(() => {
|
|
73
|
+
setLoading(true);
|
|
74
|
+
const newClient = getClient();
|
|
75
|
+
setContainerClient(newClient);
|
|
76
|
+
// Load everything network wise before we load
|
|
77
|
+
// the application.
|
|
78
|
+
Promise.all([
|
|
79
|
+
newClient.ext.eval('finGetCurrentUser()'),
|
|
80
|
+
newClient.ext.loadDefs(),
|
|
81
|
+
]).then(([userGrid]) => {
|
|
82
|
+
rootStore.currentUser = userGrid.first;
|
|
83
|
+
setLoading(false);
|
|
84
|
+
});
|
|
85
|
+
}, [client, containerProject]);
|
|
86
|
+
return (<app_1.AppRootStoreContext.Provider value={rootStore}>
|
|
87
|
+
<app_1.AppStoreContext.Provider value={appStore}>
|
|
88
|
+
<haystack_react_1.ClientContext.Provider value={containerClient}>
|
|
89
|
+
<utils_1.I18NProvider locale={locale} setLoading={setLoadingi18n}>
|
|
90
|
+
<react_jss_1.ThemeProvider theme={theme}>
|
|
91
|
+
<Loader_1.default loading={loading || loadingi18n}>
|
|
92
|
+
<ErrorBoundary_1.ErrorBoundary mode={"global" /* ErrorBoundaryMode.global */}>
|
|
93
|
+
{children}
|
|
94
|
+
</ErrorBoundary_1.ErrorBoundary>
|
|
95
|
+
</Loader_1.default>
|
|
96
|
+
</react_jss_1.ThemeProvider>
|
|
97
|
+
</utils_1.I18NProvider>
|
|
98
|
+
</haystack_react_1.ClientContext.Provider>
|
|
99
|
+
</app_1.AppStoreContext.Provider>
|
|
100
|
+
</app_1.AppRootStoreContext.Provider>);
|
|
101
|
+
});
|
|
102
|
+
//# 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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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { AppRootStore, App, AppView, CustomHistory, AppAccessLevel } 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
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2022, J2 Innovations. All Rights Reserved
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Fin5AppRootStore = void 0;
|
|
7
|
+
const mobx_1 = require("mobx");
|
|
8
|
+
/**
|
|
9
|
+
* An application root store for use with FIN5.
|
|
10
|
+
*/
|
|
11
|
+
class Fin5AppRootStore {
|
|
12
|
+
constructor() {
|
|
13
|
+
(0, mobx_1.makeAutoObservable)(this, {
|
|
14
|
+
currentUser: mobx_1.observable.ref,
|
|
15
|
+
apps: mobx_1.observable.ref,
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
get app() {
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
get sidebar() {
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
apps = [];
|
|
25
|
+
project = '';
|
|
26
|
+
sidebarOpen = false;
|
|
27
|
+
open() { }
|
|
28
|
+
openSidebar() { }
|
|
29
|
+
locale = '';
|
|
30
|
+
allLocales = [];
|
|
31
|
+
target = '';
|
|
32
|
+
targetSidebar = '';
|
|
33
|
+
history = {
|
|
34
|
+
state: {},
|
|
35
|
+
pushState: (state) => {
|
|
36
|
+
this.history.state = state;
|
|
37
|
+
},
|
|
38
|
+
replaceState: (state) => {
|
|
39
|
+
this.history.state = state;
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
historySidebar = {
|
|
43
|
+
state: {},
|
|
44
|
+
pushState: (state) => {
|
|
45
|
+
this.historySidebar.state = state;
|
|
46
|
+
},
|
|
47
|
+
replaceState: (state) => {
|
|
48
|
+
this.historySidebar.state = state;
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
currentUser;
|
|
52
|
+
postAppMessage() { }
|
|
53
|
+
registerQuicklinks() { }
|
|
54
|
+
unregisterQuicklinks() { }
|
|
55
|
+
registerSidebars() { }
|
|
56
|
+
unregisterSidebars() { }
|
|
57
|
+
hasAppAccess = (_, access) => {
|
|
58
|
+
// For FIN5, an operator only has readonly app level access.
|
|
59
|
+
const user = this.currentUser;
|
|
60
|
+
return user?.get('userRole')?.value === 'op'
|
|
61
|
+
? access === 'read'
|
|
62
|
+
: !!user;
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
exports.Fin5AppRootStore = Fin5AppRootStore;
|
|
66
|
+
//# sourceMappingURL=Fin5AppRootStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Fin5AppRootStore.js","sourceRoot":"","sources":["../../../src/react/app/Fin5AppRootStore.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAYH,+BAAqD;AAErD;;GAEG;AACH,MAAa,gBAAgB;IAC5B;QACC,IAAA,yBAAkB,EAAC,IAAI,EAAE;YACxB,WAAW,EAAE,iBAAU,CAAC,GAAG;YAC3B,IAAI,EAAE,iBAAU,CAAC,GAAG;SACpB,CAAC,CAAA;IACH,CAAC;IAED,IAAI,GAAG;QAGN,OAAO,SAAS,CAAA;IACjB,CAAC;IAED,IAAI,OAAO;QAGV,OAAO,SAAS,CAAA;IACjB,CAAC;IAEQ,IAAI,GAAU,EAAE,CAAA;IAEzB,OAAO,GAAG,EAAE,CAAA;IAEZ,WAAW,GAAG,KAAK,CAAA;IAEnB,IAAI,KAAU,CAAC;IAEf,WAAW,KAAU,CAAC;IAEtB,MAAM,GAAG,EAAE,CAAA;IAEX,UAAU,GAAa,EAAE,CAAA;IAEzB,MAAM,GAAG,EAAE,CAAA;IAEX,aAAa,GAAG,EAAE,CAAA;IAET,OAAO,GAAkB;QACjC,KAAK,EAAE,EAAE;QACT,SAAS,EAAE,CAAC,KAA8B,EAAQ,EAAE;YACnD,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAA;QAC3B,CAAC;QACD,YAAY,EAAE,CAAC,KAA8B,EAAQ,EAAE;YACtD,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAA;QAC3B,CAAC;KACD,CAAA;IAEQ,cAAc,GAAkB;QACxC,KAAK,EAAE,EAAE;QACT,SAAS,EAAE,CAAC,KAA8B,EAAQ,EAAE;YACnD,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,KAAK,CAAA;QAClC,CAAC;QACD,YAAY,EAAE,CAAC,KAA8B,EAAQ,EAAE;YACtD,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,KAAK,CAAA;QAClC,CAAC;KACD,CAAA;IAED,WAAW,CAAmB;IAE9B,cAAc,KAAU,CAAC;IAEzB,kBAAkB,KAAU,CAAC;IAE7B,oBAAoB,KAAU,CAAC;IAE/B,gBAAgB,KAAU,CAAC;IAE3B,kBAAkB,KAAU,CAAC;IAE7B,YAAY,GAAG,CAAC,CAAS,EAAE,MAAsB,EAAW,EAAE;QAC7D,4DAA4D;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAA;QAE7B,OAAO,IAAI,EAAE,GAAG,CAAO,UAAU,CAAC,EAAE,KAAK,KAAK,IAAI;YACjD,CAAC,CAAC,MAAM,KAAK,MAAM;YACnB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACV,CAAC,CAAA;CACD;AA9ED,4CA8EC"}
|
|
@@ -0,0 +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 {};
|
|
@@ -0,0 +1,177 @@
|
|
|
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 (<div className={classes.errorDetails}>
|
|
97
|
+
<ui_1.Checkbox onChange={(e) => {
|
|
98
|
+
setShowDetails(e.target.checked);
|
|
99
|
+
}} defaultChecked={showDetails} value={showDetails}>
|
|
100
|
+
{get(i18n, 'finUi.errorBoundary.showDetails', 'Show details')}
|
|
101
|
+
</ui_1.Checkbox>
|
|
102
|
+
{showDetails && (<>
|
|
103
|
+
<pre>{error.stack}</pre>
|
|
104
|
+
<ui_1.Container horizontal middle right>
|
|
105
|
+
<ui_1.Button onClick={copyToClipboard}>
|
|
106
|
+
{get(i18n, 'finUi.errorBoundary.copyToClipboard', 'Copy to clipboard')}
|
|
107
|
+
</ui_1.Button>
|
|
108
|
+
</ui_1.Container>
|
|
109
|
+
</>)}
|
|
110
|
+
</div>);
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* The inner error boundary component. This is required so
|
|
114
|
+
* we can use hooks that can't be used in a normal class component.
|
|
115
|
+
*/
|
|
116
|
+
const ErrorBoundaryInner = ({ error, mode, appId, showReportDialog, }) => {
|
|
117
|
+
const i18n = (0, utils_1.usei18n)();
|
|
118
|
+
const [showDetails, setShowDetails] = (0, react_1.useState)(true);
|
|
119
|
+
const classes = boundryStyles();
|
|
120
|
+
const title = `finUi.errorBoundary.${mode}.title`;
|
|
121
|
+
const appName = `${appId}.name`;
|
|
122
|
+
const header = get(i18n, title, mode === 'global' ? 'Error' : 'Application error') +
|
|
123
|
+
(appId ? `: ${get(i18n, appName, appName)}` : '');
|
|
124
|
+
const continueMsg = get(i18n, `finUi.errorBoundary.${mode}.continue`, mode === 'global'
|
|
125
|
+
? 'To continue, please reload or navigate to the home page.'
|
|
126
|
+
: 'To continue, please reload, navigate to the home page or another application.');
|
|
127
|
+
return (<ui_1.Container vertical top center className={classes.errorBoundry}>
|
|
128
|
+
<div className={classes.boundryContainer} style={{ gap: `1rem` }}>
|
|
129
|
+
<h1>{header}</h1>
|
|
130
|
+
|
|
131
|
+
<h3>
|
|
132
|
+
{get(i18n, 'finUi.errorBoundary.description', 'The application has encountered an error when trying to display some content.')}
|
|
133
|
+
</h3>
|
|
134
|
+
|
|
135
|
+
<p>{continueMsg}</p>
|
|
136
|
+
|
|
137
|
+
<div>
|
|
138
|
+
<ErrorDetails showDetails={showDetails} setShowDetails={setShowDetails} error={error} appId={appId}/>
|
|
139
|
+
</div>
|
|
140
|
+
|
|
141
|
+
<ui_1.Divider />
|
|
142
|
+
|
|
143
|
+
<ui_1.Container horizontal middle left style={{ gap: `1rem` }}>
|
|
144
|
+
<ui_1.Button onClick={() => window.location.reload()} type='primary'>
|
|
145
|
+
{get(i18n, 'finUi.common.reload', 'Reload')}
|
|
146
|
+
</ui_1.Button>
|
|
147
|
+
<ui_1.Button onClick={() => window.location.assign('/')}>
|
|
148
|
+
{get(i18n, 'finUi.common.home', 'Home')}
|
|
149
|
+
</ui_1.Button>
|
|
150
|
+
</ui_1.Container>
|
|
151
|
+
|
|
152
|
+
{showReportDialog && (<div style={{ marginTop: `0.5rem` }}>
|
|
153
|
+
<small onClick={showReportDialog}>
|
|
154
|
+
{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.')}
|
|
155
|
+
</small>
|
|
156
|
+
</div>)}
|
|
157
|
+
</div>
|
|
158
|
+
</ui_1.Container>);
|
|
159
|
+
};
|
|
160
|
+
/**
|
|
161
|
+
* A common error boundary used to capture errors.
|
|
162
|
+
*/
|
|
163
|
+
class ErrorBoundary extends react_1.default.Component {
|
|
164
|
+
state = {};
|
|
165
|
+
componentDidCatch(error, info) {
|
|
166
|
+
this.props.onError?.(error);
|
|
167
|
+
console.error(error, info);
|
|
168
|
+
}
|
|
169
|
+
static getDerivedStateFromError(error) {
|
|
170
|
+
return { error };
|
|
171
|
+
}
|
|
172
|
+
render() {
|
|
173
|
+
return this.state.error ? (<ErrorBoundaryInner error={this.state.error} mode={this.props.mode} appId={this.props.appId} showReportDialog={this.props.showReportDialog}/>) : (this.props.children);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
exports.ErrorBoundary = ErrorBoundary;
|
|
177
|
+
//# sourceMappingURL=ErrorBoundary.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorBoundary.jsx","sourceRoot":"","sources":["../../../src/react/components/ErrorBoundary.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +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 = __importDefault(require("./LoadingSpinner"));
|
|
11
|
+
/**
|
|
12
|
+
* A simple UI loader.
|
|
13
|
+
*/
|
|
14
|
+
const Loader = ({ loading, children, }) => {
|
|
15
|
+
return loading ? <LoadingSpinner_1.default /> : <>{children}</>;
|
|
16
|
+
};
|
|
17
|
+
exports.default = Loader;
|
|
18
|
+
//# sourceMappingURL=Loader.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Loader.jsx","sourceRoot":"","sources":["../../../src/react/components/Loader.tsx"],"names":[],"mappings":";AAAA;;GAEG;;;;;AAEH,kDAAyB;AACzB,sEAA6C;AAE7C;;GAEG;AACH,MAAM,MAAM,GAAG,CAAC,EACf,OAAO,EACP,QAAQ,GAIR,EAAe,EAAE;IACjB,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,wBAAc,CAAC,AAAD,EAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAA;AACtD,CAAC,CAAA;AAED,kBAAe,MAAM,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoadingSpinner.jsx","sourceRoot":"","sources":["../../../src/react/components/LoadingSpinner.tsx"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"LoadingSpinner.jsx","sourceRoot":"","sources":["../../../src/react/components/LoadingSpinner.tsx"],"names":[],"mappings":";AAAA;;GAEG;;;;;AAEH,kCAAgC;AAChC,kDAAyB;AACzB,yCAA2C;AAE3C,MAAM,SAAS,GAAG,IAAA,2BAAe,EAAC,GAAG,EAAE,CAAC,CAAC;IACxC,SAAS,EAAE;QACV,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;QACxB,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,MAAM;KACb;CACD,CAAC,CAAC,CAAA;AAEH,MAAM,cAAc,GAAa,GAAG,EAAE;IACrC,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAC3B,OAAO,CACN,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CACjC;GAAA,CAAC,SAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,SAAI,CAC1B;EAAA,EAAE,GAAG,CAAC,CACN,CAAA;AACF,CAAC,CAAA;AAED,kBAAe,cAAc,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BasicLayout.jsx","sourceRoot":"","sources":["../../../../src/react/components/navigation/BasicLayout.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"BasicLayout.jsx","sourceRoot":"","sources":["../../../../src/react/components/navigation/BasicLayout.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuPage.jsx","sourceRoot":"","sources":["../../../../src/react/components/navigation/MenuPage.tsx"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"MenuPage.jsx","sourceRoot":"","sources":["../../../../src/react/components/navigation/MenuPage.tsx"],"names":[],"mappings":";AAAA;;GAEG;;;AAqBH;;;;GAIG;AACH,SAAgB,cAAc,CAC7B,KAAU,EACV,IAAa;IAEb,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC,IAAI,CACpC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAC7C,CAAA;AACF,CAAC;AAPD,wCAOC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAqB,KAAU;IAChE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAS,CAAC,CAAC,CAAA;AAC1D,CAAC;AAFD,gDAEC;AAED;;;;GAIG;AACH,SAAgB,cAAc,CAAqB,IAAO;IACzD,IAAI,IAAI,CAAC,QAAQ,EAAE;QAClB,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CACnB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,OAAY,CAAC,CAAC,CAC/D,CAAA;KACD;SAAM;QACN,OAAO,CAAC,IAAI,CAAC,CAAA;KACb;AACF,CAAC;AARD,wCAQC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Router.jsx","sourceRoot":"","sources":["../../../../src/react/components/navigation/Router.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"Router.jsx","sourceRoot":"","sources":["../../../../src/react/components/navigation/Router.tsx"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,+CAMc;AACd,uEAA8C;AAC9C,yCAAqD;AASrD;;GAEG;AACH,SAAgB,MAAM,CAAqB,EAC1C,KAAK,GAAG,EAAE,EACV,WAAW,EACX,YAAY,EACZ,iBAAiB,GACkB;IACnC,MAAM,IAAI,GAAG,IAAA,eAAO,EACnB,GAAG,EAAE,CAAC,IAAA,yBAAc,EAAC,KAAK,EAAE,WAAW,CAAC,EACxC,CAAC,KAAK,EAAE,WAAW,CAAC,CACpB,CAAA;IAED,IAAA,iBAAS,EAAC,GAAG,EAAE;QACd,YAAY,EAAE,CAAC,IAAI,CAAC,CAAA;IACrB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAEV,OAAO,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CACxB,CAAC,gBAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,wBAAc,CAAC,AAAD,EAAG,CAAC,CACtC;GAAA,CAAC,eAAK,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAClD;EAAA,EAAE,gBAAQ,CAAC,CACX,CAAC,CAAC,CAAC,CACH,iBAAiB,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,CAAE,eAAc,EAAE,GAAG,CAAC,CAC5D,CAAA;AACF,CAAC;AAtBD,wBAsBC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create the FIN5 language prop files from the locale JSON files.
|
|
3
|
+
*
|
|
4
|
+
* This function assumes the app directory has a sub-directory named `locale` that contains
|
|
5
|
+
* the language files in a JSON format (i.e. `en.json`). It also assumes there's a `lib` directory
|
|
6
|
+
* containing the defs for the app. This is used to look up the app name that's used to prefix the
|
|
7
|
+
* entries in the properties file.
|
|
8
|
+
*
|
|
9
|
+
* @param appDir The directory that contains the application.
|
|
10
|
+
* @param propsDir The directory the properties file will output too.
|
|
11
|
+
*/
|
|
12
|
+
export default function createFin5Props(appDir: string, propsDir: string): Promise<void>;
|