chayns-api 1.0.13 → 1.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/calls/index.js +7 -2
- package/dist/cjs/components/AppDialogWrapper.js +42 -0
- package/dist/cjs/components/ChaynsProvider.js +5 -2
- package/dist/cjs/handler/DialogHandler.js +65 -0
- package/dist/cjs/hooks/index.js +14 -1
- package/dist/cjs/hooks/useDialogState.js +39 -0
- package/dist/cjs/host/ChaynsHost.js +10 -5
- package/dist/cjs/host/iframe/HostIframe.js +5 -2
- package/dist/cjs/host/module/ModuleHost.js +4 -0
- package/dist/cjs/types/IChaynsReact.js +22 -2
- package/dist/cjs/wrapper/AppWrapper.js +39 -0
- package/dist/cjs/wrapper/FrameWrapper.js +52 -1
- package/dist/cjs/wrapper/ModuleFederationWrapper.js +4 -0
- package/dist/esm/calls/index.js +6 -0
- package/dist/esm/components/AppDialogWrapper.js +33 -0
- package/dist/esm/components/ChaynsProvider.js +5 -2
- package/dist/esm/handler/DialogHandler.js +61 -0
- package/dist/esm/hooks/index.js +2 -1
- package/dist/esm/hooks/useDialogState.js +32 -0
- package/dist/esm/host/ChaynsHost.js +10 -5
- package/dist/esm/host/iframe/HostIframe.js +5 -2
- package/dist/esm/host/module/ModuleHost.js +4 -0
- package/dist/esm/types/IChaynsReact.js +19 -1
- package/dist/esm/wrapper/AppWrapper.js +39 -0
- package/dist/esm/wrapper/FrameWrapper.js +52 -1
- package/dist/esm/wrapper/ModuleFederationWrapper.js +4 -0
- package/dist/types/calls/dialogs/confirm.d.ts +4 -4
- package/dist/types/calls/dialogs/date.d.ts +3 -3
- package/dist/types/calls/dialogs/fileSelect.d.ts +2 -2
- package/dist/types/calls/dialogs/iFrame.d.ts +2 -2
- package/dist/types/calls/dialogs/input.d.ts +2 -2
- package/dist/types/calls/dialogs/mediaSelect.d.ts +2 -2
- package/dist/types/calls/dialogs/signature.d.ts +2 -2
- package/dist/types/calls/index.d.ts +4 -0
- package/dist/types/components/AppDialogWrapper.d.ts +5 -0
- package/dist/types/components/WaitUntil.d.ts +1 -2
- package/dist/types/handler/DialogHandler.d.ts +19 -0
- package/dist/types/hooks/index.d.ts +1 -0
- package/dist/types/hooks/useDialogState.d.ts +9 -0
- package/dist/types/host/ChaynsHost.d.ts +5 -4
- package/dist/types/host/iframe/HostIframe.d.ts +1 -0
- package/dist/types/host/module/ModuleHost.d.ts +1 -0
- package/dist/types/types/IChaynsReact.d.ts +90 -5
- package/dist/types/types/dialog.d.ts +1 -1
- package/dist/types/wrapper/AppWrapper.d.ts +4 -0
- package/package.json +4 -4
package/dist/cjs/calls/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.vibrate = exports.user = exports.storageSetItem = exports.storageRemoveItem = exports.storageGetItem = exports.site = exports.setWaitCursor = exports.setTempDesignSettings = exports.setScanQrCode = exports.setRefreshScrollEnabled = exports.setOverlay = exports.setHeight = exports.setFloatingButton = exports.setDisplayTimeout = exports.setAdminMode = exports.sendMessageToUser = exports.sendMessageToPage = exports.sendMessageToGroup = exports.selectPage = exports.scrollToY = exports.scrollByY = exports.removeWindowMetricsListener = exports.removeVisibilityChangeListener = exports.removeScrollListener = exports.removeGeoLocationListener = exports.refreshData = exports.refreshAccessToken = exports.parameters = exports.pages = exports.openVideo = exports.openUrl = exports.openImage = exports.navigateBack = exports.logout = exports.login = exports.language = exports.invokeDialogCall = exports.invokeCall = exports.getWindowMetrics = exports.getUserInfo = exports.getUser = exports.getSite = exports.getScrollPosition = exports.getParameters = exports.getPages = exports.getLanguage = exports.getGeoLocation = exports.getEnvironment = exports.getDevice = exports.getCurrentPage = exports.getAvailableSharingServices = exports.getAccessToken = exports.environment = exports.device = exports.customCallbackFunction = exports.addWindowMetricsListener = exports.addVisibilityChangeListener = exports.addScrollListener = exports.addGeoLocationListener = void 0;
|
|
6
|
+
exports.vibrate = exports.user = exports.storageSetItem = exports.storageRemoveItem = exports.storageGetItem = exports.site = exports.setWaitCursor = exports.setTempDesignSettings = exports.setScanQrCode = exports.setRefreshScrollEnabled = exports.setOverlay = exports.setHeight = exports.setFloatingButton = exports.setDisplayTimeout = exports.setAdminMode = exports.sendMessageToUser = exports.sendMessageToPage = exports.sendMessageToGroup = exports.selectPage = exports.scrollToY = exports.scrollByY = exports.removeWindowMetricsListener = exports.removeVisibilityChangeListener = exports.removeScrollListener = exports.removeGeoLocationListener = exports.refreshData = exports.refreshAccessToken = exports.parameters = exports.pages = exports.openVideo = exports.openUrl = exports.openImage = exports.navigateBack = exports.logout = exports.login = exports.language = exports.invokeDialogCall = exports.invokeCall = exports.getWindowMetrics = exports.getUserInfo = exports.getUser = exports.getSite = exports.getScrollPosition = exports.getParameters = exports.getPages = exports.getLanguage = exports.getGeoLocation = exports.getEnvironment = exports.getDevice = exports.getCurrentPage = exports.getAvailableSharingServices = exports.getAccessToken = exports.environment = exports.device = exports.customCallbackFunction = exports.createDialog = exports.addWindowMetricsListener = exports.addVisibilityChangeListener = exports.addScrollListener = exports.addGeoLocationListener = void 0;
|
|
7
7
|
var _ChaynsProvider = require("../components/ChaynsProvider");
|
|
8
8
|
/**
|
|
9
9
|
* This adds a listener to determine your location.
|
|
@@ -224,9 +224,14 @@ const storageSetItem = (...args) => _ChaynsProvider.moduleWrapper.current.functi
|
|
|
224
224
|
exports.storageSetItem = storageSetItem;
|
|
225
225
|
const vibrate = (...args) => _ChaynsProvider.moduleWrapper.current.functions.vibrate(...args);
|
|
226
226
|
/**
|
|
227
|
-
*
|
|
227
|
+
* This method creates a dialog
|
|
228
228
|
*/
|
|
229
229
|
exports.vibrate = vibrate;
|
|
230
|
+
const createDialog = (...args) => _ChaynsProvider.moduleWrapper.current.functions.createDialog(...args);
|
|
231
|
+
/**
|
|
232
|
+
* Displays an overlay
|
|
233
|
+
*/
|
|
234
|
+
exports.createDialog = createDialog;
|
|
230
235
|
const setOverlay = (...args) => _ChaynsProvider.moduleWrapper.current.functions.setOverlay(...args);
|
|
231
236
|
/**
|
|
232
237
|
* Returns user information, only when user is logged in
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _ChaynsHost = _interopRequireDefault(require("../host/ChaynsHost"));
|
|
9
|
+
var _hooks = require("../hooks");
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
12
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
13
|
+
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); }
|
|
14
|
+
const AppDialogWrapper = ({
|
|
15
|
+
dialogEventTarget
|
|
16
|
+
}) => {
|
|
17
|
+
const functions = (0, _hooks.useFunctions)();
|
|
18
|
+
const data = (0, _hooks.useValues)();
|
|
19
|
+
const [dialogData, setDialogData] = (0, _react.useState)({
|
|
20
|
+
dialogs: []
|
|
21
|
+
});
|
|
22
|
+
(0, _react.useEffect)(() => {
|
|
23
|
+
dialogEventTarget.addEventListener('change', e => {
|
|
24
|
+
setDialogData({
|
|
25
|
+
dialogs: e.detail
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
}, []);
|
|
29
|
+
return /*#__PURE__*/_react.default.createElement(_ChaynsHost.default, _extends({
|
|
30
|
+
type: "client-module",
|
|
31
|
+
system: {
|
|
32
|
+
module: './AppWrapper',
|
|
33
|
+
url: 'https://tapp-staging.chayns-static.space/api/dialog-v2/v1/remoteEntry.js',
|
|
34
|
+
scope: 'dialog_v2'
|
|
35
|
+
}
|
|
36
|
+
}, data, {
|
|
37
|
+
functions: functions,
|
|
38
|
+
customData: dialogData
|
|
39
|
+
}));
|
|
40
|
+
};
|
|
41
|
+
var _default = AppDialogWrapper;
|
|
42
|
+
exports.default = _default;
|
|
@@ -13,6 +13,7 @@ var _FrameWrapper = require("../wrapper/FrameWrapper");
|
|
|
13
13
|
var _ModuleFederationWrapper = require("../wrapper/ModuleFederationWrapper");
|
|
14
14
|
var _SsrWrapper = require("../wrapper/SsrWrapper");
|
|
15
15
|
var _ChaynsContext = require("./ChaynsContext");
|
|
16
|
+
var _AppDialogWrapper = _interopRequireDefault(require("./AppDialogWrapper"));
|
|
16
17
|
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; }
|
|
18
19
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -44,7 +45,7 @@ const ChaynsProvider = ({
|
|
|
44
45
|
renderedByServer,
|
|
45
46
|
isModule
|
|
46
47
|
}) => {
|
|
47
|
-
var _customWrapper$curren, _customWrapper$curren2, _customWrapper$curren3;
|
|
48
|
+
var _customWrapper$curren, _customWrapper$curren2, _customWrapper$curren3, _customWrapper$curren4;
|
|
48
49
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
49
50
|
const customWrapper = (0, _react.useRef)(null);
|
|
50
51
|
if (!customWrapper.current) {
|
|
@@ -107,7 +108,9 @@ const ChaynsProvider = ({
|
|
|
107
108
|
value: state
|
|
108
109
|
}, /*#__PURE__*/_react.default.createElement(_ChaynsContext.ChaynsFunctionsContext.Provider, {
|
|
109
110
|
value: (_customWrapper$curren3 = customWrapper.current) === null || _customWrapper$curren3 === void 0 ? void 0 : _customWrapper$curren3.functions
|
|
110
|
-
}, children
|
|
111
|
+
}, children, customWrapper.current instanceof _AppWrapper.AppWrapper ? /*#__PURE__*/_react.default.createElement(_AppDialogWrapper.default, {
|
|
112
|
+
dialogEventTarget: (_customWrapper$curren4 = customWrapper.current) === null || _customWrapper$curren4 === void 0 ? void 0 : _customWrapper$curren4.getDialogEventTarget()
|
|
113
|
+
}) : false)), /*#__PURE__*/_react.default.createElement(InitialDataProvider, {
|
|
111
114
|
data: state,
|
|
112
115
|
renderedByServer: renderedByServer
|
|
113
116
|
}));
|
|
@@ -0,0 +1,65 @@
|
|
|
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
|
+
result = undefined;
|
|
10
|
+
listeners = [];
|
|
11
|
+
constructor(config, open, close, dispatchEvent, addDataListener) {
|
|
12
|
+
this._open = open;
|
|
13
|
+
this._close = close;
|
|
14
|
+
this._config = config;
|
|
15
|
+
this._dispatchEvent = dispatchEvent;
|
|
16
|
+
this._addDataListener = addDataListener;
|
|
17
|
+
}
|
|
18
|
+
async open() {
|
|
19
|
+
if (this.isOpen) {
|
|
20
|
+
throw new Error('cannot open a dialog which is already open');
|
|
21
|
+
}
|
|
22
|
+
const res = await new Promise(async resolve => {
|
|
23
|
+
const callback = data => {
|
|
24
|
+
this.isOpen = false;
|
|
25
|
+
resolve(data);
|
|
26
|
+
};
|
|
27
|
+
this.isOpen = true;
|
|
28
|
+
this.dialogId = await this._open(this._config, callback);
|
|
29
|
+
|
|
30
|
+
// console.log('dialogId', this.dialogId);
|
|
31
|
+
|
|
32
|
+
this._addDataListener(this.dialogId, data => {
|
|
33
|
+
// console.log('[DialogHandler]dataListener', this.dialogId, data);
|
|
34
|
+
this.listeners.forEach(cb => cb(data));
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
return this.result = res;
|
|
38
|
+
}
|
|
39
|
+
close(buttonType, data) {
|
|
40
|
+
if (!this.isOpen) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
this.isOpen = false;
|
|
44
|
+
this._close(this.dialogId, data);
|
|
45
|
+
}
|
|
46
|
+
dispatchEvent(data) {
|
|
47
|
+
if (!this.isOpen) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
this._dispatchEvent(this.dialogId, data);
|
|
51
|
+
}
|
|
52
|
+
addDataListener(listener) {
|
|
53
|
+
this.listeners.push(listener);
|
|
54
|
+
}
|
|
55
|
+
removeDataListener(listener) {
|
|
56
|
+
const index = this.listeners.findIndex(l => l === listener);
|
|
57
|
+
if (index > -1) {
|
|
58
|
+
this.listeners.splice(index, 1);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
getResult() {
|
|
62
|
+
return this.result;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.default = DialogHandler;
|
package/dist/cjs/hooks/index.js
CHANGED
|
@@ -33,6 +33,18 @@ Object.defineProperty(exports, "useDevice", {
|
|
|
33
33
|
return _useDevice.useDevice;
|
|
34
34
|
}
|
|
35
35
|
});
|
|
36
|
+
Object.defineProperty(exports, "useDialogData", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function () {
|
|
39
|
+
return _useDialogState.useDialogData;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(exports, "useDialogState", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
get: function () {
|
|
45
|
+
return _useDialogState.useDialogState;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
36
48
|
Object.defineProperty(exports, "useEnvironment", {
|
|
37
49
|
enumerable: true,
|
|
38
50
|
get: function () {
|
|
@@ -156,4 +168,5 @@ var _useLanguage = require("./useLanguage");
|
|
|
156
168
|
var _useValues = require("./useValues");
|
|
157
169
|
var _useFunctions = require("./useFunctions");
|
|
158
170
|
var _useCurrentPage = require("./useCurrentPage");
|
|
159
|
-
var _useCustomData = require("./useCustomData");
|
|
171
|
+
var _useCustomData = require("./useCustomData");
|
|
172
|
+
var _useDialogState = require("./useDialogState");
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useDialogState = exports.useDialogData = void 0;
|
|
7
|
+
var _useContextSelector = require("use-context-selector");
|
|
8
|
+
var _ChaynsContext = require("../components/ChaynsContext");
|
|
9
|
+
/**
|
|
10
|
+
* @category Hooks
|
|
11
|
+
*/
|
|
12
|
+
const useDialogState = () => {
|
|
13
|
+
const setResult = (0, _useContextSelector.useContextSelector)(_ChaynsContext.ChaynsFunctionsContext, v => v === null || v === void 0 ? void 0 : v.setDialogResult);
|
|
14
|
+
const sendData = (0, _useContextSelector.useContextSelector)(_ChaynsContext.ChaynsFunctionsContext, v => v === null || v === void 0 ? void 0 : v.dispatchEventToDialogHost);
|
|
15
|
+
const addDataListener = (0, _useContextSelector.useContextSelector)(_ChaynsContext.ChaynsFunctionsContext, v => v === null || v === void 0 ? void 0 : v.addDialogHostEventListener);
|
|
16
|
+
const isClosingRequested = (0, _useContextSelector.useContextSelector)(_ChaynsContext.ChaynsContext, v => {
|
|
17
|
+
var _v$dialog;
|
|
18
|
+
return v === null || v === void 0 ? void 0 : (_v$dialog = v.dialog) === null || _v$dialog === void 0 ? void 0 : _v$dialog.isClosingRequested;
|
|
19
|
+
});
|
|
20
|
+
return {
|
|
21
|
+
setResult,
|
|
22
|
+
sendData,
|
|
23
|
+
addDataListener,
|
|
24
|
+
isClosingRequested
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* @category Hooks
|
|
30
|
+
*/
|
|
31
|
+
exports.useDialogState = useDialogState;
|
|
32
|
+
const useDialogData = () => {
|
|
33
|
+
const inputData = (0, _useContextSelector.useContextSelector)(_ChaynsContext.ChaynsContext, v => {
|
|
34
|
+
var _v$dialog2;
|
|
35
|
+
return v === null || v === void 0 ? void 0 : (_v$dialog2 = v.dialog) === null || _v$dialog2 === void 0 ? void 0 : _v$dialog2.dialogInput;
|
|
36
|
+
});
|
|
37
|
+
return inputData;
|
|
38
|
+
};
|
|
39
|
+
exports.useDialogData = useDialogData;
|
|
@@ -28,7 +28,8 @@ const ChaynsHost = ({
|
|
|
28
28
|
parameters,
|
|
29
29
|
customData,
|
|
30
30
|
environment,
|
|
31
|
-
preventStagingReplacement
|
|
31
|
+
preventStagingReplacement,
|
|
32
|
+
dialog
|
|
32
33
|
}) => {
|
|
33
34
|
switch (type) {
|
|
34
35
|
case 'client-iframe':
|
|
@@ -47,7 +48,8 @@ const ChaynsHost = ({
|
|
|
47
48
|
parameters: parameters,
|
|
48
49
|
environment: environment,
|
|
49
50
|
customData: customData,
|
|
50
|
-
preventStagingReplacement: preventStagingReplacement
|
|
51
|
+
preventStagingReplacement: preventStagingReplacement,
|
|
52
|
+
dialog: dialog
|
|
51
53
|
});
|
|
52
54
|
case 'client-module':
|
|
53
55
|
return /*#__PURE__*/_react.default.createElement(_ModuleHost.default, {
|
|
@@ -64,7 +66,8 @@ const ChaynsHost = ({
|
|
|
64
66
|
parameters: parameters,
|
|
65
67
|
customData: customData,
|
|
66
68
|
environment: environment,
|
|
67
|
-
preventStagingReplacement: preventStagingReplacement
|
|
69
|
+
preventStagingReplacement: preventStagingReplacement,
|
|
70
|
+
dialog: dialog
|
|
68
71
|
});
|
|
69
72
|
case 'server-iframe':
|
|
70
73
|
return /*#__PURE__*/_react.default.createElement(_HostIframe.default, {
|
|
@@ -83,7 +86,8 @@ const ChaynsHost = ({
|
|
|
83
86
|
parameters: parameters,
|
|
84
87
|
environment: environment,
|
|
85
88
|
customData: customData,
|
|
86
|
-
preventStagingReplacement: preventStagingReplacement
|
|
89
|
+
preventStagingReplacement: preventStagingReplacement,
|
|
90
|
+
dialog: dialog
|
|
87
91
|
});
|
|
88
92
|
case 'server-module':
|
|
89
93
|
return /*#__PURE__*/_react.default.createElement(_ModuleHost.default, {
|
|
@@ -99,7 +103,8 @@ const ChaynsHost = ({
|
|
|
99
103
|
parameters: parameters,
|
|
100
104
|
customData: customData,
|
|
101
105
|
environment: environment,
|
|
102
|
-
preventStagingReplacement: preventStagingReplacement
|
|
106
|
+
preventStagingReplacement: preventStagingReplacement,
|
|
107
|
+
dialog: dialog
|
|
103
108
|
}, children);
|
|
104
109
|
default:
|
|
105
110
|
return null;
|
|
@@ -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", {
|
|
@@ -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 = {}));
|
|
@@ -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,
|
|
@@ -468,8 +476,39 @@ class AppWrapper {
|
|
|
468
476
|
void this.appCall(19, value, {
|
|
469
477
|
awaitResult: false
|
|
470
478
|
});
|
|
479
|
+
},
|
|
480
|
+
createDialog: config => {
|
|
481
|
+
return new _DialogHandler.default(config, this.functions.openDialog, this.functions.closeDialog);
|
|
482
|
+
},
|
|
483
|
+
openDialog: async (config, callback) => {
|
|
484
|
+
const currentDialogId = appWrapperDialogId++;
|
|
485
|
+
const eventTarget = new EventTarget();
|
|
486
|
+
const resolve = result => {
|
|
487
|
+
callback(result);
|
|
488
|
+
this.dispatchDialogChange(this.dialogs.filter(x => x.dialogId !== currentDialogId));
|
|
489
|
+
};
|
|
490
|
+
this.dispatchDialogChange([...this.dialogs, {
|
|
491
|
+
config,
|
|
492
|
+
resolve,
|
|
493
|
+
dialogId: currentDialogId,
|
|
494
|
+
eventTarget
|
|
495
|
+
}]);
|
|
496
|
+
return currentDialogId;
|
|
497
|
+
},
|
|
498
|
+
closeDialog: dialogId => {
|
|
499
|
+
const dialog = this.dialogs.find(x => x.dialogId === dialogId);
|
|
500
|
+
if (dialog) {
|
|
501
|
+
dialog.resolve({
|
|
502
|
+
buttonType: -1
|
|
503
|
+
});
|
|
504
|
+
}
|
|
471
505
|
}
|
|
472
506
|
};
|
|
507
|
+
dialogs = [];
|
|
508
|
+
dialogEventTarget = new EventTarget();
|
|
509
|
+
getDialogEventTarget() {
|
|
510
|
+
return this.dialogEventTarget;
|
|
511
|
+
}
|
|
473
512
|
async init() {
|
|
474
513
|
this.values = this.mapOldApiToNew(await this.appCall(18));
|
|
475
514
|
return undefined;
|
|
@@ -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,7 +234,57 @@ class FrameWrapper {
|
|
|
233
234
|
scrollByY: async (value, duration) => {
|
|
234
235
|
if (!this.initialized) await this.ready;
|
|
235
236
|
return this.exposedFunctions.scrollByY(value, duration);
|
|
236
|
-
}
|
|
237
|
+
},
|
|
238
|
+
createDialog: config => {
|
|
239
|
+
return new _DialogHandler.default(config, this.functions.openDialog, this.exposedFunctions.closeDialog, this.functions.dispatchEventToDialogClient, this.functions.addDialogClientEventListener);
|
|
240
|
+
},
|
|
241
|
+
closeDialog: async dialogId => {
|
|
242
|
+
if (!this.initialized) await this.ready;
|
|
243
|
+
return this.exposedFunctions.closeDialog(dialogId);
|
|
244
|
+
},
|
|
245
|
+
openDialog: async (config, callback) => {
|
|
246
|
+
if (!this.initialized) await this.ready;
|
|
247
|
+
return this.exposedFunctions.openDialog(config, comlink.proxy(callback));
|
|
248
|
+
},
|
|
249
|
+
setDialogResult: async (buttonType, result) => {
|
|
250
|
+
if (!this.initialized) await this.ready;
|
|
251
|
+
return this.exposedFunctions.setDialogResult(buttonType, result);
|
|
252
|
+
},
|
|
253
|
+
dispatchEventToDialogClient: async (dialogId, data) => {
|
|
254
|
+
if (!this.initialized) await this.ready;
|
|
255
|
+
return this.exposedFunctions.dispatchEventToDialogClient(dialogId, data);
|
|
256
|
+
},
|
|
257
|
+
addDialogClientEventListener: async (dialogId, callback) => {
|
|
258
|
+
if (!this.initialized) await this.ready;
|
|
259
|
+
return this.exposedFunctions.addDialogClientEventListener(dialogId, comlink.proxy(callback));
|
|
260
|
+
},
|
|
261
|
+
dispatchEventToDialogHost: async data => {
|
|
262
|
+
if (!this.initialized) await this.ready;
|
|
263
|
+
return this.exposedFunctions.dispatchEventToDialogHost(data);
|
|
264
|
+
},
|
|
265
|
+
addDialogHostEventListener: async callback => {
|
|
266
|
+
if (!this.initialized) await this.ready;
|
|
267
|
+
const listenerKey = `dialogHostEventListener`;
|
|
268
|
+
const {
|
|
269
|
+
id,
|
|
270
|
+
shouldInitialize
|
|
271
|
+
} = (0, _apiListenerHelper.addApiListener)(listenerKey, callback);
|
|
272
|
+
if (shouldInitialize) {
|
|
273
|
+
this.exposedFunctions.addDialogHostEventListener(comlink.proxy(data => {
|
|
274
|
+
(0, _apiListenerHelper.dispatchApiEvent)(listenerKey, data);
|
|
275
|
+
}));
|
|
276
|
+
}
|
|
277
|
+
return id;
|
|
278
|
+
},
|
|
279
|
+
removeDialogHostEventListener: async id => {
|
|
280
|
+
if (!this.initialized) await this.ready;
|
|
281
|
+
const listenerKey = `dialogHostEventListener`;
|
|
282
|
+
const shouldRemove = (0, _apiListenerHelper.removeApiListener)(listenerKey, id);
|
|
283
|
+
if (shouldRemove) {
|
|
284
|
+
// this.exposedFunctions.removeDialogHostEventListener(0);
|
|
285
|
+
}
|
|
286
|
+
},
|
|
287
|
+
removeDialogClientEventListener: async () => {}
|
|
237
288
|
};
|
|
238
289
|
initialized = false;
|
|
239
290
|
constructor() {
|
|
@@ -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, functions.dispatchEventToDialogClient, functions.addDialogClientEventListener);
|
|
30
|
+
};
|
|
27
31
|
this.functions.addWindowMetricsListener = async callback => {
|
|
28
32
|
const {
|
|
29
33
|
id,
|
package/dist/esm/calls/index.js
CHANGED
|
@@ -261,6 +261,12 @@ export const storageSetItem = function () {
|
|
|
261
261
|
export const vibrate = function () {
|
|
262
262
|
return moduleWrapper.current.functions.vibrate(...arguments);
|
|
263
263
|
};
|
|
264
|
+
/**
|
|
265
|
+
* This method creates a dialog
|
|
266
|
+
*/
|
|
267
|
+
export const createDialog = function () {
|
|
268
|
+
return moduleWrapper.current.functions.createDialog(...arguments);
|
|
269
|
+
};
|
|
264
270
|
/**
|
|
265
271
|
* Displays an overlay
|
|
266
272
|
*/
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
|
+
import React, { useEffect, useState } from 'react';
|
|
3
|
+
import ChaynsHost from '../host/ChaynsHost';
|
|
4
|
+
import { useFunctions, useValues } from '../hooks';
|
|
5
|
+
const AppDialogWrapper = _ref => {
|
|
6
|
+
let {
|
|
7
|
+
dialogEventTarget
|
|
8
|
+
} = _ref;
|
|
9
|
+
const functions = useFunctions();
|
|
10
|
+
const data = useValues();
|
|
11
|
+
const [dialogData, setDialogData] = useState({
|
|
12
|
+
dialogs: []
|
|
13
|
+
});
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
dialogEventTarget.addEventListener('change', e => {
|
|
16
|
+
setDialogData({
|
|
17
|
+
dialogs: e.detail
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
}, []);
|
|
21
|
+
return /*#__PURE__*/React.createElement(ChaynsHost, _extends({
|
|
22
|
+
type: "client-module",
|
|
23
|
+
system: {
|
|
24
|
+
module: './AppWrapper',
|
|
25
|
+
url: 'https://tapp-staging.chayns-static.space/api/dialog-v2/v1/remoteEntry.js',
|
|
26
|
+
scope: 'dialog_v2'
|
|
27
|
+
}
|
|
28
|
+
}, data, {
|
|
29
|
+
functions: functions,
|
|
30
|
+
customData: dialogData
|
|
31
|
+
}));
|
|
32
|
+
};
|
|
33
|
+
export default AppDialogWrapper;
|
|
@@ -7,6 +7,7 @@ import { FrameWrapper } from '../wrapper/FrameWrapper';
|
|
|
7
7
|
import { ModuleFederationWrapper } from '../wrapper/ModuleFederationWrapper';
|
|
8
8
|
import { SsrWrapper } from '../wrapper/SsrWrapper';
|
|
9
9
|
import { ChaynsContext, ChaynsFunctionsContext } from './ChaynsContext';
|
|
10
|
+
import AppDialogWrapper from "./AppDialogWrapper";
|
|
10
11
|
|
|
11
12
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
12
13
|
export const moduleWrapper = {
|
|
@@ -30,7 +31,7 @@ const InitialDataProvider = /*#__PURE__*/React.memo(_ref => {
|
|
|
30
31
|
});
|
|
31
32
|
}, () => true);
|
|
32
33
|
const ChaynsProvider = _ref2 => {
|
|
33
|
-
var _customWrapper$curren, _customWrapper$curren2, _customWrapper$curren3;
|
|
34
|
+
var _customWrapper$curren, _customWrapper$curren2, _customWrapper$curren3, _customWrapper$curren4;
|
|
34
35
|
let {
|
|
35
36
|
children,
|
|
36
37
|
data,
|
|
@@ -101,7 +102,9 @@ const ChaynsProvider = _ref2 => {
|
|
|
101
102
|
value: state
|
|
102
103
|
}, /*#__PURE__*/React.createElement(ChaynsFunctionsContext.Provider, {
|
|
103
104
|
value: (_customWrapper$curren3 = customWrapper.current) === null || _customWrapper$curren3 === void 0 ? void 0 : _customWrapper$curren3.functions
|
|
104
|
-
}, children
|
|
105
|
+
}, children, customWrapper.current instanceof AppWrapper ? /*#__PURE__*/React.createElement(AppDialogWrapper, {
|
|
106
|
+
dialogEventTarget: (_customWrapper$curren4 = customWrapper.current) === null || _customWrapper$curren4 === void 0 ? void 0 : _customWrapper$curren4.getDialogEventTarget()
|
|
107
|
+
}) : false)), /*#__PURE__*/React.createElement(InitialDataProvider, {
|
|
105
108
|
data: state,
|
|
106
109
|
renderedByServer: renderedByServer
|
|
107
110
|
}));
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
3
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
4
|
+
export default class DialogHandler {
|
|
5
|
+
constructor(config, open, close, dispatchEvent, addDataListener) {
|
|
6
|
+
_defineProperty(this, "isOpen", false);
|
|
7
|
+
_defineProperty(this, "result", undefined);
|
|
8
|
+
_defineProperty(this, "listeners", []);
|
|
9
|
+
this._open = open;
|
|
10
|
+
this._close = close;
|
|
11
|
+
this._config = config;
|
|
12
|
+
this._dispatchEvent = dispatchEvent;
|
|
13
|
+
this._addDataListener = addDataListener;
|
|
14
|
+
}
|
|
15
|
+
async open() {
|
|
16
|
+
if (this.isOpen) {
|
|
17
|
+
throw new Error('cannot open a dialog which is already open');
|
|
18
|
+
}
|
|
19
|
+
const res = await new Promise(async resolve => {
|
|
20
|
+
const callback = data => {
|
|
21
|
+
this.isOpen = false;
|
|
22
|
+
resolve(data);
|
|
23
|
+
};
|
|
24
|
+
this.isOpen = true;
|
|
25
|
+
this.dialogId = await this._open(this._config, callback);
|
|
26
|
+
|
|
27
|
+
// console.log('dialogId', this.dialogId);
|
|
28
|
+
|
|
29
|
+
this._addDataListener(this.dialogId, data => {
|
|
30
|
+
// console.log('[DialogHandler]dataListener', this.dialogId, data);
|
|
31
|
+
this.listeners.forEach(cb => cb(data));
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
return this.result = res;
|
|
35
|
+
}
|
|
36
|
+
close(buttonType, data) {
|
|
37
|
+
if (!this.isOpen) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
this.isOpen = false;
|
|
41
|
+
this._close(this.dialogId, data);
|
|
42
|
+
}
|
|
43
|
+
dispatchEvent(data) {
|
|
44
|
+
if (!this.isOpen) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
this._dispatchEvent(this.dialogId, data);
|
|
48
|
+
}
|
|
49
|
+
addDataListener(listener) {
|
|
50
|
+
this.listeners.push(listener);
|
|
51
|
+
}
|
|
52
|
+
removeDataListener(listener) {
|
|
53
|
+
const index = this.listeners.findIndex(l => l === listener);
|
|
54
|
+
if (index > -1) {
|
|
55
|
+
this.listeners.splice(index, 1);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
getResult() {
|
|
59
|
+
return this.result;
|
|
60
|
+
}
|
|
61
|
+
}
|
package/dist/esm/hooks/index.js
CHANGED
|
@@ -13,4 +13,5 @@ export { useLanguage } from './useLanguage';
|
|
|
13
13
|
export { useValues } from './useValues';
|
|
14
14
|
export { useFunctions } from './useFunctions';
|
|
15
15
|
export { useCurrentPage } from './useCurrentPage';
|
|
16
|
-
export { useCustomData } from './useCustomData';
|
|
16
|
+
export { useCustomData } from './useCustomData';
|
|
17
|
+
export { useDialogState, useDialogData } from './useDialogState';
|