chayns-api 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.babelrc +30 -0
- package/.eslintrc +17 -0
- package/.github/workflows/deploy_docs.yml +28 -0
- package/LICENSE +21 -0
- package/README.md +47 -0
- package/dist/cjs/calls/dialogs/alert.js +19 -0
- package/dist/cjs/calls/dialogs/chaynsDialog.js +59 -0
- package/dist/cjs/calls/dialogs/close.js +13 -0
- package/dist/cjs/calls/dialogs/communication.js +71 -0
- package/dist/cjs/calls/dialogs/confirm.js +33 -0
- package/dist/cjs/calls/dialogs/date.js +187 -0
- package/dist/cjs/calls/dialogs/dropUpAlert.js +12 -0
- package/dist/cjs/calls/dialogs/fileSelect.js +39 -0
- package/dist/cjs/calls/dialogs/iFrame.js +43 -0
- package/dist/cjs/calls/dialogs/index.js +178 -0
- package/dist/cjs/calls/dialogs/input.js +33 -0
- package/dist/cjs/calls/dialogs/mediaSelect.js +27 -0
- package/dist/cjs/calls/dialogs/open.js +19 -0
- package/dist/cjs/calls/dialogs/select.js +55 -0
- package/dist/cjs/calls/dialogs/signature.js +24 -0
- package/dist/cjs/calls/dialogs/toast.js +18 -0
- package/dist/cjs/calls/dialogs/utils/callback.js +12 -0
- package/dist/cjs/calls/dialogs/utils/environment.js +10 -0
- package/dist/cjs/calls/dialogs/utils/is.js +21 -0
- package/dist/cjs/calls/getUserInfo.js +40 -0
- package/dist/cjs/calls/index.js +300 -0
- package/dist/cjs/calls/sendMessage.js +120 -0
- package/dist/cjs/calls/visibilityChangeListener.js +38 -0
- package/dist/cjs/client.js +93 -0
- package/dist/cjs/components/ChaynsContext.js +12 -0
- package/dist/cjs/components/ChaynsModuleProvider.js +457 -0
- package/dist/cjs/components/ChaynsProvider.js +116 -0
- package/dist/cjs/components/WaitUntil.js +31 -0
- package/dist/cjs/components/withCompatMode.js +55 -0
- package/dist/cjs/helper/apiListenerHelper.js +34 -0
- package/dist/cjs/hooks/geoLocationListener.js +50 -0
- package/dist/cjs/hooks/index.js +153 -0
- package/dist/cjs/hooks/scrollListener.js +102 -0
- package/dist/cjs/hooks/useAccessToken.js +28 -0
- package/dist/cjs/hooks/useCurrentPage.js +13 -0
- package/dist/cjs/hooks/useCustomData.js +13 -0
- package/dist/cjs/hooks/useDevice.js +13 -0
- package/dist/cjs/hooks/useEnvironment.js +13 -0
- package/dist/cjs/hooks/useFunctions.js +16 -0
- package/dist/cjs/hooks/useIsAdminMode.js +16 -0
- package/dist/cjs/hooks/useLanguage.js +13 -0
- package/dist/cjs/hooks/usePages.js +38 -0
- package/dist/cjs/hooks/useParameters.js +13 -0
- package/dist/cjs/hooks/useSite.js +13 -0
- package/dist/cjs/hooks/useUser.js +14 -0
- package/dist/cjs/hooks/useValues.js +16 -0
- package/dist/cjs/hooks/windowMetricsListener.js +58 -0
- package/dist/cjs/host/ChaynsHost.js +102 -0
- package/dist/cjs/host/iframe/HostIframe.js +133 -0
- package/dist/cjs/host/iframe/utils/useUpdateData.js +21 -0
- package/dist/cjs/host/module/ModuleHost.js +82 -0
- package/dist/cjs/host/module/PagemakerFrame.js +105 -0
- package/dist/cjs/host/module/utils/loadComponent.js +61 -0
- package/dist/cjs/host/module/utils/useDynamicScript.js +61 -0
- package/dist/cjs/index.js +117 -0
- package/dist/cjs/types/DynamicApiImport.d.js +5 -0
- package/dist/cjs/types/IChaynsReact.js +235 -0
- package/dist/cjs/types/dialog.js +5 -0
- package/dist/cjs/util/appCall.js +23 -0
- package/dist/cjs/util/deviceHelper.js +71 -0
- package/dist/cjs/util/heightHelper.js +40 -0
- package/dist/cjs/util/postIframeForm.js +32 -0
- package/dist/cjs/wrapper/AppWrapper.js +244 -0
- package/dist/cjs/wrapper/FrameWrapper.js +288 -0
- package/dist/cjs/wrapper/ModuleFederationWrapper.js +61 -0
- package/dist/cjs/wrapper/SsrWrapper.js +30 -0
- package/dist/esm/calls/dialogs/alert.js +15 -0
- package/dist/esm/calls/dialogs/chaynsDialog.js +48 -0
- package/dist/esm/calls/dialogs/close.js +7 -0
- package/dist/esm/calls/dialogs/communication.js +66 -0
- package/dist/esm/calls/dialogs/confirm.js +30 -0
- package/dist/esm/calls/dialogs/date.js +211 -0
- package/dist/esm/calls/dialogs/dropUpAlert.js +7 -0
- package/dist/esm/calls/dialogs/fileSelect.js +32 -0
- package/dist/esm/calls/dialogs/iFrame.js +37 -0
- package/dist/esm/calls/dialogs/index.js +14 -0
- package/dist/esm/calls/dialogs/input.js +26 -0
- package/dist/esm/calls/dialogs/mediaSelect.js +22 -0
- package/dist/esm/calls/dialogs/open.js +13 -0
- package/dist/esm/calls/dialogs/select.js +47 -0
- package/dist/esm/calls/dialogs/signature.js +18 -0
- package/dist/esm/calls/dialogs/toast.js +13 -0
- package/dist/esm/calls/dialogs/utils/callback.js +7 -0
- package/dist/esm/calls/dialogs/utils/environment.js +3 -0
- package/dist/esm/calls/dialogs/utils/is.js +12 -0
- package/dist/esm/calls/getUserInfo.js +33 -0
- package/dist/esm/calls/index.js +323 -0
- package/dist/esm/calls/sendMessage.js +111 -0
- package/dist/esm/calls/visibilityChangeListener.js +30 -0
- package/dist/esm/client.js +8 -0
- package/dist/esm/components/ChaynsContext.js +4 -0
- package/dist/esm/components/ChaynsModuleProvider.js +517 -0
- package/dist/esm/components/ChaynsProvider.js +109 -0
- package/dist/esm/components/WaitUntil.js +25 -0
- package/dist/esm/components/withCompatMode.js +47 -0
- package/dist/esm/helper/apiListenerHelper.js +25 -0
- package/dist/esm/hooks/geoLocationListener.js +43 -0
- package/dist/esm/hooks/index.js +16 -0
- package/dist/esm/hooks/scrollListener.js +95 -0
- package/dist/esm/hooks/useAccessToken.js +22 -0
- package/dist/esm/hooks/useCurrentPage.js +7 -0
- package/dist/esm/hooks/useCustomData.js +7 -0
- package/dist/esm/hooks/useDevice.js +6 -0
- package/dist/esm/hooks/useEnvironment.js +6 -0
- package/dist/esm/hooks/useFunctions.js +9 -0
- package/dist/esm/hooks/useIsAdminMode.js +9 -0
- package/dist/esm/hooks/useLanguage.js +6 -0
- package/dist/esm/hooks/usePages.js +32 -0
- package/dist/esm/hooks/useParameters.js +6 -0
- package/dist/esm/hooks/useSite.js +6 -0
- package/dist/esm/hooks/useUser.js +7 -0
- package/dist/esm/hooks/useValues.js +9 -0
- package/dist/esm/hooks/windowMetricsListener.js +51 -0
- package/dist/esm/host/ChaynsHost.js +95 -0
- package/dist/esm/host/iframe/HostIframe.js +124 -0
- package/dist/esm/host/iframe/utils/useUpdateData.js +14 -0
- package/dist/esm/host/module/ModuleHost.js +74 -0
- package/dist/esm/host/module/PagemakerFrame.js +97 -0
- package/dist/esm/host/module/utils/loadComponent.js +55 -0
- package/dist/esm/host/module/utils/useDynamicScript.js +50 -0
- package/dist/esm/index.js +16 -0
- package/dist/esm/types/DynamicApiImport.d.js +1 -0
- package/dist/esm/types/IChaynsReact.js +215 -0
- package/dist/esm/types/dialog.js +1 -0
- package/dist/esm/util/appCall.js +16 -0
- package/dist/esm/util/deviceHelper.js +62 -0
- package/dist/esm/util/heightHelper.js +32 -0
- package/dist/esm/util/postIframeForm.js +26 -0
- package/dist/esm/wrapper/AppWrapper.js +241 -0
- package/dist/esm/wrapper/FrameWrapper.js +279 -0
- package/dist/esm/wrapper/ModuleFederationWrapper.js +56 -0
- package/dist/esm/wrapper/SsrWrapper.js +23 -0
- package/dist/types/calls/dialogs/alert.d.ts +1 -0
- package/dist/types/calls/dialogs/chaynsDialog.d.ts +24 -0
- package/dist/types/calls/dialogs/close.d.ts +1 -0
- package/dist/types/calls/dialogs/communication.d.ts +3 -0
- package/dist/types/calls/dialogs/confirm.d.ts +13 -0
- package/dist/types/calls/dialogs/date.d.ts +96 -0
- package/dist/types/calls/dialogs/dropUpAlert.d.ts +5 -0
- package/dist/types/calls/dialogs/fileSelect.d.ts +16 -0
- package/dist/types/calls/dialogs/iFrame.d.ts +10 -0
- package/dist/types/calls/dialogs/index.d.ts +14 -0
- package/dist/types/calls/dialogs/input.d.ts +15 -0
- package/dist/types/calls/dialogs/mediaSelect.d.ts +8 -0
- package/dist/types/calls/dialogs/open.d.ts +1 -0
- package/dist/types/calls/dialogs/select.d.ts +6 -0
- package/dist/types/calls/dialogs/signature.d.ts +7 -0
- package/dist/types/calls/dialogs/toast.d.ts +1 -0
- package/dist/types/calls/dialogs/utils/callback.d.ts +1 -0
- package/dist/types/calls/dialogs/utils/environment.d.ts +3 -0
- package/dist/types/calls/dialogs/utils/is.d.ts +4 -0
- package/dist/types/calls/getUserInfo.d.ts +9 -0
- package/dist/types/calls/index.d.ts +231 -0
- package/dist/types/calls/sendMessage.d.ts +13 -0
- package/dist/types/calls/visibilityChangeListener.d.ts +9 -0
- package/dist/types/client.d.ts +7 -0
- package/dist/types/components/ChaynsContext.d.ts +3 -0
- package/dist/types/components/ChaynsModuleProvider.d.ts +170 -0
- package/dist/types/components/ChaynsProvider.d.ts +13 -0
- package/dist/types/components/WaitUntil.d.ts +7 -0
- package/dist/types/components/withCompatMode.d.ts +13 -0
- package/dist/types/helper/apiListenerHelper.d.ts +6 -0
- package/dist/types/hooks/geoLocationListener.d.ts +18 -0
- package/dist/types/hooks/index.d.ts +16 -0
- package/dist/types/hooks/scrollListener.d.ts +28 -0
- package/dist/types/hooks/useAccessToken.d.ts +5 -0
- package/dist/types/hooks/useCurrentPage.d.ts +4 -0
- package/dist/types/hooks/useCustomData.d.ts +4 -0
- package/dist/types/hooks/useDevice.d.ts +5 -0
- package/dist/types/hooks/useEnvironment.d.ts +5 -0
- package/dist/types/hooks/useFunctions.d.ts +5 -0
- package/dist/types/hooks/useIsAdminMode.d.ts +4 -0
- package/dist/types/hooks/useLanguage.d.ts +5 -0
- package/dist/types/hooks/usePages.d.ts +14 -0
- package/dist/types/hooks/useParameters.d.ts +5 -0
- package/dist/types/hooks/useSite.d.ts +5 -0
- package/dist/types/hooks/useUser.d.ts +5 -0
- package/dist/types/hooks/useValues.d.ts +5 -0
- package/dist/types/hooks/windowMetricsListener.d.ts +11 -0
- package/dist/types/host/ChaynsHost.d.ts +27 -0
- package/dist/types/host/iframe/HostIframe.d.ts +24 -0
- package/dist/types/host/iframe/utils/useUpdateData.d.ts +3 -0
- package/dist/types/host/module/ModuleHost.d.ts +23 -0
- package/dist/types/host/module/PagemakerFrame.d.ts +22 -0
- package/dist/types/host/module/utils/loadComponent.d.ts +1 -0
- package/dist/types/host/module/utils/useDynamicScript.d.ts +9 -0
- package/dist/types/index.d.ts +16 -0
- package/dist/types/types/IChaynsReact.d.ts +590 -0
- package/dist/types/types/dialog.d.ts +41 -0
- package/dist/types/util/appCall.d.ts +2 -0
- package/dist/types/util/deviceHelper.d.ts +7 -0
- package/dist/types/util/heightHelper.d.ts +1 -0
- package/dist/types/util/postIframeForm.d.ts +1 -0
- package/dist/types/wrapper/AppWrapper.d.ts +16 -0
- package/dist/types/wrapper/FrameWrapper.d.ts +15 -0
- package/dist/types/wrapper/ModuleFederationWrapper.d.ts +10 -0
- package/dist/types/wrapper/SsrWrapper.d.ts +11 -0
- package/package.json +76 -0
- package/toolkit.config.js +52 -0
- package/tsconfig.json +56 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import React, { useMemo } from 'react';
|
|
2
|
+
import useDynamicScript from './utils/useDynamicScript';
|
|
3
|
+
import loadComponent from './utils/loadComponent';
|
|
4
|
+
const System = _ref => {
|
|
5
|
+
let {
|
|
6
|
+
system,
|
|
7
|
+
fallback,
|
|
8
|
+
...props
|
|
9
|
+
} = _ref;
|
|
10
|
+
const {
|
|
11
|
+
ready,
|
|
12
|
+
failed
|
|
13
|
+
} = useDynamicScript({
|
|
14
|
+
url: system === null || system === void 0 ? void 0 : system.url,
|
|
15
|
+
scope: system === null || system === void 0 ? void 0 : system.scope
|
|
16
|
+
});
|
|
17
|
+
const Component = useMemo(() => {
|
|
18
|
+
// maybe return waitcursor instead
|
|
19
|
+
if (!system || !ready || failed) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
return /*#__PURE__*/React.lazy(loadComponent(system.scope, system.module, system.url));
|
|
23
|
+
|
|
24
|
+
/* eslint-disable react-hooks/exhaustive-deps */
|
|
25
|
+
}, [system === null || system === void 0 ? void 0 : system.scope, ready, system === null || system === void 0 ? void 0 : system.url]);
|
|
26
|
+
return Component ? /*#__PURE__*/React.createElement(React.Suspense, {
|
|
27
|
+
fallback: fallback || ''
|
|
28
|
+
}, /*#__PURE__*/React.createElement(Component, props)) : fallback;
|
|
29
|
+
};
|
|
30
|
+
const ModuleHost = _ref2 => {
|
|
31
|
+
let {
|
|
32
|
+
system,
|
|
33
|
+
children = null,
|
|
34
|
+
functions,
|
|
35
|
+
// shallow data
|
|
36
|
+
pages,
|
|
37
|
+
isAdminModeActive,
|
|
38
|
+
site,
|
|
39
|
+
user,
|
|
40
|
+
currentPage,
|
|
41
|
+
device,
|
|
42
|
+
language,
|
|
43
|
+
parameters,
|
|
44
|
+
customData,
|
|
45
|
+
environment
|
|
46
|
+
} = _ref2;
|
|
47
|
+
// region initialData
|
|
48
|
+
const initialData = {
|
|
49
|
+
site,
|
|
50
|
+
isAdminModeActive,
|
|
51
|
+
pages,
|
|
52
|
+
currentPage,
|
|
53
|
+
device,
|
|
54
|
+
language,
|
|
55
|
+
parameters,
|
|
56
|
+
customData,
|
|
57
|
+
environment
|
|
58
|
+
};
|
|
59
|
+
if (user) {
|
|
60
|
+
initialData.user = user;
|
|
61
|
+
}
|
|
62
|
+
// endregion
|
|
63
|
+
|
|
64
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
65
|
+
className: "module-css"
|
|
66
|
+
}), /*#__PURE__*/React.createElement(System, {
|
|
67
|
+
system: system,
|
|
68
|
+
data: initialData,
|
|
69
|
+
functions: functions,
|
|
70
|
+
fallback: children,
|
|
71
|
+
isModule: true
|
|
72
|
+
}));
|
|
73
|
+
};
|
|
74
|
+
export default ModuleHost;
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
2
|
+
|
|
3
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
4
|
+
|
|
5
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
|
+
|
|
7
|
+
import { useEffect, useRef } from 'react';
|
|
8
|
+
import * as comlink from 'comlink';
|
|
9
|
+
import useUpdateData from "../iframe/utils/useUpdateData";
|
|
10
|
+
|
|
11
|
+
var PagemakerFrame = function PagemakerFrame(_ref) {
|
|
12
|
+
var iFrameProps = _ref.iFrameProps,
|
|
13
|
+
_ref$postForm = _ref.postForm,
|
|
14
|
+
postForm = _ref$postForm === void 0 ? false : _ref$postForm,
|
|
15
|
+
children = _ref.children,
|
|
16
|
+
iFrameRef = _ref.iFrameRef,
|
|
17
|
+
pages = _ref.pages,
|
|
18
|
+
isAdminModeActive = _ref.isAdminModeActive,
|
|
19
|
+
site = _ref.site,
|
|
20
|
+
user = _ref.user,
|
|
21
|
+
currentPage = _ref.currentPage,
|
|
22
|
+
functions = _ref.functions,
|
|
23
|
+
device = _ref.device,
|
|
24
|
+
language = _ref.language,
|
|
25
|
+
parameters = _ref.parameters,
|
|
26
|
+
environment = _ref.environment;
|
|
27
|
+
var eventTarget = useRef();
|
|
28
|
+
var ref = useRef();
|
|
29
|
+
var currentDataRef = useRef();
|
|
30
|
+
|
|
31
|
+
if (!eventTarget.current) {
|
|
32
|
+
eventTarget.current = global.document ? document.createElement('div') : undefined; // global.EventTarget ? new EventTarget() : undefined
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
var setHeight = function setHeight(value) {
|
|
36
|
+
if (ref.current) {
|
|
37
|
+
ref.current.height = "".concat(value, "px");
|
|
38
|
+
}
|
|
39
|
+
}; // region initialData
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
var initialData = {
|
|
43
|
+
site: site,
|
|
44
|
+
isAdminModeActive: isAdminModeActive,
|
|
45
|
+
pages: pages,
|
|
46
|
+
currentPage: currentPage,
|
|
47
|
+
device: device,
|
|
48
|
+
user: user,
|
|
49
|
+
language: language,
|
|
50
|
+
parameters: parameters,
|
|
51
|
+
environment: environment
|
|
52
|
+
}; // endregion
|
|
53
|
+
|
|
54
|
+
currentDataRef.current = initialData;
|
|
55
|
+
console.debug('functions', functions); // region expose data and functions to iframe
|
|
56
|
+
|
|
57
|
+
useEffect(function () {
|
|
58
|
+
var _ref$current;
|
|
59
|
+
|
|
60
|
+
if ((_ref$current = ref.current) !== null && _ref$current !== void 0 && _ref$current.contentWindow) {
|
|
61
|
+
var obj = _defineProperty({}, iFrameProps.name, {
|
|
62
|
+
functions: _objectSpread(_objectSpread({}, functions), {}, {
|
|
63
|
+
setHeight: setHeight
|
|
64
|
+
}),
|
|
65
|
+
addDataListener: function addDataListener(cb) {
|
|
66
|
+
if (eventTarget.current) eventTarget.current.addEventListener('data_update', function (e) {
|
|
67
|
+
return e.detail && cb(e.detail);
|
|
68
|
+
});
|
|
69
|
+
},
|
|
70
|
+
getInitialData: function getInitialData() {
|
|
71
|
+
return currentDataRef.current;
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
comlink.expose(obj, comlink.windowEndpoint(ref.current.contentWindow));
|
|
76
|
+
ref.current.contentWindow.postMessage('chayns-api-host-ready', '*'); // https://github.com/GoogleChromeLabs/comlink/pull/469 might be better approach once released
|
|
77
|
+
|
|
78
|
+
return function () {
|
|
79
|
+
delete obj[iFrameProps.name];
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
return undefined; // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
84
|
+
}, []); // endregion
|
|
85
|
+
// region dispatch data update
|
|
86
|
+
|
|
87
|
+
useUpdateData(eventTarget.current, 'isAdminModeActive', isAdminModeActive);
|
|
88
|
+
useUpdateData(eventTarget.current, 'user', user);
|
|
89
|
+
useUpdateData(eventTarget.current, 'site', site);
|
|
90
|
+
useUpdateData(eventTarget.current, 'pages', pages);
|
|
91
|
+
useUpdateData(eventTarget.current, 'language', language);
|
|
92
|
+
useUpdateData(eventTarget.current, 'parameters', parameters); // endregion
|
|
93
|
+
|
|
94
|
+
return children;
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
export default PagemakerFrame;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
// @ts-nocheck
|
|
3
|
+
|
|
4
|
+
import semver from 'semver';
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import { semaphore } from './useDynamicScript';
|
|
7
|
+
let instances = {};
|
|
8
|
+
export default function loadComponent(scope, module, url) {
|
|
9
|
+
let skipCompatMode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
10
|
+
return async () => {
|
|
11
|
+
// Initializes the shared scope. Fills it with known provided modules from this build and all remotes
|
|
12
|
+
// eslint-disable-next-line no-undef
|
|
13
|
+
await __webpack_init_sharing__('default');
|
|
14
|
+
const {
|
|
15
|
+
container
|
|
16
|
+
} = window[scope + "_list"].find(x => x.url === url); // or get the container somewhere else
|
|
17
|
+
// Initialize the container, it may provide shared modules
|
|
18
|
+
// eslint-disable-next-line no-undef
|
|
19
|
+
await container.init(__webpack_share_scopes__.default);
|
|
20
|
+
const factory = await container.get(module);
|
|
21
|
+
semaphore[scope].release();
|
|
22
|
+
let ModuleMap = instances[`${scope}__${module}`];
|
|
23
|
+
let Module;
|
|
24
|
+
if (!ModuleMap) {
|
|
25
|
+
ModuleMap = {};
|
|
26
|
+
instances[`${scope}__${module}`] = ModuleMap;
|
|
27
|
+
}
|
|
28
|
+
if (Object.keys(ModuleMap).length > 0) {
|
|
29
|
+
const newModule = factory();
|
|
30
|
+
Module = ModuleMap[`${newModule.default.buildEnv}__${newModule.default.appVersion}`];
|
|
31
|
+
if (!Module) {
|
|
32
|
+
Module = newModule;
|
|
33
|
+
ModuleMap[`${newModule.default.buildEnv}__${newModule.default.appVersion}`] = newModule;
|
|
34
|
+
}
|
|
35
|
+
} else {
|
|
36
|
+
Module = factory();
|
|
37
|
+
ModuleMap[`${Module.default.buildEnv}__${Module.default.appVersion}`] = Module;
|
|
38
|
+
}
|
|
39
|
+
if (skipCompatMode) return Module;
|
|
40
|
+
const hostVersion = semver.minVersion(React.version);
|
|
41
|
+
const {
|
|
42
|
+
requiredVersion,
|
|
43
|
+
environment
|
|
44
|
+
} = Module.default;
|
|
45
|
+
const matchReactVersion = requiredVersion && semver.satisfies(hostVersion, requiredVersion);
|
|
46
|
+
if (!matchReactVersion || environment !== 'production') {
|
|
47
|
+
return {
|
|
48
|
+
default: Module.default.CompatComponent
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
default: Module.default.Component
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import React, { useEffect } from 'react';
|
|
2
|
+
import Semaphore from 'semaphore-async-await';
|
|
3
|
+
export const semaphore = {};
|
|
4
|
+
const useDynamicScript = args => {
|
|
5
|
+
const [ready, setReady] = React.useState(false);
|
|
6
|
+
const [failed, setFailed] = React.useState(false);
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
if (!args.url) {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
const element = document.createElement('script');
|
|
12
|
+
element.src = args.url;
|
|
13
|
+
element.type = 'text/javascript';
|
|
14
|
+
element.async = true;
|
|
15
|
+
setReady(false);
|
|
16
|
+
setFailed(false);
|
|
17
|
+
if (!(args.scope in semaphore)) {
|
|
18
|
+
semaphore[args.scope] = new Semaphore(1);
|
|
19
|
+
}
|
|
20
|
+
(async () => {
|
|
21
|
+
await semaphore[args.scope].acquire();
|
|
22
|
+
element.onload = () => {
|
|
23
|
+
setReady(true);
|
|
24
|
+
const listKey = args.scope + "_list";
|
|
25
|
+
if (!window[listKey]) window[listKey] = [];
|
|
26
|
+
window[listKey].push({
|
|
27
|
+
url: args.url,
|
|
28
|
+
container: window[args.scope]
|
|
29
|
+
});
|
|
30
|
+
window[args.scope] = null;
|
|
31
|
+
};
|
|
32
|
+
element.onerror = () => {
|
|
33
|
+
setReady(false);
|
|
34
|
+
setFailed(true);
|
|
35
|
+
};
|
|
36
|
+
document.head.appendChild(element);
|
|
37
|
+
})();
|
|
38
|
+
return () => {
|
|
39
|
+
semaphore[args.scope].release();
|
|
40
|
+
if (document.head.contains(element)) {
|
|
41
|
+
document.head.removeChild(element);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}, [args.url]);
|
|
45
|
+
return {
|
|
46
|
+
ready,
|
|
47
|
+
failed
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
export default useDynamicScript;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export { default as ChaynsProvider } from './components/ChaynsProvider';
|
|
2
|
+
export { default as getDeviceInfo, getScreenSize } from './util/deviceHelper';
|
|
3
|
+
export { default as ChaynsHost } from './host/ChaynsHost';
|
|
4
|
+
export { withCompatMode } from './components/withCompatMode';
|
|
5
|
+
export * from './calls';
|
|
6
|
+
export * from './hooks';
|
|
7
|
+
export * from './components/WaitUntil';
|
|
8
|
+
export * from './types/IChaynsReact';
|
|
9
|
+
export * from './components/withCompatMode';
|
|
10
|
+
import * as _dialog from './calls/dialogs/index';
|
|
11
|
+
export { _dialog as dialog };
|
|
12
|
+
export * from './types/IChaynsReact';
|
|
13
|
+
export default {
|
|
14
|
+
buildEnv: process.env.BUILD_ENV,
|
|
15
|
+
appVersion: process.env.VERSION
|
|
16
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
export let ScreenSize;
|
|
2
|
+
(function (ScreenSize) {
|
|
3
|
+
ScreenSize[ScreenSize["XS"] = 0] = "XS";
|
|
4
|
+
ScreenSize[ScreenSize["SM"] = 1] = "SM";
|
|
5
|
+
ScreenSize[ScreenSize["MD"] = 2] = "MD";
|
|
6
|
+
ScreenSize[ScreenSize["LG"] = 3] = "LG";
|
|
7
|
+
ScreenSize[ScreenSize["XL"] = 4] = "XL";
|
|
8
|
+
})(ScreenSize || (ScreenSize = {}));
|
|
9
|
+
export let AccessMode;
|
|
10
|
+
(function (AccessMode) {
|
|
11
|
+
AccessMode[AccessMode["public"] = 0] = "public";
|
|
12
|
+
AccessMode[AccessMode["protected"] = 1] = "protected";
|
|
13
|
+
AccessMode[AccessMode["private"] = 2] = "private";
|
|
14
|
+
})(AccessMode || (AccessMode = {}));
|
|
15
|
+
var IOSFeedbackVibration;
|
|
16
|
+
(function (IOSFeedbackVibration) {
|
|
17
|
+
IOSFeedbackVibration[IOSFeedbackVibration["Unknown"] = 0] = "Unknown";
|
|
18
|
+
IOSFeedbackVibration[IOSFeedbackVibration["SelectionChanged"] = 1] = "SelectionChanged";
|
|
19
|
+
IOSFeedbackVibration[IOSFeedbackVibration["NotificationError"] = 2] = "NotificationError";
|
|
20
|
+
IOSFeedbackVibration[IOSFeedbackVibration["NotificationSuccess"] = 3] = "NotificationSuccess";
|
|
21
|
+
IOSFeedbackVibration[IOSFeedbackVibration["NotificationWarning"] = 4] = "NotificationWarning";
|
|
22
|
+
IOSFeedbackVibration[IOSFeedbackVibration["Light"] = 5] = "Light";
|
|
23
|
+
IOSFeedbackVibration[IOSFeedbackVibration["Medium"] = 6] = "Medium";
|
|
24
|
+
IOSFeedbackVibration[IOSFeedbackVibration["Heavy"] = 7] = "Heavy";
|
|
25
|
+
IOSFeedbackVibration[IOSFeedbackVibration["Soft"] = 8] = "Soft";
|
|
26
|
+
IOSFeedbackVibration[IOSFeedbackVibration["Rigid"] = 9] = "Rigid";
|
|
27
|
+
})(IOSFeedbackVibration || (IOSFeedbackVibration = {}));
|
|
28
|
+
// region design settings
|
|
29
|
+
var SnapshotType;
|
|
30
|
+
(function (SnapshotType) {
|
|
31
|
+
SnapshotType["Background"] = "background";
|
|
32
|
+
SnapshotType["Settings"] = "settings";
|
|
33
|
+
SnapshotType["ColorScheme"] = "colorScheme";
|
|
34
|
+
SnapshotType["Cover"] = "cover";
|
|
35
|
+
SnapshotType["Tapp"] = "tapp";
|
|
36
|
+
})(SnapshotType || (SnapshotType = {}));
|
|
37
|
+
var DesignSettingsUpdateBackgroundType;
|
|
38
|
+
(function (DesignSettingsUpdateBackgroundType) {
|
|
39
|
+
DesignSettingsUpdateBackgroundType[DesignSettingsUpdateBackgroundType["None"] = 0] = "None";
|
|
40
|
+
DesignSettingsUpdateBackgroundType[DesignSettingsUpdateBackgroundType["Image"] = 1] = "Image";
|
|
41
|
+
DesignSettingsUpdateBackgroundType[DesignSettingsUpdateBackgroundType["Video"] = 2] = "Video";
|
|
42
|
+
DesignSettingsUpdateBackgroundType[DesignSettingsUpdateBackgroundType["Color"] = 3] = "Color";
|
|
43
|
+
})(DesignSettingsUpdateBackgroundType || (DesignSettingsUpdateBackgroundType = {}));
|
|
44
|
+
var DesignSettingsUpdateSeasonTypes;
|
|
45
|
+
(function (DesignSettingsUpdateSeasonTypes) {
|
|
46
|
+
DesignSettingsUpdateSeasonTypes[DesignSettingsUpdateSeasonTypes["None"] = 0] = "None";
|
|
47
|
+
DesignSettingsUpdateSeasonTypes[DesignSettingsUpdateSeasonTypes["Snowm"] = 1] = "Snowm";
|
|
48
|
+
DesignSettingsUpdateSeasonTypes[DesignSettingsUpdateSeasonTypes["Confetti"] = 2] = "Confetti";
|
|
49
|
+
DesignSettingsUpdateSeasonTypes[DesignSettingsUpdateSeasonTypes["Leaf"] = 3] = "Leaf";
|
|
50
|
+
DesignSettingsUpdateSeasonTypes[DesignSettingsUpdateSeasonTypes["Heart"] = 4] = "Heart";
|
|
51
|
+
DesignSettingsUpdateSeasonTypes[DesignSettingsUpdateSeasonTypes["Balloon"] = 5] = "Balloon";
|
|
52
|
+
DesignSettingsUpdateSeasonTypes[DesignSettingsUpdateSeasonTypes["Eastern"] = 6] = "Eastern";
|
|
53
|
+
DesignSettingsUpdateSeasonTypes[DesignSettingsUpdateSeasonTypes["Clover"] = 7] = "Clover";
|
|
54
|
+
DesignSettingsUpdateSeasonTypes[DesignSettingsUpdateSeasonTypes["Coins"] = 8] = "Coins";
|
|
55
|
+
})(DesignSettingsUpdateSeasonTypes || (DesignSettingsUpdateSeasonTypes = {}));
|
|
56
|
+
var DesignSettingsUpdateGalleryAnimationTypes;
|
|
57
|
+
(function (DesignSettingsUpdateGalleryAnimationTypes) {
|
|
58
|
+
DesignSettingsUpdateGalleryAnimationTypes[DesignSettingsUpdateGalleryAnimationTypes["Swipe"] = 0] = "Swipe";
|
|
59
|
+
DesignSettingsUpdateGalleryAnimationTypes[DesignSettingsUpdateGalleryAnimationTypes["Fade"] = 1] = "Fade";
|
|
60
|
+
DesignSettingsUpdateGalleryAnimationTypes[DesignSettingsUpdateGalleryAnimationTypes["Parallax"] = 2] = "Parallax";
|
|
61
|
+
DesignSettingsUpdateGalleryAnimationTypes[DesignSettingsUpdateGalleryAnimationTypes["KenBurns"] = 3] = "KenBurns";
|
|
62
|
+
})(DesignSettingsUpdateGalleryAnimationTypes || (DesignSettingsUpdateGalleryAnimationTypes = {}));
|
|
63
|
+
var DesignSettingsUpdateCoverTypes;
|
|
64
|
+
(function (DesignSettingsUpdateCoverTypes) {
|
|
65
|
+
DesignSettingsUpdateCoverTypes[DesignSettingsUpdateCoverTypes["Image"] = 0] = "Image";
|
|
66
|
+
DesignSettingsUpdateCoverTypes[DesignSettingsUpdateCoverTypes["Video"] = 1] = "Video";
|
|
67
|
+
DesignSettingsUpdateCoverTypes[DesignSettingsUpdateCoverTypes["Slideshow"] = 2] = "Slideshow";
|
|
68
|
+
DesignSettingsUpdateCoverTypes[DesignSettingsUpdateCoverTypes["Frame"] = 3] = "Frame";
|
|
69
|
+
DesignSettingsUpdateCoverTypes[DesignSettingsUpdateCoverTypes["None"] = 4] = "None";
|
|
70
|
+
})(DesignSettingsUpdateCoverTypes || (DesignSettingsUpdateCoverTypes = {}));
|
|
71
|
+
var DesignSettingsUpdateColorSchemeMode;
|
|
72
|
+
(function (DesignSettingsUpdateColorSchemeMode) {
|
|
73
|
+
DesignSettingsUpdateColorSchemeMode[DesignSettingsUpdateColorSchemeMode["Normal"] = 0] = "Normal";
|
|
74
|
+
DesignSettingsUpdateColorSchemeMode[DesignSettingsUpdateColorSchemeMode["Dark"] = 1] = "Dark";
|
|
75
|
+
DesignSettingsUpdateColorSchemeMode[DesignSettingsUpdateColorSchemeMode["Bright"] = 2] = "Bright";
|
|
76
|
+
})(DesignSettingsUpdateColorSchemeMode || (DesignSettingsUpdateColorSchemeMode = {}));
|
|
77
|
+
var DesignSettingsUpdateTappViewModes;
|
|
78
|
+
(function (DesignSettingsUpdateTappViewModes) {
|
|
79
|
+
DesignSettingsUpdateTappViewModes[DesignSettingsUpdateTappViewModes["Normal"] = 0] = "Normal";
|
|
80
|
+
DesignSettingsUpdateTappViewModes[DesignSettingsUpdateTappViewModes["Exclusive"] = 1] = "Exclusive";
|
|
81
|
+
DesignSettingsUpdateTappViewModes[DesignSettingsUpdateTappViewModes["Wide"] = 2] = "Wide";
|
|
82
|
+
DesignSettingsUpdateTappViewModes[DesignSettingsUpdateTappViewModes["Fullscreen"] = 3] = "Fullscreen";
|
|
83
|
+
DesignSettingsUpdateTappViewModes[DesignSettingsUpdateTappViewModes["FullscreenWithBackground"] = 4] = "FullscreenWithBackground";
|
|
84
|
+
})(DesignSettingsUpdateTappViewModes || (DesignSettingsUpdateTappViewModes = {}));
|
|
85
|
+
var LoginState;
|
|
86
|
+
(function (LoginState) {
|
|
87
|
+
LoginState[LoginState["LoginFailed"] = 2] = "LoginFailed";
|
|
88
|
+
LoginState[LoginState["AlreadyLoggedIn"] = 3] = "AlreadyLoggedIn";
|
|
89
|
+
})(LoginState || (LoginState = {}));
|
|
90
|
+
export let FloatingButtonPosition;
|
|
91
|
+
(function (FloatingButtonPosition) {
|
|
92
|
+
FloatingButtonPosition[FloatingButtonPosition["Right"] = 0] = "Right";
|
|
93
|
+
FloatingButtonPosition[FloatingButtonPosition["Center"] = 1] = "Center";
|
|
94
|
+
FloatingButtonPosition[FloatingButtonPosition["Left"] = 2] = "Left";
|
|
95
|
+
})(FloatingButtonPosition || (FloatingButtonPosition = {}));
|
|
96
|
+
export let SharingApp;
|
|
97
|
+
(function (SharingApp) {
|
|
98
|
+
SharingApp[SharingApp["Mail"] = 0] = "Mail";
|
|
99
|
+
SharingApp[SharingApp["WhatsApp"] = 1] = "WhatsApp";
|
|
100
|
+
SharingApp[SharingApp["Facebook"] = 2] = "Facebook";
|
|
101
|
+
SharingApp[SharingApp["FacebookMessenger"] = 3] = "FacebookMessenger";
|
|
102
|
+
SharingApp[SharingApp["GooglePlus"] = 4] = "GooglePlus";
|
|
103
|
+
SharingApp[SharingApp["Twitter"] = 5] = "Twitter";
|
|
104
|
+
})(SharingApp || (SharingApp = {}));
|
|
105
|
+
export let IconType;
|
|
106
|
+
(function (IconType) {
|
|
107
|
+
IconType[IconType["Font"] = 0] = "Font";
|
|
108
|
+
IconType[IconType["Base64"] = 1] = "Base64";
|
|
109
|
+
IconType[IconType["Url"] = 2] = "Url";
|
|
110
|
+
})(IconType || (IconType = {}));
|
|
111
|
+
export let Gender;
|
|
112
|
+
(function (Gender) {
|
|
113
|
+
Gender[Gender["Unknown"] = 0] = "Unknown";
|
|
114
|
+
Gender[Gender["male"] = 1] = "male";
|
|
115
|
+
Gender[Gender["female"] = 2] = "female";
|
|
116
|
+
Gender[Gender["diverse"] = 9] = "diverse";
|
|
117
|
+
})(Gender || (Gender = {}));
|
|
118
|
+
export let ColorMode;
|
|
119
|
+
(function (ColorMode) {
|
|
120
|
+
ColorMode[ColorMode["Classic"] = 0] = "Classic";
|
|
121
|
+
ColorMode[ColorMode["Dark"] = 1] = "Dark";
|
|
122
|
+
ColorMode[ColorMode["Light"] = 2] = "Light";
|
|
123
|
+
})(ColorMode || (ColorMode = {}));
|
|
124
|
+
export let Language;
|
|
125
|
+
(function (Language) {
|
|
126
|
+
Language["Unknown"] = "unknown";
|
|
127
|
+
Language["German"] = "de";
|
|
128
|
+
Language["English"] = "en";
|
|
129
|
+
Language["Dutch"] = "nl";
|
|
130
|
+
Language["French"] = "fr";
|
|
131
|
+
Language["Spanish"] = "es";
|
|
132
|
+
Language["Italian"] = "it";
|
|
133
|
+
Language["Portuguese"] = "pt";
|
|
134
|
+
Language["Turkish"] = "tr";
|
|
135
|
+
Language["Polish"] = "pl";
|
|
136
|
+
Language["Ukrainian"] = "uk";
|
|
137
|
+
})(Language || (Language = {}));
|
|
138
|
+
export let RuntimeEnviroment;
|
|
139
|
+
(function (RuntimeEnviroment) {
|
|
140
|
+
RuntimeEnviroment[RuntimeEnviroment["Unknown"] = 0] = "Unknown";
|
|
141
|
+
RuntimeEnviroment[RuntimeEnviroment["ChaynsDe"] = 1] = "ChaynsDe";
|
|
142
|
+
RuntimeEnviroment[RuntimeEnviroment["ChaynsWeb"] = 2] = "ChaynsWeb";
|
|
143
|
+
RuntimeEnviroment[RuntimeEnviroment["ChaynsRuntime"] = 3] = "ChaynsRuntime";
|
|
144
|
+
RuntimeEnviroment[RuntimeEnviroment["IntercomPlugin"] = 4] = "IntercomPlugin";
|
|
145
|
+
RuntimeEnviroment[RuntimeEnviroment["PagemakerPlugin"] = 5] = "PagemakerPlugin";
|
|
146
|
+
})(RuntimeEnviroment || (RuntimeEnviroment = {}));
|
|
147
|
+
export let DeviceOs;
|
|
148
|
+
(function (DeviceOs) {
|
|
149
|
+
DeviceOs["Unknown"] = "unknown";
|
|
150
|
+
DeviceOs["Android"] = "android";
|
|
151
|
+
DeviceOs["IOS"] = "ios";
|
|
152
|
+
DeviceOs["Windows"] = "windows";
|
|
153
|
+
DeviceOs["MacOs"] = "macos";
|
|
154
|
+
DeviceOs["Linux"] = "linux";
|
|
155
|
+
})(DeviceOs || (DeviceOs = {}));
|
|
156
|
+
export let AppName;
|
|
157
|
+
(function (AppName) {
|
|
158
|
+
AppName[AppName["Unknown"] = 0] = "Unknown";
|
|
159
|
+
AppName[AppName["David"] = 1] = "David";
|
|
160
|
+
AppName[AppName["Chayns"] = 2] = "Chayns";
|
|
161
|
+
AppName[AppName["Location"] = 3] = "Location";
|
|
162
|
+
AppName[AppName["Intercom"] = 4] = "Intercom";
|
|
163
|
+
AppName[AppName["ChaynsLauncher"] = 5] = "ChaynsLauncher";
|
|
164
|
+
})(AppName || (AppName = {}));
|
|
165
|
+
export let BrowserName;
|
|
166
|
+
(function (BrowserName) {
|
|
167
|
+
BrowserName["Unknown"] = "unknown";
|
|
168
|
+
BrowserName["Chrome"] = "chrome";
|
|
169
|
+
BrowserName["Safari"] = "safari";
|
|
170
|
+
BrowserName["Firefox"] = "firefox";
|
|
171
|
+
BrowserName["Edge"] = "edge";
|
|
172
|
+
})(BrowserName || (BrowserName = {}));
|
|
173
|
+
export let Environment;
|
|
174
|
+
(function (Environment) {
|
|
175
|
+
Environment[Environment["Development"] = 0] = "Development";
|
|
176
|
+
Environment[Environment["Qa"] = 1] = "Qa";
|
|
177
|
+
Environment[Environment["Staging"] = 2] = "Staging";
|
|
178
|
+
Environment[Environment["Production"] = 3] = "Production";
|
|
179
|
+
})(Environment || (Environment = {}));
|
|
180
|
+
export let Font;
|
|
181
|
+
(function (Font) {
|
|
182
|
+
Font[Font["Unknown"] = 0] = "Unknown";
|
|
183
|
+
Font[Font["Roboto"] = 1] = "Roboto";
|
|
184
|
+
Font[Font["OpenSans"] = 2] = "OpenSans";
|
|
185
|
+
Font[Font["Lato"] = 3] = "Lato";
|
|
186
|
+
Font[Font["SourceSansPro"] = 4] = "SourceSansPro";
|
|
187
|
+
Font[Font["Ubuntu"] = 5] = "Ubuntu";
|
|
188
|
+
Font[Font["Cabin"] = 6] = "Cabin";
|
|
189
|
+
Font[Font["Merriweather"] = 7] = "Merriweather";
|
|
190
|
+
Font[Font["NotoSerif"] = 8] = "NotoSerif";
|
|
191
|
+
Font[Font["PTSerif"] = 9] = "PTSerif";
|
|
192
|
+
Font[Font["DroidSerif"] = 10] = "DroidSerif";
|
|
193
|
+
Font[Font["Muli"] = 11] = "Muli";
|
|
194
|
+
Font[Font["Poppins"] = 12] = "Poppins";
|
|
195
|
+
Font[Font["RobotoCondensed"] = 13] = "RobotoCondensed";
|
|
196
|
+
Font[Font["Anton"] = 14] = "Anton";
|
|
197
|
+
Font[Font["ArchitectsDaughter"] = 15] = "ArchitectsDaughter";
|
|
198
|
+
Font[Font["DMSerifDisplay"] = 16] = "DMSerifDisplay";
|
|
199
|
+
Font[Font["Pacifico"] = 17] = "Pacifico";
|
|
200
|
+
Font[Font["PermanentMarker"] = 18] = "PermanentMarker";
|
|
201
|
+
Font[Font["Questrial"] = 19] = "Questrial";
|
|
202
|
+
Font[Font["RobotoSlab"] = 20] = "RobotoSlab";
|
|
203
|
+
Font[Font["ShadowsIntoLightTwo"] = 21] = "ShadowsIntoLightTwo";
|
|
204
|
+
Font[Font["WaitingForTheSunrise"] = 22] = "WaitingForTheSunrise";
|
|
205
|
+
Font[Font["RobotoMedium"] = 23] = "RobotoMedium";
|
|
206
|
+
Font[Font["TobitHeadline"] = 24] = "TobitHeadline";
|
|
207
|
+
Font[Font["RobotoBold"] = 25] = "RobotoBold";
|
|
208
|
+
Font[Font["RobotoRegular"] = 26] = "RobotoRegular";
|
|
209
|
+
Font[Font["Inter"] = 27] = "Inter";
|
|
210
|
+
})(Font || (Font = {}));
|
|
211
|
+
var selectType;
|
|
212
|
+
(function (selectType) {
|
|
213
|
+
selectType[selectType["DEFAULT"] = 0] = "DEFAULT";
|
|
214
|
+
selectType[selectType["ICON"] = 1] = "ICON";
|
|
215
|
+
})(selectType || (selectType = {}));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
|
|
3
|
+
const invokeAppCall = call => {
|
|
4
|
+
var _window$webkit, _window$webkit$messag, _window$chaynsApp, _window$chaynsElectro;
|
|
5
|
+
call = JSON.stringify(call);
|
|
6
|
+
if ((_window$webkit = window.webkit) !== null && _window$webkit !== void 0 && (_window$webkit$messag = _window$webkit.messageHandlers) !== null && _window$webkit$messag !== void 0 && _window$webkit$messag.jsonCall) {
|
|
7
|
+
window.webkit.messageHandlers.jsonCall.postMessage(call);
|
|
8
|
+
} else if ((_window$chaynsApp = window.chaynsApp) !== null && _window$chaynsApp !== void 0 && _window$chaynsApp.jsonCall) {
|
|
9
|
+
window.chaynsApp.jsonCall(call);
|
|
10
|
+
} else if ((_window$chaynsElectro = window.chaynsElectron) !== null && _window$chaynsElectro !== void 0 && _window$chaynsElectro.jsonCall) {
|
|
11
|
+
window.chaynsElectron.jsonCall(call);
|
|
12
|
+
} else {
|
|
13
|
+
throw new Error('jsoncall interface not found');
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
export default invokeAppCall;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { parseUserAgent } from 'detect-browser';
|
|
2
|
+
import { AppName, ScreenSize } from '../types/IChaynsReact';
|
|
3
|
+
const getDeviceInfo = (userAgent, acceptHeader) => {
|
|
4
|
+
var _match$groups, _match$groups2, _parsedUA$version$spl, _parsedUA$version;
|
|
5
|
+
const parsedUA = parseUserAgent(userAgent);
|
|
6
|
+
let appName = AppName.Unknown;
|
|
7
|
+
const match = /(?:my)?chayns\/(?<version>\d+).*(?<siteId>\d{5}-\d{5})/i.exec(userAgent);
|
|
8
|
+
if ((match === null || match === void 0 ? void 0 : (_match$groups = match.groups) === null || _match$groups === void 0 ? void 0 : _match$groups.siteId) === '60021-08989') {
|
|
9
|
+
appName = AppName.Chayns;
|
|
10
|
+
} else if ((match === null || match === void 0 ? void 0 : (_match$groups2 = match.groups) === null || _match$groups2 === void 0 ? void 0 : _match$groups2.siteId) === '77892-10814') {
|
|
11
|
+
appName = AppName.David;
|
|
12
|
+
} else if (match) {
|
|
13
|
+
appName = AppName.Location;
|
|
14
|
+
} else if (/dface|h96pp|h96max|jabiru|chaynsterminal|wayter|odroidn2p/i.test(navigator.userAgent)) {
|
|
15
|
+
appName = AppName.ChaynsLauncher;
|
|
16
|
+
}
|
|
17
|
+
const result = {};
|
|
18
|
+
result.browser = {
|
|
19
|
+
name: parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.name,
|
|
20
|
+
version: parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.version,
|
|
21
|
+
majorVersion: Number.parseInt((_parsedUA$version$spl = parsedUA === null || parsedUA === void 0 ? void 0 : (_parsedUA$version = parsedUA.version) === null || _parsedUA$version === void 0 ? void 0 : _parsedUA$version.split('.')[0]) !== null && _parsedUA$version$spl !== void 0 ? _parsedUA$version$spl : '0', 10) || 0,
|
|
22
|
+
isWebPSupported: acceptHeader.includes('image/webp')
|
|
23
|
+
};
|
|
24
|
+
result.app = {
|
|
25
|
+
name: appName,
|
|
26
|
+
version: match !== null && match !== void 0 && match.groups ? Number.parseInt(match.groups.version, 10) : NaN
|
|
27
|
+
};
|
|
28
|
+
result.imei = undefined; // TODO
|
|
29
|
+
result.accessToken = undefined; // TODO
|
|
30
|
+
result.os = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.os;
|
|
31
|
+
if (typeof window !== 'undefined') {
|
|
32
|
+
result.screenSize = getScreenSize(window.innerWidth);
|
|
33
|
+
} else {
|
|
34
|
+
// estimate size over user agent, very inaccurate, could be improved by setting a cookie with the screensize
|
|
35
|
+
const screenSizeByUA = /mobi/i.test(userAgent) ? ScreenSize.SM : ScreenSize.XL;
|
|
36
|
+
result.screenSize = appName !== AppName.Unknown ? ScreenSize.XS : screenSizeByUA;
|
|
37
|
+
}
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
// Infos that are only available on client or iframe side
|
|
42
|
+
export const getClientDeviceInfo = () => {
|
|
43
|
+
return {
|
|
44
|
+
isTouch: navigator.maxTouchPoints > 0 && window.matchMedia('(pointer: coarse)')
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
export const getScreenSize = width => {
|
|
48
|
+
let value;
|
|
49
|
+
if (width > 1200) {
|
|
50
|
+
value = ScreenSize.XL;
|
|
51
|
+
} else if (width > 993) {
|
|
52
|
+
value = ScreenSize.LG;
|
|
53
|
+
} else if (width > 769) {
|
|
54
|
+
value = ScreenSize.MD;
|
|
55
|
+
} else if (width > 556) {
|
|
56
|
+
value = ScreenSize.SM;
|
|
57
|
+
} else {
|
|
58
|
+
value = ScreenSize.XS;
|
|
59
|
+
}
|
|
60
|
+
return value;
|
|
61
|
+
};
|
|
62
|
+
export default getDeviceInfo;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import throttle from 'lodash.throttle';
|
|
2
|
+
export const setTappHeight = setHeight => {
|
|
3
|
+
document.documentElement.style.overflow = 'hidden';
|
|
4
|
+
void setHeight(document.body.offsetHeight);
|
|
5
|
+
let oldHeight = 0;
|
|
6
|
+
const handleResize = () => {
|
|
7
|
+
const {
|
|
8
|
+
offsetHeight
|
|
9
|
+
} = document.body;
|
|
10
|
+
if (oldHeight !== offsetHeight) {
|
|
11
|
+
void setHeight(offsetHeight);
|
|
12
|
+
oldHeight = offsetHeight;
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
if (window.ResizeObserver) {
|
|
16
|
+
const interval = setInterval(handleResize, 200);
|
|
17
|
+
let firstResize = true;
|
|
18
|
+
const resizeObserver = new window.ResizeObserver(throttle(() => {
|
|
19
|
+
handleResize();
|
|
20
|
+
if (!firstResize) {
|
|
21
|
+
clearInterval(interval);
|
|
22
|
+
}
|
|
23
|
+
firstResize = false;
|
|
24
|
+
}, 16));
|
|
25
|
+
resizeObserver.observe(document.body);
|
|
26
|
+
setTimeout(() => {
|
|
27
|
+
clearInterval(interval);
|
|
28
|
+
}, 2000);
|
|
29
|
+
} else {
|
|
30
|
+
setInterval(handleResize, 200);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export default async function postIframeForm(url, value, fieldName, frameId) {
|
|
2
|
+
// ToDo: Maybe remove this
|
|
3
|
+
await new Promise(resolve => {
|
|
4
|
+
setTimeout(resolve, 10);
|
|
5
|
+
});
|
|
6
|
+
if (!value || !document.querySelector(`#${frameId}`)) {
|
|
7
|
+
return false;
|
|
8
|
+
}
|
|
9
|
+
const currForm = document.getElementById('accessTokenForm');
|
|
10
|
+
if (currForm !== null && currForm !== void 0 && currForm.parentElement) {
|
|
11
|
+
currForm.parentElement.removeChild(currForm);
|
|
12
|
+
}
|
|
13
|
+
const form = document.createElement('form');
|
|
14
|
+
form.setAttribute('id', 'accessTokenForm');
|
|
15
|
+
form.setAttribute('method', 'post');
|
|
16
|
+
form.setAttribute('action', url);
|
|
17
|
+
form.setAttribute('target', frameId);
|
|
18
|
+
const hiddenField = document.createElement('input');
|
|
19
|
+
hiddenField.setAttribute('type', 'hidden');
|
|
20
|
+
hiddenField.setAttribute('name', fieldName);
|
|
21
|
+
hiddenField.setAttribute('value', value);
|
|
22
|
+
form.appendChild(hiddenField);
|
|
23
|
+
document.body.appendChild(form);
|
|
24
|
+
form.submit();
|
|
25
|
+
return true;
|
|
26
|
+
}
|