chayns-api 1.1.0-9 → 1.2.0-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/calls/index.js +11 -3
- package/dist/cjs/components/ChaynsProvider.js +2 -5
- package/dist/cjs/components/withHydrationBoundary.js +5 -9
- package/dist/cjs/constants/languages.js +19 -0
- package/dist/cjs/handler/DialogHandler.js +1 -2
- package/dist/cjs/host/ChaynsHost.js +20 -39
- package/dist/cjs/host/module/ModuleHost.js +2 -20
- package/dist/cjs/host/module/utils/loadComponent.js +84 -42
- package/dist/cjs/index.js +8 -1
- package/dist/cjs/util/transferNestedFunctions.js +5 -2
- package/dist/cjs/util/url.js +1 -1
- package/dist/cjs/wrapper/AppWrapper.js +81 -43
- package/dist/cjs/wrapper/FrameWrapper.js +5 -1
- package/dist/cjs/wrapper/StaticChaynsApi.js +7 -0
- package/dist/esm/calls/index.js +8 -3
- package/dist/esm/components/ChaynsProvider.js +2 -5
- package/dist/esm/components/withHydrationBoundary.js +5 -9
- package/dist/esm/constants/languages.js +13 -0
- package/dist/esm/handler/DialogHandler.js +1 -2
- package/dist/esm/host/ChaynsHost.js +18 -39
- package/dist/esm/host/module/ModuleHost.js +2 -20
- package/dist/esm/host/module/utils/loadComponent.js +87 -44
- package/dist/esm/index.js +1 -1
- package/dist/esm/util/transferNestedFunctions.js +5 -2
- package/dist/esm/util/url.js +2 -2
- package/dist/esm/wrapper/AppWrapper.js +85 -45
- package/dist/esm/wrapper/FrameWrapper.js +5 -1
- package/dist/esm/wrapper/StaticChaynsApi.js +7 -0
- package/dist/types/calls/index.d.ts +5 -1
- package/dist/types/components/withHydrationBoundary.d.ts +1 -1
- package/dist/types/constants/languages.d.ts +12 -0
- package/dist/types/handler/DialogHandler.d.ts +9 -3
- package/dist/types/hooks/useCurrentPage.d.ts +4 -1
- package/dist/types/hooks/useCustomData.d.ts +1 -1
- package/dist/types/host/ChaynsHost.d.ts +0 -1
- package/dist/types/host/module/ModuleHost.d.ts +1 -0
- package/dist/types/host/module/utils/loadComponent.d.ts +3 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/types/IChaynsReact.d.ts +42 -8
- package/dist/types/wrapper/AppWrapper.d.ts +0 -3
- package/dist/types/wrapper/StaticChaynsApi.d.ts +7 -0
- package/package.json +2 -2
package/dist/cjs/calls/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.vibrate = exports.user = exports.storageSetItem = exports.storageRemoveItem = exports.storageGetItem = exports.site = exports.setWaitCursor = exports.setTempDesignSettings = exports.setScanQrCode = exports.setRefreshScrollEnabled = exports.setOverlay = exports.setHeight = exports.setFloatingButton = exports.setDisplayTimeout = exports.setAdminMode = exports.sendMessageToUser = exports.sendMessageToPage = exports.sendMessageToGroup = exports.selectPage = exports.scrollToY = exports.scrollByY = exports.removeWindowMetricsListener = exports.removeVisibilityChangeListener = exports.removeToolbarChangeListener = exports.removeScrollListener = exports.removeGeoLocationListener = exports.refreshData = exports.refreshAccessToken = exports.parameters = exports.pages = exports.openVideo = exports.openUrl = exports.openMedia = exports.openImage = exports.navigateBack = exports.logout = exports.login = exports.language = exports.invokeDialogCall = exports.invokeCall = exports.getWindowMetrics = exports.getUserInfo = exports.getUser = exports.getSite = exports.getScrollPosition = exports.getParameters = exports.getPages = exports.getLanguage = exports.getGeoLocation = exports.getEnvironment = exports.getDevice = exports.getCurrentPage = exports.getAvailableSharingServices = exports.getAccessToken = exports.environment = exports.device = exports.customCallbackFunction = exports.createDialog = exports.addWindowMetricsListener = exports.addVisibilityChangeListener = exports.addToolbarChangeListener = exports.addScrollListener = exports.addGeoLocationListener = void 0;
|
|
6
|
+
exports.vibrate = exports.user = exports.storageSetItem = exports.storageRemoveItem = exports.storageGetItem = exports.site = exports.setWaitCursor = exports.setTempDesignSettings = exports.setScanQrCode = exports.setRefreshScrollEnabled = exports.setOverlay = exports.setHeight = exports.setFloatingButton = exports.setDisplayTimeout = exports.setAdminMode = exports.sendMessageToUser = exports.sendMessageToPage = exports.sendMessageToGroup = exports.selectPage = exports.scrollToY = exports.scrollByY = exports.removeWindowMetricsListener = exports.removeVisibilityChangeListener = exports.removeToolbarChangeListener = exports.removeScrollListener = exports.removeGeoLocationListener = exports.refreshData = exports.refreshAccessToken = exports.parameters = exports.pages = exports.openVideo = exports.openUrl = exports.openMedia = exports.openImage = exports.navigateBack = exports.logout = exports.login = exports.language = exports.invokeDialogCall = exports.invokeCall = exports.getWindowMetrics = exports.getUserInfo = exports.getUser = exports.getSite = exports.getScrollPosition = exports.getParameters = exports.getPages = exports.getLanguage = exports.getGeoLocation = exports.getEnvironment = exports.getDevice = exports.getCurrentPage = exports.getAvailableSharingServices = exports.getAccessToken = exports.environment = exports.device = exports.customCallbackFunction = exports.createDialog = exports.addWindowMetricsListener = exports.addVisibilityChangeListener = exports.addToolbarChangeListener = exports.addScrollListener = exports.addGeoLocationListener = exports.addAnonymousAccount = void 0;
|
|
7
7
|
var _moduleWrapper = require("../components/moduleWrapper");
|
|
8
8
|
/**
|
|
9
9
|
* This adds a listener to determine your location.
|
|
@@ -241,21 +241,29 @@ const storageSetItem = (...args) => _moduleWrapper.moduleWrapper.current.functio
|
|
|
241
241
|
*/
|
|
242
242
|
exports.storageSetItem = storageSetItem;
|
|
243
243
|
const vibrate = (...args) => _moduleWrapper.moduleWrapper.current.functions.vibrate(...args);
|
|
244
|
+
|
|
244
245
|
/**
|
|
245
246
|
* This method creates a dialog
|
|
246
247
|
*/
|
|
248
|
+
// @ts-ignore
|
|
247
249
|
exports.vibrate = vibrate;
|
|
248
|
-
const createDialog =
|
|
250
|
+
const createDialog = config => _moduleWrapper.moduleWrapper.current.functions.createDialog(config);
|
|
249
251
|
/**
|
|
250
252
|
* Displays an overlay
|
|
251
253
|
*/
|
|
252
254
|
exports.createDialog = createDialog;
|
|
253
255
|
const setOverlay = (...args) => _moduleWrapper.moduleWrapper.current.functions.setOverlay(...args);
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* Generates a temp accesstoken, only valid for short period of time (~3 days), works only when no user is logged in
|
|
259
|
+
*/
|
|
260
|
+
exports.setOverlay = setOverlay;
|
|
261
|
+
const addAnonymousAccount = () => _moduleWrapper.moduleWrapper.current.functions.addAnonymousAccount();
|
|
254
262
|
/**
|
|
255
263
|
* Returns user information, only when user is logged in
|
|
256
264
|
* @category User functions
|
|
257
265
|
*/
|
|
258
|
-
exports.
|
|
266
|
+
exports.addAnonymousAccount = addAnonymousAccount;
|
|
259
267
|
const getUser = () => _moduleWrapper.moduleWrapper.current.values.user;
|
|
260
268
|
exports.getUser = getUser;
|
|
261
269
|
const getSite = () => _moduleWrapper.moduleWrapper.current.values.site;
|
|
@@ -13,7 +13,6 @@ var _FrameWrapper = require("../wrapper/FrameWrapper");
|
|
|
13
13
|
var _ModuleFederationWrapper = require("../wrapper/ModuleFederationWrapper");
|
|
14
14
|
var _SsrWrapper = require("../wrapper/SsrWrapper");
|
|
15
15
|
var _ChaynsContext = require("./ChaynsContext");
|
|
16
|
-
var _AppDialogWrapper = _interopRequireDefault(require("./AppDialogWrapper"));
|
|
17
16
|
var _moduleWrapper = require("./moduleWrapper");
|
|
18
17
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
19
18
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
@@ -43,7 +42,7 @@ const ChaynsProvider = ({
|
|
|
43
42
|
renderedByServer,
|
|
44
43
|
isModule
|
|
45
44
|
}) => {
|
|
46
|
-
var _customWrapper$curren, _customWrapper$curren2, _customWrapper$curren3
|
|
45
|
+
var _customWrapper$curren, _customWrapper$curren2, _customWrapper$curren3;
|
|
47
46
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
48
47
|
const customWrapper = (0, _react.useRef)(null);
|
|
49
48
|
if (!customWrapper.current) {
|
|
@@ -106,9 +105,7 @@ const ChaynsProvider = ({
|
|
|
106
105
|
value: state
|
|
107
106
|
}, /*#__PURE__*/_react.default.createElement(_ChaynsContext.ChaynsFunctionsContext.Provider, {
|
|
108
107
|
value: (_customWrapper$curren3 = customWrapper.current) === null || _customWrapper$curren3 === void 0 ? void 0 : _customWrapper$curren3.functions
|
|
109
|
-
}, children,
|
|
110
|
-
dialogEventTarget: (_customWrapper$curren4 = customWrapper.current) === null || _customWrapper$curren4 === void 0 ? void 0 : _customWrapper$curren4.getDialogEventTarget()
|
|
111
|
-
}) : false)), /*#__PURE__*/_react.default.createElement(InitialDataProvider, {
|
|
108
|
+
}, children)), /*#__PURE__*/_react.default.createElement(InitialDataProvider, {
|
|
112
109
|
data: state,
|
|
113
110
|
renderedByServer: renderedByServer
|
|
114
111
|
}));
|
|
@@ -22,6 +22,9 @@ const withHydrationBoundary = (Component, initializer, useHydrationId) => {
|
|
|
22
22
|
throw new Error('hydration boundary was not given a id which is required');
|
|
23
23
|
}
|
|
24
24
|
const [store] = (0, _react.useState)(() => {
|
|
25
|
+
if (!globalThis.window && id in value) {
|
|
26
|
+
return value[id];
|
|
27
|
+
}
|
|
25
28
|
let initialValue = undefined;
|
|
26
29
|
if (globalThis.window) {
|
|
27
30
|
const htmlId = `__INITIAL_DATA_${id}__`;
|
|
@@ -30,16 +33,9 @@ const withHydrationBoundary = (Component, initializer, useHydrationId) => {
|
|
|
30
33
|
initialValue = JSON.parse($elem.innerHTML);
|
|
31
34
|
}
|
|
32
35
|
}
|
|
33
|
-
const s = initializer(initialValue);
|
|
36
|
+
const s = initializer(initialValue, id);
|
|
34
37
|
if (!globalThis.window) {
|
|
35
|
-
|
|
36
|
-
console.warn(`Dehydration function for id "${id}" has been defined multiple times. This can have two reasons. The children cause suspension and therefor the hydration boundary has to mount from scratch again. You can avoid this by adding a Suspense around the children. The id is not unique. This has to be fixed or might cause hydration issues.`);
|
|
37
|
-
}
|
|
38
|
-
value[id] = {
|
|
39
|
-
getState: s.getState,
|
|
40
|
-
abort: s.abort,
|
|
41
|
-
type: s.type
|
|
42
|
-
};
|
|
38
|
+
value[id] = s;
|
|
43
39
|
}
|
|
44
40
|
return s;
|
|
45
41
|
});
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DeviceLanguage = void 0;
|
|
7
|
+
let DeviceLanguage = exports.DeviceLanguage = /*#__PURE__*/function (DeviceLanguage) {
|
|
8
|
+
DeviceLanguage[DeviceLanguage["de"] = 1] = "de";
|
|
9
|
+
DeviceLanguage[DeviceLanguage["en"] = 2] = "en";
|
|
10
|
+
DeviceLanguage[DeviceLanguage["fr"] = 3] = "fr";
|
|
11
|
+
DeviceLanguage[DeviceLanguage["it"] = 4] = "it";
|
|
12
|
+
DeviceLanguage[DeviceLanguage["nl"] = 5] = "nl";
|
|
13
|
+
DeviceLanguage[DeviceLanguage["es"] = 6] = "es";
|
|
14
|
+
DeviceLanguage[DeviceLanguage["pt"] = 7] = "pt";
|
|
15
|
+
DeviceLanguage[DeviceLanguage["tr"] = 8] = "tr";
|
|
16
|
+
DeviceLanguage[DeviceLanguage["pl"] = 9] = "pl";
|
|
17
|
+
DeviceLanguage[DeviceLanguage["uk"] = 10] = "uk";
|
|
18
|
+
return DeviceLanguage;
|
|
19
|
+
}({});
|
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
class DialogHandler {
|
|
8
8
|
isOpen = false;
|
|
9
|
-
result = undefined;
|
|
10
9
|
listeners = [];
|
|
11
10
|
constructor(config, open, close, dispatchEvent, addDataListener) {
|
|
12
11
|
this._open = open;
|
|
@@ -41,7 +40,7 @@ class DialogHandler {
|
|
|
41
40
|
return;
|
|
42
41
|
}
|
|
43
42
|
this.isOpen = false;
|
|
44
|
-
this._close(this.dialogId, data);
|
|
43
|
+
this._close(this.dialogId, data, buttonType);
|
|
45
44
|
}
|
|
46
45
|
dispatchEvent(data) {
|
|
47
46
|
if (!this.isOpen) {
|
|
@@ -4,10 +4,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
var _react =
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _HostIframe = _interopRequireDefault(require("./iframe/HostIframe"));
|
|
9
9
|
var _ModuleHost = _interopRequireDefault(require("./module/ModuleHost"));
|
|
10
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
12
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
11
13
|
const ChaynsHost = ({
|
|
12
14
|
type,
|
|
13
15
|
iFrameProps,
|
|
@@ -15,7 +17,6 @@ const ChaynsHost = ({
|
|
|
15
17
|
src,
|
|
16
18
|
iFrameRef = undefined,
|
|
17
19
|
loadingComponent = undefined,
|
|
18
|
-
children = undefined,
|
|
19
20
|
system,
|
|
20
21
|
// shallow data
|
|
21
22
|
pages,
|
|
@@ -31,8 +32,23 @@ const ChaynsHost = ({
|
|
|
31
32
|
preventStagingReplacement,
|
|
32
33
|
dialog
|
|
33
34
|
}) => {
|
|
35
|
+
const [isVisible, setIsVisible] = (0, _react.useState)(type !== 'client-module' && (type !== 'server-module' || !!(system !== null && system !== void 0 && system.serverUrl)));
|
|
36
|
+
(0, _react.useEffect)(() => {
|
|
37
|
+
if (isVisible) return;
|
|
38
|
+
if (typeof _react.startTransition === 'function') {
|
|
39
|
+
(0, _react.startTransition)(() => {
|
|
40
|
+
setIsVisible(true);
|
|
41
|
+
});
|
|
42
|
+
} else {
|
|
43
|
+
setIsVisible(true);
|
|
44
|
+
}
|
|
45
|
+
}, []);
|
|
46
|
+
if (!isVisible) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
34
49
|
switch (type) {
|
|
35
50
|
case 'client-iframe':
|
|
51
|
+
case 'server-iframe':
|
|
36
52
|
return /*#__PURE__*/_react.default.createElement(_HostIframe.default, {
|
|
37
53
|
iFrameRef: iFrameRef,
|
|
38
54
|
iFrameProps: iFrameProps,
|
|
@@ -44,6 +60,7 @@ const ChaynsHost = ({
|
|
|
44
60
|
currentPage: currentPage,
|
|
45
61
|
functions: functions,
|
|
46
62
|
src: src,
|
|
63
|
+
postForm: type === 'server-iframe',
|
|
47
64
|
language: language,
|
|
48
65
|
parameters: parameters,
|
|
49
66
|
environment: environment,
|
|
@@ -52,6 +69,7 @@ const ChaynsHost = ({
|
|
|
52
69
|
dialog: dialog
|
|
53
70
|
});
|
|
54
71
|
case 'client-module':
|
|
72
|
+
case 'server-module':
|
|
55
73
|
return /*#__PURE__*/_react.default.createElement(_ModuleHost.default, {
|
|
56
74
|
system: system,
|
|
57
75
|
pages: pages,
|
|
@@ -69,43 +87,6 @@ const ChaynsHost = ({
|
|
|
69
87
|
preventStagingReplacement: preventStagingReplacement,
|
|
70
88
|
dialog: dialog
|
|
71
89
|
});
|
|
72
|
-
case 'server-iframe':
|
|
73
|
-
return /*#__PURE__*/_react.default.createElement(_HostIframe.default, {
|
|
74
|
-
iFrameRef: iFrameRef,
|
|
75
|
-
iFrameProps: iFrameProps,
|
|
76
|
-
pages: pages,
|
|
77
|
-
isAdminModeActive: isAdminModeActive,
|
|
78
|
-
site: site,
|
|
79
|
-
user: user,
|
|
80
|
-
device: device,
|
|
81
|
-
currentPage: currentPage,
|
|
82
|
-
functions: functions,
|
|
83
|
-
src: src,
|
|
84
|
-
postForm: true,
|
|
85
|
-
language: language,
|
|
86
|
-
parameters: parameters,
|
|
87
|
-
environment: environment,
|
|
88
|
-
customData: customData,
|
|
89
|
-
preventStagingReplacement: preventStagingReplacement,
|
|
90
|
-
dialog: dialog
|
|
91
|
-
});
|
|
92
|
-
case 'server-module':
|
|
93
|
-
return /*#__PURE__*/_react.default.createElement(_ModuleHost.default, {
|
|
94
|
-
system: system,
|
|
95
|
-
pages: pages,
|
|
96
|
-
isAdminModeActive: isAdminModeActive,
|
|
97
|
-
site: site,
|
|
98
|
-
user: user,
|
|
99
|
-
device: device,
|
|
100
|
-
currentPage: currentPage,
|
|
101
|
-
functions: functions,
|
|
102
|
-
language: language,
|
|
103
|
-
parameters: parameters,
|
|
104
|
-
customData: customData,
|
|
105
|
-
environment: environment,
|
|
106
|
-
preventStagingReplacement: preventStagingReplacement,
|
|
107
|
-
dialog: dialog
|
|
108
|
-
}, children);
|
|
109
90
|
default:
|
|
110
91
|
return null;
|
|
111
92
|
}
|
|
@@ -4,37 +4,18 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
var _runtime = require("@module-federation/runtime");
|
|
8
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
-
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
10
8
|
var _loadComponent = _interopRequireDefault(require("./utils/loadComponent"));
|
|
11
9
|
var _url = require("../../util/url");
|
|
12
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
11
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
14
12
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
15
|
-
(0, _runtime.init)({
|
|
16
|
-
// @ts-expect-error will be set by chayns-toolkit via DefinePlugin
|
|
17
|
-
name: process.env.__PACKAGE_NAME__,
|
|
18
|
-
remotes: [],
|
|
19
|
-
shared: {
|
|
20
|
-
react: {
|
|
21
|
-
version: _react.default.version,
|
|
22
|
-
scope: 'default',
|
|
23
|
-
lib: () => _react.default
|
|
24
|
-
},
|
|
25
|
-
'react-dom': {
|
|
26
|
-
version: _reactDom.default.version,
|
|
27
|
-
scope: 'default',
|
|
28
|
-
lib: () => _reactDom.default
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
13
|
const System = ({
|
|
33
14
|
system,
|
|
34
15
|
fallback,
|
|
35
16
|
...props
|
|
36
17
|
}) => {
|
|
37
|
-
const Component = (0, _react.useMemo)(() => (0, _loadComponent.default)(system.scope, system.module, system.url, undefined, system.preventSingleton), [system.scope, system.module, system.url, system.preventSingleton]);
|
|
18
|
+
const Component = (0, _react.useMemo)(() => (0, _loadComponent.default)(system.scope, system.module, globalThis.window ? system.url : system.serverUrl, undefined, system.preventSingleton), [system.scope, system.module, system.url, system.serverUrl, system.preventSingleton]);
|
|
38
19
|
return /*#__PURE__*/_react.default.createElement(_react.default.Suspense, {
|
|
39
20
|
fallback: fallback || ''
|
|
40
21
|
}, /*#__PURE__*/_react.default.createElement(Component, props));
|
|
@@ -83,6 +64,7 @@ const ModuleHost = ({
|
|
|
83
64
|
system: {
|
|
84
65
|
scope: system.scope,
|
|
85
66
|
url: (0, _url.replaceStagingUrl)(preventStagingReplacement, system.url, environment.buildEnvironment),
|
|
67
|
+
serverUrl: (0, _url.replaceStagingUrl)(preventStagingReplacement, system.serverUrl, environment.buildEnvironment),
|
|
86
68
|
module: system.module,
|
|
87
69
|
preventSingleton: system.preventSingleton
|
|
88
70
|
},
|
|
@@ -3,66 +3,108 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.default =
|
|
6
|
+
exports.loadModule = exports.default = void 0;
|
|
7
|
+
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
7
8
|
var _semver = _interopRequireDefault(require("semver"));
|
|
8
9
|
var _react = _interopRequireDefault(require("react"));
|
|
9
10
|
var _runtime = require("@module-federation/runtime");
|
|
11
|
+
var _process$env$__PACKAG;
|
|
10
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
13
|
const registeredScopes = {};
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
const moduleMap = {};
|
|
15
|
+
const componentMap = {};
|
|
16
|
+
(0, _runtime.init)({
|
|
17
|
+
// will be set by chayns-toolkit via DefinePlugin
|
|
18
|
+
name: (_process$env$__PACKAG = process.env.__PACKAGE_NAME__) !== null && _process$env$__PACKAG !== void 0 ? _process$env$__PACKAG : '',
|
|
19
|
+
remotes: [],
|
|
20
|
+
shared: {
|
|
21
|
+
react: {
|
|
22
|
+
version: _react.default.version,
|
|
23
|
+
scope: 'default',
|
|
24
|
+
lib: () => _react.default
|
|
25
|
+
},
|
|
26
|
+
'react-dom': {
|
|
27
|
+
version: _reactDom.default.version,
|
|
28
|
+
scope: 'default',
|
|
29
|
+
lib: () => _reactDom.default
|
|
30
|
+
}
|
|
16
31
|
}
|
|
32
|
+
});
|
|
33
|
+
const loadModule = (scope, module, url, preventSingleton = false) => {
|
|
17
34
|
if (registeredScopes[scope] !== url || preventSingleton) {
|
|
35
|
+
if (scope in registeredScopes) {
|
|
36
|
+
console.error(`[chayns-api] call registerRemote with force for scope ${scope}. url: ${url}`);
|
|
37
|
+
}
|
|
18
38
|
(0, _runtime.registerRemotes)([{
|
|
19
39
|
name: scope,
|
|
20
40
|
entry: url,
|
|
21
41
|
alias: scope
|
|
22
42
|
}], {
|
|
23
|
-
force: scope in registeredScopes
|
|
43
|
+
force: scope in registeredScopes || preventSingleton
|
|
24
44
|
});
|
|
25
45
|
registeredScopes[scope] = url;
|
|
26
|
-
|
|
46
|
+
moduleMap[scope] = {};
|
|
47
|
+
componentMap[scope] = {};
|
|
27
48
|
}
|
|
28
|
-
if (!(module in
|
|
49
|
+
if (!(module in moduleMap[scope])) {
|
|
29
50
|
const path = `${scope}/${module.replace(/^\.\//, '')}`;
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
51
|
+
const promise = (0, _runtime.loadRemote)(path);
|
|
52
|
+
promise.catch(e => {
|
|
53
|
+
console.error("[chayns-api] Failed to load module", scope, url, e);
|
|
54
|
+
// causes registerRemote with force = true on next attempt to load the component which tries to load the component again
|
|
55
|
+
registeredScopes[scope] = '';
|
|
56
|
+
});
|
|
57
|
+
return promise;
|
|
58
|
+
}
|
|
59
|
+
return moduleMap[scope][module];
|
|
60
|
+
};
|
|
61
|
+
exports.loadModule = loadModule;
|
|
62
|
+
const loadComponent = (scope, module, url, skipCompatMode = false, preventSingleton = false) => {
|
|
63
|
+
if (skipCompatMode) {
|
|
64
|
+
console.warn('[chayns-api] skipCompatMode-option is deprecated and is set automatically now');
|
|
65
|
+
}
|
|
66
|
+
if (!componentMap[scope]) {
|
|
67
|
+
componentMap[scope] = {};
|
|
68
|
+
}
|
|
69
|
+
if (!(module in componentMap[scope])) {
|
|
70
|
+
const promise = loadModule(scope, module, url, preventSingleton).then(async Module => {
|
|
71
|
+
if (typeof Module.default === 'function') {
|
|
72
|
+
return Module;
|
|
73
|
+
}
|
|
74
|
+
const hostVersion = _semver.default.minVersion(_react.default.version);
|
|
75
|
+
const {
|
|
76
|
+
requiredVersion,
|
|
77
|
+
environment
|
|
78
|
+
} = Module.default;
|
|
79
|
+
const shareScopes = await new Promise(resolve => {
|
|
80
|
+
(0, _runtime.loadShareSync)('react', {
|
|
81
|
+
resolver: shareOptions => {
|
|
82
|
+
resolve(shareOptions);
|
|
83
|
+
return shareOptions[0];
|
|
84
|
+
}
|
|
55
85
|
});
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
86
|
+
});
|
|
87
|
+
const matchReactVersion = requiredVersion && _semver.default.satisfies(hostVersion, requiredVersion) && !shareScopes.some(({
|
|
88
|
+
version,
|
|
89
|
+
from
|
|
90
|
+
}) => {
|
|
91
|
+
return _semver.default.gt(version, hostVersion) && _semver.default.satisfies(version, requiredVersion) || scope === from.split('-').join('_');
|
|
92
|
+
});
|
|
93
|
+
if (!matchReactVersion || environment !== 'production' || process.env.NODE_ENV === 'development') {
|
|
61
94
|
return {
|
|
62
|
-
default: Module.default.
|
|
95
|
+
default: Module.default.CompatComponent
|
|
63
96
|
};
|
|
64
|
-
}
|
|
97
|
+
}
|
|
98
|
+
return {
|
|
99
|
+
default: Module.default.Component
|
|
100
|
+
};
|
|
101
|
+
});
|
|
102
|
+
promise.catch(e => {
|
|
103
|
+
console.error("[chayns-api] Failed to load component", scope, url, e);
|
|
104
|
+
delete componentMap[scope][module];
|
|
65
105
|
});
|
|
106
|
+
componentMap[scope][module] = /*#__PURE__*/_react.default.lazy(() => promise);
|
|
66
107
|
}
|
|
67
|
-
return
|
|
68
|
-
}
|
|
108
|
+
return componentMap[scope][module];
|
|
109
|
+
};
|
|
110
|
+
var _default = exports.default = loadComponent;
|
package/dist/cjs/index.js
CHANGED
|
@@ -13,6 +13,7 @@ var _exportNames = {
|
|
|
13
13
|
withHydrationBoundary: true,
|
|
14
14
|
StaticChaynsApi: true,
|
|
15
15
|
loadComponent: true,
|
|
16
|
+
loadModule: true,
|
|
16
17
|
DialogHandler: true,
|
|
17
18
|
dialog: true
|
|
18
19
|
};
|
|
@@ -65,6 +66,12 @@ Object.defineProperty(exports, "loadComponent", {
|
|
|
65
66
|
return _loadComponent.default;
|
|
66
67
|
}
|
|
67
68
|
});
|
|
69
|
+
Object.defineProperty(exports, "loadModule", {
|
|
70
|
+
enumerable: true,
|
|
71
|
+
get: function () {
|
|
72
|
+
return _loadComponent.loadModule;
|
|
73
|
+
}
|
|
74
|
+
});
|
|
68
75
|
Object.defineProperty(exports, "withCompatMode", {
|
|
69
76
|
enumerable: true,
|
|
70
77
|
get: function () {
|
|
@@ -155,7 +162,7 @@ Object.keys(_constants).forEach(function (key) {
|
|
|
155
162
|
});
|
|
156
163
|
var _withHydrationBoundary = _interopRequireDefault(require("./components/withHydrationBoundary"));
|
|
157
164
|
var _StaticChaynsApi = _interopRequireDefault(require("./wrapper/StaticChaynsApi"));
|
|
158
|
-
var _loadComponent =
|
|
165
|
+
var _loadComponent = _interopRequireWildcard(require("./host/module/utils/loadComponent"));
|
|
159
166
|
var _DialogHandler = _interopRequireDefault(require("./handler/DialogHandler"));
|
|
160
167
|
var _dialog = _interopRequireWildcard(require("./calls/dialogs/index"));
|
|
161
168
|
exports.dialog = _dialog;
|
|
@@ -28,8 +28,11 @@ Comlink.transferHandlers.set("FUNCTION", {
|
|
|
28
28
|
},
|
|
29
29
|
deserialize(obj) {
|
|
30
30
|
obj._functionKeys.forEach(x => {
|
|
31
|
-
|
|
32
|
-
obj[x]
|
|
31
|
+
// under certain conditions deserialize can be called more than once on same object
|
|
32
|
+
if (obj[x] instanceof MessagePort) {
|
|
33
|
+
obj[x].start();
|
|
34
|
+
obj[x] = Comlink.wrap(obj[x]);
|
|
35
|
+
}
|
|
33
36
|
});
|
|
34
37
|
return obj;
|
|
35
38
|
}
|
package/dist/cjs/util/url.js
CHANGED
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.replaceStagingUrl = void 0;
|
|
7
7
|
var _IChaynsReact = require("../types/IChaynsReact");
|
|
8
8
|
const replaceStagingUrl = (prevent, url, environment) => {
|
|
9
|
-
if (prevent) return url;
|
|
9
|
+
if (prevent || !url) return url;
|
|
10
10
|
let replacedUrl = url;
|
|
11
11
|
if (environment === _IChaynsReact.Environment.Qa || environment === _IChaynsReact.Environment.Development) {
|
|
12
12
|
replacedUrl = replacedUrl.replace('tapp.chayns-static.space', 'tapp-dev.chayns-static.space');
|