chayns-api 1.0.68-0 → 1.0.69

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 (162) 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/hooks/geoLocationListener.js +4 -4
  16. package/dist/cjs/hooks/scrollListener.js +8 -8
  17. package/dist/cjs/hooks/useAccessToken.js +3 -3
  18. package/dist/cjs/hooks/useCurrentPage.js +2 -2
  19. package/dist/cjs/hooks/useCustomData.js +2 -2
  20. package/dist/cjs/hooks/useDevice.js +2 -2
  21. package/dist/cjs/hooks/useDialogState.js +4 -4
  22. package/dist/cjs/hooks/useEnvironment.js +2 -2
  23. package/dist/cjs/hooks/useFunctions.js +2 -2
  24. package/dist/cjs/hooks/useIsAdminMode.js +2 -2
  25. package/dist/cjs/hooks/useLanguage.js +2 -2
  26. package/dist/cjs/hooks/usePages.js +4 -4
  27. package/dist/cjs/hooks/useParameters.js +2 -2
  28. package/dist/cjs/hooks/useSite.js +2 -2
  29. package/dist/cjs/hooks/useUser.js +2 -2
  30. package/dist/cjs/hooks/useValues.js +2 -2
  31. package/dist/cjs/hooks/windowMetricsListener.js +4 -4
  32. package/dist/cjs/host/ChaynsHost.js +40 -21
  33. package/dist/cjs/host/iframe/HostIframe.js +2 -2
  34. package/dist/cjs/host/module/ModuleHost.js +20 -5
  35. package/dist/cjs/host/module/utils/loadComponent.js +53 -98
  36. package/dist/cjs/host/module/utils/useDynamicScript.js +59 -0
  37. package/dist/cjs/index.js +1 -36
  38. package/dist/cjs/types/IChaynsReact.js +4 -4
  39. package/dist/cjs/util/heightHelper.js +1 -1
  40. package/dist/cjs/util/url.js +1 -1
  41. package/dist/cjs/wrapper/AppWrapper.js +6 -6
  42. package/dist/cjs/wrapper/FrameWrapper.js +1 -1
  43. package/dist/cjs/wrapper/ModuleFederationWrapper.js +1 -1
  44. package/dist/esm/calls/dialogs/date.js +34 -34
  45. package/dist/esm/calls/index.js +108 -108
  46. package/dist/esm/calls/sendMessage.js +8 -8
  47. package/dist/esm/calls/visibilityChangeListener.js +4 -4
  48. package/dist/esm/components/AppDialogWrapper.js +1 -1
  49. package/dist/esm/components/withCompatMode.js +1 -1
  50. package/dist/esm/handler/DialogHandler.js +1 -1
  51. package/dist/esm/hooks/geoLocationListener.js +4 -4
  52. package/dist/esm/hooks/scrollListener.js +8 -8
  53. package/dist/esm/hooks/useAccessToken.js +3 -3
  54. package/dist/esm/hooks/useCurrentPage.js +2 -2
  55. package/dist/esm/hooks/useCustomData.js +2 -2
  56. package/dist/esm/hooks/useDevice.js +2 -2
  57. package/dist/esm/hooks/useDialogState.js +4 -4
  58. package/dist/esm/hooks/useEnvironment.js +2 -2
  59. package/dist/esm/hooks/useFunctions.js +2 -2
  60. package/dist/esm/hooks/useIsAdminMode.js +2 -2
  61. package/dist/esm/hooks/useLanguage.js +2 -2
  62. package/dist/esm/hooks/usePages.js +4 -4
  63. package/dist/esm/hooks/useParameters.js +2 -2
  64. package/dist/esm/hooks/useSite.js +2 -2
  65. package/dist/esm/hooks/useUser.js +2 -2
  66. package/dist/esm/hooks/useValues.js +2 -2
  67. package/dist/esm/hooks/windowMetricsListener.js +4 -4
  68. package/dist/esm/host/ChaynsHost.js +39 -18
  69. package/dist/esm/host/iframe/HostIframe.js +1 -1
  70. package/dist/esm/host/module/ModuleHost.js +19 -4
  71. package/dist/esm/host/module/utils/loadComponent.js +53 -99
  72. package/dist/esm/host/module/utils/useDynamicScript.js +50 -0
  73. package/dist/esm/index.js +0 -3
  74. package/dist/esm/types/IChaynsReact.js +4 -4
  75. package/dist/esm/util/url.js +2 -2
  76. package/dist/esm/wrapper/AppWrapper.js +6 -6
  77. package/dist/esm/wrapper/FrameWrapper.js +1 -1
  78. package/dist/esm/wrapper/StaticChaynsApi.js +1 -1
  79. package/dist/types/calls/dialogs/alert.d.ts +1 -1
  80. package/dist/types/calls/dialogs/chaynsDialog.d.ts +24 -24
  81. package/dist/types/calls/dialogs/close.d.ts +1 -1
  82. package/dist/types/calls/dialogs/communication.d.ts +3 -3
  83. package/dist/types/calls/dialogs/confirm.d.ts +13 -13
  84. package/dist/types/calls/dialogs/date.d.ts +96 -96
  85. package/dist/types/calls/dialogs/dropUpAlert.d.ts +5 -5
  86. package/dist/types/calls/dialogs/fileSelect.d.ts +16 -16
  87. package/dist/types/calls/dialogs/iFrame.d.ts +10 -10
  88. package/dist/types/calls/dialogs/index.d.ts +14 -14
  89. package/dist/types/calls/dialogs/input.d.ts +15 -15
  90. package/dist/types/calls/dialogs/mediaSelect.d.ts +8 -8
  91. package/dist/types/calls/dialogs/open.d.ts +1 -1
  92. package/dist/types/calls/dialogs/select.d.ts +6 -6
  93. package/dist/types/calls/dialogs/signature.d.ts +7 -7
  94. package/dist/types/calls/dialogs/toast.d.ts +1 -1
  95. package/dist/types/calls/dialogs/utils/callback.d.ts +1 -1
  96. package/dist/types/calls/dialogs/utils/is.d.ts +4 -4
  97. package/dist/types/calls/getUserInfo.d.ts +9 -9
  98. package/dist/types/calls/index.d.ts +259 -255
  99. package/dist/types/calls/sendMessage.d.ts +13 -13
  100. package/dist/types/calls/visibilityChangeListener.d.ts +9 -9
  101. package/dist/types/components/AppDialogWrapper.d.ts +5 -5
  102. package/dist/types/components/ChaynsContext.d.ts +3 -3
  103. package/dist/types/components/ChaynsProvider.d.ts +11 -11
  104. package/dist/types/components/ErrorBoundary.d.ts +13 -13
  105. package/dist/types/components/WaitUntil.d.ts +7 -7
  106. package/dist/types/components/moduleWrapper.d.ts +4 -4
  107. package/dist/types/components/withCompatMode.d.ts +13 -13
  108. package/dist/types/constants/languages.d.ts +12 -12
  109. package/dist/types/handler/DialogHandler.d.ts +18 -18
  110. package/dist/types/helper/apiListenerHelper.d.ts +6 -6
  111. package/dist/types/hooks/geoLocationListener.d.ts +18 -18
  112. package/dist/types/hooks/index.d.ts +17 -17
  113. package/dist/types/hooks/scrollListener.d.ts +28 -28
  114. package/dist/types/hooks/useAccessToken.d.ts +6 -6
  115. package/dist/types/hooks/useCurrentPage.d.ts +4 -7
  116. package/dist/types/hooks/useCustomData.d.ts +4 -4
  117. package/dist/types/hooks/useDevice.d.ts +5 -5
  118. package/dist/types/hooks/useDialogState.d.ts +9 -9
  119. package/dist/types/hooks/useEnvironment.d.ts +5 -5
  120. package/dist/types/hooks/useFunctions.d.ts +5 -5
  121. package/dist/types/hooks/useIsAdminMode.d.ts +4 -4
  122. package/dist/types/hooks/useLanguage.d.ts +5 -5
  123. package/dist/types/hooks/usePages.d.ts +18 -18
  124. package/dist/types/hooks/useParameters.d.ts +5 -5
  125. package/dist/types/hooks/useSite.d.ts +5 -5
  126. package/dist/types/hooks/useUser.d.ts +5 -5
  127. package/dist/types/hooks/useValues.d.ts +5 -5
  128. package/dist/types/hooks/windowMetricsListener.d.ts +11 -11
  129. package/dist/types/host/ChaynsHost.d.ts +30 -29
  130. package/dist/types/host/iframe/HostIframe.d.ts +26 -26
  131. package/dist/types/host/iframe/utils/useUpdateData.d.ts +3 -3
  132. package/dist/types/host/module/ModuleHost.d.ts +27 -28
  133. package/dist/types/host/module/utils/loadComponent.d.ts +1 -3
  134. package/dist/types/host/module/utils/useDynamicScript.d.ts +9 -0
  135. package/dist/types/index.d.ts +19 -22
  136. package/dist/types/types/IChaynsReact.d.ts +820 -820
  137. package/dist/types/types/dialog.d.ts +41 -41
  138. package/dist/types/util/appCall.d.ts +2 -2
  139. package/dist/types/util/deviceHelper.d.ts +7 -7
  140. package/dist/types/util/heightHelper.d.ts +1 -1
  141. package/dist/types/util/postIframeForm.d.ts +1 -1
  142. package/dist/types/util/transferNestedFunctions.d.ts +1 -1
  143. package/dist/types/util/url.d.ts +1 -1
  144. package/dist/types/wrapper/AppWrapper.d.ts +22 -22
  145. package/dist/types/wrapper/FrameWrapper.d.ts +15 -15
  146. package/dist/types/wrapper/ModuleFederationWrapper.d.ts +10 -10
  147. package/dist/types/wrapper/SsrWrapper.d.ts +11 -11
  148. package/dist/types/wrapper/StaticChaynsApi.d.ts +16 -16
  149. package/package.json +78 -86
  150. package/toolkit.config.js +20 -20
  151. package/tsconfig.json +56 -56
  152. package/dist/chayns-api.js +0 -2
  153. package/dist/chayns-api.js.LICENSE.txt +0 -51
  154. package/dist/cjs/components/withHydrationBoundary.js +0 -54
  155. package/dist/cjs/constants/hydrationContext.js +0 -16
  156. package/dist/cjs/constants/index.js +0 -16
  157. package/dist/esm/components/withHydrationBoundary.js +0 -47
  158. package/dist/esm/constants/hydrationContext.js +0 -10
  159. package/dist/esm/constants/index.js +0 -1
  160. package/dist/types/components/withHydrationBoundary.d.ts +0 -17
  161. package/dist/types/constants/hydrationContext.d.ts +0 -9
  162. package/dist/types/constants/index.d.ts +0 -1
@@ -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,12 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _react = _interopRequireWildcard(require("react"));
7
+ var _react = _interopRequireDefault(require("react"));
8
8
  var _HostIframe = _interopRequireDefault(require("./iframe/HostIframe"));
9
9
  var _ModuleHost = _interopRequireDefault(require("./module/ModuleHost"));
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; }
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
11
  const ChaynsHost = ({
14
12
  type,
15
13
  iFrameProps,
@@ -17,6 +15,7 @@ const ChaynsHost = ({
17
15
  src,
18
16
  iFrameRef = undefined,
19
17
  loadingComponent = undefined,
18
+ children = undefined,
20
19
  system,
21
20
  // shallow data
22
21
  pages,
@@ -32,23 +31,8 @@ const ChaynsHost = ({
32
31
  preventStagingReplacement,
33
32
  dialog
34
33
  }) => {
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
- }
49
34
  switch (type) {
50
35
  case 'client-iframe':
51
- case 'server-iframe':
52
36
  return /*#__PURE__*/_react.default.createElement(_HostIframe.default, {
53
37
  iFrameRef: iFrameRef,
54
38
  iFrameProps: iFrameProps,
@@ -60,7 +44,6 @@ const ChaynsHost = ({
60
44
  currentPage: currentPage,
61
45
  functions: functions,
62
46
  src: src,
63
- postForm: type === 'server-iframe',
64
47
  language: language,
65
48
  parameters: parameters,
66
49
  environment: environment,
@@ -69,7 +52,6 @@ const ChaynsHost = ({
69
52
  dialog: dialog
70
53
  });
71
54
  case 'client-module':
72
- case 'server-module':
73
55
  return /*#__PURE__*/_react.default.createElement(_ModuleHost.default, {
74
56
  system: system,
75
57
  pages: pages,
@@ -87,6 +69,43 @@ const ChaynsHost = ({
87
69
  preventStagingReplacement: preventStagingReplacement,
88
70
  dialog: dialog
89
71
  });
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);
90
109
  default:
91
110
  return null;
92
111
  }
@@ -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(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
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() { _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
+ 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); }
16
16
  const HostIframe = ({
17
17
  iFrameProps,
18
18
  src,
@@ -5,9 +5,10 @@ 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"));
8
9
  var _loadComponent = _interopRequireDefault(require("./utils/loadComponent"));
9
10
  var _url = require("../../util/url");
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
12
  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
13
  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; }
13
14
  const System = ({
@@ -15,10 +16,25 @@ const System = ({
15
16
  fallback,
16
17
  ...props
17
18
  }) => {
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, {
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 (!system || !ready || failed) {
29
+ return null;
30
+ }
31
+ return /*#__PURE__*/_react.default.lazy((0, _loadComponent.default)(system.scope, system.module, system.url, undefined, system.preventSingleton));
32
+
33
+ /* eslint-disable react-hooks/exhaustive-deps */
34
+ }, [system === null || system === void 0 ? void 0 : system.scope, ready, system === null || system === void 0 ? void 0 : system.url]);
35
+ return Component ? /*#__PURE__*/_react.default.createElement(_react.default.Suspense, {
20
36
  fallback: fallback || ''
21
- }, /*#__PURE__*/_react.default.createElement(Component, props));
37
+ }, /*#__PURE__*/_react.default.createElement(Component, props)) : fallback;
22
38
  };
23
39
  const ModuleHost = ({
24
40
  system,
@@ -64,7 +80,6 @@ const ModuleHost = ({
64
80
  system: {
65
81
  scope: system.scope,
66
82
  url: (0, _url.replaceStagingUrl)(preventStagingReplacement, system.url, environment.buildEnvironment),
67
- serverUrl: (0, _url.replaceStagingUrl)(preventStagingReplacement, system.serverUrl, environment.buildEnvironment),
68
83
  module: system.module,
69
84
  preventSingleton: system.preventSingleton
70
85
  },
@@ -3,108 +3,63 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.loadModule = exports.default = void 0;
7
- var _reactDom = _interopRequireDefault(require("react-dom"));
6
+ exports.default = loadComponent;
8
7
  var _semver = _interopRequireDefault(require("semver"));
9
8
  var _react = _interopRequireDefault(require("react"));
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
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;
30
31
  }
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}`);
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;
37
42
  }
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] = '';
43
+ if (preventSingleton) {
44
+ // Intercom :)
45
+ window[scope + "_list"] = null;
46
+ }
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('_');
56
55
  });
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
- }
56
+ if (!matchReactVersion || environment !== 'production' || process.env.NODE_ENV === 'development') {
98
57
  return {
99
- default: Module.default.Component
58
+ default: Module.default.CompatComponent
100
59
  };
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;
60
+ }
61
+ return {
62
+ default: Module.default.Component
63
+ };
64
+ };
65
+ }
@@ -0,0 +1,59 @@
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(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 = {};
13
+ const useDynamicScript = args => {
14
+ const [ready, setReady] = _react.default.useState(false);
15
+ const [failed, setFailed] = _react.default.useState(false);
16
+ (0, _react.useEffect)(() => {
17
+ if (!args.url) {
18
+ return undefined;
19
+ }
20
+ const element = document.createElement('script');
21
+ element.src = args.url;
22
+ element.type = 'text/javascript';
23
+ element.async = true;
24
+ setReady(false);
25
+ setFailed(false);
26
+ if (!(args.scope in semaphore)) {
27
+ semaphore[args.scope] = new _semaphoreAsyncAwait.default(1);
28
+ }
29
+ (async () => {
30
+ await semaphore[args.scope].acquire();
31
+ element.onload = () => {
32
+ setReady(true);
33
+ const listKey = args.scope + "_list";
34
+ if (!window[listKey]) window[listKey] = [];
35
+ window[listKey].push({
36
+ url: args.url,
37
+ container: window[args.scope]
38
+ });
39
+ window[args.scope] = null;
40
+ };
41
+ element.onerror = () => {
42
+ setReady(false);
43
+ setFailed(true);
44
+ };
45
+ document.head.appendChild(element);
46
+ })();
47
+ return () => {
48
+ semaphore[args.scope].release();
49
+ if (document.head.contains(element)) {
50
+ document.head.removeChild(element);
51
+ }
52
+ };
53
+ }, [args.url]);
54
+ return {
55
+ ready,
56
+ failed
57
+ };
58
+ };
59
+ var _default = exports.default = useDynamicScript;
package/dist/cjs/index.js CHANGED
@@ -10,10 +10,7 @@ var _exportNames = {
10
10
  getClientDeviceInfo: true,
11
11
  ChaynsHost: true,
12
12
  withCompatMode: true,
13
- withHydrationBoundary: true,
14
13
  StaticChaynsApi: true,
15
- loadComponent: true,
16
- loadModule: true,
17
14
  DialogHandler: true,
18
15
  dialog: true
19
16
  };
@@ -60,30 +57,12 @@ Object.defineProperty(exports, "getScreenSize", {
60
57
  return _deviceHelper.getScreenSize;
61
58
  }
62
59
  });
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
- });
75
60
  Object.defineProperty(exports, "withCompatMode", {
76
61
  enumerable: true,
77
62
  get: function () {
78
63
  return _withCompatMode.withCompatMode;
79
64
  }
80
65
  });
81
- Object.defineProperty(exports, "withHydrationBoundary", {
82
- enumerable: true,
83
- get: function () {
84
- return _withHydrationBoundary.default;
85
- }
86
- });
87
66
  require("./util/transferNestedFunctions");
88
67
  var _ChaynsProvider = _interopRequireDefault(require("./components/ChaynsProvider"));
89
68
  var _deviceHelper = _interopRequireWildcard(require("./util/deviceHelper"));
@@ -148,27 +127,13 @@ Object.keys(_IChaynsReact).forEach(function (key) {
148
127
  }
149
128
  });
150
129
  });
151
- var _constants = require("./constants");
152
- Object.keys(_constants).forEach(function (key) {
153
- if (key === "default" || key === "__esModule") return;
154
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
155
- if (key in exports && exports[key] === _constants[key]) return;
156
- Object.defineProperty(exports, key, {
157
- enumerable: true,
158
- get: function () {
159
- return _constants[key];
160
- }
161
- });
162
- });
163
- var _withHydrationBoundary = _interopRequireDefault(require("./components/withHydrationBoundary"));
164
130
  var _StaticChaynsApi = _interopRequireDefault(require("./wrapper/StaticChaynsApi"));
165
- var _loadComponent = _interopRequireWildcard(require("./host/module/utils/loadComponent"));
166
131
  var _DialogHandler = _interopRequireDefault(require("./handler/DialogHandler"));
167
132
  var _dialog = _interopRequireWildcard(require("./calls/dialogs/index"));
168
133
  exports.dialog = _dialog;
169
134
  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); }
170
135
  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; }
171
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
136
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
172
137
  var _default = exports.default = {
173
138
  buildEnv: process.env.BUILD_ENV,
174
139
  appVersion: process.env.VERSION
@@ -45,11 +45,11 @@ let ScreenSize = exports.ScreenSize = /*#__PURE__*/function (ScreenSize) {
45
45
  ScreenSize[ScreenSize["XL"] = 4] = "XL";
46
46
  return ScreenSize;
47
47
  }({});
48
- /**
49
- * @ignore
48
+ /**
49
+ * @ignore
50
50
  */
51
- /**
52
- * @ignore
51
+ /**
52
+ * @ignore
53
53
  */
54
54
  let AccessMode = exports.AccessMode = /*#__PURE__*/function (AccessMode) {
55
55
  AccessMode[AccessMode["public"] = 0] = "public";
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.setTappHeight = void 0;
7
7
  var _lodash = _interopRequireDefault(require("lodash.throttle"));
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
9
  const setTappHeight = setHeight => {
10
10
  document.documentElement.style.overflow = 'hidden';
11
11
  void setHeight(document.body.offsetHeight);
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.replaceStagingUrl = void 0;
7
7
  var _IChaynsReact = require("../types/IChaynsReact");
8
8
  const replaceStagingUrl = (prevent, url, environment) => {
9
- if (prevent || !url) return url;
9
+ if (prevent) return url;
10
10
  let replacedUrl = url;
11
11
  if (environment === _IChaynsReact.Environment.Qa || environment === _IChaynsReact.Environment.Development) {
12
12
  replacedUrl = replacedUrl.replace('tapp.chayns-static.space', 'tapp-dev.chayns-static.space');