chayns-api 1.0.12 → 1.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 (227) 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/bootstrap.js +11 -0
  8. package/dist/cjs/calls/abstractApiListener.js +40 -0
  9. package/dist/cjs/calls/apiEventListener.js +40 -0
  10. package/dist/cjs/calls/dialogs/date.js +10 -10
  11. package/dist/cjs/calls/index.js +102 -97
  12. package/dist/cjs/calls/sendMessage.js +8 -8
  13. package/dist/cjs/calls/setVisibilityChangeListener.js +1 -0
  14. package/dist/cjs/calls/visibilityChangeListener.js +4 -4
  15. package/dist/cjs/calls/windowMetricsListener.js +18 -0
  16. package/dist/cjs/client.js +93 -0
  17. package/dist/cjs/components/App.js +32 -0
  18. package/dist/cjs/components/App.spec.js +16 -0
  19. package/dist/cjs/components/AppDialogWrapper.js +42 -0
  20. package/dist/cjs/components/Button.js +32 -0
  21. package/dist/cjs/components/ChaynsModuleProvider.js +457 -0
  22. package/dist/cjs/components/ChaynsProvider.js +5 -2
  23. package/dist/cjs/components/ChaynsProviderExposed.js +16 -0
  24. package/dist/cjs/components/Dialog.js +1 -0
  25. package/dist/cjs/components/TestProvider.js +236 -0
  26. package/dist/cjs/components/Title.js +162 -0
  27. package/dist/cjs/functions/addApiListener.js +37 -0
  28. package/dist/cjs/functions/addGeoLocationListener.js +26 -0
  29. package/dist/cjs/functions/addScrollListener.js +26 -0
  30. package/dist/cjs/functions/addWindowMetricsListener.js +37 -0
  31. package/dist/cjs/handler/DialogHandler.js +40 -0
  32. package/dist/cjs/helper/cssLoader.js +28 -0
  33. package/dist/cjs/hooks/addGeoLocationListener.js +26 -0
  34. package/dist/cjs/hooks/addScrollListener.js +26 -0
  35. package/dist/cjs/hooks/addWindowMetricsListener.js +37 -0
  36. package/dist/cjs/hooks/geoLocation.js +48 -0
  37. package/dist/cjs/hooks/geoLocationListener.js +4 -4
  38. package/dist/cjs/hooks/index.js +14 -1
  39. package/dist/cjs/hooks/scrollListener.js +8 -8
  40. package/dist/cjs/hooks/useAccessToken.js +2 -2
  41. package/dist/cjs/hooks/useAddGeoLocationListener.js +26 -0
  42. package/dist/cjs/hooks/useAddScrollListener.js +48 -0
  43. package/dist/cjs/hooks/useAddWindowMetricsListener.js +45 -0
  44. package/dist/cjs/hooks/useAdddScrollListener.js +26 -0
  45. package/dist/cjs/hooks/useCurrentPage.js +2 -2
  46. package/dist/cjs/hooks/useCustomData.js +2 -2
  47. package/dist/cjs/hooks/useDevice.js +2 -2
  48. package/dist/cjs/hooks/useDialogState.js +35 -0
  49. package/dist/cjs/hooks/useEnvironment.js +2 -2
  50. package/dist/cjs/hooks/useFunction.js +13 -0
  51. package/dist/cjs/hooks/useFunctions.js +2 -2
  52. package/dist/cjs/hooks/useIsAdminMode.js +2 -2
  53. package/dist/cjs/hooks/useLanguage.js +2 -2
  54. package/dist/cjs/hooks/usePages.js +4 -4
  55. package/dist/cjs/hooks/useParameters.js +2 -2
  56. package/dist/cjs/hooks/useSite.js +2 -2
  57. package/dist/cjs/hooks/useUser.js +2 -2
  58. package/dist/cjs/hooks/useValues.js +2 -2
  59. package/dist/cjs/hooks/windowMetrics.js +45 -0
  60. package/dist/cjs/hooks/windowMetricsListener.js +4 -4
  61. package/dist/cjs/host/ChaynsHost.js +10 -5
  62. package/dist/cjs/host/HostIframe.js +157 -0
  63. package/dist/cjs/host/ModuleHost.js +11 -0
  64. package/dist/cjs/host/iframe/HostIframe.js +5 -2
  65. package/dist/cjs/host/module/ModuleHost.js +4 -0
  66. package/dist/cjs/host/module/utils.js +25 -0
  67. package/dist/cjs/index.example.js +7 -0
  68. package/dist/cjs/index2.js +64 -0
  69. package/dist/cjs/types/DynamicApiImport.d.js +5 -0
  70. package/dist/cjs/types/DynamicImport.d.js +5 -0
  71. package/dist/cjs/types/IChaynsReact.js +22 -2
  72. package/dist/cjs/types/chayns-components.d.js +1 -0
  73. package/dist/cjs/types/chayns-logger.d.js +1 -0
  74. package/dist/cjs/types/chayns.d.js +1 -0
  75. package/dist/cjs/types/tobit-websocket-service-client.d.js +1 -0
  76. package/dist/cjs/types/toolkit-types.d.js +1 -0
  77. package/dist/cjs/util/deviceHelper.js +7 -6
  78. package/dist/cjs/util/useFunctionsContext.js +16 -0
  79. package/dist/cjs/util/useIsAdminMode.js +18 -0
  80. package/dist/cjs/util/useUser.js +16 -0
  81. package/dist/cjs/wrapper/AppWrapper.js +39 -0
  82. package/dist/cjs/wrapper/Dialog.js +35 -0
  83. package/dist/cjs/wrapper/DialogHandler.js +35 -0
  84. package/dist/cjs/wrapper/FrameWrapper.js +17 -0
  85. package/dist/cjs/wrapper/ModuleFederationWrapper.js +4 -0
  86. package/dist/esm/bootstrap.js +4 -0
  87. package/dist/esm/calls/dialogs/date.js +34 -34
  88. package/dist/esm/calls/index.js +102 -96
  89. package/dist/esm/calls/sendMessage.js +8 -8
  90. package/dist/esm/calls/visibilityChangeListener.js +4 -4
  91. package/dist/esm/client.js +8 -0
  92. package/dist/esm/components/App.js +35 -0
  93. package/dist/esm/components/App.spec.js +9 -0
  94. package/dist/esm/components/AppDialogWrapper.js +33 -0
  95. package/dist/esm/components/Button.js +34 -0
  96. package/dist/esm/components/ChaynsModuleProvider.js +517 -0
  97. package/dist/esm/components/ChaynsProvider.js +5 -2
  98. package/dist/esm/components/ChaynsProviderExposed.js +3 -0
  99. package/dist/esm/components/Dialog.js +0 -0
  100. package/dist/esm/components/TestProvider.js +308 -0
  101. package/dist/esm/components/Title.js +210 -0
  102. package/dist/esm/handler/DialogHandler.js +36 -0
  103. package/dist/esm/helper/cssLoader.js +21 -0
  104. package/dist/esm/hooks/geoLocationListener.js +4 -4
  105. package/dist/esm/hooks/index.js +2 -1
  106. package/dist/esm/hooks/scrollListener.js +8 -8
  107. package/dist/esm/hooks/useAccessToken.js +2 -2
  108. package/dist/esm/hooks/useAddGeoLocationListener.js +18 -0
  109. package/dist/esm/hooks/useAddScrollListener.js +18 -0
  110. package/dist/esm/hooks/useAddWindowMetricsListener.js +18 -0
  111. package/dist/esm/hooks/useCurrentPage.js +2 -2
  112. package/dist/esm/hooks/useCustomData.js +2 -2
  113. package/dist/esm/hooks/useDevice.js +2 -2
  114. package/dist/esm/hooks/useDialogState.js +28 -0
  115. package/dist/esm/hooks/useEnvironment.js +2 -2
  116. package/dist/esm/hooks/useFunction.js +6 -0
  117. package/dist/esm/hooks/useFunctions.js +2 -2
  118. package/dist/esm/hooks/useIsAdminMode.js +2 -2
  119. package/dist/esm/hooks/useLanguage.js +2 -2
  120. package/dist/esm/hooks/usePages.js +4 -4
  121. package/dist/esm/hooks/useParameters.js +2 -2
  122. package/dist/esm/hooks/useSite.js +2 -2
  123. package/dist/esm/hooks/useUser.js +2 -2
  124. package/dist/esm/hooks/useValues.js +2 -2
  125. package/dist/esm/hooks/windowMetricsListener.js +4 -4
  126. package/dist/esm/host/ChaynsHost.js +10 -5
  127. package/dist/esm/host/HostIframe.js +153 -0
  128. package/dist/esm/host/iframe/HostIframe.js +5 -2
  129. package/dist/esm/host/module/ModuleHost.js +4 -0
  130. package/dist/esm/index.example.js +1 -0
  131. package/dist/esm/index2.js +5 -0
  132. package/dist/esm/types/DynamicApiImport.d.js +1 -0
  133. package/dist/esm/types/DynamicImport.d.js +1 -0
  134. package/dist/esm/types/IChaynsReact.js +19 -1
  135. package/dist/esm/types/chayns-components.d.js +0 -0
  136. package/dist/esm/types/chayns-logger.d.js +0 -0
  137. package/dist/esm/types/chayns.d.js +0 -0
  138. package/dist/esm/types/tobit-websocket-service-client.d.js +0 -0
  139. package/dist/esm/types/toolkit-types.d.js +0 -0
  140. package/dist/esm/util/deviceHelper.js +7 -6
  141. package/dist/esm/util/useIsAdminMode.js +9 -0
  142. package/dist/esm/util/useUser.js +7 -0
  143. package/dist/esm/wrapper/AppWrapper.js +39 -0
  144. package/dist/esm/wrapper/Dialog.js +31 -0
  145. package/dist/esm/wrapper/DialogHandler.js +31 -0
  146. package/dist/esm/wrapper/FrameWrapper.js +17 -0
  147. package/dist/esm/wrapper/ModuleFederationWrapper.js +4 -0
  148. package/dist/types/bootstrap.d.ts +1 -0
  149. package/dist/types/calls/dialogs/alert.d.ts +1 -1
  150. package/dist/types/calls/dialogs/chaynsDialog.d.ts +24 -24
  151. package/dist/types/calls/dialogs/close.d.ts +1 -1
  152. package/dist/types/calls/dialogs/communication.d.ts +3 -3
  153. package/dist/types/calls/dialogs/confirm.d.ts +13 -13
  154. package/dist/types/calls/dialogs/date.d.ts +96 -96
  155. package/dist/types/calls/dialogs/dropUpAlert.d.ts +5 -5
  156. package/dist/types/calls/dialogs/fileSelect.d.ts +16 -16
  157. package/dist/types/calls/dialogs/iFrame.d.ts +10 -10
  158. package/dist/types/calls/dialogs/index.d.ts +14 -14
  159. package/dist/types/calls/dialogs/input.d.ts +15 -15
  160. package/dist/types/calls/dialogs/mediaSelect.d.ts +8 -8
  161. package/dist/types/calls/dialogs/open.d.ts +1 -1
  162. package/dist/types/calls/dialogs/select.d.ts +6 -6
  163. package/dist/types/calls/dialogs/signature.d.ts +7 -7
  164. package/dist/types/calls/dialogs/toast.d.ts +1 -1
  165. package/dist/types/calls/dialogs/utils/callback.d.ts +1 -1
  166. package/dist/types/calls/dialogs/utils/is.d.ts +4 -4
  167. package/dist/types/calls/getUserInfo.d.ts +9 -9
  168. package/dist/types/calls/index.d.ts +237 -233
  169. package/dist/types/calls/sendMessage.d.ts +13 -13
  170. package/dist/types/calls/visibilityChangeListener.d.ts +9 -9
  171. package/dist/types/client.d.ts +7 -0
  172. package/dist/types/components/App.d.ts +5 -0
  173. package/dist/types/components/AppDialogWrapper.d.ts +5 -0
  174. package/dist/types/components/Button.d.ts +8 -0
  175. package/dist/types/components/ChaynsContext.d.ts +3 -3
  176. package/dist/types/components/ChaynsModuleProvider.d.ts +170 -0
  177. package/dist/types/components/ChaynsProvider.d.ts +14 -14
  178. package/dist/types/components/ChaynsProviderExposed.d.ts +13 -0
  179. package/dist/types/components/Dialog.d.ts +0 -0
  180. package/dist/types/components/Title.d.ts +3 -0
  181. package/dist/types/components/WaitUntil.d.ts +8 -8
  182. package/dist/types/components/withCompatMode.d.ts +13 -13
  183. package/dist/types/handler/DialogHandler.d.ts +12 -0
  184. package/dist/types/helper/apiListenerHelper.d.ts +6 -6
  185. package/dist/types/hooks/geoLocationListener.d.ts +18 -18
  186. package/dist/types/hooks/index.d.ts +17 -16
  187. package/dist/types/hooks/scrollListener.d.ts +28 -28
  188. package/dist/types/hooks/useAccessToken.d.ts +5 -5
  189. package/dist/types/hooks/useCurrentPage.d.ts +4 -4
  190. package/dist/types/hooks/useCustomData.d.ts +4 -4
  191. package/dist/types/hooks/useDevice.d.ts +5 -5
  192. package/dist/types/hooks/useDialogState.d.ts +9 -0
  193. package/dist/types/hooks/useEnvironment.d.ts +5 -5
  194. package/dist/types/hooks/useFunction.d.ts +2 -0
  195. package/dist/types/hooks/useFunctions.d.ts +5 -5
  196. package/dist/types/hooks/useIsAdminMode.d.ts +4 -4
  197. package/dist/types/hooks/useLanguage.d.ts +5 -5
  198. package/dist/types/hooks/usePages.d.ts +18 -18
  199. package/dist/types/hooks/useParameters.d.ts +5 -5
  200. package/dist/types/hooks/useSite.d.ts +5 -5
  201. package/dist/types/hooks/useUser.d.ts +5 -5
  202. package/dist/types/hooks/useValues.d.ts +5 -5
  203. package/dist/types/hooks/windowMetricsListener.d.ts +11 -11
  204. package/dist/types/host/ChaynsHost.d.ts +30 -29
  205. package/dist/types/host/HostIframe.d.ts +20 -0
  206. package/dist/types/host/iframe/HostIframe.d.ts +26 -25
  207. package/dist/types/host/iframe/utils/useUpdateData.d.ts +3 -3
  208. package/dist/types/host/module/ModuleHost.d.ts +26 -25
  209. package/dist/types/host/module/utils/loadComponent.d.ts +1 -1
  210. package/dist/types/host/module/utils/useDynamicScript.d.ts +9 -9
  211. package/dist/types/index.d.ts +16 -16
  212. package/dist/types/index.example.d.ts +0 -0
  213. package/dist/types/types/IChaynsReact.d.ts +702 -623
  214. package/dist/types/types/dialog.d.ts +41 -41
  215. package/dist/types/util/appCall.d.ts +2 -2
  216. package/dist/types/util/deviceHelper.d.ts +7 -7
  217. package/dist/types/util/heightHelper.d.ts +1 -1
  218. package/dist/types/util/postIframeForm.d.ts +1 -1
  219. package/dist/types/util/url.d.ts +1 -1
  220. package/dist/types/wrapper/AppWrapper.d.ts +22 -18
  221. package/dist/types/wrapper/Dialog.d.ts +10 -0
  222. package/dist/types/wrapper/DialogHandler.d.ts +10 -0
  223. package/dist/types/wrapper/FrameWrapper.d.ts +15 -15
  224. package/dist/types/wrapper/ModuleFederationWrapper.d.ts +10 -10
  225. package/dist/types/wrapper/SsrWrapper.d.ts +11 -11
  226. package/package.json +75 -75
  227. package/tsconfig.json +56 -56
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var comlink = _interopRequireWildcard(require("comlink"));
11
+
12
+ var _postIframeForm = _interopRequireDefault(require("../util/postIframeForm"));
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
+ function _extends() { _extends = Object.assign || 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); }
21
+
22
+ const HostIframe = ({
23
+ iFrameProps,
24
+ src,
25
+ postForm = false,
26
+ iFrameRef,
27
+ // shallow data
28
+ pages,
29
+ isAdminModeActive,
30
+ site,
31
+ user,
32
+ currentPage,
33
+ functions,
34
+ device
35
+ }) => {
36
+ const eventTarget = (0, _react.useRef)();
37
+ const ref = (0, _react.useRef)();
38
+ const currentDataRef = (0, _react.useRef)();
39
+
40
+ if (!eventTarget.current) {
41
+ eventTarget.current = global.EventTarget ? new EventTarget() : undefined;
42
+ }
43
+
44
+ const setHeight = value => {
45
+ if (ref.current) {
46
+ ref.current.height = `${value}px`;
47
+ }
48
+ }; // region initialData
49
+
50
+
51
+ const initialData = {
52
+ site,
53
+ isAdminModeActive,
54
+ pages,
55
+ currentPage,
56
+ device,
57
+ user
58
+ }; // endregion
59
+
60
+ currentDataRef.current = initialData; // region postIframeForm
61
+
62
+ (0, _react.useEffect)(() => {
63
+ if (postForm) {
64
+ void (0, _postIframeForm.default)(src, JSON.stringify({ ...initialData,
65
+ pages: undefined
66
+ }), 'chayns', iFrameProps.name);
67
+ } // eslint-disable-next-line react-hooks/exhaustive-deps
68
+
69
+ }, []); // endregion
70
+
71
+ console.debug('functions', functions); // region expose data and functions to iframe
72
+
73
+ (0, _react.useEffect)(() => {
74
+ var _ref$current;
75
+
76
+ if ((_ref$current = ref.current) !== null && _ref$current !== void 0 && _ref$current.contentWindow) {
77
+ const obj = {
78
+ [iFrameProps.name]: {
79
+ functions: { ...functions,
80
+ setHeight
81
+ },
82
+ addDataListener: cb => {
83
+ if (eventTarget.current) eventTarget.current.addEventListener('data_update', e => e.detail && cb(e.detail));
84
+ },
85
+ getInitialData: () => currentDataRef.current
86
+ }
87
+ };
88
+ comlink.expose(obj, comlink.windowEndpoint(ref.current.contentWindow));
89
+ ref.current.contentWindow.postMessage('chayns-api-host-ready', '*'); // https://github.com/GoogleChromeLabs/comlink/pull/469 might be better approach once released
90
+
91
+ return () => {
92
+ delete obj[iFrameProps.name];
93
+ };
94
+ }
95
+
96
+ return undefined; // eslint-disable-next-line react-hooks/exhaustive-deps
97
+ }, []); // endregion
98
+ // region dispatch data update
99
+
100
+ (0, _react.useEffect)(() => {
101
+ if (eventTarget.current) {
102
+ eventTarget.current.dispatchEvent(new CustomEvent('data_update', {
103
+ detail: {
104
+ type: 'isAdminModeActive',
105
+ value: isAdminModeActive
106
+ }
107
+ }));
108
+ }
109
+ }, [isAdminModeActive]);
110
+ (0, _react.useEffect)(() => {
111
+ if (eventTarget.current) {
112
+ eventTarget.current.dispatchEvent(new CustomEvent('data_update', {
113
+ detail: {
114
+ type: 'user',
115
+ value: user
116
+ }
117
+ }));
118
+ }
119
+ }, [user]);
120
+ (0, _react.useEffect)(() => {
121
+ if (eventTarget.current) {
122
+ eventTarget.current.dispatchEvent(new CustomEvent('data_update', {
123
+ detail: {
124
+ type: 'site',
125
+ value: site
126
+ }
127
+ }));
128
+ }
129
+ }, [site]);
130
+ (0, _react.useEffect)(() => {
131
+ if (eventTarget.current) {
132
+ eventTarget.current.dispatchEvent(new CustomEvent('data_update', {
133
+ detail: {
134
+ type: 'pages',
135
+ value: pages
136
+ }
137
+ }));
138
+ }
139
+ }, [pages]); // endregion
140
+
141
+ return /*#__PURE__*/_react.default.createElement("iframe", _extends({
142
+ ref: r => {
143
+ ref.current = r;
144
+
145
+ if (iFrameRef) {
146
+ // eslint-disable-next-line no-param-reassign
147
+ iFrameRef.current = r;
148
+ }
149
+ },
150
+ title: " "
151
+ }, iFrameProps, {
152
+ src: postForm ? undefined : src
153
+ }));
154
+ };
155
+
156
+ var _default = HostIframe;
157
+ exports.default = _default;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ const ModuleHost = ({}) => {};
9
+
10
+ var _default = ModuleHost;
11
+ exports.default = _default;
@@ -30,7 +30,8 @@ const HostIframe = ({
30
30
  parameters,
31
31
  environment,
32
32
  customData,
33
- preventStagingReplacement
33
+ preventStagingReplacement,
34
+ dialog
34
35
  }) => {
35
36
  const eventTarget = (0, _react.useRef)();
36
37
  const ref = (0, _react.useRef)();
@@ -56,7 +57,8 @@ const HostIframe = ({
56
57
  language,
57
58
  parameters,
58
59
  environment,
59
- customData
60
+ customData,
61
+ dialog
60
62
  };
61
63
  // endregion
62
64
 
@@ -116,6 +118,7 @@ const HostIframe = ({
116
118
  (0, _useUpdateData.default)(eventTarget.current, 'parameters', parameters);
117
119
  (0, _useUpdateData.default)(eventTarget.current, 'environment', environment);
118
120
  (0, _useUpdateData.default)(eventTarget.current, 'customData', customData);
121
+ (0, _useUpdateData.default)(eventTarget.current, 'dialog', dialog);
119
122
  // endregion
120
123
 
121
124
  return /*#__PURE__*/_react.default.createElement("iframe", _extends({
@@ -50,6 +50,7 @@ const ModuleHost = ({
50
50
  language,
51
51
  parameters,
52
52
  customData,
53
+ dialog,
53
54
  environment,
54
55
  preventStagingReplacement
55
56
  }) => {
@@ -68,6 +69,9 @@ const ModuleHost = ({
68
69
  if (user) {
69
70
  initialData.user = user;
70
71
  }
72
+ if (dialog) {
73
+ initialData.dialog = dialog;
74
+ }
71
75
  // endregion
72
76
 
73
77
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.loadComponent = loadComponent;
7
+
8
+ function loadComponent(scope, module) {
9
+ return async () => {
10
+ // Initializes the shared scope. Fills it with known provided modules from this build and all remotes
11
+ // eslint-disable-next-line no-undef
12
+ // @ts-expect-error
13
+ await __webpack_init_sharing__('default');
14
+ const container = window[scope]; // or get the container somewhere else
15
+ // Initialize the container, it may provide shared modules
16
+ // eslint-disable-next-line no-undef
17
+ // @ts-expect-error
18
+
19
+ await container.init(__webpack_share_scopes__.default); // @ts-expect-error
20
+
21
+ const factory = await window[scope].get(module);
22
+ const Module = factory();
23
+ return Module;
24
+ };
25
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ 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); }
4
+
5
+ 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; }
6
+
7
+ Promise.resolve().then(() => _interopRequireWildcard(require('./bootstrap')));
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {
7
+ RealChaynsProvider: true,
8
+ getDeviceInfo: true,
9
+ ChaynsHost: true
10
+ };
11
+ Object.defineProperty(exports, "ChaynsHost", {
12
+ enumerable: true,
13
+ get: function () {
14
+ return _ChaynsHost.default;
15
+ }
16
+ });
17
+ Object.defineProperty(exports, "RealChaynsProvider", {
18
+ enumerable: true,
19
+ get: function () {
20
+ return _ChaynsProvider.default;
21
+ }
22
+ });
23
+ Object.defineProperty(exports, "getDeviceInfo", {
24
+ enumerable: true,
25
+ get: function () {
26
+ return _deviceHelper.default;
27
+ }
28
+ });
29
+
30
+ var _ChaynsProvider = _interopRequireDefault(require("./components/ChaynsProvider"));
31
+
32
+ var _deviceHelper = _interopRequireDefault(require("./util/deviceHelper"));
33
+
34
+ var _ChaynsHost = _interopRequireDefault(require("./host/ChaynsHost"));
35
+
36
+ var _calls = require("./calls");
37
+
38
+ Object.keys(_calls).forEach(function (key) {
39
+ if (key === "default" || key === "__esModule") return;
40
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
41
+ if (key in exports && exports[key] === _calls[key]) return;
42
+ Object.defineProperty(exports, key, {
43
+ enumerable: true,
44
+ get: function () {
45
+ return _calls[key];
46
+ }
47
+ });
48
+ });
49
+
50
+ var _hooks = require("./hooks");
51
+
52
+ Object.keys(_hooks).forEach(function (key) {
53
+ if (key === "default" || key === "__esModule") return;
54
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
55
+ if (key in exports && exports[key] === _hooks[key]) return;
56
+ Object.defineProperty(exports, key, {
57
+ enumerable: true,
58
+ get: function () {
59
+ return _hooks[key];
60
+ }
61
+ });
62
+ });
63
+
64
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -3,7 +3,14 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.TappEvent = exports.SharingApp = exports.ScreenSize = exports.ScanQrCodeCodeType = exports.ScanQrCodeCameraTypes = exports.RuntimeEnviroment = exports.Language = exports.IconType = exports.Gender = exports.Font = exports.FloatingButtonPosition = exports.Environment = exports.DeviceOs = exports.ColorMode = exports.BrowserName = exports.AppName = exports.AccessMode = void 0;
6
+ exports.TappEvent = exports.SharingApp = exports.ScreenSize = exports.ScanQrCodeCodeType = exports.ScanQrCodeCameraTypes = exports.RuntimeEnviroment = exports.Language = exports.IconType = exports.Gender = exports.Font = exports.FloatingButtonPosition = exports.Environment = exports.DialogType = exports.DialogButtonType = exports.DeviceOs = exports.ColorMode = exports.BrowserName = exports.AppName = exports.AccessMode = void 0;
7
+ let DialogButtonType;
8
+ exports.DialogButtonType = DialogButtonType;
9
+ (function (DialogButtonType) {
10
+ DialogButtonType[DialogButtonType["OK"] = 1] = "OK";
11
+ DialogButtonType[DialogButtonType["CANCEL"] = -1] = "CANCEL";
12
+ DialogButtonType[DialogButtonType["NEGATIVE"] = 0] = "NEGATIVE";
13
+ })(DialogButtonType || (exports.DialogButtonType = DialogButtonType = {}));
7
14
  let ScreenSize;
8
15
  exports.ScreenSize = ScreenSize;
9
16
  (function (ScreenSize) {
@@ -258,4 +265,17 @@ var selectType;
258
265
  (function (selectType) {
259
266
  selectType[selectType["DEFAULT"] = 0] = "DEFAULT";
260
267
  selectType[selectType["ICON"] = 1] = "ICON";
261
- })(selectType || (selectType = {}));
268
+ })(selectType || (selectType = {}));
269
+ let DialogType;
270
+ exports.DialogType = DialogType;
271
+ (function (DialogType) {
272
+ DialogType["ALERT"] = "alert";
273
+ DialogType["CONFIRM"] = "confirm";
274
+ DialogType["DATE"] = "date";
275
+ DialogType["FILE_SELECT"] = "fileSelect";
276
+ DialogType["IFRAME"] = "iframe";
277
+ DialogType["MODULE"] = "module";
278
+ DialogType["INPUT"] = "input";
279
+ DialogType["SELECT"] = "select";
280
+ DialogType["TOAST"] = "toast";
281
+ })(DialogType || (exports.DialogType = DialogType = {}));
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1 @@
1
+ "use strict";
@@ -35,7 +35,7 @@ const getDeviceInfo = (userAgent, acceptHeader) => {
35
35
  result.accessToken = undefined; // TODO
36
36
  result.os = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.os;
37
37
  if (typeof window !== 'undefined') {
38
- result.screenSize = getScreenSize(window.innerWidth);
38
+ result.screenSize = getScreenSize(window.innerWidth, window.innerHeight);
39
39
  } else {
40
40
  // estimate size over user agent, very inaccurate, could be improved by setting a cookie with the screensize
41
41
  const screenSizeByUA = /mobi/i.test(userAgent) ? _IChaynsReact.ScreenSize.SM : _IChaynsReact.ScreenSize.XL;
@@ -49,15 +49,16 @@ const getClientDeviceInfo = () => ({
49
49
  isTouch: navigator.maxTouchPoints > 0 && window.matchMedia('(pointer: coarse)')
50
50
  });
51
51
  exports.getClientDeviceInfo = getClientDeviceInfo;
52
- const getScreenSize = width => {
52
+ const getScreenSize = (width, height) => {
53
+ const size = Math.max(width, height);
53
54
  let value;
54
- if (width > 1200) {
55
+ if (size > 1200) {
55
56
  value = _IChaynsReact.ScreenSize.XL;
56
- } else if (width > 993) {
57
+ } else if (size > 993) {
57
58
  value = _IChaynsReact.ScreenSize.LG;
58
- } else if (width > 769) {
59
+ } else if (size > 769) {
59
60
  value = _IChaynsReact.ScreenSize.MD;
60
- } else if (width > 556) {
61
+ } else if (size > 556) {
61
62
  value = _IChaynsReact.ScreenSize.SM;
62
63
  } else {
63
64
  value = _IChaynsReact.ScreenSize.XS;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useFunctionsContext = void 0;
7
+
8
+ var _useContextSelector = require("use-context-selector");
9
+
10
+ var _ChaynsContext = require("../components/ChaynsContext");
11
+
12
+ const useFunctionsContext = () => {
13
+ return (0, _useContextSelector.useContext)(_ChaynsContext.ChaynsFunctionsContext);
14
+ };
15
+
16
+ exports.useFunctionsContext = useFunctionsContext;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useIsAdminMode = void 0;
7
+
8
+ var _useContextSelector2 = require("use-context-selector");
9
+
10
+ var _ChaynsContext = require("../components/ChaynsContext");
11
+
12
+ const useIsAdminMode = () => {
13
+ var _useContextSelector;
14
+
15
+ return (_useContextSelector = (0, _useContextSelector2.useContextSelector)(_ChaynsContext.ChaynsContext, v => v === null || v === void 0 ? void 0 : v.isAdminModeActive)) !== null && _useContextSelector !== void 0 ? _useContextSelector : false;
16
+ };
17
+
18
+ exports.useIsAdminMode = useIsAdminMode;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useUser = void 0;
7
+
8
+ var _useContextSelector = require("use-context-selector");
9
+
10
+ var _ChaynsContext = require("../components/ChaynsContext");
11
+
12
+ const useUser = () => {
13
+ return (0, _useContextSelector.useContextSelector)(_ChaynsContext.ChaynsContext, v => v === null || v === void 0 ? void 0 : v.user);
14
+ };
15
+
16
+ exports.useUser = useUser;
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.AppWrapper = void 0;
7
7
  var _lodash = _interopRequireDefault(require("lodash.throttle"));
8
+ var _DialogHandler = _interopRequireDefault(require("../handler/DialogHandler"));
8
9
  var _IChaynsReact = require("../types/IChaynsReact");
9
10
  var _appCall = _interopRequireDefault(require("../util/appCall"));
10
11
  var _deviceHelper = _interopRequireWildcard(require("../util/deviceHelper"));
@@ -17,6 +18,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
17
18
  /* eslint-disable */
18
19
  // @ts-nocheck
19
20
 
21
+ let appWrapperDialogId = 0;
20
22
  class AppWrapper {
21
23
  values = null;
22
24
  accessToken = '';
@@ -98,6 +100,12 @@ class AppWrapper {
98
100
  notImplemented(call) {
99
101
  console.warn(`call ${call} not implement in app`);
100
102
  }
103
+ dispatchDialogChange(detail) {
104
+ this.dialogs = detail;
105
+ this.dialogEventTarget.dispatchEvent(new CustomEvent('change', {
106
+ detail
107
+ }));
108
+ }
101
109
  counter = 0;
102
110
  appCall(action, value = {}, {
103
111
  callback,
@@ -465,8 +473,39 @@ class AppWrapper {
465
473
  void this.appCall(19, value, {
466
474
  awaitResult: false
467
475
  });
476
+ },
477
+ createDialog: config => {
478
+ return new _DialogHandler.default(config, this.functions.openDialog, this.functions.closeDialog);
479
+ },
480
+ openDialog: async (config, callback) => {
481
+ const currentDialogId = appWrapperDialogId++;
482
+ const eventTarget = new EventTarget();
483
+ const resolve = result => {
484
+ callback(result);
485
+ this.dispatchDialogChange(this.dialogs.filter(x => x.dialogId !== currentDialogId));
486
+ };
487
+ this.dispatchDialogChange([...this.dialogs, {
488
+ config,
489
+ resolve,
490
+ dialogId: currentDialogId,
491
+ eventTarget
492
+ }]);
493
+ return currentDialogId;
494
+ },
495
+ closeDialog: dialogId => {
496
+ const dialog = this.dialogs.find(x => x.dialogId === dialogId);
497
+ if (dialog) {
498
+ dialog.resolve({
499
+ buttonType: -1
500
+ });
501
+ }
468
502
  }
469
503
  };
504
+ dialogs = [];
505
+ dialogEventTarget = new EventTarget();
506
+ getDialogEventTarget() {
507
+ return this.dialogEventTarget;
508
+ }
470
509
  async init() {
471
510
  this.values = this.mapOldApiToNew(await this.appCall(18));
472
511
  return undefined;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ class DialogHandler {
8
+ isOpen = false;
9
+ constructor(config, open, close) {
10
+ this._open = open;
11
+ this._close = close;
12
+ this._config = config;
13
+ }
14
+ async open() {
15
+ if (this.isOpen) {
16
+ throw new Error('cannot open a dialog which is already open');
17
+ }
18
+ return new Promise(async resolve => {
19
+ const callback = data => {
20
+ this.isOpen = false;
21
+ resolve(data);
22
+ };
23
+ this.isOpen = true;
24
+ this.dialogId = await this._open(this._config, callback);
25
+ });
26
+ }
27
+ close(buttonType, data) {
28
+ if (!this.isOpen) {
29
+ return;
30
+ }
31
+ this.isOpen = false;
32
+ this._close(this.dialogId, data);
33
+ }
34
+ }
35
+ exports.default = DialogHandler;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ class DialogHandler {
8
+ isOpen = false;
9
+ constructor(config, open, close) {
10
+ this._open = open;
11
+ this._close = close;
12
+ this._config = config;
13
+ }
14
+ async open() {
15
+ if (this.isOpen) {
16
+ throw new Error('cannot open a dialog which is already open');
17
+ }
18
+ return new Promise(async resolve => {
19
+ const callback = data => {
20
+ this.isOpen = false;
21
+ resolve(data);
22
+ };
23
+ this.isOpen = true;
24
+ this.dialogId = await this._open(this._config, callback);
25
+ });
26
+ }
27
+ close(buttonType, data) {
28
+ if (!this.isOpen) {
29
+ return;
30
+ }
31
+ this.isOpen = false;
32
+ this._close(this.dialogId, data);
33
+ }
34
+ }
35
+ exports.default = DialogHandler;
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.FrameWrapper = void 0;
7
7
  var comlink = _interopRequireWildcard(require("comlink"));
8
+ var _DialogHandler = _interopRequireDefault(require("../handler/DialogHandler"));
8
9
  var _visibilityChangeListener = require("../calls/visibilityChangeListener");
9
10
  var _apiListenerHelper = require("../helper/apiListenerHelper");
10
11
  var _getUserInfo = _interopRequireDefault(require("../calls/getUserInfo"));
@@ -233,6 +234,22 @@ class FrameWrapper {
233
234
  scrollByY: async (value, duration) => {
234
235
  if (!this.initialized) await this.ready;
235
236
  return this.exposedFunctions.scrollByY(value, duration);
237
+ },
238
+ createDialog: config => {
239
+ const openDialog = (config, callback) => this.exposedFunctions.openDialog(config, comlink.proxy(callback));
240
+ return new _DialogHandler.default(config, openDialog, this.exposedFunctions.closeDialog);
241
+ },
242
+ closeDialog: async dialogId => {
243
+ if (!this.initialized) await this.ready;
244
+ return this.exposedFunctions.closeDialog(dialogId);
245
+ },
246
+ openDialog: async (config, callback) => {
247
+ if (!this.initialized) await this.ready;
248
+ return this.exposedFunctions.openDialog(config, comlink.proxy(callback));
249
+ },
250
+ setDialogResult: async result => {
251
+ if (!this.initialized) await this.ready;
252
+ return this.exposedFunctions.setDialogResult(result);
236
253
  }
237
254
  };
238
255
  initialized = false;
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.ModuleFederationWrapper = void 0;
7
+ var _DialogHandler = _interopRequireDefault(require("../handler/DialogHandler"));
7
8
  var _visibilityChangeListener = require("../calls/visibilityChangeListener");
8
9
  var _apiListenerHelper = require("../helper/apiListenerHelper");
9
10
  var _getUserInfo = _interopRequireDefault(require("../calls/getUserInfo"));
@@ -24,6 +25,9 @@ class ModuleFederationWrapper {
24
25
  // eslint-disable-next-line
25
26
  this.functions[k] = async (...args) => fn(...args);
26
27
  });
28
+ this.functions.createDialog = config => {
29
+ return new _DialogHandler.default(config, functions.openDialog, functions.closeDialog);
30
+ };
27
31
  this.functions.addWindowMetricsListener = async callback => {
28
32
  const {
29
33
  id,
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import ReactDOM from 'react-dom';
3
+ import App from './components/App';
4
+ ReactDOM.render( /*#__PURE__*/React.createElement(App, null), document.querySelector('#root'));