chayns-api 1.0.1 → 1.0.3
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/.babelrc +30 -30
- package/.eslintrc +17 -17
- package/.github/workflows/deploy_docs.yml +28 -28
- package/.github/workflows/publish.yml +21 -0
- package/LICENSE +21 -21
- package/README.md +47 -47
- package/dist/cjs/calls/dialogs/alert.js +0 -2
- package/dist/cjs/calls/dialogs/chaynsDialog.js +2 -8
- package/dist/cjs/calls/dialogs/close.js +0 -2
- package/dist/cjs/calls/dialogs/communication.js +1 -16
- package/dist/cjs/calls/dialogs/confirm.js +0 -4
- package/dist/cjs/calls/dialogs/date.js +46 -63
- package/dist/cjs/calls/dialogs/dropUpAlert.js +0 -3
- package/dist/cjs/calls/dialogs/fileSelect.js +0 -10
- package/dist/cjs/calls/dialogs/iFrame.js +0 -8
- package/dist/cjs/calls/dialogs/index.js +0 -27
- package/dist/cjs/calls/dialogs/input.js +0 -6
- package/dist/cjs/calls/dialogs/mediaSelect.js +0 -7
- package/dist/cjs/calls/dialogs/open.js +0 -2
- package/dist/cjs/calls/dialogs/select.js +0 -9
- package/dist/cjs/calls/dialogs/signature.js +0 -5
- package/dist/cjs/calls/dialogs/toast.js +0 -3
- package/dist/cjs/calls/dialogs/utils/callback.js +0 -2
- package/dist/cjs/calls/dialogs/utils/is.js +0 -4
- package/dist/cjs/calls/getUserInfo.js +0 -11
- package/dist/cjs/calls/index.js +95 -247
- package/dist/cjs/calls/sendMessage.js +8 -34
- package/dist/cjs/calls/visibilityChangeListener.js +5 -16
- package/dist/cjs/components/ChaynsContext.js +2 -4
- package/dist/cjs/components/ChaynsProvider.js +6 -28
- package/dist/cjs/components/WaitUntil.js +0 -5
- package/dist/cjs/components/withCompatMode.js +1 -16
- package/dist/cjs/helper/apiListenerHelper.js +0 -9
- package/dist/cjs/hooks/geoLocationListener.js +6 -15
- package/dist/cjs/hooks/index.js +6 -16
- package/dist/cjs/hooks/scrollListener.js +12 -31
- package/dist/cjs/hooks/useAccessToken.js +2 -7
- package/dist/cjs/hooks/useCurrentPage.js +2 -6
- package/dist/cjs/hooks/useCustomData.js +2 -6
- package/dist/cjs/hooks/useDevice.js +2 -6
- package/dist/cjs/hooks/useEnvironment.js +2 -6
- package/dist/cjs/hooks/useFunctions.js +2 -6
- package/dist/cjs/hooks/useIsAdminMode.js +2 -7
- package/dist/cjs/hooks/useLanguage.js +2 -6
- package/dist/cjs/hooks/usePages.js +26 -18
- package/dist/cjs/hooks/useParameters.js +2 -6
- package/dist/cjs/hooks/useSite.js +2 -6
- package/dist/cjs/hooks/useUser.js +2 -7
- package/dist/cjs/hooks/useValues.js +2 -6
- package/dist/cjs/hooks/windowMetricsListener.js +6 -16
- package/dist/cjs/host/ChaynsHost.js +0 -10
- package/dist/cjs/host/iframe/HostIframe.js +23 -30
- package/dist/cjs/host/iframe/utils/useUpdateData.js +0 -3
- package/dist/cjs/host/module/ModuleHost.js +3 -13
- package/dist/cjs/host/module/utils/loadComponent.js +1 -18
- package/dist/cjs/host/module/utils/useDynamicScript.js +0 -18
- package/dist/cjs/index.js +0 -19
- package/dist/cjs/types/IChaynsReact.js +27 -48
- package/dist/cjs/util/appCall.js +1 -4
- package/dist/cjs/util/deviceHelper.js +5 -22
- package/dist/cjs/util/heightHelper.js +0 -9
- package/dist/cjs/util/postIframeForm.js +0 -5
- package/dist/cjs/wrapper/AppWrapper.js +323 -159
- package/dist/cjs/wrapper/FrameWrapper.js +219 -248
- package/dist/cjs/wrapper/ModuleFederationWrapper.js +2 -27
- package/dist/cjs/wrapper/SsrWrapper.js +0 -8
- package/dist/esm/calls/dialogs/alert.js +4 -4
- package/dist/esm/calls/dialogs/chaynsDialog.js +7 -11
- package/dist/esm/calls/dialogs/communication.js +15 -26
- package/dist/esm/calls/dialogs/confirm.js +5 -8
- package/dist/esm/calls/dialogs/date.js +119 -128
- package/dist/esm/calls/dialogs/dropUpAlert.js +1 -1
- package/dist/esm/calls/dialogs/fileSelect.js +23 -62
- package/dist/esm/calls/dialogs/iFrame.js +7 -10
- package/dist/esm/calls/dialogs/input.js +2 -5
- package/dist/esm/calls/dialogs/mediaSelect.js +18 -55
- package/dist/esm/calls/dialogs/open.js +2 -2
- package/dist/esm/calls/dialogs/select.js +5 -9
- package/dist/esm/calls/dialogs/signature.js +0 -2
- package/dist/esm/calls/dialogs/toast.js +6 -11
- package/dist/esm/calls/dialogs/utils/callback.js +3 -5
- package/dist/esm/calls/dialogs/utils/is.js +1 -3
- package/dist/esm/calls/getUserInfo.js +32 -92
- package/dist/esm/calls/index.js +297 -449
- package/dist/esm/calls/sendMessage.js +99 -229
- package/dist/esm/calls/visibilityChangeListener.js +14 -19
- package/dist/esm/components/ChaynsContext.js +3 -3
- package/dist/esm/components/ChaynsProvider.js +45 -86
- package/dist/esm/components/WaitUntil.js +21 -86
- package/dist/esm/components/withCompatMode.js +35 -77
- package/dist/esm/helper/apiListenerHelper.js +10 -15
- package/dist/esm/hooks/geoLocationListener.js +24 -50
- package/dist/esm/hooks/index.js +1 -1
- package/dist/esm/hooks/scrollListener.js +58 -94
- package/dist/esm/hooks/useAccessToken.js +8 -30
- package/dist/esm/hooks/useCurrentPage.js +4 -8
- package/dist/esm/hooks/useCustomData.js +4 -8
- package/dist/esm/hooks/useDevice.js +3 -8
- package/dist/esm/hooks/useEnvironment.js +3 -8
- package/dist/esm/hooks/useFunctions.js +4 -7
- package/dist/esm/hooks/useIsAdminMode.js +4 -8
- package/dist/esm/hooks/useLanguage.js +3 -8
- package/dist/esm/hooks/usePages.js +38 -31
- package/dist/esm/hooks/useParameters.js +3 -8
- package/dist/esm/hooks/useSite.js +3 -8
- package/dist/esm/hooks/useUser.js +3 -9
- package/dist/esm/hooks/useValues.js +4 -7
- package/dist/esm/hooks/windowMetricsListener.js +22 -48
- package/dist/esm/host/ChaynsHost.js +22 -29
- package/dist/esm/host/iframe/HostIframe.js +86 -142
- package/dist/esm/host/iframe/utils/useUpdateData.js +4 -6
- package/dist/esm/host/module/ModuleHost.js +42 -49
- package/dist/esm/host/module/utils/loadComponent.js +47 -85
- package/dist/esm/host/module/utils/useDynamicScript.js +27 -74
- package/dist/esm/types/IChaynsReact.js +37 -61
- package/dist/esm/util/appCall.js +2 -4
- package/dist/esm/util/deviceHelper.js +13 -37
- package/dist/esm/util/heightHelper.js +10 -13
- package/dist/esm/util/postIframeForm.js +25 -57
- package/dist/esm/wrapper/AppWrapper.js +385 -781
- package/dist/esm/wrapper/FrameWrapper.js +262 -1509
- package/dist/esm/wrapper/ModuleFederationWrapper.js +47 -284
- package/dist/esm/wrapper/SsrWrapper.js +19 -65
- package/dist/types/calls/dialogs/alert.d.ts +1 -1
- package/dist/types/calls/dialogs/chaynsDialog.d.ts +24 -24
- package/dist/types/calls/dialogs/close.d.ts +1 -1
- package/dist/types/calls/dialogs/communication.d.ts +3 -3
- package/dist/types/calls/dialogs/confirm.d.ts +13 -13
- package/dist/types/calls/dialogs/date.d.ts +96 -96
- package/dist/types/calls/dialogs/dropUpAlert.d.ts +5 -5
- package/dist/types/calls/dialogs/fileSelect.d.ts +16 -16
- package/dist/types/calls/dialogs/iFrame.d.ts +10 -10
- package/dist/types/calls/dialogs/index.d.ts +14 -14
- package/dist/types/calls/dialogs/input.d.ts +15 -15
- package/dist/types/calls/dialogs/mediaSelect.d.ts +8 -8
- package/dist/types/calls/dialogs/open.d.ts +1 -1
- package/dist/types/calls/dialogs/select.d.ts +6 -6
- package/dist/types/calls/dialogs/signature.d.ts +7 -7
- package/dist/types/calls/dialogs/toast.d.ts +1 -1
- package/dist/types/calls/dialogs/utils/callback.d.ts +1 -1
- package/dist/types/calls/dialogs/utils/is.d.ts +4 -4
- package/dist/types/calls/getUserInfo.d.ts +9 -9
- package/dist/types/calls/index.d.ts +225 -231
- package/dist/types/calls/sendMessage.d.ts +13 -13
- package/dist/types/calls/visibilityChangeListener.d.ts +9 -9
- package/dist/types/components/ChaynsContext.d.ts +3 -3
- package/dist/types/components/ChaynsProvider.d.ts +13 -13
- package/dist/types/components/WaitUntil.d.ts +7 -7
- package/dist/types/components/withCompatMode.d.ts +13 -13
- package/dist/types/helper/apiListenerHelper.d.ts +6 -6
- package/dist/types/hooks/geoLocationListener.d.ts +18 -18
- package/dist/types/hooks/index.d.ts +16 -16
- package/dist/types/hooks/scrollListener.d.ts +28 -28
- package/dist/types/hooks/useAccessToken.d.ts +5 -5
- package/dist/types/hooks/useCurrentPage.d.ts +4 -4
- package/dist/types/hooks/useCustomData.d.ts +4 -4
- package/dist/types/hooks/useDevice.d.ts +5 -5
- package/dist/types/hooks/useEnvironment.d.ts +5 -5
- package/dist/types/hooks/useFunctions.d.ts +5 -5
- package/dist/types/hooks/useIsAdminMode.d.ts +4 -4
- package/dist/types/hooks/useLanguage.d.ts +5 -5
- package/dist/types/hooks/usePages.d.ts +18 -14
- package/dist/types/hooks/useParameters.d.ts +5 -5
- package/dist/types/hooks/useSite.d.ts +5 -5
- package/dist/types/hooks/useUser.d.ts +5 -5
- package/dist/types/hooks/useValues.d.ts +5 -5
- package/dist/types/hooks/windowMetricsListener.d.ts +11 -11
- package/dist/types/host/ChaynsHost.d.ts +28 -28
- package/dist/types/host/iframe/HostIframe.d.ts +24 -24
- package/dist/types/host/iframe/utils/useUpdateData.d.ts +3 -3
- package/dist/types/host/module/ModuleHost.d.ts +23 -23
- package/dist/types/host/module/utils/loadComponent.d.ts +1 -1
- package/dist/types/host/module/utils/useDynamicScript.d.ts +9 -9
- package/dist/types/index.d.ts +16 -16
- package/dist/types/types/IChaynsReact.d.ts +622 -590
- package/dist/types/types/dialog.d.ts +41 -41
- package/dist/types/util/appCall.d.ts +2 -2
- package/dist/types/util/deviceHelper.d.ts +7 -7
- package/dist/types/util/heightHelper.d.ts +1 -1
- package/dist/types/util/postIframeForm.d.ts +1 -1
- package/dist/types/wrapper/AppWrapper.d.ts +18 -16
- package/dist/types/wrapper/FrameWrapper.d.ts +15 -15
- package/dist/types/wrapper/ModuleFederationWrapper.d.ts +10 -10
- package/dist/types/wrapper/SsrWrapper.d.ts +11 -11
- package/package.json +76 -76
- package/toolkit.config.js +52 -52
- package/tsconfig.json +56 -56
- package/dist/cjs/bootstrap.js +0 -11
- package/dist/cjs/calls/abstractApiListener.js +0 -40
- package/dist/cjs/calls/apiEventListener.js +0 -40
- package/dist/cjs/calls/setVisibilityChangeListener.js +0 -1
- package/dist/cjs/calls/windowMetricsListener.js +0 -18
- package/dist/cjs/client.js +0 -93
- package/dist/cjs/components/App.js +0 -32
- package/dist/cjs/components/App.spec.js +0 -16
- package/dist/cjs/components/Button.js +0 -32
- package/dist/cjs/components/ChaynsModuleProvider.js +0 -457
- package/dist/cjs/components/ChaynsProviderExposed.js +0 -16
- package/dist/cjs/components/TestProvider.js +0 -236
- package/dist/cjs/components/Title.js +0 -162
- package/dist/cjs/functions/addApiListener.js +0 -37
- package/dist/cjs/functions/addGeoLocationListener.js +0 -26
- package/dist/cjs/functions/addScrollListener.js +0 -26
- package/dist/cjs/functions/addWindowMetricsListener.js +0 -37
- package/dist/cjs/helper/cssLoader.js +0 -28
- package/dist/cjs/hooks/addGeoLocationListener.js +0 -26
- package/dist/cjs/hooks/addScrollListener.js +0 -26
- package/dist/cjs/hooks/addWindowMetricsListener.js +0 -37
- package/dist/cjs/hooks/geoLocation.js +0 -48
- package/dist/cjs/hooks/useAddGeoLocationListener.js +0 -26
- package/dist/cjs/hooks/useAddScrollListener.js +0 -48
- package/dist/cjs/hooks/useAddWindowMetricsListener.js +0 -45
- package/dist/cjs/hooks/useAdddScrollListener.js +0 -26
- package/dist/cjs/hooks/windowMetrics.js +0 -45
- package/dist/cjs/host/HostIframe.js +0 -157
- package/dist/cjs/host/ModuleHost.js +0 -11
- package/dist/cjs/host/module/utils.js +0 -25
- package/dist/cjs/index.example.js +0 -7
- package/dist/cjs/index2.js +0 -64
- package/dist/cjs/types/DynamicApiImport.d.js +0 -5
- package/dist/cjs/types/DynamicImport.d.js +0 -5
- package/dist/cjs/types/chayns-components.d.js +0 -1
- package/dist/cjs/types/chayns-logger.d.js +0 -1
- package/dist/cjs/types/chayns.d.js +0 -1
- package/dist/cjs/types/tobit-websocket-service-client.d.js +0 -1
- package/dist/cjs/types/toolkit-types.d.js +0 -1
- package/dist/cjs/util/useFunctionsContext.js +0 -16
- package/dist/cjs/util/useIsAdminMode.js +0 -18
- package/dist/cjs/util/useUser.js +0 -16
- package/dist/esm/bootstrap.js +0 -4
- package/dist/esm/client.js +0 -8
- package/dist/esm/components/App.js +0 -35
- package/dist/esm/components/App.spec.js +0 -9
- package/dist/esm/components/Button.js +0 -34
- package/dist/esm/components/ChaynsModuleProvider.js +0 -517
- package/dist/esm/components/ChaynsProviderExposed.js +0 -3
- package/dist/esm/components/TestProvider.js +0 -308
- package/dist/esm/components/Title.js +0 -210
- package/dist/esm/helper/cssLoader.js +0 -21
- package/dist/esm/hooks/useAddGeoLocationListener.js +0 -18
- package/dist/esm/hooks/useAddScrollListener.js +0 -18
- package/dist/esm/hooks/useAddWindowMetricsListener.js +0 -18
- package/dist/esm/host/HostIframe.js +0 -153
- package/dist/esm/index.example.js +0 -1
- package/dist/esm/index2.js +0 -5
- package/dist/esm/types/DynamicApiImport.d.js +0 -1
- package/dist/esm/types/DynamicImport.d.js +0 -1
- package/dist/esm/types/chayns-components.d.js +0 -0
- package/dist/esm/types/chayns-logger.d.js +0 -0
- package/dist/esm/types/chayns.d.js +0 -0
- package/dist/esm/types/tobit-websocket-service-client.d.js +0 -0
- package/dist/esm/types/toolkit-types.d.js +0 -0
- package/dist/esm/util/useIsAdminMode.js +0 -9
- package/dist/esm/util/useUser.js +0 -7
- package/dist/types/bootstrap.d.ts +0 -1
- package/dist/types/client.d.ts +0 -7
- package/dist/types/components/App.d.ts +0 -5
- package/dist/types/components/Button.d.ts +0 -8
- package/dist/types/components/ChaynsModuleProvider.d.ts +0 -170
- package/dist/types/components/ChaynsProviderExposed.d.ts +0 -13
- package/dist/types/components/Title.d.ts +0 -3
- package/dist/types/host/HostIframe.d.ts +0 -20
- package/dist/types/index.example.d.ts +0 -0
|
@@ -1,158 +1,103 @@
|
|
|
1
|
-
function _extends() { _extends = Object.assign
|
|
2
|
-
|
|
3
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
4
|
-
|
|
5
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
6
|
-
|
|
7
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
8
|
-
|
|
9
|
-
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
10
|
-
|
|
11
|
-
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
12
|
-
|
|
1
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
13
2
|
import React, { useEffect, useRef } from 'react';
|
|
14
3
|
import * as comlink from 'comlink';
|
|
15
4
|
import postIframeForm from '../../util/postIframeForm';
|
|
16
5
|
import useUpdateData from './utils/useUpdateData';
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
var currentDataRef = useRef();
|
|
40
|
-
|
|
6
|
+
const HostIframe = _ref => {
|
|
7
|
+
let {
|
|
8
|
+
iFrameProps,
|
|
9
|
+
src,
|
|
10
|
+
postForm = false,
|
|
11
|
+
iFrameRef,
|
|
12
|
+
// shallow data
|
|
13
|
+
pages,
|
|
14
|
+
isAdminModeActive,
|
|
15
|
+
site,
|
|
16
|
+
user,
|
|
17
|
+
currentPage,
|
|
18
|
+
functions,
|
|
19
|
+
device,
|
|
20
|
+
language,
|
|
21
|
+
parameters,
|
|
22
|
+
environment,
|
|
23
|
+
customData
|
|
24
|
+
} = _ref;
|
|
25
|
+
const eventTarget = useRef();
|
|
26
|
+
const ref = useRef();
|
|
27
|
+
const currentDataRef = useRef();
|
|
41
28
|
if (!eventTarget.current) {
|
|
42
29
|
eventTarget.current = global.document ? document.createElement('div') : undefined; // global.EventTarget ? new EventTarget() : undefined
|
|
43
30
|
}
|
|
44
31
|
|
|
45
|
-
|
|
46
|
-
if (
|
|
47
|
-
|
|
32
|
+
const setHeight = value => {
|
|
33
|
+
if (ref.current) {
|
|
34
|
+
ref.current.height = `${value}px`;
|
|
48
35
|
}
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
site
|
|
54
|
-
isAdminModeActive
|
|
55
|
-
pages
|
|
56
|
-
currentPage
|
|
57
|
-
device
|
|
58
|
-
user
|
|
59
|
-
language
|
|
60
|
-
parameters
|
|
61
|
-
environment
|
|
62
|
-
customData
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
_context.t1 = _yield$functions$getA = _context.sent;
|
|
85
|
-
_context.t0 = _context.t1 !== null;
|
|
86
|
-
|
|
87
|
-
if (!_context.t0) {
|
|
88
|
-
_context.next = 7;
|
|
89
|
-
break;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
_context.t0 = _yield$functions$getA !== void 0;
|
|
93
|
-
|
|
94
|
-
case 7:
|
|
95
|
-
if (!_context.t0) {
|
|
96
|
-
_context.next = 11;
|
|
97
|
-
break;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
_context.t2 = _yield$functions$getA;
|
|
101
|
-
_context.next = 12;
|
|
102
|
-
break;
|
|
103
|
-
|
|
104
|
-
case 11:
|
|
105
|
-
_context.t2 = {};
|
|
106
|
-
|
|
107
|
-
case 12:
|
|
108
|
-
accessToken = _context.t2;
|
|
109
|
-
void postIframeForm(src, JSON.stringify(_objectSpread(_objectSpread({}, initialData), {}, {
|
|
110
|
-
pages: undefined
|
|
111
|
-
}, accessToken)), 'chayns', iFrameProps.name);
|
|
112
|
-
|
|
113
|
-
case 14:
|
|
114
|
-
case "end":
|
|
115
|
-
return _context.stop();
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}, _callee);
|
|
119
|
-
}))(); // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
// region initialData
|
|
39
|
+
const initialData = {
|
|
40
|
+
site,
|
|
41
|
+
isAdminModeActive,
|
|
42
|
+
pages,
|
|
43
|
+
currentPage,
|
|
44
|
+
device,
|
|
45
|
+
user,
|
|
46
|
+
language,
|
|
47
|
+
parameters,
|
|
48
|
+
environment,
|
|
49
|
+
customData
|
|
50
|
+
};
|
|
51
|
+
// endregion
|
|
52
|
+
|
|
53
|
+
currentDataRef.current = initialData;
|
|
54
|
+
|
|
55
|
+
// region postIframeForm
|
|
56
|
+
useEffect(() => {
|
|
57
|
+
(async () => {
|
|
58
|
+
if (postForm) {
|
|
59
|
+
var _await$functions$getA;
|
|
60
|
+
const accessToken = (_await$functions$getA = await functions.getAccessToken()) !== null && _await$functions$getA !== void 0 ? _await$functions$getA : {};
|
|
61
|
+
void postIframeForm(src, JSON.stringify({
|
|
62
|
+
...initialData,
|
|
63
|
+
pages: undefined,
|
|
64
|
+
...accessToken
|
|
65
|
+
}), 'chayns', iFrameProps.name);
|
|
66
|
+
}
|
|
67
|
+
})();
|
|
68
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
69
|
+
}, []);
|
|
70
|
+
// endregion
|
|
120
71
|
|
|
121
|
-
}, []); // endregion
|
|
122
72
|
// region expose data and functions to iframe
|
|
123
|
-
|
|
124
|
-
useEffect(function () {
|
|
73
|
+
useEffect(() => {
|
|
125
74
|
var _ref$current;
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
getInitialData: function getInitialData() {
|
|
138
|
-
return currentDataRef.current;
|
|
75
|
+
if ((_ref$current = ref.current) !== null && _ref$current !== void 0 && _ref$current.contentWindow) {
|
|
76
|
+
const obj = {
|
|
77
|
+
[iFrameProps.name]: {
|
|
78
|
+
functions: {
|
|
79
|
+
...functions,
|
|
80
|
+
setHeight
|
|
81
|
+
},
|
|
82
|
+
addDataListener: cb => {
|
|
83
|
+
if (eventTarget.current) eventTarget.current.addEventListener('data_update', e => e.detail && cb(e.detail));
|
|
84
|
+
},
|
|
85
|
+
getInitialData: () => currentDataRef.current
|
|
139
86
|
}
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
return function () {
|
|
87
|
+
};
|
|
88
|
+
comlink.expose(obj, comlink.windowEndpoint(ref.current.contentWindow));
|
|
89
|
+
ref.current.contentWindow.postMessage('chayns-api-host-ready', '*');
|
|
90
|
+
// https://github.com/GoogleChromeLabs/comlink/pull/469 might be better approach once released
|
|
91
|
+
return () => {
|
|
148
92
|
delete obj[iFrameProps.name];
|
|
149
93
|
};
|
|
150
94
|
}
|
|
95
|
+
return undefined;
|
|
96
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
97
|
+
}, []);
|
|
98
|
+
// endregion
|
|
151
99
|
|
|
152
|
-
return undefined; // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
153
|
-
}, []); // endregion
|
|
154
100
|
// region dispatch data update
|
|
155
|
-
|
|
156
101
|
useUpdateData(eventTarget.current, 'isAdminModeActive', isAdminModeActive);
|
|
157
102
|
useUpdateData(eventTarget.current, 'user', user);
|
|
158
103
|
useUpdateData(eventTarget.current, 'site', site);
|
|
@@ -160,12 +105,12 @@ var HostIframe = function HostIframe(_ref) {
|
|
|
160
105
|
useUpdateData(eventTarget.current, 'language', language);
|
|
161
106
|
useUpdateData(eventTarget.current, 'parameters', parameters);
|
|
162
107
|
useUpdateData(eventTarget.current, 'environment', environment);
|
|
163
|
-
useUpdateData(eventTarget.current, 'customData', customData);
|
|
108
|
+
useUpdateData(eventTarget.current, 'customData', customData);
|
|
109
|
+
// endregion
|
|
164
110
|
|
|
165
111
|
return /*#__PURE__*/React.createElement("iframe", _extends({
|
|
166
|
-
ref:
|
|
167
|
-
|
|
168
|
-
|
|
112
|
+
ref: r => {
|
|
113
|
+
ref.current = r;
|
|
169
114
|
if (iFrameRef) {
|
|
170
115
|
// eslint-disable-next-line no-param-reassign
|
|
171
116
|
iFrameRef.current = r;
|
|
@@ -176,5 +121,4 @@ var HostIframe = function HostIframe(_ref) {
|
|
|
176
121
|
src: postForm ? undefined : src
|
|
177
122
|
}));
|
|
178
123
|
};
|
|
179
|
-
|
|
180
124
|
export default HostIframe;
|
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
import { useEffect } from 'react';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
useEffect(function () {
|
|
2
|
+
const useUpdateData = (target, type, value) => {
|
|
3
|
+
useEffect(() => {
|
|
5
4
|
if (target) {
|
|
6
5
|
target.dispatchEvent(new CustomEvent('data_update', {
|
|
7
6
|
detail: {
|
|
8
|
-
type
|
|
9
|
-
value
|
|
7
|
+
type,
|
|
8
|
+
value
|
|
10
9
|
}
|
|
11
10
|
}));
|
|
12
11
|
}
|
|
13
12
|
}, [target, type, value]);
|
|
14
13
|
};
|
|
15
|
-
|
|
16
14
|
export default useUpdateData;
|
|
@@ -1,71 +1,65 @@
|
|
|
1
|
-
var _excluded = ["system", "fallback"];
|
|
2
|
-
|
|
3
|
-
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
4
|
-
|
|
5
|
-
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
6
|
-
|
|
7
1
|
import React, { useMemo } from 'react';
|
|
8
2
|
import useDynamicScript from './utils/useDynamicScript';
|
|
9
3
|
import loadComponent from './utils/loadComponent';
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
4
|
+
const System = _ref => {
|
|
5
|
+
let {
|
|
6
|
+
system,
|
|
7
|
+
fallback,
|
|
8
|
+
...props
|
|
9
|
+
} = _ref;
|
|
10
|
+
const {
|
|
11
|
+
ready,
|
|
12
|
+
failed
|
|
13
|
+
} = useDynamicScript({
|
|
17
14
|
url: system === null || system === void 0 ? void 0 : system.url,
|
|
18
15
|
scope: system === null || system === void 0 ? void 0 : system.scope
|
|
19
|
-
})
|
|
20
|
-
|
|
21
|
-
failed = _useDynamicScript.failed;
|
|
22
|
-
|
|
23
|
-
var Component = useMemo(function () {
|
|
16
|
+
});
|
|
17
|
+
const Component = useMemo(() => {
|
|
24
18
|
// maybe return waitcursor instead
|
|
25
19
|
if (!system || !ready || failed) {
|
|
26
20
|
return null;
|
|
27
21
|
}
|
|
28
|
-
|
|
29
22
|
return /*#__PURE__*/React.lazy(loadComponent(system.scope, system.module, system.url));
|
|
23
|
+
|
|
30
24
|
/* eslint-disable react-hooks/exhaustive-deps */
|
|
31
25
|
}, [system === null || system === void 0 ? void 0 : system.scope, ready, system === null || system === void 0 ? void 0 : system.url]);
|
|
32
26
|
return Component ? /*#__PURE__*/React.createElement(React.Suspense, {
|
|
33
27
|
fallback: fallback || ''
|
|
34
28
|
}, /*#__PURE__*/React.createElement(Component, props)) : fallback;
|
|
35
29
|
};
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
30
|
+
const ModuleHost = _ref2 => {
|
|
31
|
+
let {
|
|
32
|
+
system,
|
|
33
|
+
children = null,
|
|
34
|
+
functions,
|
|
35
|
+
// shallow data
|
|
36
|
+
pages,
|
|
37
|
+
isAdminModeActive,
|
|
38
|
+
site,
|
|
39
|
+
user,
|
|
40
|
+
currentPage,
|
|
41
|
+
device,
|
|
42
|
+
language,
|
|
43
|
+
parameters,
|
|
44
|
+
customData,
|
|
45
|
+
environment
|
|
46
|
+
} = _ref2;
|
|
52
47
|
// region initialData
|
|
53
|
-
|
|
54
|
-
site
|
|
55
|
-
isAdminModeActive
|
|
56
|
-
pages
|
|
57
|
-
currentPage
|
|
58
|
-
device
|
|
59
|
-
language
|
|
60
|
-
parameters
|
|
61
|
-
customData
|
|
62
|
-
environment
|
|
48
|
+
const initialData = {
|
|
49
|
+
site,
|
|
50
|
+
isAdminModeActive,
|
|
51
|
+
pages,
|
|
52
|
+
currentPage,
|
|
53
|
+
device,
|
|
54
|
+
language,
|
|
55
|
+
parameters,
|
|
56
|
+
customData,
|
|
57
|
+
environment
|
|
63
58
|
};
|
|
64
|
-
|
|
65
59
|
if (user) {
|
|
66
60
|
initialData.user = user;
|
|
67
|
-
}
|
|
68
|
-
|
|
61
|
+
}
|
|
62
|
+
// endregion
|
|
69
63
|
|
|
70
64
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
71
65
|
className: "module-css"
|
|
@@ -77,5 +71,4 @@ var ModuleHost = function ModuleHost(_ref2) {
|
|
|
77
71
|
isModule: true
|
|
78
72
|
}));
|
|
79
73
|
};
|
|
80
|
-
|
|
81
74
|
export default ModuleHost;
|
|
@@ -1,93 +1,55 @@
|
|
|
1
|
-
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
2
|
-
|
|
3
|
-
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
4
|
-
|
|
5
1
|
/* eslint-disable */
|
|
6
2
|
// @ts-nocheck
|
|
3
|
+
|
|
7
4
|
import semver from 'semver';
|
|
8
5
|
import React from 'react';
|
|
9
6
|
import { semaphore } from './useDynamicScript';
|
|
10
|
-
|
|
7
|
+
let instances = {};
|
|
11
8
|
export default function loadComponent(scope, module, url) {
|
|
12
|
-
|
|
13
|
-
return
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
case 7:
|
|
38
|
-
factory = _context.sent;
|
|
39
|
-
semaphore[scope].release();
|
|
40
|
-
ModuleMap = instances["".concat(scope, "__").concat(module)];
|
|
41
|
-
|
|
42
|
-
if (!ModuleMap) {
|
|
43
|
-
ModuleMap = {};
|
|
44
|
-
instances["".concat(scope, "__").concat(module)] = ModuleMap;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
if (Object.keys(ModuleMap).length > 0) {
|
|
48
|
-
newModule = factory();
|
|
49
|
-
Module = ModuleMap["".concat(newModule.default.buildEnv, "__").concat(newModule.default.appVersion)];
|
|
50
|
-
|
|
51
|
-
if (!Module) {
|
|
52
|
-
Module = newModule;
|
|
53
|
-
ModuleMap["".concat(newModule.default.buildEnv, "__").concat(newModule.default.appVersion)] = newModule;
|
|
54
|
-
}
|
|
55
|
-
} else {
|
|
56
|
-
Module = factory();
|
|
57
|
-
ModuleMap["".concat(Module.default.buildEnv, "__").concat(Module.default.appVersion)] = Module;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
if (!skipCompatMode) {
|
|
61
|
-
_context.next = 14;
|
|
62
|
-
break;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
return _context.abrupt("return", Module);
|
|
66
|
-
|
|
67
|
-
case 14:
|
|
68
|
-
hostVersion = semver.minVersion(React.version);
|
|
69
|
-
_Module$default = Module.default, requiredVersion = _Module$default.requiredVersion, environment = _Module$default.environment;
|
|
70
|
-
matchReactVersion = requiredVersion && semver.satisfies(hostVersion, requiredVersion);
|
|
71
|
-
|
|
72
|
-
if (!(!matchReactVersion || environment !== 'production')) {
|
|
73
|
-
_context.next = 19;
|
|
74
|
-
break;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
return _context.abrupt("return", {
|
|
78
|
-
default: Module.default.CompatComponent
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
case 19:
|
|
82
|
-
return _context.abrupt("return", {
|
|
83
|
-
default: Module.default.Component
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
case 20:
|
|
87
|
-
case "end":
|
|
88
|
-
return _context.stop();
|
|
89
|
-
}
|
|
9
|
+
let skipCompatMode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
10
|
+
return async () => {
|
|
11
|
+
// Initializes the shared scope. Fills it with known provided modules from this build and all remotes
|
|
12
|
+
// eslint-disable-next-line no-undef
|
|
13
|
+
await __webpack_init_sharing__('default');
|
|
14
|
+
const {
|
|
15
|
+
container
|
|
16
|
+
} = window[scope + "_list"].find(x => x.url === url); // or get the container somewhere else
|
|
17
|
+
// Initialize the container, it may provide shared modules
|
|
18
|
+
// eslint-disable-next-line no-undef
|
|
19
|
+
await container.init(__webpack_share_scopes__.default);
|
|
20
|
+
const factory = await container.get(module);
|
|
21
|
+
semaphore[scope].release();
|
|
22
|
+
let ModuleMap = instances[`${scope}__${module}`];
|
|
23
|
+
let Module;
|
|
24
|
+
if (!ModuleMap) {
|
|
25
|
+
ModuleMap = {};
|
|
26
|
+
instances[`${scope}__${module}`] = ModuleMap;
|
|
27
|
+
}
|
|
28
|
+
if (Object.keys(ModuleMap).length > 0) {
|
|
29
|
+
const newModule = factory();
|
|
30
|
+
Module = ModuleMap[`${newModule.default.buildEnv}__${newModule.default.appVersion}`];
|
|
31
|
+
if (!Module) {
|
|
32
|
+
Module = newModule;
|
|
33
|
+
ModuleMap[`${newModule.default.buildEnv}__${newModule.default.appVersion}`] = newModule;
|
|
90
34
|
}
|
|
91
|
-
}
|
|
92
|
-
|
|
35
|
+
} else {
|
|
36
|
+
Module = factory();
|
|
37
|
+
ModuleMap[`${Module.default.buildEnv}__${Module.default.appVersion}`] = Module;
|
|
38
|
+
}
|
|
39
|
+
if (skipCompatMode) return Module;
|
|
40
|
+
const hostVersion = semver.minVersion(React.version);
|
|
41
|
+
const {
|
|
42
|
+
requiredVersion,
|
|
43
|
+
environment
|
|
44
|
+
} = Module.default;
|
|
45
|
+
const matchReactVersion = requiredVersion && semver.satisfies(hostVersion, requiredVersion);
|
|
46
|
+
if (!matchReactVersion || environment !== 'production') {
|
|
47
|
+
return {
|
|
48
|
+
default: Module.default.CompatComponent
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
default: Module.default.Component
|
|
53
|
+
};
|
|
54
|
+
};
|
|
93
55
|
}
|