chayns-api 1.1.9 → 1.2.0-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/.babelrc +30 -30
  2. package/.eslintrc +17 -17
  3. package/.github/workflows/deploy_docs.yml +28 -28
  4. package/.github/workflows/publish.yml +21 -21
  5. package/LICENSE +21 -21
  6. package/README.md +54 -54
  7. package/dist/cjs/calls/dialogs/date.js +34 -34
  8. package/dist/cjs/calls/index.js +108 -108
  9. package/dist/cjs/calls/sendMessage.js +8 -8
  10. package/dist/cjs/calls/visibilityChangeListener.js +4 -4
  11. package/dist/cjs/components/AppDialogWrapper.js +2 -2
  12. package/dist/cjs/components/ChaynsProvider.js +1 -1
  13. package/dist/cjs/components/ErrorBoundary.js +1 -1
  14. package/dist/cjs/components/withCompatMode.js +2 -2
  15. package/dist/cjs/components/withHydrationBoundary.js +54 -0
  16. package/dist/cjs/constants/hydrationContext.js +16 -0
  17. package/dist/cjs/constants/index.js +16 -0
  18. package/dist/cjs/hooks/geoLocationListener.js +4 -4
  19. package/dist/cjs/hooks/scrollListener.js +8 -8
  20. package/dist/cjs/hooks/useAccessToken.js +3 -3
  21. package/dist/cjs/hooks/useCurrentPage.js +2 -2
  22. package/dist/cjs/hooks/useCustomData.js +2 -2
  23. package/dist/cjs/hooks/useDevice.js +2 -2
  24. package/dist/cjs/hooks/useDialogState.js +4 -4
  25. package/dist/cjs/hooks/useEnvironment.js +2 -2
  26. package/dist/cjs/hooks/useFunctions.js +2 -2
  27. package/dist/cjs/hooks/useIsAdminMode.js +2 -2
  28. package/dist/cjs/hooks/useLanguage.js +2 -2
  29. package/dist/cjs/hooks/usePages.js +4 -4
  30. package/dist/cjs/hooks/useParameters.js +2 -2
  31. package/dist/cjs/hooks/useSite.js +2 -2
  32. package/dist/cjs/hooks/useUser.js +2 -2
  33. package/dist/cjs/hooks/useValues.js +2 -2
  34. package/dist/cjs/hooks/windowMetricsListener.js +4 -4
  35. package/dist/cjs/host/ChaynsHost.js +21 -40
  36. package/dist/cjs/host/iframe/HostIframe.js +2 -2
  37. package/dist/cjs/host/module/ModuleHost.js +5 -23
  38. package/dist/cjs/host/module/utils/loadComponent.js +98 -53
  39. package/dist/cjs/host/module/utils/useDynamicScript.js +7 -5
  40. package/dist/cjs/index.js +36 -1
  41. package/dist/cjs/types/IChaynsReact.js +4 -4
  42. package/dist/cjs/util/heightHelper.js +1 -1
  43. package/dist/cjs/util/url.js +1 -1
  44. package/dist/cjs/wrapper/AppWrapper.js +6 -6
  45. package/dist/cjs/wrapper/FrameWrapper.js +1 -1
  46. package/dist/cjs/wrapper/ModuleFederationWrapper.js +1 -1
  47. package/dist/esm/calls/dialogs/date.js +34 -34
  48. package/dist/esm/calls/index.js +108 -108
  49. package/dist/esm/calls/sendMessage.js +8 -8
  50. package/dist/esm/calls/visibilityChangeListener.js +4 -4
  51. package/dist/esm/components/AppDialogWrapper.js +1 -1
  52. package/dist/esm/components/withCompatMode.js +1 -1
  53. package/dist/esm/components/withHydrationBoundary.js +47 -0
  54. package/dist/esm/constants/hydrationContext.js +10 -0
  55. package/dist/esm/constants/index.js +1 -0
  56. package/dist/esm/handler/DialogHandler.js +1 -1
  57. package/dist/esm/hooks/geoLocationListener.js +4 -4
  58. package/dist/esm/hooks/scrollListener.js +8 -8
  59. package/dist/esm/hooks/useAccessToken.js +3 -3
  60. package/dist/esm/hooks/useCurrentPage.js +2 -2
  61. package/dist/esm/hooks/useCustomData.js +2 -2
  62. package/dist/esm/hooks/useDevice.js +2 -2
  63. package/dist/esm/hooks/useDialogState.js +4 -4
  64. package/dist/esm/hooks/useEnvironment.js +2 -2
  65. package/dist/esm/hooks/useFunctions.js +2 -2
  66. package/dist/esm/hooks/useIsAdminMode.js +2 -2
  67. package/dist/esm/hooks/useLanguage.js +2 -2
  68. package/dist/esm/hooks/usePages.js +4 -4
  69. package/dist/esm/hooks/useParameters.js +2 -2
  70. package/dist/esm/hooks/useSite.js +2 -2
  71. package/dist/esm/hooks/useUser.js +2 -2
  72. package/dist/esm/hooks/useValues.js +2 -2
  73. package/dist/esm/hooks/windowMetricsListener.js +4 -4
  74. package/dist/esm/host/ChaynsHost.js +18 -39
  75. package/dist/esm/host/iframe/HostIframe.js +1 -1
  76. package/dist/esm/host/module/ModuleHost.js +4 -22
  77. package/dist/esm/host/module/utils/loadComponent.js +99 -53
  78. package/dist/esm/index.js +3 -0
  79. package/dist/esm/types/IChaynsReact.js +4 -4
  80. package/dist/esm/util/url.js +2 -2
  81. package/dist/esm/wrapper/AppWrapper.js +6 -6
  82. package/dist/esm/wrapper/FrameWrapper.js +1 -1
  83. package/dist/esm/wrapper/StaticChaynsApi.js +1 -1
  84. package/dist/types/calls/dialogs/alert.d.ts +1 -1
  85. package/dist/types/calls/dialogs/chaynsDialog.d.ts +24 -24
  86. package/dist/types/calls/dialogs/close.d.ts +1 -1
  87. package/dist/types/calls/dialogs/communication.d.ts +3 -3
  88. package/dist/types/calls/dialogs/confirm.d.ts +13 -13
  89. package/dist/types/calls/dialogs/date.d.ts +96 -96
  90. package/dist/types/calls/dialogs/dropUpAlert.d.ts +5 -5
  91. package/dist/types/calls/dialogs/fileSelect.d.ts +16 -16
  92. package/dist/types/calls/dialogs/iFrame.d.ts +10 -10
  93. package/dist/types/calls/dialogs/index.d.ts +14 -14
  94. package/dist/types/calls/dialogs/input.d.ts +15 -15
  95. package/dist/types/calls/dialogs/mediaSelect.d.ts +8 -8
  96. package/dist/types/calls/dialogs/open.d.ts +1 -1
  97. package/dist/types/calls/dialogs/select.d.ts +6 -6
  98. package/dist/types/calls/dialogs/signature.d.ts +7 -7
  99. package/dist/types/calls/dialogs/toast.d.ts +1 -1
  100. package/dist/types/calls/dialogs/utils/callback.d.ts +1 -1
  101. package/dist/types/calls/dialogs/utils/is.d.ts +4 -4
  102. package/dist/types/calls/getUserInfo.d.ts +9 -9
  103. package/dist/types/calls/index.d.ts +255 -255
  104. package/dist/types/calls/sendMessage.d.ts +13 -13
  105. package/dist/types/calls/visibilityChangeListener.d.ts +9 -9
  106. package/dist/types/components/AppDialogWrapper.d.ts +5 -5
  107. package/dist/types/components/ChaynsContext.d.ts +3 -3
  108. package/dist/types/components/ChaynsProvider.d.ts +11 -11
  109. package/dist/types/components/ErrorBoundary.d.ts +13 -13
  110. package/dist/types/components/WaitUntil.d.ts +7 -7
  111. package/dist/types/components/moduleWrapper.d.ts +4 -4
  112. package/dist/types/components/withCompatMode.d.ts +13 -13
  113. package/dist/types/components/withHydrationBoundary.d.ts +17 -0
  114. package/dist/types/constants/hydrationContext.d.ts +9 -0
  115. package/dist/types/constants/index.d.ts +1 -0
  116. package/dist/types/constants/languages.d.ts +12 -12
  117. package/dist/types/handler/DialogHandler.d.ts +24 -24
  118. package/dist/types/helper/apiListenerHelper.d.ts +6 -6
  119. package/dist/types/hooks/geoLocationListener.d.ts +18 -18
  120. package/dist/types/hooks/index.d.ts +17 -17
  121. package/dist/types/hooks/scrollListener.d.ts +28 -28
  122. package/dist/types/hooks/useAccessToken.d.ts +6 -6
  123. package/dist/types/hooks/useCurrentPage.d.ts +7 -4
  124. package/dist/types/hooks/useCustomData.d.ts +4 -4
  125. package/dist/types/hooks/useDevice.d.ts +5 -5
  126. package/dist/types/hooks/useDialogState.d.ts +9 -9
  127. package/dist/types/hooks/useEnvironment.d.ts +5 -5
  128. package/dist/types/hooks/useFunctions.d.ts +5 -5
  129. package/dist/types/hooks/useIsAdminMode.d.ts +4 -4
  130. package/dist/types/hooks/useLanguage.d.ts +5 -5
  131. package/dist/types/hooks/usePages.d.ts +18 -18
  132. package/dist/types/hooks/useParameters.d.ts +5 -5
  133. package/dist/types/hooks/useSite.d.ts +5 -5
  134. package/dist/types/hooks/useUser.d.ts +5 -5
  135. package/dist/types/hooks/useValues.d.ts +5 -5
  136. package/dist/types/hooks/windowMetricsListener.d.ts +11 -11
  137. package/dist/types/host/ChaynsHost.d.ts +29 -30
  138. package/dist/types/host/iframe/HostIframe.d.ts +26 -26
  139. package/dist/types/host/iframe/utils/useUpdateData.d.ts +3 -3
  140. package/dist/types/host/module/ModuleHost.d.ts +28 -27
  141. package/dist/types/host/module/utils/loadComponent.d.ts +3 -1
  142. package/dist/types/host/module/utils/useDynamicScript.d.ts +9 -9
  143. package/dist/types/index.d.ts +23 -20
  144. package/dist/types/types/IChaynsReact.d.ts +860 -860
  145. package/dist/types/types/dialog.d.ts +41 -41
  146. package/dist/types/util/appCall.d.ts +2 -2
  147. package/dist/types/util/deviceHelper.d.ts +7 -7
  148. package/dist/types/util/heightHelper.d.ts +1 -1
  149. package/dist/types/util/is.d.ts +5 -5
  150. package/dist/types/util/postIframeForm.d.ts +1 -1
  151. package/dist/types/util/transferNestedFunctions.d.ts +1 -1
  152. package/dist/types/util/url.d.ts +1 -1
  153. package/dist/types/wrapper/AppWrapper.d.ts +19 -19
  154. package/dist/types/wrapper/FrameWrapper.d.ts +15 -15
  155. package/dist/types/wrapper/ModuleFederationWrapper.d.ts +10 -10
  156. package/dist/types/wrapper/SsrWrapper.d.ts +11 -11
  157. package/dist/types/wrapper/StaticChaynsApi.d.ts +16 -16
  158. package/package.json +87 -79
  159. package/toolkit.config.js +20 -20
  160. package/tsconfig.json +56 -56
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.useCurrentPage = void 0;
7
7
  var _useContextSelector = require("use-context-selector");
8
8
  var _ChaynsContext = require("../components/ChaynsContext");
9
- /**
10
- * @category Hooks
9
+ /**
10
+ * @category Hooks
11
11
  */
12
12
  const useCurrentPage = () => (0, _useContextSelector.useContextSelector)(_ChaynsContext.ChaynsContext, v => v === null || v === void 0 ? void 0 : v.currentPage);
13
13
  exports.useCurrentPage = useCurrentPage;
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.useCustomData = void 0;
7
7
  var _useContextSelector = require("use-context-selector");
8
8
  var _ChaynsContext = require("../components/ChaynsContext");
9
- /**
10
- * @category Hooks
9
+ /**
10
+ * @category Hooks
11
11
  */
12
12
  const useCustomData = () => (0, _useContextSelector.useContextSelector)(_ChaynsContext.ChaynsContext, v => v === null || v === void 0 ? void 0 : v.customData);
13
13
  exports.useCustomData = useCustomData;
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.useDevice = void 0;
7
7
  var _useContextSelector = require("use-context-selector");
8
8
  var _ChaynsContext = require("../components/ChaynsContext");
9
- /**
10
- * @category Hooks
9
+ /**
10
+ * @category Hooks
11
11
  */
12
12
  const useDevice = () => (0, _useContextSelector.useContextSelector)(_ChaynsContext.ChaynsContext, v => v === null || v === void 0 ? void 0 : v.device);
13
13
  exports.useDevice = useDevice;
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.useDialogState = exports.useDialogData = void 0;
7
7
  var _useContextSelector = require("use-context-selector");
8
8
  var _ChaynsContext = require("../components/ChaynsContext");
9
- /**
10
- * @category Hooks
9
+ /**
10
+ * @category Hooks
11
11
  */
12
12
  const useDialogState = () => {
13
13
  const setResult = (0, _useContextSelector.useContextSelector)(_ChaynsContext.ChaynsFunctionsContext, v => v === null || v === void 0 ? void 0 : v.setDialogResult);
@@ -25,8 +25,8 @@ const useDialogState = () => {
25
25
  };
26
26
  };
27
27
 
28
- /**
29
- * @category Hooks
28
+ /**
29
+ * @category Hooks
30
30
  */
31
31
  exports.useDialogState = useDialogState;
32
32
  const useDialogData = () => {
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.useEnvironment = void 0;
7
7
  var _useContextSelector = require("use-context-selector");
8
8
  var _ChaynsContext = require("../components/ChaynsContext");
9
- /**
10
- * @category Hooks
9
+ /**
10
+ * @category Hooks
11
11
  */
12
12
  const useEnvironment = () => (0, _useContextSelector.useContextSelector)(_ChaynsContext.ChaynsContext, v => v === null || v === void 0 ? void 0 : v.environment);
13
13
  exports.useEnvironment = useEnvironment;
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.useFunctions = void 0;
7
7
  var _useContextSelector = require("use-context-selector");
8
8
  var _ChaynsContext = require("../components/ChaynsContext");
9
- /**
10
- * @category Hooks
9
+ /**
10
+ * @category Hooks
11
11
  */
12
12
  const useFunctions = () => {
13
13
  const t = (0, _useContextSelector.useContextSelector)(_ChaynsContext.ChaynsFunctionsContext, f => f || {});
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.useIsAdminMode = void 0;
7
7
  var _useContextSelector2 = require("use-context-selector");
8
8
  var _ChaynsContext = require("../components/ChaynsContext");
9
- /**
10
- * @category Hooks
9
+ /**
10
+ * @category Hooks
11
11
  */
12
12
  const useIsAdminMode = () => {
13
13
  var _useContextSelector;
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.useLanguage = void 0;
7
7
  var _useContextSelector = require("use-context-selector");
8
8
  var _ChaynsContext = require("../components/ChaynsContext");
9
- /**
10
- * @category Hooks
9
+ /**
10
+ * @category Hooks
11
11
  */
12
12
  const useLanguage = () => (0, _useContextSelector.useContextSelector)(_ChaynsContext.ChaynsContext, v => v === null || v === void 0 ? void 0 : v.language);
13
13
  exports.useLanguage = useLanguage;
@@ -7,8 +7,8 @@ exports.usePages = exports.usePage = exports.getPage = void 0;
7
7
  var _useContextSelector = require("use-context-selector");
8
8
  var _ChaynsContext = require("../components/ChaynsContext");
9
9
  var _moduleWrapper = require("../components/moduleWrapper");
10
- /**
11
- * @category Hooks
10
+ /**
11
+ * @category Hooks
12
12
  */
13
13
  const usePages = ({
14
14
  siteId
@@ -21,8 +21,8 @@ const usePages = ({
21
21
  }
22
22
  return pages;
23
23
  };
24
- /**
25
- * @category Hooks
24
+ /**
25
+ * @category Hooks
26
26
  */
27
27
  exports.usePages = usePages;
28
28
  const usePage = ({
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.useParameters = void 0;
7
7
  var _useContextSelector = require("use-context-selector");
8
8
  var _ChaynsContext = require("../components/ChaynsContext");
9
- /**
10
- * @category Hooks
9
+ /**
10
+ * @category Hooks
11
11
  */
12
12
  const useParameters = () => (0, _useContextSelector.useContextSelector)(_ChaynsContext.ChaynsContext, v => (v === null || v === void 0 ? void 0 : v.parameters) || []);
13
13
  exports.useParameters = useParameters;
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.useSite = void 0;
7
7
  var _useContextSelector = require("use-context-selector");
8
8
  var _ChaynsContext = require("../components/ChaynsContext");
9
- /**
10
- * @category Hooks
9
+ /**
10
+ * @category Hooks
11
11
  */
12
12
  const useSite = () => (0, _useContextSelector.useContextSelector)(_ChaynsContext.ChaynsContext, v => v === null || v === void 0 ? void 0 : v.site);
13
13
  exports.useSite = useSite;
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.useUser = void 0;
7
7
  var _useContextSelector = require("use-context-selector");
8
8
  var _ChaynsContext = require("../components/ChaynsContext");
9
- /**
10
- * @category Hooks
9
+ /**
10
+ * @category Hooks
11
11
  */
12
12
  const useUser = () => (0, _useContextSelector.useContextSelector)(_ChaynsContext.ChaynsContext, v => (v === null || v === void 0 ? void 0 : v.user) || {});
13
13
  exports.useUser = useUser;
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.useValues = void 0;
7
7
  var _useContextSelector = require("use-context-selector");
8
8
  var _ChaynsContext = require("../components/ChaynsContext");
9
- /**
10
- * @category Hooks
9
+ /**
10
+ * @category Hooks
11
11
  */
12
12
  const useValues = () => {
13
13
  const t = (0, _useContextSelector.useContextSelector)(_ChaynsContext.ChaynsContext, v => v || {});
@@ -8,8 +8,8 @@ var _useContextSelector = require("use-context-selector");
8
8
  var _react = require("react");
9
9
  var _ChaynsContext = require("../components/ChaynsContext");
10
10
  var _IChaynsReact = require("../types/IChaynsReact");
11
- /**
12
- * @category Hooks
11
+ /**
12
+ * @category Hooks
13
13
  */
14
14
  const useWindowMetricsListener = () => {
15
15
  const addListener = (0, _useContextSelector.useContextSelector)(_ChaynsContext.ChaynsFunctionsContext, v => v.addWindowMetricsListener);
@@ -24,8 +24,8 @@ const useWindowMetricsListener = () => {
24
24
  // eslint-disable-next-line react-hooks/exhaustive-deps
25
25
  }, []);
26
26
  };
27
- /**
28
- * @category Hooks
27
+ /**
28
+ * @category Hooks
29
29
  */
30
30
  exports.useWindowMetricsListener = useWindowMetricsListener;
31
31
  const useWindowMetrics = ({
@@ -4,10 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _react = _interopRequireDefault(require("react"));
7
+ var _react = _interopRequireWildcard(require("react"));
8
8
  var _HostIframe = _interopRequireDefault(require("./iframe/HostIframe"));
9
9
  var _ModuleHost = _interopRequireDefault(require("./module/ModuleHost"));
10
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
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
  }
@@ -9,10 +9,10 @@ var comlink = _interopRequireWildcard(require("comlink"));
9
9
  var _postIframeForm = _interopRequireDefault(require("../../util/postIframeForm"));
10
10
  var _useUpdateData = _interopRequireDefault(require("./utils/useUpdateData"));
11
11
  var _url = require("../../util/url");
12
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
13
  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
14
  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
- function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
15
+ 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); }
16
16
  const HostIframe = ({
17
17
  iFrameProps,
18
18
  src,
@@ -5,10 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
- var _useDynamicScript = _interopRequireDefault(require("./utils/useDynamicScript"));
9
8
  var _loadComponent = _interopRequireDefault(require("./utils/loadComponent"));
10
9
  var _url = require("../../util/url");
11
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
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); }
13
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; }
14
13
  const System = ({
@@ -16,28 +15,10 @@ const System = ({
16
15
  fallback,
17
16
  ...props
18
17
  }) => {
19
- const {
20
- ready,
21
- failed
22
- } = (0, _useDynamicScript.default)({
23
- url: system === null || system === void 0 ? void 0 : system.url,
24
- scope: system === null || system === void 0 ? void 0 : system.scope
25
- });
26
- const Component = (0, _react.useMemo)(() => {
27
- // maybe return waitcursor instead
28
- if (failed) {
29
- throw new Error('failed to load component');
30
- }
31
- if (!system || !ready) {
32
- return null;
33
- }
34
- return /*#__PURE__*/_react.default.lazy((0, _loadComponent.default)(system.scope, system.module, system.url, undefined, system.preventSingleton));
35
-
36
- /* eslint-disable react-hooks/exhaustive-deps */
37
- }, [system === null || system === void 0 ? void 0 : system.scope, ready, failed, system === null || system === void 0 ? void 0 : system.url]);
38
- return Component ? /*#__PURE__*/_react.default.createElement(_react.default.Suspense, {
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]);
19
+ return /*#__PURE__*/_react.default.createElement(_react.default.Suspense, {
39
20
  fallback: fallback || ''
40
- }, /*#__PURE__*/_react.default.createElement(Component, props)) : fallback;
21
+ }, /*#__PURE__*/_react.default.createElement(Component, props));
41
22
  };
42
23
  const ModuleHost = ({
43
24
  system,
@@ -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,63 +3,108 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = loadComponent;
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
- var _useDynamicScript = require("./useDynamicScript");
10
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
- /* eslint-disable */
12
- // @ts-nocheck
13
-
14
- let instances = {};
15
- function loadComponent(scope, module, url, skipCompatMode = false, preventSingleton = false) {
16
- return async () => {
17
- // Initializes the shared scope. Fills it with known provided modules from this build and all remotes
18
- await __webpack_init_sharing__('default');
19
- const {
20
- container
21
- } = window[scope + "_list"].find(x => x.url === url); // or get the container somewhere else
22
- // Initialize the container, it may provide shared modules
23
- await container.init(__webpack_share_scopes__.default);
24
- const factory = await container.get(module);
25
- _useDynamicScript.semaphore[scope].release();
26
- let ModuleMap = instances[`${scope}__${module}`];
27
- let Module;
28
- if (!ModuleMap) {
29
- ModuleMap = {};
30
- instances[`${scope}__${module}`] = ModuleMap;
31
- }
32
- if (Object.keys(ModuleMap).length > 0) {
33
- const newModule = factory();
34
- Module = ModuleMap[`${newModule.default.buildEnv}__${newModule.default.appVersion}`];
35
- if (!Module) {
36
- Module = newModule;
37
- ModuleMap[`${newModule.default.buildEnv}__${newModule.default.appVersion}`] = newModule;
38
- }
39
- } else {
40
- Module = factory();
41
- ModuleMap[`${Module.default.buildEnv}__${Module.default.appVersion}`] = Module;
10
+ var _runtime = require("@module-federation/runtime");
11
+ var _process$env$__PACKAG;
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+ const registeredScopes = {};
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
42
30
  }
43
- if (preventSingleton) {
44
- // Intercom :)
45
- window[scope + "_list"] = null;
31
+ }
32
+ });
33
+ const loadModule = (scope, module, url, preventSingleton = false) => {
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}`);
46
37
  }
47
- if (skipCompatMode) return Module;
48
- const hostVersion = _semver.default.minVersion(_react.default.version);
49
- const {
50
- requiredVersion,
51
- environment
52
- } = Module.default;
53
- const matchReactVersion = requiredVersion && _semver.default.satisfies(hostVersion, requiredVersion) && !Object.keys(__webpack_share_scopes__.default.react).some(version => {
54
- return _semver.default.gt(version, hostVersion) && _semver.default.satisfies(version, requiredVersion) || scope === __webpack_share_scopes__.default.react[version].from.split('-').join('_');
38
+ (0, _runtime.registerRemotes)([{
39
+ name: scope,
40
+ entry: url,
41
+ alias: scope
42
+ }], {
43
+ force: scope in registeredScopes || preventSingleton
44
+ });
45
+ registeredScopes[scope] = url;
46
+ moduleMap[scope] = {};
47
+ componentMap[scope] = {};
48
+ }
49
+ if (!(module in moduleMap[scope])) {
50
+ const path = `${scope}/${module.replace(/^\.\//, '')}`;
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] = '';
55
56
  });
56
- if (!matchReactVersion || environment !== 'production' || process.env.NODE_ENV === 'development') {
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
+ }
85
+ });
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') {
94
+ return {
95
+ default: Module.default.CompatComponent
96
+ };
97
+ }
57
98
  return {
58
- default: Module.default.CompatComponent
99
+ default: Module.default.Component
59
100
  };
60
- }
61
- return {
62
- default: Module.default.Component
63
- };
64
- };
65
- }
101
+ });
102
+ promise.catch(e => {
103
+ console.error("[chayns-api] Failed to load component", scope, url, e);
104
+ delete componentMap[scope][module];
105
+ });
106
+ componentMap[scope][module] = /*#__PURE__*/_react.default.lazy(() => promise);
107
+ }
108
+ return componentMap[scope][module];
109
+ };
110
+ var _default = exports.default = loadComponent;
@@ -6,10 +6,11 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.semaphore = exports.default = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
8
  var _semaphoreAsyncAwait = _interopRequireDefault(require("semaphore-async-await"));
9
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
- 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); }
11
- 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; }
12
- const semaphore = exports.semaphore = {};
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;
13
14
  const useDynamicScript = args => {
14
15
  const [ready, setReady] = _react.default.useState(false);
15
16
  const [failed, setFailed] = _react.default.useState(false);
@@ -56,4 +57,5 @@ const useDynamicScript = args => {
56
57
  failed
57
58
  };
58
59
  };
59
- var _default = exports.default = useDynamicScript;
60
+ var _default = useDynamicScript;
61
+ exports.default = _default;
package/dist/cjs/index.js CHANGED
@@ -10,7 +10,10 @@ var _exportNames = {
10
10
  getClientDeviceInfo: true,
11
11
  ChaynsHost: true,
12
12
  withCompatMode: true,
13
+ withHydrationBoundary: true,
13
14
  StaticChaynsApi: true,
15
+ loadComponent: true,
16
+ loadModule: true,
14
17
  DialogHandler: true,
15
18
  dialog: true
16
19
  };
@@ -57,12 +60,30 @@ Object.defineProperty(exports, "getScreenSize", {
57
60
  return _deviceHelper.getScreenSize;
58
61
  }
59
62
  });
63
+ Object.defineProperty(exports, "loadComponent", {
64
+ enumerable: true,
65
+ get: function () {
66
+ return _loadComponent.default;
67
+ }
68
+ });
69
+ Object.defineProperty(exports, "loadModule", {
70
+ enumerable: true,
71
+ get: function () {
72
+ return _loadComponent.loadModule;
73
+ }
74
+ });
60
75
  Object.defineProperty(exports, "withCompatMode", {
61
76
  enumerable: true,
62
77
  get: function () {
63
78
  return _withCompatMode.withCompatMode;
64
79
  }
65
80
  });
81
+ Object.defineProperty(exports, "withHydrationBoundary", {
82
+ enumerable: true,
83
+ get: function () {
84
+ return _withHydrationBoundary.default;
85
+ }
86
+ });
66
87
  require("./util/transferNestedFunctions");
67
88
  var _ChaynsProvider = _interopRequireDefault(require("./components/ChaynsProvider"));
68
89
  var _deviceHelper = _interopRequireWildcard(require("./util/deviceHelper"));
@@ -139,13 +160,27 @@ Object.keys(_is).forEach(function (key) {
139
160
  }
140
161
  });
141
162
  });
163
+ var _constants = require("./constants");
164
+ Object.keys(_constants).forEach(function (key) {
165
+ if (key === "default" || key === "__esModule") return;
166
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
167
+ if (key in exports && exports[key] === _constants[key]) return;
168
+ Object.defineProperty(exports, key, {
169
+ enumerable: true,
170
+ get: function () {
171
+ return _constants[key];
172
+ }
173
+ });
174
+ });
175
+ var _withHydrationBoundary = _interopRequireDefault(require("./components/withHydrationBoundary"));
142
176
  var _StaticChaynsApi = _interopRequireDefault(require("./wrapper/StaticChaynsApi"));
177
+ var _loadComponent = _interopRequireWildcard(require("./host/module/utils/loadComponent"));
143
178
  var _DialogHandler = _interopRequireDefault(require("./handler/DialogHandler"));
144
179
  var _dialog = _interopRequireWildcard(require("./calls/dialogs/index"));
145
180
  exports.dialog = _dialog;
146
181
  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); }
147
182
  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; }
148
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
183
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
149
184
  var _default = exports.default = {
150
185
  buildEnv: process.env.BUILD_ENV,
151
186
  appVersion: process.env.VERSION