chayns-api 1.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.
Files changed (205) hide show
  1. package/.babelrc +30 -0
  2. package/.eslintrc +17 -0
  3. package/.github/workflows/deploy_docs.yml +28 -0
  4. package/LICENSE +21 -0
  5. package/README.md +47 -0
  6. package/dist/cjs/calls/dialogs/alert.js +19 -0
  7. package/dist/cjs/calls/dialogs/chaynsDialog.js +59 -0
  8. package/dist/cjs/calls/dialogs/close.js +13 -0
  9. package/dist/cjs/calls/dialogs/communication.js +71 -0
  10. package/dist/cjs/calls/dialogs/confirm.js +33 -0
  11. package/dist/cjs/calls/dialogs/date.js +187 -0
  12. package/dist/cjs/calls/dialogs/dropUpAlert.js +12 -0
  13. package/dist/cjs/calls/dialogs/fileSelect.js +39 -0
  14. package/dist/cjs/calls/dialogs/iFrame.js +43 -0
  15. package/dist/cjs/calls/dialogs/index.js +178 -0
  16. package/dist/cjs/calls/dialogs/input.js +33 -0
  17. package/dist/cjs/calls/dialogs/mediaSelect.js +27 -0
  18. package/dist/cjs/calls/dialogs/open.js +19 -0
  19. package/dist/cjs/calls/dialogs/select.js +55 -0
  20. package/dist/cjs/calls/dialogs/signature.js +24 -0
  21. package/dist/cjs/calls/dialogs/toast.js +18 -0
  22. package/dist/cjs/calls/dialogs/utils/callback.js +12 -0
  23. package/dist/cjs/calls/dialogs/utils/environment.js +10 -0
  24. package/dist/cjs/calls/dialogs/utils/is.js +21 -0
  25. package/dist/cjs/calls/getUserInfo.js +40 -0
  26. package/dist/cjs/calls/index.js +300 -0
  27. package/dist/cjs/calls/sendMessage.js +120 -0
  28. package/dist/cjs/calls/visibilityChangeListener.js +38 -0
  29. package/dist/cjs/client.js +93 -0
  30. package/dist/cjs/components/ChaynsContext.js +12 -0
  31. package/dist/cjs/components/ChaynsModuleProvider.js +457 -0
  32. package/dist/cjs/components/ChaynsProvider.js +116 -0
  33. package/dist/cjs/components/WaitUntil.js +31 -0
  34. package/dist/cjs/components/withCompatMode.js +55 -0
  35. package/dist/cjs/helper/apiListenerHelper.js +34 -0
  36. package/dist/cjs/hooks/geoLocationListener.js +50 -0
  37. package/dist/cjs/hooks/index.js +153 -0
  38. package/dist/cjs/hooks/scrollListener.js +102 -0
  39. package/dist/cjs/hooks/useAccessToken.js +28 -0
  40. package/dist/cjs/hooks/useCurrentPage.js +13 -0
  41. package/dist/cjs/hooks/useCustomData.js +13 -0
  42. package/dist/cjs/hooks/useDevice.js +13 -0
  43. package/dist/cjs/hooks/useEnvironment.js +13 -0
  44. package/dist/cjs/hooks/useFunctions.js +16 -0
  45. package/dist/cjs/hooks/useIsAdminMode.js +16 -0
  46. package/dist/cjs/hooks/useLanguage.js +13 -0
  47. package/dist/cjs/hooks/usePages.js +38 -0
  48. package/dist/cjs/hooks/useParameters.js +13 -0
  49. package/dist/cjs/hooks/useSite.js +13 -0
  50. package/dist/cjs/hooks/useUser.js +14 -0
  51. package/dist/cjs/hooks/useValues.js +16 -0
  52. package/dist/cjs/hooks/windowMetricsListener.js +58 -0
  53. package/dist/cjs/host/ChaynsHost.js +102 -0
  54. package/dist/cjs/host/iframe/HostIframe.js +133 -0
  55. package/dist/cjs/host/iframe/utils/useUpdateData.js +21 -0
  56. package/dist/cjs/host/module/ModuleHost.js +82 -0
  57. package/dist/cjs/host/module/PagemakerFrame.js +105 -0
  58. package/dist/cjs/host/module/utils/loadComponent.js +61 -0
  59. package/dist/cjs/host/module/utils/useDynamicScript.js +61 -0
  60. package/dist/cjs/index.js +117 -0
  61. package/dist/cjs/types/DynamicApiImport.d.js +5 -0
  62. package/dist/cjs/types/IChaynsReact.js +235 -0
  63. package/dist/cjs/types/dialog.js +5 -0
  64. package/dist/cjs/util/appCall.js +23 -0
  65. package/dist/cjs/util/deviceHelper.js +71 -0
  66. package/dist/cjs/util/heightHelper.js +40 -0
  67. package/dist/cjs/util/postIframeForm.js +32 -0
  68. package/dist/cjs/wrapper/AppWrapper.js +244 -0
  69. package/dist/cjs/wrapper/FrameWrapper.js +288 -0
  70. package/dist/cjs/wrapper/ModuleFederationWrapper.js +61 -0
  71. package/dist/cjs/wrapper/SsrWrapper.js +30 -0
  72. package/dist/esm/calls/dialogs/alert.js +15 -0
  73. package/dist/esm/calls/dialogs/chaynsDialog.js +48 -0
  74. package/dist/esm/calls/dialogs/close.js +7 -0
  75. package/dist/esm/calls/dialogs/communication.js +66 -0
  76. package/dist/esm/calls/dialogs/confirm.js +30 -0
  77. package/dist/esm/calls/dialogs/date.js +211 -0
  78. package/dist/esm/calls/dialogs/dropUpAlert.js +7 -0
  79. package/dist/esm/calls/dialogs/fileSelect.js +32 -0
  80. package/dist/esm/calls/dialogs/iFrame.js +37 -0
  81. package/dist/esm/calls/dialogs/index.js +14 -0
  82. package/dist/esm/calls/dialogs/input.js +26 -0
  83. package/dist/esm/calls/dialogs/mediaSelect.js +22 -0
  84. package/dist/esm/calls/dialogs/open.js +13 -0
  85. package/dist/esm/calls/dialogs/select.js +47 -0
  86. package/dist/esm/calls/dialogs/signature.js +18 -0
  87. package/dist/esm/calls/dialogs/toast.js +13 -0
  88. package/dist/esm/calls/dialogs/utils/callback.js +7 -0
  89. package/dist/esm/calls/dialogs/utils/environment.js +3 -0
  90. package/dist/esm/calls/dialogs/utils/is.js +12 -0
  91. package/dist/esm/calls/getUserInfo.js +33 -0
  92. package/dist/esm/calls/index.js +323 -0
  93. package/dist/esm/calls/sendMessage.js +111 -0
  94. package/dist/esm/calls/visibilityChangeListener.js +30 -0
  95. package/dist/esm/client.js +8 -0
  96. package/dist/esm/components/ChaynsContext.js +4 -0
  97. package/dist/esm/components/ChaynsModuleProvider.js +517 -0
  98. package/dist/esm/components/ChaynsProvider.js +109 -0
  99. package/dist/esm/components/WaitUntil.js +25 -0
  100. package/dist/esm/components/withCompatMode.js +47 -0
  101. package/dist/esm/helper/apiListenerHelper.js +25 -0
  102. package/dist/esm/hooks/geoLocationListener.js +43 -0
  103. package/dist/esm/hooks/index.js +16 -0
  104. package/dist/esm/hooks/scrollListener.js +95 -0
  105. package/dist/esm/hooks/useAccessToken.js +22 -0
  106. package/dist/esm/hooks/useCurrentPage.js +7 -0
  107. package/dist/esm/hooks/useCustomData.js +7 -0
  108. package/dist/esm/hooks/useDevice.js +6 -0
  109. package/dist/esm/hooks/useEnvironment.js +6 -0
  110. package/dist/esm/hooks/useFunctions.js +9 -0
  111. package/dist/esm/hooks/useIsAdminMode.js +9 -0
  112. package/dist/esm/hooks/useLanguage.js +6 -0
  113. package/dist/esm/hooks/usePages.js +32 -0
  114. package/dist/esm/hooks/useParameters.js +6 -0
  115. package/dist/esm/hooks/useSite.js +6 -0
  116. package/dist/esm/hooks/useUser.js +7 -0
  117. package/dist/esm/hooks/useValues.js +9 -0
  118. package/dist/esm/hooks/windowMetricsListener.js +51 -0
  119. package/dist/esm/host/ChaynsHost.js +95 -0
  120. package/dist/esm/host/iframe/HostIframe.js +124 -0
  121. package/dist/esm/host/iframe/utils/useUpdateData.js +14 -0
  122. package/dist/esm/host/module/ModuleHost.js +74 -0
  123. package/dist/esm/host/module/PagemakerFrame.js +97 -0
  124. package/dist/esm/host/module/utils/loadComponent.js +55 -0
  125. package/dist/esm/host/module/utils/useDynamicScript.js +50 -0
  126. package/dist/esm/index.js +16 -0
  127. package/dist/esm/types/DynamicApiImport.d.js +1 -0
  128. package/dist/esm/types/IChaynsReact.js +215 -0
  129. package/dist/esm/types/dialog.js +1 -0
  130. package/dist/esm/util/appCall.js +16 -0
  131. package/dist/esm/util/deviceHelper.js +62 -0
  132. package/dist/esm/util/heightHelper.js +32 -0
  133. package/dist/esm/util/postIframeForm.js +26 -0
  134. package/dist/esm/wrapper/AppWrapper.js +241 -0
  135. package/dist/esm/wrapper/FrameWrapper.js +279 -0
  136. package/dist/esm/wrapper/ModuleFederationWrapper.js +56 -0
  137. package/dist/esm/wrapper/SsrWrapper.js +23 -0
  138. package/dist/types/calls/dialogs/alert.d.ts +1 -0
  139. package/dist/types/calls/dialogs/chaynsDialog.d.ts +24 -0
  140. package/dist/types/calls/dialogs/close.d.ts +1 -0
  141. package/dist/types/calls/dialogs/communication.d.ts +3 -0
  142. package/dist/types/calls/dialogs/confirm.d.ts +13 -0
  143. package/dist/types/calls/dialogs/date.d.ts +96 -0
  144. package/dist/types/calls/dialogs/dropUpAlert.d.ts +5 -0
  145. package/dist/types/calls/dialogs/fileSelect.d.ts +16 -0
  146. package/dist/types/calls/dialogs/iFrame.d.ts +10 -0
  147. package/dist/types/calls/dialogs/index.d.ts +14 -0
  148. package/dist/types/calls/dialogs/input.d.ts +15 -0
  149. package/dist/types/calls/dialogs/mediaSelect.d.ts +8 -0
  150. package/dist/types/calls/dialogs/open.d.ts +1 -0
  151. package/dist/types/calls/dialogs/select.d.ts +6 -0
  152. package/dist/types/calls/dialogs/signature.d.ts +7 -0
  153. package/dist/types/calls/dialogs/toast.d.ts +1 -0
  154. package/dist/types/calls/dialogs/utils/callback.d.ts +1 -0
  155. package/dist/types/calls/dialogs/utils/environment.d.ts +3 -0
  156. package/dist/types/calls/dialogs/utils/is.d.ts +4 -0
  157. package/dist/types/calls/getUserInfo.d.ts +9 -0
  158. package/dist/types/calls/index.d.ts +231 -0
  159. package/dist/types/calls/sendMessage.d.ts +13 -0
  160. package/dist/types/calls/visibilityChangeListener.d.ts +9 -0
  161. package/dist/types/client.d.ts +7 -0
  162. package/dist/types/components/ChaynsContext.d.ts +3 -0
  163. package/dist/types/components/ChaynsModuleProvider.d.ts +170 -0
  164. package/dist/types/components/ChaynsProvider.d.ts +13 -0
  165. package/dist/types/components/WaitUntil.d.ts +7 -0
  166. package/dist/types/components/withCompatMode.d.ts +13 -0
  167. package/dist/types/helper/apiListenerHelper.d.ts +6 -0
  168. package/dist/types/hooks/geoLocationListener.d.ts +18 -0
  169. package/dist/types/hooks/index.d.ts +16 -0
  170. package/dist/types/hooks/scrollListener.d.ts +28 -0
  171. package/dist/types/hooks/useAccessToken.d.ts +5 -0
  172. package/dist/types/hooks/useCurrentPage.d.ts +4 -0
  173. package/dist/types/hooks/useCustomData.d.ts +4 -0
  174. package/dist/types/hooks/useDevice.d.ts +5 -0
  175. package/dist/types/hooks/useEnvironment.d.ts +5 -0
  176. package/dist/types/hooks/useFunctions.d.ts +5 -0
  177. package/dist/types/hooks/useIsAdminMode.d.ts +4 -0
  178. package/dist/types/hooks/useLanguage.d.ts +5 -0
  179. package/dist/types/hooks/usePages.d.ts +14 -0
  180. package/dist/types/hooks/useParameters.d.ts +5 -0
  181. package/dist/types/hooks/useSite.d.ts +5 -0
  182. package/dist/types/hooks/useUser.d.ts +5 -0
  183. package/dist/types/hooks/useValues.d.ts +5 -0
  184. package/dist/types/hooks/windowMetricsListener.d.ts +11 -0
  185. package/dist/types/host/ChaynsHost.d.ts +27 -0
  186. package/dist/types/host/iframe/HostIframe.d.ts +24 -0
  187. package/dist/types/host/iframe/utils/useUpdateData.d.ts +3 -0
  188. package/dist/types/host/module/ModuleHost.d.ts +23 -0
  189. package/dist/types/host/module/PagemakerFrame.d.ts +22 -0
  190. package/dist/types/host/module/utils/loadComponent.d.ts +1 -0
  191. package/dist/types/host/module/utils/useDynamicScript.d.ts +9 -0
  192. package/dist/types/index.d.ts +16 -0
  193. package/dist/types/types/IChaynsReact.d.ts +590 -0
  194. package/dist/types/types/dialog.d.ts +41 -0
  195. package/dist/types/util/appCall.d.ts +2 -0
  196. package/dist/types/util/deviceHelper.d.ts +7 -0
  197. package/dist/types/util/heightHelper.d.ts +1 -0
  198. package/dist/types/util/postIframeForm.d.ts +1 -0
  199. package/dist/types/wrapper/AppWrapper.d.ts +16 -0
  200. package/dist/types/wrapper/FrameWrapper.d.ts +15 -0
  201. package/dist/types/wrapper/ModuleFederationWrapper.d.ts +10 -0
  202. package/dist/types/wrapper/SsrWrapper.d.ts +11 -0
  203. package/package.json +76 -0
  204. package/toolkit.config.js +52 -0
  205. package/tsconfig.json +56 -0
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _HostIframe = _interopRequireDefault(require("./iframe/HostIframe"));
9
+ var _ModuleHost = _interopRequireDefault(require("./module/ModuleHost"));
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ const ChaynsHost = ({
12
+ type,
13
+ iFrameProps,
14
+ functions,
15
+ src,
16
+ iFrameRef = undefined,
17
+ children = undefined,
18
+ system,
19
+ // shallow data
20
+ pages,
21
+ language,
22
+ isAdminModeActive,
23
+ site,
24
+ user,
25
+ currentPage,
26
+ device,
27
+ parameters,
28
+ customData,
29
+ environment
30
+ }) => {
31
+ switch (type) {
32
+ case 'client-iframe':
33
+ return /*#__PURE__*/_react.default.createElement(_HostIframe.default, {
34
+ iFrameRef: iFrameRef,
35
+ iFrameProps: iFrameProps,
36
+ pages: pages,
37
+ isAdminModeActive: isAdminModeActive,
38
+ site: site,
39
+ user: user,
40
+ device: device,
41
+ currentPage: currentPage,
42
+ functions: functions,
43
+ src: src,
44
+ language: language,
45
+ parameters: parameters,
46
+ environment: environment,
47
+ customData: customData
48
+ });
49
+ case 'client-module':
50
+ return /*#__PURE__*/_react.default.createElement(_ModuleHost.default, {
51
+ system: system,
52
+ pages: pages,
53
+ isAdminModeActive: isAdminModeActive,
54
+ site: site,
55
+ user: user,
56
+ device: device,
57
+ currentPage: currentPage,
58
+ functions: functions,
59
+ language: language,
60
+ parameters: parameters,
61
+ customData: customData,
62
+ environment: environment
63
+ });
64
+ case 'server-iframe':
65
+ return /*#__PURE__*/_react.default.createElement(_HostIframe.default, {
66
+ iFrameRef: iFrameRef,
67
+ iFrameProps: iFrameProps,
68
+ pages: pages,
69
+ isAdminModeActive: isAdminModeActive,
70
+ site: site,
71
+ user: user,
72
+ device: device,
73
+ currentPage: currentPage,
74
+ functions: functions,
75
+ src: src,
76
+ postForm: true,
77
+ language: language,
78
+ parameters: parameters,
79
+ environment: environment,
80
+ customData: customData
81
+ });
82
+ case 'server-module':
83
+ return /*#__PURE__*/_react.default.createElement(_ModuleHost.default, {
84
+ system: system,
85
+ pages: pages,
86
+ isAdminModeActive: isAdminModeActive,
87
+ site: site,
88
+ user: user,
89
+ device: device,
90
+ currentPage: currentPage,
91
+ functions: functions,
92
+ language: language,
93
+ parameters: parameters,
94
+ customData: customData,
95
+ environment: environment
96
+ }, children);
97
+ default:
98
+ return null;
99
+ }
100
+ };
101
+ var _default = ChaynsHost;
102
+ exports.default = _default;
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var comlink = _interopRequireWildcard(require("comlink"));
9
+ var _postIframeForm = _interopRequireDefault(require("../../util/postIframeForm"));
10
+ var _useUpdateData = _interopRequireDefault(require("./utils/useUpdateData"));
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
14
+ 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); }
15
+ const HostIframe = ({
16
+ iFrameProps,
17
+ src,
18
+ postForm = false,
19
+ iFrameRef,
20
+ // shallow data
21
+ pages,
22
+ isAdminModeActive,
23
+ site,
24
+ user,
25
+ currentPage,
26
+ functions,
27
+ device,
28
+ language,
29
+ parameters,
30
+ environment,
31
+ customData
32
+ }) => {
33
+ const eventTarget = (0, _react.useRef)();
34
+ const ref = (0, _react.useRef)();
35
+ const currentDataRef = (0, _react.useRef)();
36
+ if (!eventTarget.current) {
37
+ eventTarget.current = global.document ? document.createElement('div') : undefined; // global.EventTarget ? new EventTarget() : undefined
38
+ }
39
+
40
+ const setHeight = value => {
41
+ if (ref.current) {
42
+ ref.current.height = `${value}px`;
43
+ }
44
+ };
45
+
46
+ // region initialData
47
+ const initialData = {
48
+ site,
49
+ isAdminModeActive,
50
+ pages,
51
+ currentPage,
52
+ device,
53
+ user,
54
+ language,
55
+ parameters,
56
+ environment,
57
+ customData
58
+ };
59
+ // endregion
60
+
61
+ currentDataRef.current = initialData;
62
+
63
+ // region postIframeForm
64
+ (0, _react.useEffect)(() => {
65
+ (async () => {
66
+ if (postForm) {
67
+ var _await$functions$getA;
68
+ const accessToken = (_await$functions$getA = await functions.getAccessToken()) !== null && _await$functions$getA !== void 0 ? _await$functions$getA : {};
69
+ void (0, _postIframeForm.default)(src, JSON.stringify({
70
+ ...initialData,
71
+ pages: undefined,
72
+ ...accessToken
73
+ }), 'chayns', iFrameProps.name);
74
+ }
75
+ })();
76
+ // eslint-disable-next-line react-hooks/exhaustive-deps
77
+ }, []);
78
+ // endregion
79
+
80
+ // region expose data and functions to iframe
81
+ (0, _react.useEffect)(() => {
82
+ var _ref$current;
83
+ if ((_ref$current = ref.current) !== null && _ref$current !== void 0 && _ref$current.contentWindow) {
84
+ const obj = {
85
+ [iFrameProps.name]: {
86
+ functions: {
87
+ ...functions,
88
+ setHeight
89
+ },
90
+ addDataListener: cb => {
91
+ if (eventTarget.current) eventTarget.current.addEventListener('data_update', e => e.detail && cb(e.detail));
92
+ },
93
+ getInitialData: () => currentDataRef.current
94
+ }
95
+ };
96
+ comlink.expose(obj, comlink.windowEndpoint(ref.current.contentWindow));
97
+ ref.current.contentWindow.postMessage('chayns-api-host-ready', '*');
98
+ // https://github.com/GoogleChromeLabs/comlink/pull/469 might be better approach once released
99
+ return () => {
100
+ delete obj[iFrameProps.name];
101
+ };
102
+ }
103
+ return undefined;
104
+ // eslint-disable-next-line react-hooks/exhaustive-deps
105
+ }, []);
106
+ // endregion
107
+
108
+ // region dispatch data update
109
+ (0, _useUpdateData.default)(eventTarget.current, 'isAdminModeActive', isAdminModeActive);
110
+ (0, _useUpdateData.default)(eventTarget.current, 'user', user);
111
+ (0, _useUpdateData.default)(eventTarget.current, 'site', site);
112
+ (0, _useUpdateData.default)(eventTarget.current, 'pages', pages);
113
+ (0, _useUpdateData.default)(eventTarget.current, 'language', language);
114
+ (0, _useUpdateData.default)(eventTarget.current, 'parameters', parameters);
115
+ (0, _useUpdateData.default)(eventTarget.current, 'environment', environment);
116
+ (0, _useUpdateData.default)(eventTarget.current, 'customData', customData);
117
+ // endregion
118
+
119
+ return /*#__PURE__*/_react.default.createElement("iframe", _extends({
120
+ ref: r => {
121
+ ref.current = r;
122
+ if (iFrameRef) {
123
+ // eslint-disable-next-line no-param-reassign
124
+ iFrameRef.current = r;
125
+ }
126
+ },
127
+ title: " "
128
+ }, iFrameProps, {
129
+ src: postForm ? undefined : src
130
+ }));
131
+ };
132
+ var _default = HostIframe;
133
+ exports.default = _default;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = require("react");
8
+ const useUpdateData = (target, type, value) => {
9
+ (0, _react.useEffect)(() => {
10
+ if (target) {
11
+ target.dispatchEvent(new CustomEvent('data_update', {
12
+ detail: {
13
+ type,
14
+ value
15
+ }
16
+ }));
17
+ }
18
+ }, [target, type, value]);
19
+ };
20
+ var _default = useUpdateData;
21
+ exports.default = _default;
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _useDynamicScript = _interopRequireDefault(require("./utils/useDynamicScript"));
9
+ var _loadComponent = _interopRequireDefault(require("./utils/loadComponent"));
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
12
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
13
+ const System = ({
14
+ system,
15
+ fallback,
16
+ ...props
17
+ }) => {
18
+ const {
19
+ ready,
20
+ failed
21
+ } = (0, _useDynamicScript.default)({
22
+ url: system === null || system === void 0 ? void 0 : system.url,
23
+ scope: system === null || system === void 0 ? void 0 : system.scope
24
+ });
25
+ const Component = (0, _react.useMemo)(() => {
26
+ // maybe return waitcursor instead
27
+ if (!system || !ready || failed) {
28
+ return null;
29
+ }
30
+ return /*#__PURE__*/_react.default.lazy((0, _loadComponent.default)(system.scope, system.module, system.url));
31
+
32
+ /* eslint-disable react-hooks/exhaustive-deps */
33
+ }, [system === null || system === void 0 ? void 0 : system.scope, ready, system === null || system === void 0 ? void 0 : system.url]);
34
+ return Component ? /*#__PURE__*/_react.default.createElement(_react.default.Suspense, {
35
+ fallback: fallback || ''
36
+ }, /*#__PURE__*/_react.default.createElement(Component, props)) : fallback;
37
+ };
38
+ const ModuleHost = ({
39
+ system,
40
+ children = null,
41
+ functions,
42
+ // shallow data
43
+ pages,
44
+ isAdminModeActive,
45
+ site,
46
+ user,
47
+ currentPage,
48
+ device,
49
+ language,
50
+ parameters,
51
+ customData,
52
+ environment
53
+ }) => {
54
+ // region initialData
55
+ const initialData = {
56
+ site,
57
+ isAdminModeActive,
58
+ pages,
59
+ currentPage,
60
+ device,
61
+ language,
62
+ parameters,
63
+ customData,
64
+ environment
65
+ };
66
+ if (user) {
67
+ initialData.user = user;
68
+ }
69
+ // endregion
70
+
71
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
72
+ className: "module-css"
73
+ }), /*#__PURE__*/_react.default.createElement(System, {
74
+ system: system,
75
+ data: initialData,
76
+ functions: functions,
77
+ fallback: children,
78
+ isModule: true
79
+ }));
80
+ };
81
+ var _default = ModuleHost;
82
+ exports.default = _default;
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = require("react");
9
+
10
+ var comlink = _interopRequireWildcard(require("comlink"));
11
+
12
+ var _useUpdateData = _interopRequireDefault(require("../iframe/utils/useUpdateData"));
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
+
18
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
+
20
+ const PagemakerFrame = ({
21
+ iFrameProps,
22
+ postForm = false,
23
+ children,
24
+ iFrameRef,
25
+ // shallow data
26
+ pages,
27
+ isAdminModeActive,
28
+ site,
29
+ user,
30
+ currentPage,
31
+ functions,
32
+ device,
33
+ language,
34
+ parameters,
35
+ environment
36
+ }) => {
37
+ const eventTarget = (0, _react.useRef)();
38
+ const ref = (0, _react.useRef)();
39
+ const currentDataRef = (0, _react.useRef)();
40
+
41
+ if (!eventTarget.current) {
42
+ eventTarget.current = global.document ? document.createElement('div') : undefined; // global.EventTarget ? new EventTarget() : undefined
43
+ }
44
+
45
+ const setHeight = value => {
46
+ if (ref.current) {
47
+ ref.current.height = `${value}px`;
48
+ }
49
+ }; // region initialData
50
+
51
+
52
+ const initialData = {
53
+ site,
54
+ isAdminModeActive,
55
+ pages,
56
+ currentPage,
57
+ device,
58
+ user,
59
+ language,
60
+ parameters,
61
+ environment
62
+ }; // endregion
63
+
64
+ currentDataRef.current = initialData;
65
+ console.debug('functions', functions); // region expose data and functions to iframe
66
+
67
+ (0, _react.useEffect)(() => {
68
+ var _ref$current;
69
+
70
+ if ((_ref$current = ref.current) !== null && _ref$current !== void 0 && _ref$current.contentWindow) {
71
+ const obj = {
72
+ [iFrameProps.name]: {
73
+ functions: { ...functions,
74
+ setHeight
75
+ },
76
+ addDataListener: cb => {
77
+ if (eventTarget.current) eventTarget.current.addEventListener('data_update', e => e.detail && cb(e.detail));
78
+ },
79
+ getInitialData: () => currentDataRef.current
80
+ }
81
+ };
82
+ comlink.expose(obj, comlink.windowEndpoint(ref.current.contentWindow));
83
+ ref.current.contentWindow.postMessage('chayns-api-host-ready', '*'); // https://github.com/GoogleChromeLabs/comlink/pull/469 might be better approach once released
84
+
85
+ return () => {
86
+ delete obj[iFrameProps.name];
87
+ };
88
+ }
89
+
90
+ return undefined; // eslint-disable-next-line react-hooks/exhaustive-deps
91
+ }, []); // endregion
92
+ // region dispatch data update
93
+
94
+ (0, _useUpdateData.default)(eventTarget.current, 'isAdminModeActive', isAdminModeActive);
95
+ (0, _useUpdateData.default)(eventTarget.current, 'user', user);
96
+ (0, _useUpdateData.default)(eventTarget.current, 'site', site);
97
+ (0, _useUpdateData.default)(eventTarget.current, 'pages', pages);
98
+ (0, _useUpdateData.default)(eventTarget.current, 'language', language);
99
+ (0, _useUpdateData.default)(eventTarget.current, 'parameters', parameters); // endregion
100
+
101
+ return children;
102
+ };
103
+
104
+ var _default = PagemakerFrame;
105
+ exports.default = _default;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = loadComponent;
7
+ var _semver = _interopRequireDefault(require("semver"));
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _useDynamicScript = require("./useDynamicScript");
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ /* eslint-disable */
12
+ // @ts-nocheck
13
+
14
+ let instances = {};
15
+ function loadComponent(scope, module, url, skipCompatMode = false) {
16
+ return async () => {
17
+ // Initializes the shared scope. Fills it with known provided modules from this build and all remotes
18
+ // eslint-disable-next-line no-undef
19
+ await __webpack_init_sharing__('default');
20
+ const {
21
+ container
22
+ } = window[scope + "_list"].find(x => x.url === url); // or get the container somewhere else
23
+ // Initialize the container, it may provide shared modules
24
+ // eslint-disable-next-line no-undef
25
+ await container.init(__webpack_share_scopes__.default);
26
+ const factory = await container.get(module);
27
+ _useDynamicScript.semaphore[scope].release();
28
+ let ModuleMap = instances[`${scope}__${module}`];
29
+ let Module;
30
+ if (!ModuleMap) {
31
+ ModuleMap = {};
32
+ instances[`${scope}__${module}`] = ModuleMap;
33
+ }
34
+ if (Object.keys(ModuleMap).length > 0) {
35
+ const newModule = factory();
36
+ Module = ModuleMap[`${newModule.default.buildEnv}__${newModule.default.appVersion}`];
37
+ if (!Module) {
38
+ Module = newModule;
39
+ ModuleMap[`${newModule.default.buildEnv}__${newModule.default.appVersion}`] = newModule;
40
+ }
41
+ } else {
42
+ Module = factory();
43
+ ModuleMap[`${Module.default.buildEnv}__${Module.default.appVersion}`] = Module;
44
+ }
45
+ if (skipCompatMode) return Module;
46
+ const hostVersion = _semver.default.minVersion(_react.default.version);
47
+ const {
48
+ requiredVersion,
49
+ environment
50
+ } = Module.default;
51
+ const matchReactVersion = requiredVersion && _semver.default.satisfies(hostVersion, requiredVersion);
52
+ if (!matchReactVersion || environment !== 'production') {
53
+ return {
54
+ default: Module.default.CompatComponent
55
+ };
56
+ }
57
+ return {
58
+ default: Module.default.Component
59
+ };
60
+ };
61
+ }
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.semaphore = exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _semaphoreAsyncAwait = _interopRequireDefault(require("semaphore-async-await"));
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
11
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
12
+ const semaphore = {};
13
+ exports.semaphore = semaphore;
14
+ const useDynamicScript = args => {
15
+ const [ready, setReady] = _react.default.useState(false);
16
+ const [failed, setFailed] = _react.default.useState(false);
17
+ (0, _react.useEffect)(() => {
18
+ if (!args.url) {
19
+ return undefined;
20
+ }
21
+ const element = document.createElement('script');
22
+ element.src = args.url;
23
+ element.type = 'text/javascript';
24
+ element.async = true;
25
+ setReady(false);
26
+ setFailed(false);
27
+ if (!(args.scope in semaphore)) {
28
+ semaphore[args.scope] = new _semaphoreAsyncAwait.default(1);
29
+ }
30
+ (async () => {
31
+ await semaphore[args.scope].acquire();
32
+ element.onload = () => {
33
+ setReady(true);
34
+ const listKey = args.scope + "_list";
35
+ if (!window[listKey]) window[listKey] = [];
36
+ window[listKey].push({
37
+ url: args.url,
38
+ container: window[args.scope]
39
+ });
40
+ window[args.scope] = null;
41
+ };
42
+ element.onerror = () => {
43
+ setReady(false);
44
+ setFailed(true);
45
+ };
46
+ document.head.appendChild(element);
47
+ })();
48
+ return () => {
49
+ semaphore[args.scope].release();
50
+ if (document.head.contains(element)) {
51
+ document.head.removeChild(element);
52
+ }
53
+ };
54
+ }, [args.url]);
55
+ return {
56
+ ready,
57
+ failed
58
+ };
59
+ };
60
+ var _default = useDynamicScript;
61
+ exports.default = _default;
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {
7
+ ChaynsProvider: true,
8
+ getDeviceInfo: true,
9
+ getScreenSize: true,
10
+ ChaynsHost: true,
11
+ withCompatMode: true,
12
+ dialog: true
13
+ };
14
+ Object.defineProperty(exports, "ChaynsHost", {
15
+ enumerable: true,
16
+ get: function () {
17
+ return _ChaynsHost.default;
18
+ }
19
+ });
20
+ Object.defineProperty(exports, "ChaynsProvider", {
21
+ enumerable: true,
22
+ get: function () {
23
+ return _ChaynsProvider.default;
24
+ }
25
+ });
26
+ exports.dialog = exports.default = void 0;
27
+ Object.defineProperty(exports, "getDeviceInfo", {
28
+ enumerable: true,
29
+ get: function () {
30
+ return _deviceHelper.default;
31
+ }
32
+ });
33
+ Object.defineProperty(exports, "getScreenSize", {
34
+ enumerable: true,
35
+ get: function () {
36
+ return _deviceHelper.getScreenSize;
37
+ }
38
+ });
39
+ Object.defineProperty(exports, "withCompatMode", {
40
+ enumerable: true,
41
+ get: function () {
42
+ return _withCompatMode.withCompatMode;
43
+ }
44
+ });
45
+ var _ChaynsProvider = _interopRequireDefault(require("./components/ChaynsProvider"));
46
+ var _deviceHelper = _interopRequireWildcard(require("./util/deviceHelper"));
47
+ var _ChaynsHost = _interopRequireDefault(require("./host/ChaynsHost"));
48
+ var _withCompatMode = require("./components/withCompatMode");
49
+ Object.keys(_withCompatMode).forEach(function (key) {
50
+ if (key === "default" || key === "__esModule") return;
51
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
52
+ if (key in exports && exports[key] === _withCompatMode[key]) return;
53
+ Object.defineProperty(exports, key, {
54
+ enumerable: true,
55
+ get: function () {
56
+ return _withCompatMode[key];
57
+ }
58
+ });
59
+ });
60
+ var _calls = require("./calls");
61
+ Object.keys(_calls).forEach(function (key) {
62
+ if (key === "default" || key === "__esModule") return;
63
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
64
+ if (key in exports && exports[key] === _calls[key]) return;
65
+ Object.defineProperty(exports, key, {
66
+ enumerable: true,
67
+ get: function () {
68
+ return _calls[key];
69
+ }
70
+ });
71
+ });
72
+ var _hooks = require("./hooks");
73
+ Object.keys(_hooks).forEach(function (key) {
74
+ if (key === "default" || key === "__esModule") return;
75
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
76
+ if (key in exports && exports[key] === _hooks[key]) return;
77
+ Object.defineProperty(exports, key, {
78
+ enumerable: true,
79
+ get: function () {
80
+ return _hooks[key];
81
+ }
82
+ });
83
+ });
84
+ var _WaitUntil = require("./components/WaitUntil");
85
+ Object.keys(_WaitUntil).forEach(function (key) {
86
+ if (key === "default" || key === "__esModule") return;
87
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
88
+ if (key in exports && exports[key] === _WaitUntil[key]) return;
89
+ Object.defineProperty(exports, key, {
90
+ enumerable: true,
91
+ get: function () {
92
+ return _WaitUntil[key];
93
+ }
94
+ });
95
+ });
96
+ var _IChaynsReact = require("./types/IChaynsReact");
97
+ Object.keys(_IChaynsReact).forEach(function (key) {
98
+ if (key === "default" || key === "__esModule") return;
99
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
100
+ if (key in exports && exports[key] === _IChaynsReact[key]) return;
101
+ Object.defineProperty(exports, key, {
102
+ enumerable: true,
103
+ get: function () {
104
+ return _IChaynsReact[key];
105
+ }
106
+ });
107
+ });
108
+ var _dialog = _interopRequireWildcard(require("./calls/dialogs/index"));
109
+ exports.dialog = _dialog;
110
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
111
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
112
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
113
+ var _default = {
114
+ buildEnv: process.env.BUILD_ENV,
115
+ appVersion: process.env.VERSION
116
+ };
117
+ exports.default = _default;