@j2inn/fin5-ui-utils 8.1.1 → 8.1.2-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/README.md +5 -5
- package/dist/fantomProps/createFin5Props/index.d.ts +12 -12
- package/dist/fantomProps/createFin5Props/index.js +146 -146
- package/dist/fantomProps/createFin5Props/runCreateFin5Props.d.ts +2 -2
- package/dist/fantomProps/createFin5Props/runCreateFin5Props.js +20 -20
- package/dist/fantomProps/fantomPropsToObject.d.ts +8 -8
- package/dist/fantomProps/fantomPropsToObject.js +183 -183
- package/dist/fantomProps/generateJsonFromFantomPropsFile.d.ts +4 -4
- package/dist/fantomProps/generateJsonFromFantomPropsFile.js +41 -41
- package/dist/fantomProps/localePropsToJson.d.ts +1 -1
- package/dist/fantomProps/localePropsToJson.js +50 -50
- package/dist/fantomProps/readFantomPropsFile.d.ts +5 -5
- package/dist/fantomProps/readFantomPropsFile.js +65 -65
- package/dist/fin5Top/fin5FileUpload.d.ts +24 -24
- package/dist/fin5Top/fin5FileUpload.js +51 -51
- package/dist/fin5Top/fin5Top.d.ts +175 -165
- package/dist/fin5Top/fin5Top.js +61 -61
- package/dist/fin5Top/fin5Top.js.map +1 -1
- package/dist/fin5Top/finEdge2Cloud.d.ts +6 -6
- package/dist/fin5Top/finEdge2Cloud.js +15 -15
- package/dist/fin5Top/getFin5BinUrl.d.ts +2 -2
- package/dist/fin5Top/getFin5BinUrl.js +9 -9
- package/dist/fin5Top/openFin5Alarm.d.ts +22 -22
- package/dist/fin5Top/openFin5Alarm.js +23 -23
- package/dist/fin5Top/openFin5Historian.d.ts +3 -3
- package/dist/fin5Top/openFin5Historian.js +19 -19
- package/dist/fin5Top/useFin5AppURLHashParameter.d.ts +18 -18
- package/dist/fin5Top/useFin5AppURLHashParameter.js +133 -133
- package/dist/index.d.ts +35 -35
- package/dist/index.js +69 -69
- package/dist/jobs/jobUtils.d.ts +14 -14
- package/dist/jobs/jobUtils.js +15 -15
- package/dist/react/app/Fin5AppContainer.d.ts +36 -36
- package/dist/react/app/Fin5AppContainer.js +145 -145
- package/dist/react/app/Fin5AppRootStore.d.ts +40 -40
- package/dist/react/app/Fin5AppRootStore.js +90 -90
- package/dist/react/components/ErrorBoundary.d.ts +57 -57
- package/dist/react/components/ErrorBoundary.js +150 -150
- package/dist/react/components/ErrorDisplayer.d.ts +19 -19
- package/dist/react/components/ErrorDisplayer.js +36 -36
- package/dist/react/components/Loader.d.ts +9 -9
- package/dist/react/components/Loader.js +17 -17
- package/dist/react/components/LoadingSpinner.d.ts +2 -2
- package/dist/react/components/LoadingSpinner.js +27 -27
- package/dist/react/components/RecordImage.d.ts +20 -20
- package/dist/react/components/RecordImage.js +51 -51
- package/dist/react/components/charts/QRCode.d.ts +25 -25
- package/dist/react/components/charts/QRCode.js +82 -82
- package/dist/react/components/charts/line-bar/Chart.d.ts +166 -166
- package/dist/react/components/charts/line-bar/Chart.js +442 -442
- package/dist/react/components/charts/line-bar/HGridChart.d.ts +58 -58
- package/dist/react/components/charts/line-bar/HGridChart.js +285 -285
- package/dist/react/components/charts/pie/PieChart.d.ts +94 -94
- package/dist/react/components/charts/pie/PieChart.js +204 -204
- package/dist/react/components/charts/pie/SimplePieChart.d.ts +21 -21
- package/dist/react/components/charts/pie/SimplePieChart.js +55 -55
- package/dist/react/components/graphics/GraphicViewer.d.ts +10 -10
- package/dist/react/components/graphics/GraphicViewer.js +29 -29
- package/dist/react/components/graphics/GraphicsTabViewer.d.ts +17 -17
- package/dist/react/components/graphics/GraphicsTabViewer.js +90 -90
- package/dist/react/components/makeCustomElement.d.ts +16 -16
- package/dist/react/components/makeCustomElement.js +150 -150
- package/dist/react/components/navigation/BasicLayout.d.ts +41 -41
- package/dist/react/components/navigation/BasicLayout.js +155 -155
- package/dist/react/components/navigation/HeaderSiderLayout.d.ts +13 -13
- package/dist/react/components/navigation/HeaderSiderLayout.js +110 -110
- package/dist/react/components/navigation/MenuPage.d.ts +37 -37
- package/dist/react/components/navigation/MenuPage.js +36 -36
- package/dist/react/components/navigation/MenuTrigger.d.ts +9 -9
- package/dist/react/components/navigation/MenuTrigger.js +33 -33
- package/dist/react/components/navigation/ReactRouterHeaderSiderLayout.d.ts +11 -11
- package/dist/react/components/navigation/ReactRouterHeaderSiderLayout.js +25 -25
- package/dist/react/components/navigation/ReactRouterLayout.d.ts +46 -46
- package/dist/react/components/navigation/ReactRouterLayout.js +132 -132
- package/dist/react/components/navigation/customRouting/Router.d.ts +12 -12
- package/dist/react/components/navigation/customRouting/Router.js +45 -45
- package/dist/react/components/navigation/customRouting/RouterLayout.d.ts +11 -11
- package/dist/react/components/navigation/customRouting/RouterLayout.js +61 -61
- package/dist/react/components/resolvable/configurationForm/ConfigurationForm.d.ts +27 -27
- package/dist/react/components/resolvable/configurationForm/ConfigurationForm.js +95 -95
- package/dist/react/components/resolvable/configurationForm/ConfigurationFormEntry.d.ts +16 -16
- package/dist/react/components/resolvable/configurationForm/ConfigurationFormEntry.js +88 -88
- package/dist/react/components/resolvable/configurationForm/getSectionDefault.d.ts +16 -16
- package/dist/react/components/resolvable/configurationForm/getSectionDefault.js +99 -99
- package/dist/react/hooks/useFin5BinUrl.d.ts +6 -6
- package/dist/react/hooks/useFin5BinUrl.js +15 -15
- package/dist/react/hooks/useFin5ColorScheme.d.ts +2 -2
- package/dist/react/hooks/useFin5ColorScheme.js +56 -56
- package/dist/react/hooks/useScreenSize.d.ts +7 -7
- package/dist/react/hooks/useScreenSize.js +31 -31
- package/dist_es/fantomProps/createFin5Props/index.d.ts +12 -12
- package/dist_es/fantomProps/createFin5Props/index.js +140 -140
- package/dist_es/fantomProps/createFin5Props/runCreateFin5Props.d.ts +2 -2
- package/dist_es/fantomProps/createFin5Props/runCreateFin5Props.js +15 -15
- package/dist_es/fantomProps/fantomPropsToObject.d.ts +8 -8
- package/dist_es/fantomProps/fantomPropsToObject.js +178 -178
- package/dist_es/fantomProps/generateJsonFromFantomPropsFile.d.ts +4 -4
- package/dist_es/fantomProps/generateJsonFromFantomPropsFile.js +12 -12
- package/dist_es/fantomProps/localePropsToJson.d.ts +1 -1
- package/dist_es/fantomProps/localePropsToJson.js +21 -21
- package/dist_es/fantomProps/readFantomPropsFile.d.ts +5 -5
- package/dist_es/fantomProps/readFantomPropsFile.js +39 -39
- package/dist_es/fin5Top/fin5FileUpload.d.ts +24 -24
- package/dist_es/fin5Top/fin5FileUpload.js +47 -47
- package/dist_es/fin5Top/fin5Top.d.ts +175 -165
- package/dist_es/fin5Top/fin5Top.js +57 -57
- package/dist_es/fin5Top/fin5Top.js.map +1 -1
- package/dist_es/fin5Top/finEdge2Cloud.d.ts +6 -6
- package/dist_es/fin5Top/finEdge2Cloud.js +11 -11
- package/dist_es/fin5Top/getFin5BinUrl.d.ts +2 -2
- package/dist_es/fin5Top/getFin5BinUrl.js +5 -5
- package/dist_es/fin5Top/openFin5Alarm.d.ts +22 -22
- package/dist_es/fin5Top/openFin5Alarm.js +19 -19
- package/dist_es/fin5Top/openFin5Historian.d.ts +3 -3
- package/dist_es/fin5Top/openFin5Historian.js +15 -15
- package/dist_es/fin5Top/useFin5AppURLHashParameter.d.ts +18 -18
- package/dist_es/fin5Top/useFin5AppURLHashParameter.js +124 -124
- package/dist_es/index.d.ts +35 -35
- package/dist_es/index.js +53 -53
- package/dist_es/jobs/jobUtils.d.ts +14 -14
- package/dist_es/jobs/jobUtils.js +9 -9
- package/dist_es/react/app/Fin5AppContainer.d.ts +36 -36
- package/dist_es/react/app/Fin5AppContainer.js +116 -116
- package/dist_es/react/app/Fin5AppContainer.jsx +82 -0
- package/dist_es/react/app/Fin5AppContainer.jsx.map +1 -0
- package/dist_es/react/app/Fin5AppRootStore.d.ts +40 -40
- package/dist_es/react/app/Fin5AppRootStore.js +86 -86
- package/dist_es/react/components/ErrorBoundary.d.ts +57 -57
- package/dist_es/react/components/ErrorBoundary.js +123 -123
- package/dist_es/react/components/ErrorBoundary.jsx +150 -0
- package/dist_es/react/components/ErrorBoundary.jsx.map +1 -0
- package/dist_es/react/components/ErrorDisplayer.d.ts +19 -19
- package/dist_es/react/components/ErrorDisplayer.js +28 -28
- package/dist_es/react/components/ErrorDisplayer.jsx +36 -0
- package/dist_es/react/components/ErrorDisplayer.jsx.map +1 -0
- package/dist_es/react/components/Loader.d.ts +9 -9
- package/dist_es/react/components/Loader.js +12 -12
- 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.d.ts +2 -2
- package/dist_es/react/components/LoadingSpinner.js +20 -20
- package/dist_es/react/components/LoadingSpinner.jsx +22 -0
- package/dist_es/react/components/LoadingSpinner.jsx.map +1 -0
- package/dist_es/react/components/RecordImage.d.ts +20 -20
- package/dist_es/react/components/RecordImage.js +24 -24
- package/dist_es/react/components/charts/QRCode.d.ts +25 -25
- package/dist_es/react/components/charts/QRCode.js +52 -52
- package/dist_es/react/components/charts/line-bar/Chart.d.ts +166 -166
- package/dist_es/react/components/charts/line-bar/Chart.js +415 -415
- package/dist_es/react/components/charts/line-bar/HGridChart.d.ts +58 -58
- package/dist_es/react/components/charts/line-bar/HGridChart.js +250 -250
- package/dist_es/react/components/charts/line-bar/ZincGridChart.d.ts +12 -0
- package/dist_es/react/components/charts/line-bar/ZincGridChart.js +17 -0
- package/dist_es/react/components/charts/line-bar/ZincGridChart.js.map +1 -0
- package/dist_es/react/components/charts/pie/PieChart.d.ts +94 -94
- package/dist_es/react/components/charts/pie/PieChart.js +177 -177
- package/dist_es/react/components/charts/pie/SimplePieChart.d.ts +21 -21
- package/dist_es/react/components/charts/pie/SimplePieChart.js +25 -25
- package/dist_es/react/components/graphics/GraphicViewer.d.ts +10 -10
- package/dist_es/react/components/graphics/GraphicViewer.js +22 -22
- package/dist_es/react/components/graphics/GraphicViewer.jsx +23 -0
- package/dist_es/react/components/graphics/GraphicViewer.jsx.map +1 -0
- package/dist_es/react/components/graphics/GraphicsTabViewer.d.ts +17 -17
- package/dist_es/react/components/graphics/GraphicsTabViewer.js +60 -60
- package/dist_es/react/components/graphics/GraphicsTabViewer.jsx +63 -0
- package/dist_es/react/components/graphics/GraphicsTabViewer.jsx.map +1 -0
- package/dist_es/react/components/makeCustomElement.d.ts +16 -16
- package/dist_es/react/components/makeCustomElement.js +142 -142
- package/dist_es/react/components/navigation/BasicLayout.d.ts +41 -41
- package/dist_es/react/components/navigation/BasicLayout.js +124 -124
- package/dist_es/react/components/navigation/BasicLayout.jsx +133 -0
- package/dist_es/react/components/navigation/BasicLayout.jsx.map +1 -0
- package/dist_es/react/components/navigation/HeaderSiderLayout.d.ts +13 -13
- package/dist_es/react/components/navigation/HeaderSiderLayout.js +80 -80
- package/dist_es/react/components/navigation/MenuPage.d.ts +37 -37
- package/dist_es/react/components/navigation/MenuPage.js +30 -30
- package/dist_es/react/components/navigation/MenuPage.jsx +31 -0
- package/dist_es/react/components/navigation/MenuPage.jsx.map +1 -0
- package/dist_es/react/components/navigation/MenuTrigger.d.ts +9 -9
- package/dist_es/react/components/navigation/MenuTrigger.js +28 -28
- package/dist_es/react/components/navigation/ReactRouterHeaderSiderLayout.d.ts +11 -11
- package/dist_es/react/components/navigation/ReactRouterHeaderSiderLayout.js +18 -18
- package/dist_es/react/components/navigation/ReactRouterLayout.d.ts +46 -46
- package/dist_es/react/components/navigation/ReactRouterLayout.js +99 -99
- package/dist_es/react/components/navigation/Router.d.ts +12 -0
- package/dist_es/react/components/navigation/Router.js +19 -0
- package/dist_es/react/components/navigation/Router.js.map +1 -0
- package/dist_es/react/components/navigation/Router.jsx +19 -0
- package/dist_es/react/components/navigation/Router.jsx.map +1 -0
- package/dist_es/react/components/navigation/customRouting/Router.d.ts +12 -12
- package/dist_es/react/components/navigation/customRouting/Router.js +18 -18
- package/dist_es/react/components/navigation/customRouting/RouterLayout.d.ts +11 -11
- package/dist_es/react/components/navigation/customRouting/RouterLayout.js +34 -34
- package/dist_es/react/components/navigation/react-router/BasicLayout.d.ts +23 -0
- package/dist_es/react/components/navigation/react-router/BasicLayout.js +82 -0
- package/dist_es/react/components/navigation/react-router/BasicLayout.js.map +1 -0
- package/dist_es/react/components/navigation/react-router/ReactRouterBasicLayout.d.ts +24 -0
- package/dist_es/react/components/navigation/react-router/ReactRouterBasicLayout.js +82 -0
- package/dist_es/react/components/navigation/react-router/ReactRouterBasicLayout.js.map +1 -0
- package/dist_es/react/components/resolvable/configurationForm/ConfigurationForm.d.ts +27 -27
- package/dist_es/react/components/resolvable/configurationForm/ConfigurationForm.js +64 -64
- package/dist_es/react/components/resolvable/configurationForm/ConfigurationFormEntry.d.ts +16 -16
- package/dist_es/react/components/resolvable/configurationForm/ConfigurationFormEntry.js +58 -58
- package/dist_es/react/components/resolvable/configurationForm/getSectionDefault.d.ts +16 -16
- package/dist_es/react/components/resolvable/configurationForm/getSectionDefault.js +94 -94
- package/dist_es/react/hooks/useFin5BinUrl.d.ts +6 -6
- package/dist_es/react/hooks/useFin5BinUrl.js +11 -11
- package/dist_es/react/hooks/useFin5ColorScheme.d.ts +2 -2
- package/dist_es/react/hooks/useFin5ColorScheme.js +52 -52
- package/dist_es/react/hooks/useScreenSize.d.ts +7 -7
- package/dist_es/react/hooks/useScreenSize.js +27 -27
- package/package.json +1 -1
|
@@ -1,146 +1,146 @@
|
|
|
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_react_1 = require("@j2inn/app-react");
|
|
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
|
-
const PATH_PREFIX = 'finApp';
|
|
48
|
-
const getServiceUrl = ({ origin, path }) => `${origin}/${PATH_PREFIX}/api/${path}`;
|
|
49
|
-
const getOpUrl = ({ origin, project, op }) => `${origin}/api/${project}/${op}`;
|
|
50
|
-
const getHaystackServiceUrl = ({ origin, project, path, }) => `${origin}/${PATH_PREFIX}/api/haystack${project ? `/${project}` : ''}/${path}`;
|
|
51
|
-
const getHostServiceUrl = ({ origin, path, }) => `${origin}/${PATH_PREFIX}/api/host/${path}`;
|
|
52
|
-
/**
|
|
53
|
-
* Runtime type guard that checks whether a store instance
|
|
54
|
-
* exposes a boolean `initialized` flag.
|
|
55
|
-
*
|
|
56
|
-
* @param {AppStore | null | undefined} appStore - The store instance to test
|
|
57
|
-
* @returns {appStore is AppStore & { initialized: boolean }} True if `appStore` has a boolean `initialized` property
|
|
58
|
-
*
|
|
59
|
-
* @remarks
|
|
60
|
-
* To use the FINX onMessage feature, ensure the concrete store declares `initialized` ahead of time,
|
|
61
|
-
* and set to true when children components have fully rendered.
|
|
62
|
-
*/
|
|
63
|
-
function hasInitialized(appStore) {
|
|
64
|
-
return (!!appStore &&
|
|
65
|
-
'initialized' in appStore &&
|
|
66
|
-
typeof appStore.initialized === 'boolean');
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Creates a basic application container environment to run a view in FIN5.
|
|
70
|
-
*/
|
|
71
|
-
exports.Fin5AppContainer = (0, mobx_react_lite_1.observer)(({ children, appStore, client, project, theme = (0, ui_1.GenerateTheme)(ui_1.DEFAULT_THEME).light, }) => {
|
|
72
|
-
const [loading, setLoading] = (0, react_1.useState)(true);
|
|
73
|
-
const [loadingi18n, setLoadingi18n] = (0, react_1.useState)(true);
|
|
74
|
-
const rootStoreRef = (0, react_1.useRef)(null);
|
|
75
|
-
rootStoreRef.current ??= new Fin5AppRootStore_1.Fin5AppRootStore();
|
|
76
|
-
const rootStore = rootStoreRef.current;
|
|
77
|
-
const [hashProjName] = (0, useFin5AppURLHashParameter_1.useFin5AppURLHashParameter)('projectName');
|
|
78
|
-
const containerProject = project || hashProjName || fin5Top_1.fin5Top?.finstack?.projectName || '';
|
|
79
|
-
const locale = fin5Top_1.fin5Top?.languageManager?.currentLang ?? navigator?.language;
|
|
80
|
-
rootStore.locale = locale;
|
|
81
|
-
if (!rootStore.allLocales.includes(locale)) {
|
|
82
|
-
rootStore.allLocales.push(locale);
|
|
83
|
-
}
|
|
84
|
-
const target = fin5Top_1.fin5Top?.app?.TargetRef?.() || '';
|
|
85
|
-
rootStore.target = target ? haystack_core_1.HRef.make(target).value : '';
|
|
86
|
-
const initialized = hasInitialized(appStore)
|
|
87
|
-
? appStore.initialized
|
|
88
|
-
: false;
|
|
89
|
-
const getClient = () => client ??
|
|
90
|
-
new haystack_nclient_1.Client({
|
|
91
|
-
base: new URL(window.location.href),
|
|
92
|
-
project: containerProject,
|
|
93
|
-
options: { headers: { accept: 'text/zinc' } },
|
|
94
|
-
getServiceUrl,
|
|
95
|
-
getOpUrl,
|
|
96
|
-
getHaystackServiceUrl,
|
|
97
|
-
getHostServiceUrl,
|
|
98
|
-
});
|
|
99
|
-
const [containerClient, setContainerClient] = (0, react_1.useState)(getClient);
|
|
100
|
-
(0, react_1.useEffect)(() => {
|
|
101
|
-
setLoading(true);
|
|
102
|
-
const newClient = getClient();
|
|
103
|
-
setContainerClient(newClient);
|
|
104
|
-
// Load everything network wise before we load
|
|
105
|
-
// the application.
|
|
106
|
-
Promise.all([
|
|
107
|
-
newClient.ext.eval('finGetCurrentUser()'),
|
|
108
|
-
newClient.ext.loadDefs(),
|
|
109
|
-
]).then(([userGrid]) => {
|
|
110
|
-
rootStore.currentUser = userGrid.first;
|
|
111
|
-
setLoading(false);
|
|
112
|
-
});
|
|
113
|
-
}, [client, containerProject]);
|
|
114
|
-
(0, react_1.useEffect)(() => {
|
|
115
|
-
const onMessage = (event) => {
|
|
116
|
-
if (fin5Top_1.fin5Top?.location.origin === event.origin &&
|
|
117
|
-
appStore?.onMessage) {
|
|
118
|
-
appStore.onMessage({
|
|
119
|
-
message: event.data.message,
|
|
120
|
-
params: event.data,
|
|
121
|
-
client: getClient(),
|
|
122
|
-
appRootStore: rootStore,
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
};
|
|
126
|
-
window.addEventListener('message', onMessage);
|
|
127
|
-
return () => window.removeEventListener('message', onMessage);
|
|
128
|
-
}, []);
|
|
129
|
-
(0, react_1.useEffect)(() => {
|
|
130
|
-
// tell the top level app its ready
|
|
131
|
-
if (initialized) {
|
|
132
|
-
fin5Top_1.fin5Top?.postMessage({
|
|
133
|
-
kind: 'iframeApp',
|
|
134
|
-
loading: false,
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
}, [initialized]);
|
|
138
|
-
return (react_1.default.createElement(app_react_1.AppRootStoreContext.Provider, { value: rootStore },
|
|
139
|
-
react_1.default.createElement(app_react_1.AppStoreContext.Provider, { value: appStore },
|
|
140
|
-
react_1.default.createElement(haystack_react_1.ClientContext.Provider, { value: containerClient },
|
|
141
|
-
react_1.default.createElement(utils_1.I18NProvider, { locale: locale, setLoading: setLoadingi18n },
|
|
142
|
-
react_1.default.createElement(react_jss_1.ThemeProvider, { theme: theme },
|
|
143
|
-
react_1.default.createElement(Loader_1.default, { loading: loading || loadingi18n },
|
|
144
|
-
react_1.default.createElement(ErrorBoundary_1.ErrorBoundary, { mode: "global" /* ErrorBoundaryMode.global */ }, children))))))));
|
|
145
|
-
});
|
|
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_react_1 = require("@j2inn/app-react");
|
|
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
|
+
const PATH_PREFIX = 'finApp';
|
|
48
|
+
const getServiceUrl = ({ origin, path }) => `${origin}/${PATH_PREFIX}/api/${path}`;
|
|
49
|
+
const getOpUrl = ({ origin, project, op }) => `${origin}/api/${project}/${op}`;
|
|
50
|
+
const getHaystackServiceUrl = ({ origin, project, path, }) => `${origin}/${PATH_PREFIX}/api/haystack${project ? `/${project}` : ''}/${path}`;
|
|
51
|
+
const getHostServiceUrl = ({ origin, path, }) => `${origin}/${PATH_PREFIX}/api/host/${path}`;
|
|
52
|
+
/**
|
|
53
|
+
* Runtime type guard that checks whether a store instance
|
|
54
|
+
* exposes a boolean `initialized` flag.
|
|
55
|
+
*
|
|
56
|
+
* @param {AppStore | null | undefined} appStore - The store instance to test
|
|
57
|
+
* @returns {appStore is AppStore & { initialized: boolean }} True if `appStore` has a boolean `initialized` property
|
|
58
|
+
*
|
|
59
|
+
* @remarks
|
|
60
|
+
* To use the FINX onMessage feature, ensure the concrete store declares `initialized` ahead of time,
|
|
61
|
+
* and set to true when children components have fully rendered.
|
|
62
|
+
*/
|
|
63
|
+
function hasInitialized(appStore) {
|
|
64
|
+
return (!!appStore &&
|
|
65
|
+
'initialized' in appStore &&
|
|
66
|
+
typeof appStore.initialized === 'boolean');
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Creates a basic application container environment to run a view in FIN5.
|
|
70
|
+
*/
|
|
71
|
+
exports.Fin5AppContainer = (0, mobx_react_lite_1.observer)(({ children, appStore, client, project, theme = (0, ui_1.GenerateTheme)(ui_1.DEFAULT_THEME).light, }) => {
|
|
72
|
+
const [loading, setLoading] = (0, react_1.useState)(true);
|
|
73
|
+
const [loadingi18n, setLoadingi18n] = (0, react_1.useState)(true);
|
|
74
|
+
const rootStoreRef = (0, react_1.useRef)(null);
|
|
75
|
+
rootStoreRef.current ??= new Fin5AppRootStore_1.Fin5AppRootStore();
|
|
76
|
+
const rootStore = rootStoreRef.current;
|
|
77
|
+
const [hashProjName] = (0, useFin5AppURLHashParameter_1.useFin5AppURLHashParameter)('projectName');
|
|
78
|
+
const containerProject = project || hashProjName || fin5Top_1.fin5Top?.finstack?.projectName || '';
|
|
79
|
+
const locale = fin5Top_1.fin5Top?.languageManager?.currentLang ?? navigator?.language;
|
|
80
|
+
rootStore.locale = locale;
|
|
81
|
+
if (!rootStore.allLocales.includes(locale)) {
|
|
82
|
+
rootStore.allLocales.push(locale);
|
|
83
|
+
}
|
|
84
|
+
const target = fin5Top_1.fin5Top?.app?.TargetRef?.() || '';
|
|
85
|
+
rootStore.target = target ? haystack_core_1.HRef.make(target).value : '';
|
|
86
|
+
const initialized = hasInitialized(appStore)
|
|
87
|
+
? appStore.initialized
|
|
88
|
+
: false;
|
|
89
|
+
const getClient = () => client ??
|
|
90
|
+
new haystack_nclient_1.Client({
|
|
91
|
+
base: new URL(window.location.href),
|
|
92
|
+
project: containerProject,
|
|
93
|
+
options: { headers: { accept: 'text/zinc' } },
|
|
94
|
+
getServiceUrl,
|
|
95
|
+
getOpUrl,
|
|
96
|
+
getHaystackServiceUrl,
|
|
97
|
+
getHostServiceUrl,
|
|
98
|
+
});
|
|
99
|
+
const [containerClient, setContainerClient] = (0, react_1.useState)(getClient);
|
|
100
|
+
(0, react_1.useEffect)(() => {
|
|
101
|
+
setLoading(true);
|
|
102
|
+
const newClient = getClient();
|
|
103
|
+
setContainerClient(newClient);
|
|
104
|
+
// Load everything network wise before we load
|
|
105
|
+
// the application.
|
|
106
|
+
Promise.all([
|
|
107
|
+
newClient.ext.eval('finGetCurrentUser()'),
|
|
108
|
+
newClient.ext.loadDefs(),
|
|
109
|
+
]).then(([userGrid]) => {
|
|
110
|
+
rootStore.currentUser = userGrid.first;
|
|
111
|
+
setLoading(false);
|
|
112
|
+
});
|
|
113
|
+
}, [client, containerProject]);
|
|
114
|
+
(0, react_1.useEffect)(() => {
|
|
115
|
+
const onMessage = (event) => {
|
|
116
|
+
if (fin5Top_1.fin5Top?.location.origin === event.origin &&
|
|
117
|
+
appStore?.onMessage) {
|
|
118
|
+
appStore.onMessage({
|
|
119
|
+
message: event.data.message,
|
|
120
|
+
params: event.data,
|
|
121
|
+
client: getClient(),
|
|
122
|
+
appRootStore: rootStore,
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
window.addEventListener('message', onMessage);
|
|
127
|
+
return () => window.removeEventListener('message', onMessage);
|
|
128
|
+
}, []);
|
|
129
|
+
(0, react_1.useEffect)(() => {
|
|
130
|
+
// tell the top level app its ready
|
|
131
|
+
if (initialized) {
|
|
132
|
+
fin5Top_1.fin5Top?.postMessage({
|
|
133
|
+
kind: 'iframeApp',
|
|
134
|
+
loading: false,
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
}, [initialized]);
|
|
138
|
+
return (react_1.default.createElement(app_react_1.AppRootStoreContext.Provider, { value: rootStore },
|
|
139
|
+
react_1.default.createElement(app_react_1.AppStoreContext.Provider, { value: appStore },
|
|
140
|
+
react_1.default.createElement(haystack_react_1.ClientContext.Provider, { value: containerClient },
|
|
141
|
+
react_1.default.createElement(utils_1.I18NProvider, { locale: locale, setLoading: setLoadingi18n },
|
|
142
|
+
react_1.default.createElement(react_jss_1.ThemeProvider, { theme: theme },
|
|
143
|
+
react_1.default.createElement(Loader_1.default, { loading: loading || loadingi18n },
|
|
144
|
+
react_1.default.createElement(ErrorBoundary_1.ErrorBoundary, { mode: "global" /* ErrorBoundaryMode.global */ }, children))))))));
|
|
145
|
+
});
|
|
146
146
|
//# sourceMappingURL=Fin5AppContainer.js.map
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
import { App, AppRootStore, AppView, CustomHistory } from '@j2inn/app';
|
|
2
|
-
import { HDict } from 'haystack-core';
|
|
3
|
-
/**
|
|
4
|
-
* An application root store for use with FIN5.
|
|
5
|
-
*/
|
|
6
|
-
export declare class Fin5AppRootStore implements AppRootStore {
|
|
7
|
-
project: string;
|
|
8
|
-
sidebarOpen: boolean;
|
|
9
|
-
locale: string;
|
|
10
|
-
allLocales: string[];
|
|
11
|
-
target: string;
|
|
12
|
-
targetSidebar: string;
|
|
13
|
-
currentUser: HDict | undefined;
|
|
14
|
-
get app(): {
|
|
15
|
-
id: string;
|
|
16
|
-
name: string;
|
|
17
|
-
app: App;
|
|
18
|
-
view: AppView;
|
|
19
|
-
} | undefined;
|
|
20
|
-
get sidebar(): {
|
|
21
|
-
id: string;
|
|
22
|
-
name: string;
|
|
23
|
-
app: App;
|
|
24
|
-
view: AppView;
|
|
25
|
-
} | undefined;
|
|
26
|
-
readonly apps: App[];
|
|
27
|
-
readonly history: CustomHistory;
|
|
28
|
-
readonly historySidebar: CustomHistory;
|
|
29
|
-
constructor();
|
|
30
|
-
openAppInNewWindow(): void;
|
|
31
|
-
open(appId: string, state?: Record<string, unknown>): void;
|
|
32
|
-
openSidebar(): void;
|
|
33
|
-
postAppMessage(): void;
|
|
34
|
-
registerSidebars(): void;
|
|
35
|
-
unregisterSidebars(): void;
|
|
36
|
-
registerQuicklinks(): void;
|
|
37
|
-
unregisterQuicklinks(): void;
|
|
38
|
-
hasAppAccess: (appId: string) => boolean;
|
|
39
|
-
hasSidebar(): boolean;
|
|
40
|
-
}
|
|
1
|
+
import { App, AppRootStore, AppView, CustomHistory } from '@j2inn/app';
|
|
2
|
+
import { HDict } from 'haystack-core';
|
|
3
|
+
/**
|
|
4
|
+
* An application root store for use with FIN5.
|
|
5
|
+
*/
|
|
6
|
+
export declare class Fin5AppRootStore implements AppRootStore {
|
|
7
|
+
project: string;
|
|
8
|
+
sidebarOpen: boolean;
|
|
9
|
+
locale: string;
|
|
10
|
+
allLocales: string[];
|
|
11
|
+
target: string;
|
|
12
|
+
targetSidebar: string;
|
|
13
|
+
currentUser: HDict | undefined;
|
|
14
|
+
get app(): {
|
|
15
|
+
id: string;
|
|
16
|
+
name: string;
|
|
17
|
+
app: App;
|
|
18
|
+
view: AppView;
|
|
19
|
+
} | undefined;
|
|
20
|
+
get sidebar(): {
|
|
21
|
+
id: string;
|
|
22
|
+
name: string;
|
|
23
|
+
app: App;
|
|
24
|
+
view: AppView;
|
|
25
|
+
} | undefined;
|
|
26
|
+
readonly apps: App[];
|
|
27
|
+
readonly history: CustomHistory;
|
|
28
|
+
readonly historySidebar: CustomHistory;
|
|
29
|
+
constructor();
|
|
30
|
+
openAppInNewWindow(): void;
|
|
31
|
+
open(appId: string, state?: Record<string, unknown>): void;
|
|
32
|
+
openSidebar(): void;
|
|
33
|
+
postAppMessage(): void;
|
|
34
|
+
registerSidebars(): void;
|
|
35
|
+
unregisterSidebars(): void;
|
|
36
|
+
registerQuicklinks(): void;
|
|
37
|
+
unregisterQuicklinks(): void;
|
|
38
|
+
hasAppAccess: (appId: string) => boolean;
|
|
39
|
+
hasSidebar(): boolean;
|
|
40
|
+
}
|
|
@@ -1,91 +1,91 @@
|
|
|
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
|
-
project = '';
|
|
13
|
-
sidebarOpen = false;
|
|
14
|
-
locale = '';
|
|
15
|
-
allLocales = [];
|
|
16
|
-
target = '';
|
|
17
|
-
targetSidebar = '';
|
|
18
|
-
currentUser;
|
|
19
|
-
get app() {
|
|
20
|
-
return undefined;
|
|
21
|
-
}
|
|
22
|
-
get sidebar() {
|
|
23
|
-
return undefined;
|
|
24
|
-
}
|
|
25
|
-
apps = [];
|
|
26
|
-
history = {
|
|
27
|
-
state: {},
|
|
28
|
-
pushState: (state) => {
|
|
29
|
-
this.history.state = state;
|
|
30
|
-
},
|
|
31
|
-
replaceState: (state) => {
|
|
32
|
-
this.history.state = state;
|
|
33
|
-
},
|
|
34
|
-
};
|
|
35
|
-
historySidebar = {
|
|
36
|
-
state: {},
|
|
37
|
-
pushState: (state) => {
|
|
38
|
-
this.historySidebar.state = state;
|
|
39
|
-
},
|
|
40
|
-
replaceState: (state) => {
|
|
41
|
-
this.historySidebar.state = state;
|
|
42
|
-
},
|
|
43
|
-
};
|
|
44
|
-
constructor() {
|
|
45
|
-
(0, mobx_1.makeAutoObservable)(this, {
|
|
46
|
-
currentUser: mobx_1.observable.ref,
|
|
47
|
-
apps: mobx_1.observable.ref,
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
openAppInNewWindow() { }
|
|
51
|
-
open(appId, state) {
|
|
52
|
-
if (this.hasAppAccess(appId)) {
|
|
53
|
-
if (state) {
|
|
54
|
-
this.history.pushState(state);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
openSidebar() { }
|
|
59
|
-
postAppMessage() { }
|
|
60
|
-
registerSidebars() { }
|
|
61
|
-
unregisterSidebars() { }
|
|
62
|
-
registerQuicklinks() { }
|
|
63
|
-
unregisterQuicklinks() { }
|
|
64
|
-
hasAppAccess = (appId) => {
|
|
65
|
-
// For FIN5, an operator only has readonly app level access.
|
|
66
|
-
const user = this.currentUser;
|
|
67
|
-
if (user) {
|
|
68
|
-
if (!user.has('userRole')) {
|
|
69
|
-
return false;
|
|
70
|
-
}
|
|
71
|
-
if (user.get('userRole')?.value === 'su') {
|
|
72
|
-
return true;
|
|
73
|
-
}
|
|
74
|
-
// if no appAccess is present, then all apps are granted
|
|
75
|
-
if (user.has('appAccess')) {
|
|
76
|
-
const appAccess = user.get('appAccess')?.value;
|
|
77
|
-
const apps = appAccess?.split(',');
|
|
78
|
-
return apps?.includes(appId) ?? false;
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
return true;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
return false;
|
|
85
|
-
};
|
|
86
|
-
hasSidebar() {
|
|
87
|
-
return false;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
exports.Fin5AppRootStore = Fin5AppRootStore;
|
|
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
|
+
project = '';
|
|
13
|
+
sidebarOpen = false;
|
|
14
|
+
locale = '';
|
|
15
|
+
allLocales = [];
|
|
16
|
+
target = '';
|
|
17
|
+
targetSidebar = '';
|
|
18
|
+
currentUser;
|
|
19
|
+
get app() {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
get sidebar() {
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
apps = [];
|
|
26
|
+
history = {
|
|
27
|
+
state: {},
|
|
28
|
+
pushState: (state) => {
|
|
29
|
+
this.history.state = state;
|
|
30
|
+
},
|
|
31
|
+
replaceState: (state) => {
|
|
32
|
+
this.history.state = state;
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
historySidebar = {
|
|
36
|
+
state: {},
|
|
37
|
+
pushState: (state) => {
|
|
38
|
+
this.historySidebar.state = state;
|
|
39
|
+
},
|
|
40
|
+
replaceState: (state) => {
|
|
41
|
+
this.historySidebar.state = state;
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
constructor() {
|
|
45
|
+
(0, mobx_1.makeAutoObservable)(this, {
|
|
46
|
+
currentUser: mobx_1.observable.ref,
|
|
47
|
+
apps: mobx_1.observable.ref,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
openAppInNewWindow() { }
|
|
51
|
+
open(appId, state) {
|
|
52
|
+
if (this.hasAppAccess(appId)) {
|
|
53
|
+
if (state) {
|
|
54
|
+
this.history.pushState(state);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
openSidebar() { }
|
|
59
|
+
postAppMessage() { }
|
|
60
|
+
registerSidebars() { }
|
|
61
|
+
unregisterSidebars() { }
|
|
62
|
+
registerQuicklinks() { }
|
|
63
|
+
unregisterQuicklinks() { }
|
|
64
|
+
hasAppAccess = (appId) => {
|
|
65
|
+
// For FIN5, an operator only has readonly app level access.
|
|
66
|
+
const user = this.currentUser;
|
|
67
|
+
if (user) {
|
|
68
|
+
if (!user.has('userRole')) {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
if (user.get('userRole')?.value === 'su') {
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
// if no appAccess is present, then all apps are granted
|
|
75
|
+
if (user.has('appAccess')) {
|
|
76
|
+
const appAccess = user.get('appAccess')?.value;
|
|
77
|
+
const apps = appAccess?.split(',');
|
|
78
|
+
return apps?.includes(appId) ?? false;
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return false;
|
|
85
|
+
};
|
|
86
|
+
hasSidebar() {
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
exports.Fin5AppRootStore = Fin5AppRootStore;
|
|
91
91
|
//# sourceMappingURL=Fin5AppRootStore.js.map
|