@alipay/ams-checkout 1.23.0 → 1.25.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 (128) hide show
  1. package/dist/umd/ams-checkout.min.js +1 -1
  2. package/esm/component/channel.d.ts +19 -0
  3. package/esm/component/channel.js +87 -0
  4. package/esm/component/component.inline.style.d.ts +10 -0
  5. package/esm/component/component.inline.style.js +121 -0
  6. package/esm/component/component.popup.style.d.ts +23 -0
  7. package/esm/component/component.popup.style.js +190 -0
  8. package/esm/component/popupWindow.style.d.ts +11 -0
  9. package/esm/component/popupWindow.style.js +121 -0
  10. package/esm/config/index.d.ts +7 -7
  11. package/esm/config/index.js +10 -10
  12. package/esm/constant/index.d.ts +9 -5
  13. package/esm/constant/index.js +12 -78
  14. package/esm/core/component/ckp/index.js +6 -5
  15. package/esm/core/component/element/components/address.d.ts +19 -0
  16. package/esm/core/component/element/components/address.js +68 -0
  17. package/esm/core/component/element/components/auth.d.ts +17 -0
  18. package/esm/core/component/element/components/auth.js +60 -0
  19. package/esm/core/component/element/components/payment.d.ts +19 -0
  20. package/esm/core/component/element/components/payment.js +74 -0
  21. package/esm/core/component/element/index.d.ts +47 -0
  22. package/esm/core/component/element/index.js +816 -0
  23. package/esm/core/component/element/mock.d.ts +4 -0
  24. package/esm/core/component/element/mock.js +491 -0
  25. package/esm/core/component/element/type.d.ts +190 -0
  26. package/esm/core/component/element/type.js +35 -0
  27. package/esm/core/component/element/utils.d.ts +13 -0
  28. package/esm/core/component/element/utils.js +6 -0
  29. package/esm/core/component/index.d.ts +4 -4
  30. package/esm/core/component/index.js +14 -14
  31. package/esm/core/drop-in/index.js +2 -2
  32. package/esm/core/instance/index.js +9 -9
  33. package/esm/foundation/core/index.d.ts +26 -0
  34. package/esm/foundation/core/index.js +366 -0
  35. package/esm/foundation/index.d.ts +75 -0
  36. package/esm/foundation/index.js +42 -0
  37. package/esm/foundation/product-processor/easysafepay/deps.d.ts +18 -0
  38. package/esm/foundation/product-processor/easysafepay/deps.js +12 -0
  39. package/esm/foundation/product-processor/easysafepay/index.d.ts +26 -0
  40. package/esm/foundation/product-processor/easysafepay/index.js +463 -0
  41. package/esm/foundation/service/api-bus/ability/callback.d.ts +9 -0
  42. package/esm/foundation/service/api-bus/ability/callback.js +55 -0
  43. package/esm/foundation/service/api-bus/ability/globalData.d.ts +10 -0
  44. package/esm/foundation/service/api-bus/ability/globalData.js +89 -0
  45. package/esm/foundation/service/api-bus/ability/request.d.ts +10 -0
  46. package/esm/foundation/service/api-bus/ability/request.js +151 -0
  47. package/esm/foundation/service/api-bus/ability/security.d.ts +12 -0
  48. package/esm/foundation/service/api-bus/ability/security.js +161 -0
  49. package/esm/foundation/service/api-bus/ability/tracker.d.ts +9 -0
  50. package/esm/foundation/service/api-bus/ability/tracker.js +80 -0
  51. package/esm/foundation/service/api-bus/busManager.d.ts +127 -0
  52. package/esm/foundation/service/api-bus/busManager.js +398 -0
  53. package/esm/foundation/service/api-bus/index.d.ts +20 -0
  54. package/esm/foundation/service/api-bus/index.js +88 -0
  55. package/esm/foundation/service/api-bus/interface.d.ts +48 -0
  56. package/esm/foundation/service/api-bus/interface.js +54 -0
  57. package/esm/foundation/service/container/index.d.ts +30 -0
  58. package/esm/foundation/service/container/index.js +298 -0
  59. package/esm/foundation/service/container/popup.d.ts +17 -0
  60. package/esm/foundation/service/container/popup.js +103 -0
  61. package/esm/foundation/service/container/utils.d.ts +7 -0
  62. package/esm/foundation/service/container/utils.js +48 -0
  63. package/esm/foundation/service/event-center.d.ts +76 -0
  64. package/esm/foundation/service/event-center.js +243 -0
  65. package/esm/foundation/service/global-data/index.d.ts +11 -0
  66. package/esm/foundation/service/global-data/index.js +68 -0
  67. package/esm/foundation/service/index.d.ts +19 -0
  68. package/esm/foundation/service/index.js +82 -0
  69. package/esm/foundation/service/log/index.d.ts +43 -0
  70. package/esm/foundation/service/log/index.js +235 -0
  71. package/esm/foundation/service/log/types.d.ts +32 -0
  72. package/esm/foundation/service/log/types.js +1 -0
  73. package/esm/foundation/service/requester/deps.d.ts +17 -0
  74. package/esm/foundation/service/requester/deps.js +11 -0
  75. package/esm/foundation/service/requester/requester.d.ts +22 -0
  76. package/esm/foundation/service/requester/requester.js +214 -0
  77. package/esm/foundation/service/security/index.d.ts +28 -0
  78. package/esm/foundation/service/security/index.js +286 -0
  79. package/esm/foundation/service/security/security.d.ts +33 -0
  80. package/esm/foundation/service/security/security.js +182 -0
  81. package/esm/foundation/utils/gray_scale_utils.d.ts +7 -0
  82. package/esm/foundation/utils/gray_scale_utils.js +40 -0
  83. package/esm/foundation/utils/payment_context_utils.d.ts +13 -0
  84. package/esm/foundation/utils/payment_context_utils.js +57 -0
  85. package/esm/foundation/utils/payment_product_utils.d.ts +13 -0
  86. package/esm/foundation/utils/payment_product_utils.js +38 -0
  87. package/esm/foundation/utils/redirect_utils.d.ts +11 -0
  88. package/esm/foundation/utils/redirect_utils.js +263 -0
  89. package/esm/foundation/utils/system_events.d.ts +4 -0
  90. package/esm/foundation/utils/system_events.js +66 -0
  91. package/esm/foundation/utils/web_app_url_utils.d.ts +46 -0
  92. package/esm/foundation/utils/web_app_url_utils.js +112 -0
  93. package/esm/index.d.ts +12 -6
  94. package/esm/index.js +75 -64
  95. package/esm/plugin/applepay/component.js +3 -3
  96. package/esm/plugin/applepay/service.d.ts +2 -2
  97. package/esm/plugin/applepay/service.js +2 -2
  98. package/esm/plugin/component/cashierApp.d.ts +7 -5
  99. package/esm/plugin/component/cashierApp.js +15 -8
  100. package/esm/plugin/component/channel.d.ts +4 -4
  101. package/esm/plugin/component/component.inline.style.d.ts +4 -4
  102. package/esm/plugin/component/component.inline.style.js +10 -8
  103. package/esm/plugin/component/component.popup.style.d.ts +6 -6
  104. package/esm/plugin/component/component.popup.style.js +6 -6
  105. package/esm/plugin/component/index.d.ts +8 -7
  106. package/esm/plugin/component/index.js +160 -103
  107. package/esm/plugin/const.js +5 -5
  108. package/esm/plugin/drop-in/index.d.ts +5 -5
  109. package/esm/plugin/drop-in/index.js +7 -7
  110. package/esm/plugin/type.d.ts +3 -3
  111. package/esm/service/element.d.ts +4 -0
  112. package/esm/service/element.js +51 -0
  113. package/esm/service/index.d.ts +1 -0
  114. package/esm/service/index.js +2 -0
  115. package/esm/types/index.d.ts +247 -39
  116. package/esm/types/index.js +109 -59
  117. package/esm/util/createIframeNode.d.ts +2 -2
  118. package/esm/util/createIframeNode.js +3 -3
  119. package/esm/util/getBackScheme.js +95 -3
  120. package/esm/util/security.d.ts +2 -2
  121. package/esm/util/security.js +2 -2
  122. package/package.json +2 -1
  123. package/esm/util/ua/index.d.ts +0 -2
  124. package/esm/util/ua/index.js +0 -2
  125. package/esm/util/ua/isAndroid.d.ts +0 -4
  126. package/esm/util/ua/isAndroid.js +0 -7
  127. package/esm/util/ua/isIOS.d.ts +0 -4
  128. package/esm/util/ua/isIOS.js +0 -7
@@ -0,0 +1,54 @@
1
+ export var PaymentActionEnum = /*#__PURE__*/function (PaymentActionEnum) {
2
+ PaymentActionEnum["optional_init"] = "plugin_optional_init";
3
+ return PaymentActionEnum;
4
+ }({});
5
+ export var ApplePayActionEnum = /*#__PURE__*/function (ApplePayActionEnum) {
6
+ ApplePayActionEnum["canMakePayments"] = "plugin_CARD_APPLE_PAY_available";
7
+ ApplePayActionEnum["createComponent"] = "plugin_CARD_APPLE_PAY_createComponent";
8
+ ApplePayActionEnum["destroyComponent"] = "plugin_CARD_APPLE_PAY_destroyComponent";
9
+ return ApplePayActionEnum;
10
+ }({});
11
+ export var PaypalActionEnum = /*#__PURE__*/function (PaypalActionEnum) {
12
+ PaypalActionEnum["mountComponent"] = "plugin_Paypal_mountComponent";
13
+ PaypalActionEnum["destroyComponent"] = "plugin_Paypal_destroyComponent";
14
+ return PaypalActionEnum;
15
+ }({});
16
+ export var SDKCallbackActionEnum = /*#__PURE__*/function (SDKCallbackActionEnum) {
17
+ SDKCallbackActionEnum["onEventCallback"] = "onEventCallback";
18
+ return SDKCallbackActionEnum;
19
+ }({});
20
+ export var RequestActiontEnum = /*#__PURE__*/function (RequestActiontEnum) {
21
+ RequestActiontEnum["request"] = "request";
22
+ RequestActiontEnum["getEnvInfo"] = "getEnvInfo";
23
+ RequestActiontEnum["getUserAgent"] = "getUserAgent";
24
+ return RequestActiontEnum;
25
+ }({});
26
+ export var DataActiontEnum = /*#__PURE__*/function (DataActiontEnum) {
27
+ DataActiontEnum["getGlobalData"] = "getGlobalData";
28
+ DataActiontEnum["setGlobalData"] = "setGlobalData";
29
+ DataActiontEnum["clearGlobalData"] = "clearGlobalData";
30
+ return DataActiontEnum;
31
+ }({});
32
+ export var SecuritySDKActionEnum = /*#__PURE__*/function (SecuritySDKActionEnum) {
33
+ SecuritySDKActionEnum["preInitSecurity"] = "preInitSecurity";
34
+ SecuritySDKActionEnum["initSecurity"] = "initSecurity";
35
+ SecuritySDKActionEnum["getSecurityDeviceId"] = "getSecurityDeviceId";
36
+ return SecuritySDKActionEnum;
37
+ }({});
38
+ export var TrackerActionEnum = /*#__PURE__*/function (TrackerActionEnum) {
39
+ TrackerActionEnum["reportAnalytics"] = "reportAnalytics";
40
+ return TrackerActionEnum;
41
+ }({});
42
+ export var ComponentActiontEnum = /*#__PURE__*/function (ComponentActiontEnum) {
43
+ ComponentActiontEnum["onDestory"] = "onDestory";
44
+ return ComponentActiontEnum;
45
+ }({});
46
+ RequestActiontEnum = /*#__PURE__*/function (RequestActiontEnum) {
47
+ RequestActiontEnum["onDestory"] = "httpRequest";
48
+ return RequestActiontEnum;
49
+ }(RequestActiontEnum || {});
50
+ export var LoadingActiontEnum = /*#__PURE__*/function (LoadingActiontEnum) {
51
+ LoadingActiontEnum["showLoading"] = "showLoading";
52
+ LoadingActiontEnum["dismissLoading"] = "dismissLoading";
53
+ return LoadingActiontEnum;
54
+ }({});
@@ -0,0 +1,30 @@
1
+ import { DisplayInfo, SDKMetaData, Service } from '../../index';
2
+ import { IoptionsParams } from '../../../types';
3
+ export declare class ContainerService implements Service {
4
+ private instanceId;
5
+ private sdkMetaData;
6
+ private clearTimerIdMapping;
7
+ private popupManager;
8
+ private eventCenter;
9
+ private logService;
10
+ private displayInfo;
11
+ private webApp;
12
+ private _webAppHeartBeatTimeoutFn;
13
+ private customizedLoadingListener;
14
+ destroy(): void;
15
+ init(initOptions: IoptionsParams, instanceId: string, sdkMetaData: SDKMetaData): void;
16
+ update(): void;
17
+ load(displayInfo: DisplayInfo, url: string, closeBtnFunc: () => void): HTMLDivElement;
18
+ cleanContainer(displayInfo: DisplayInfo): void;
19
+ preload(taskId: string, url: string): void;
20
+ clearPreloadContainer(taskId: string): void;
21
+ showLoading(container: HTMLDivElement, displayInfo: DisplayInfo): void;
22
+ dismissLoading(isKeepMockup?: boolean): void;
23
+ customizeLoading(listener: (event: 'SDK_START_OF_LOADING' | 'SDK_END_OF_LOADING') => void): void;
24
+ startHideAnim(): void;
25
+ private addCapabilityToEventCenter;
26
+ private addCapabilityToApiBusManager;
27
+ private handleSizeChanged;
28
+ private handleAppHeartBeat;
29
+ private changeCloseBtnVisibility;
30
+ }
@@ -0,0 +1,298 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
5
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
6
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
7
+ 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; }
8
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
9
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
10
+ import { DisplayTypeEnum } from "../../../types";
11
+ import { createIframe, createPreloadIframe, startSizeChangeAnim } from "./utils";
12
+ import { addInlineLoading, createInlineBaseElement } from "../../../component/component.inline.style";
13
+ import { addPopupLoading, createBaseElement } from "../../../component/component.popup.style";
14
+ import { COMPONENT_CLOSE_BLOCK_ID, COMPONENT_CONTAINER_ID, ERRORMESSAGE, LOADING_ID, MOCKUP_ID } from "../../../constant";
15
+ import { ServiceProvider } from "../index";
16
+ import { EVENT, TIMEOUT_WEB_APP_HEART_BEAT, TIME_DELAY_SEND_HEART_BEAT } from "../../../constant";
17
+ import { PopupManager } from "./popup";
18
+ /**
19
+ * @author 谦彧 <zhangmian.zm@alipay.com>
20
+ * @date 2024/9/17
21
+ */
22
+ var MAX_CLEAR_TIME = 10000;
23
+ export var ContainerService = /*#__PURE__*/function () {
24
+ function ContainerService() {
25
+ _classCallCheck(this, ContainerService);
26
+ _defineProperty(this, "instanceId", void 0);
27
+ _defineProperty(this, "sdkMetaData", void 0);
28
+ _defineProperty(this, "clearTimerIdMapping", {});
29
+ _defineProperty(this, "popupManager", void 0);
30
+ _defineProperty(this, "eventCenter", void 0);
31
+ _defineProperty(this, "logService", void 0);
32
+ _defineProperty(this, "displayInfo", void 0);
33
+ _defineProperty(this, "webApp", void 0);
34
+ _defineProperty(this, "_webAppHeartBeatTimeoutFn", void 0);
35
+ // if this variable is true, SDK will invoke listener instead of showing loading
36
+ _defineProperty(this, "customizedLoadingListener", void 0);
37
+ }
38
+ _createClass(ContainerService, [{
39
+ key: "destroy",
40
+ value: function destroy() {}
41
+ }, {
42
+ key: "init",
43
+ value: function init(initOptions, instanceId, sdkMetaData) {
44
+ this.instanceId = instanceId;
45
+ this.sdkMetaData = sdkMetaData;
46
+ this.eventCenter = ServiceProvider.getInstance(instanceId).getService('EventCenter');
47
+ this.logService = ServiceProvider.getInstance(instanceId).getService('Log');
48
+ this.popupManager = new PopupManager();
49
+ this.addCapabilityToEventCenter();
50
+ this.addCapabilityToApiBusManager();
51
+ }
52
+ }, {
53
+ key: "update",
54
+ value: function update() {}
55
+ }, {
56
+ key: "load",
57
+ value: function load(displayInfo, url, closeBtnFunc) {
58
+ var webApp = createIframe('antom-sdk-web-app' + (displayInfo.appendAliasContainerId ? "-".concat(displayInfo.selector) : ''));
59
+ this.webApp = webApp;
60
+ this.displayInfo = displayInfo;
61
+ webApp.src = url;
62
+ this.eventCenter.addIFrame(webApp);
63
+ if (webApp.src.includes('?')) {
64
+ this.popupManager.setPopupUrlQuery(webApp.src.split('?')[1]);
65
+ }
66
+ // TODO call ApiBusManager to add listener to iframe, componentApp line 979
67
+
68
+ // create container and append web app
69
+ var container = displayInfo.type === DisplayTypeEnum.inline ? createInlineBaseElement(displayInfo.selector) : createBaseElement(displayInfo.platform, closeBtnFunc);
70
+ container.appendChild(webApp);
71
+ return container;
72
+ }
73
+ }, {
74
+ key: "cleanContainer",
75
+ value: function cleanContainer(displayInfo) {
76
+ var _document$getElementB;
77
+ // selector and container
78
+ var selector = displayInfo.type === DisplayTypeEnum.inline ? displayInfo.selector : COMPONENT_CONTAINER_ID;
79
+ var selectorDom = document.querySelector(selector);
80
+ if (selectorDom) {
81
+ selectorDom.innerHTML = '';
82
+ }
83
+ var container = document.getElementById(COMPONENT_CONTAINER_ID);
84
+ if (container) container === null || container === void 0 || container.remove();
85
+
86
+ // animation
87
+ (_document$getElementB = document.getElementById("".concat(COMPONENT_CONTAINER_ID, "-").concat(displayInfo.platform, "-animation-style"))) === null || _document$getElementB === void 0 || _document$getElementB.remove();
88
+ }
89
+ }, {
90
+ key: "preload",
91
+ value: function preload(taskId, url) {
92
+ var _this = this;
93
+ var preloadIframe = createPreloadIframe(taskId);
94
+ preloadIframe.src = url;
95
+ var body = document.body || null;
96
+ if (body) {
97
+ body.appendChild(preloadIframe);
98
+ }
99
+ var timerId = setTimeout(function () {
100
+ _this.clearPreloadContainer(taskId);
101
+ }, MAX_CLEAR_TIME);
102
+ this.clearTimerIdMapping[taskId] = timerId;
103
+ }
104
+ }, {
105
+ key: "clearPreloadContainer",
106
+ value: function clearPreloadContainer(taskId) {
107
+ var timerId = this.clearTimerIdMapping[taskId];
108
+ if (timerId) {
109
+ clearTimeout(timerId);
110
+ }
111
+ var container = document.getElementById(taskId);
112
+ if (container) {
113
+ document.body.removeChild(container);
114
+ }
115
+ }
116
+ }, {
117
+ key: "showLoading",
118
+ value: function showLoading(container, displayInfo) {
119
+ if (this.customizedLoadingListener) {
120
+ this.customizedLoadingListener('SDK_START_OF_LOADING');
121
+ return;
122
+ }
123
+ if (displayInfo.type === DisplayTypeEnum.inline) {
124
+ addInlineLoading(container, displayInfo.platform);
125
+ } else {
126
+ var mockup = document.getElementById(MOCKUP_ID);
127
+ if (mockup) mockup.style.display = 'block';
128
+ addPopupLoading();
129
+ }
130
+ }
131
+ }, {
132
+ key: "dismissLoading",
133
+ value: function dismissLoading() {
134
+ var _document$getElementB2;
135
+ var isKeepMockup = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
136
+ if (this.customizedLoadingListener) {
137
+ this.customizedLoadingListener('SDK_END_OF_LOADING');
138
+ return;
139
+ }
140
+ var mockup = document.getElementById(MOCKUP_ID);
141
+ if (mockup) {
142
+ mockup.style.background = 'rgb(0, 0, 0, 0.6)';
143
+ mockup.style.display = isKeepMockup ? 'block' : 'none';
144
+ }
145
+ (_document$getElementB2 = document.getElementById(LOADING_ID)) === null || _document$getElementB2 === void 0 || _document$getElementB2.remove();
146
+ }
147
+ }, {
148
+ key: "customizeLoading",
149
+ value: function customizeLoading(listener) {
150
+ this.customizedLoadingListener = listener;
151
+ }
152
+ }, {
153
+ key: "startHideAnim",
154
+ value: function startHideAnim() {
155
+ var _this$displayInfo;
156
+ var container = document.getElementById(COMPONENT_CONTAINER_ID);
157
+ if (this.webApp) this.webApp.style.height = container.style.height;
158
+ if (container && (_this$displayInfo = this.displayInfo) !== null && _this$displayInfo !== void 0 && _this$displayInfo.platform) {
159
+ // size变化动画取消
160
+ container.style.transition = '';
161
+ container === null || container === void 0 || container.classList.remove("".concat(COMPONENT_CONTAINER_ID, "-").concat(this.displayInfo.platform));
162
+ container === null || container === void 0 || container.classList.remove("".concat(COMPONENT_CONTAINER_ID, "-").concat(this.displayInfo.platform, "-animation"));
163
+ container === null || container === void 0 || container.classList.add("".concat(COMPONENT_CONTAINER_ID, "-hidden-").concat(this.displayInfo.platform));
164
+ }
165
+ }
166
+ }, {
167
+ key: "addCapabilityToEventCenter",
168
+ value: function addCapabilityToEventCenter() {
169
+ var _this2 = this;
170
+ this.eventCenter.listen(EVENT.dismissLoading.name, function () {
171
+ _this2.dismissLoading();
172
+ });
173
+ this.eventCenter.listen(EVENT.getUserAgentFromSdk.name, function (data, payload) {
174
+ var _payload$context;
175
+ _this2.eventCenter.dispatchToApp({
176
+ event: 'appEventCallback',
177
+ eventCallbackId: (_payload$context = payload.context) === null || _payload$context === void 0 ? void 0 : _payload$context.eventCallbackId,
178
+ data: {
179
+ userAgent: window.navigator.userAgent
180
+ }
181
+ });
182
+ });
183
+ this.eventCenter.listen(EVENT.popupWindow.name, function (data) {
184
+ var _this2$displayInfo;
185
+ if (data.paymentElementOldModel) return;
186
+ _this2.popupManager.popup(_objectSpread({
187
+ platform: (_this2$displayInfo = _this2.displayInfo) === null || _this2$displayInfo === void 0 ? void 0 : _this2$displayInfo.platform
188
+ }, data)).catch(function (error) {
189
+ _this2.logService.logError({
190
+ title: (error === null || error === void 0 ? void 0 : error.title) || 'sdk_error_create_pop_up'
191
+ }, error);
192
+ _this2.eventCenter.emit(EVENT.error.name, ERRORMESSAGE.CREATECOMPONENT_ERROR.LOAD_APP_TIMEOUT);
193
+ });
194
+ });
195
+ this.eventCenter.listen(EVENT.popWindow.name, function () {
196
+ _this2.popupManager.pop();
197
+ });
198
+ this.eventCenter.listen(EVENT.sizeChanged.name, function (data) {
199
+ _this2.handleSizeChanged(_objectSpread({}, data));
200
+ });
201
+ this.eventCenter.listen(EVENT.showCloseButton.name, function () {
202
+ _this2.changeCloseBtnVisibility(true);
203
+ });
204
+ this.eventCenter.listen(EVENT.hideCloseButton.name, function () {
205
+ _this2.changeCloseBtnVisibility(false);
206
+ });
207
+ this.eventCenter.listen(EVENT.appHeartBeat.name, function () {
208
+ _this2.handleAppHeartBeat();
209
+ });
210
+ }
211
+ }, {
212
+ key: "addCapabilityToApiBusManager",
213
+ value: function addCapabilityToApiBusManager() {}
214
+ }, {
215
+ key: "handleSizeChanged",
216
+ value: function handleSizeChanged(data) {
217
+ if (!this.webApp || !this.displayInfo) {
218
+ return;
219
+ }
220
+ var cashier = document.getElementById(COMPONENT_CONTAINER_ID);
221
+ if ((data === null || data === void 0 ? void 0 : data.height) <= 1 || data.height === parseInt(cashier.style.height)) return;
222
+ cashier.style.height = "".concat(data.height, "px");
223
+ this.webApp.style.opacity = '1';
224
+ if (this.displayInfo.type === DisplayTypeEnum.popup) {
225
+ if (this.displayInfo.platform === 'desktop') {
226
+ if (data.width) cashier.style.width = "".concat(data.width, "px");
227
+ cashier.classList.add("".concat(COMPONENT_CONTAINER_ID, "-").concat(this.displayInfo.platform, "-animation"));
228
+ this.webApp.style.height = "".concat(data.height, "px");
229
+ }
230
+ if (this.displayInfo.platform === 'mobile') {
231
+ cashier.classList.add("".concat(COMPONENT_CONTAINER_ID, "-").concat(this.displayInfo.platform, "-animation"));
232
+ var animationStyleId = "".concat(COMPONENT_CONTAINER_ID, "-").concat(this.displayInfo.platform, "-animation-style");
233
+ var animationStyle = document.getElementById(animationStyleId);
234
+ if (animationStyle) animationStyle === null || animationStyle === void 0 || animationStyle.remove();
235
+
236
+ // 此style用于弹窗出现和高度变化时动画,动画不同,属性不同
237
+ this.webApp.style.height = parseInt(this.webApp.style.height) > 0 ? '100%' : "".concat(data.height, "px");
238
+ startSizeChangeAnim(cashier, data.height, animationStyleId);
239
+ }
240
+ // 关闭loading,保留蒙层
241
+ this.dismissLoading();
242
+ }
243
+ if (this.displayInfo.type === DisplayTypeEnum.inline) {
244
+ var _document$getElementB3;
245
+ (_document$getElementB3 = document.getElementById(LOADING_ID)) === null || _document$getElementB3 === void 0 || _document$getElementB3.remove();
246
+ this.webApp.style.height = "".concat(data.height, "px");
247
+ }
248
+ }
249
+ }, {
250
+ key: "handleAppHeartBeat",
251
+ value: function handleAppHeartBeat() {
252
+ var _this3 = this;
253
+ try {
254
+ if (!this._webAppHeartBeatTimeoutFn) {
255
+ this._webAppHeartBeatTimeoutFn = function () {
256
+ if (_this3.webApp && _this3.displayInfo) {
257
+ _this3.logService.logError({
258
+ title: 'sdk_error_appHeartBeatTimeout'
259
+ });
260
+ }
261
+ };
262
+ }
263
+ if (window._webAppHeartBeatTimeoutId) {
264
+ clearTimeout(window._webAppHeartBeatTimeoutId);
265
+ window._webAppHeartBeatTimeoutId = null;
266
+ }
267
+ if (this._webAppHeartBeatTimeoutFn) {
268
+ window._webAppHeartBeatTimeoutId = setTimeout(this._webAppHeartBeatTimeoutFn, TIMEOUT_WEB_APP_HEART_BEAT);
269
+ }
270
+ setTimeout(function () {
271
+ if (_this3.webApp && _this3.displayInfo) {
272
+ _this3.eventCenter.dispatchToApp({
273
+ event: 'sdkHeartBeat',
274
+ data: {}
275
+ });
276
+ }
277
+ }, TIME_DELAY_SEND_HEART_BEAT);
278
+ } catch (error) {
279
+ this.logService.logError({
280
+ title: 'sdk_error_handleAppHeartBeat'
281
+ }, {
282
+ errorMessage: error.message
283
+ });
284
+ }
285
+ }
286
+ }, {
287
+ key: "changeCloseBtnVisibility",
288
+ value: function changeCloseBtnVisibility(isShow) {
289
+ var closeBlock = document.getElementById(COMPONENT_CLOSE_BLOCK_ID);
290
+ if (isShow) {
291
+ closeBlock === null || closeBlock === void 0 || closeBlock.classList.remove("".concat(COMPONENT_CLOSE_BLOCK_ID, "-hidden"));
292
+ } else if (isShow === false) {
293
+ closeBlock === null || closeBlock === void 0 || closeBlock.classList.add("".concat(COMPONENT_CLOSE_BLOCK_ID, "-hidden"));
294
+ }
295
+ }
296
+ }]);
297
+ return ContainerService;
298
+ }();
@@ -0,0 +1,17 @@
1
+ import { PlatformEnum } from '../../../types';
2
+ /**
3
+ * @author 谦彧 <zhangmian.zm@alipay.com>
4
+ * @date 2024/9/22
5
+ */
6
+ export declare class PopupManager {
7
+ private popupUrlQuery;
8
+ private popupApp;
9
+ setPopupUrlQuery(queryParams: string): void;
10
+ popup(data: {
11
+ url: string;
12
+ widthPadding: number;
13
+ heightPadding: number;
14
+ platform: PlatformEnum;
15
+ }): Promise<void>;
16
+ pop(): void;
17
+ }
@@ -0,0 +1,103 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
3
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
4
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
5
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
7
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
8
+ 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; }
9
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
10
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
11
+ import { createModal, destroyModal } from "../../../component/popupWindow.style";
12
+ import { LOADTIME_LIMIT, POPUP_LOADTIME_LOG_LIMIT } from "../../../constant";
13
+ /**
14
+ * @author 谦彧 <zhangmian.zm@alipay.com>
15
+ * @date 2024/9/22
16
+ */
17
+ export var PopupManager = /*#__PURE__*/function () {
18
+ function PopupManager() {
19
+ _classCallCheck(this, PopupManager);
20
+ _defineProperty(this, "popupUrlQuery", void 0);
21
+ _defineProperty(this, "popupApp", void 0);
22
+ }
23
+ _createClass(PopupManager, [{
24
+ key: "setPopupUrlQuery",
25
+ value: function setPopupUrlQuery(queryParams) {
26
+ this.popupUrlQuery = queryParams;
27
+ }
28
+ }, {
29
+ key: "popup",
30
+ value: function () {
31
+ var _popup = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(data) {
32
+ var error, pageUrl, isLoad, timeout, logTimeout;
33
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
34
+ while (1) switch (_context.prev = _context.next) {
35
+ case 0:
36
+ if (data) {
37
+ _context.next = 5;
38
+ break;
39
+ }
40
+ error = new Error();
41
+ error.name = 'sdk_error_create_pop_up';
42
+ error.message = 'Popup failed, input data is undefined';
43
+ throw error;
44
+ case 5:
45
+ pageUrl = data.url;
46
+ _context.prev = 6;
47
+ if (this.popupUrlQuery) {
48
+ pageUrl = data.url.includes('?') ? "".concat(data.url, "&").concat(this.popupUrlQuery) : "".concat(data.url, "?").concat(this.popupUrlQuery);
49
+ }
50
+ isLoad = false;
51
+ _context.next = 11;
52
+ return createModal({
53
+ widthPadding: data === null || data === void 0 ? void 0 : data.widthPadding,
54
+ device: data === null || data === void 0 ? void 0 : data.platform,
55
+ url: pageUrl,
56
+ loadingConfig: undefined
57
+ });
58
+ case 11:
59
+ this.popupApp = _context.sent;
60
+ timeout = setTimeout(function () {
61
+ if (isLoad) return;
62
+ throw {
63
+ title: 'sdk_error_create_pop_up'
64
+ };
65
+ }, LOADTIME_LIMIT);
66
+ logTimeout = setTimeout(function () {
67
+ if (isLoad) return;
68
+ throw {
69
+ title: 'sdk_error_pop_up_time_out'
70
+ };
71
+ }, POPUP_LOADTIME_LOG_LIMIT);
72
+ this.popupApp.onload = function () {
73
+ isLoad = true;
74
+ clearTimeout(timeout);
75
+ clearTimeout(logTimeout);
76
+ };
77
+ _context.next = 22;
78
+ break;
79
+ case 17:
80
+ _context.prev = 17;
81
+ _context.t0 = _context["catch"](6);
82
+ _context.t0.name = 'sdk_error_create_pop_up';
83
+ _context.t0.url = pageUrl;
84
+ throw _context.t0;
85
+ case 22:
86
+ case "end":
87
+ return _context.stop();
88
+ }
89
+ }, _callee, this, [[6, 17]]);
90
+ }));
91
+ function popup(_x) {
92
+ return _popup.apply(this, arguments);
93
+ }
94
+ return popup;
95
+ }()
96
+ }, {
97
+ key: "pop",
98
+ value: function pop() {
99
+ destroyModal();
100
+ }
101
+ }]);
102
+ return PopupManager;
103
+ }();
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @author 谦彧 <zhangmian.zm@alipay.com>
3
+ * @date 2024/9/17
4
+ */
5
+ export declare const createPreloadIframe: (containerId: string) => HTMLIFrameElement;
6
+ export declare const createIframe: (containerId: string) => HTMLIFrameElement;
7
+ export declare const startSizeChangeAnim: (target: HTMLDivElement, height: number, animationStyleId: string) => void;
@@ -0,0 +1,48 @@
1
+ import { COMPONENT_CONTAINER_ID } from "../../../constant";
2
+
3
+ /**
4
+ * @author 谦彧 <zhangmian.zm@alipay.com>
5
+ * @date 2024/9/17
6
+ */
7
+ export var createPreloadIframe = function createPreloadIframe(containerId) {
8
+ var iframe = document.createElement('iframe');
9
+ var none = '1px';
10
+ var width = '1px';
11
+ iframe.id = containerId;
12
+ iframe.style.height = none;
13
+ iframe.style.width = width;
14
+ iframe.style.border = none;
15
+ iframe.style.opacity = '0';
16
+ iframe.style.overflow = 'hidden';
17
+ return iframe;
18
+ };
19
+ export var createIframe = function createIframe(containerId) {
20
+ var iframe = document.createElement('iframe');
21
+ var iframeId = containerId;
22
+ var none = '0';
23
+ var width = '100%';
24
+ iframe.id = iframeId;
25
+ iframe.style.height = none;
26
+ iframe.style.width = width;
27
+ iframe.style.border = none;
28
+ iframe.style.opacity = none;
29
+ iframe.style.overflow = 'hidden';
30
+ return iframe;
31
+ };
32
+ export var startSizeChangeAnim = function startSizeChangeAnim(target, height, animationStyleId) {
33
+ // 弹出和弹入动画
34
+ var runkeyframes = "@keyframes ".concat(COMPONENT_CONTAINER_ID, "-slide-in {\n 0% {\n height: 1px;\n }\n 100% {\n height: ").concat(height, "px;\n }\n }\n @keyframes ").concat(COMPONENT_CONTAINER_ID, "-slide-out {\n 0% {\n height: ").concat(height, "px;\n opacity: 1;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n height: 1px;\n opacity: 0;\n }\n }");
35
+ // 创建style标签
36
+ var style = document.createElement('style');
37
+ style.id = animationStyleId;
38
+ // 设置style属性
39
+ style.type = 'text/css';
40
+ // 将 keyframes样式写入style内
41
+ style.innerHTML = runkeyframes;
42
+ // 将style样式存放到head标签
43
+ document.getElementsByTagName('head')[0].appendChild(style);
44
+ // size变动时动画
45
+ setTimeout(function () {
46
+ target.style.transition = 'height 0.28s ease-in-out';
47
+ }, 500);
48
+ };
@@ -0,0 +1,76 @@
1
+ import { EventPayload, EventPayloadContext, IoptionsParams } from '../../types';
2
+ import { SDKMetaData, Service } from '../index';
3
+ /**
4
+ * @author 江跃 <jiangbin.gjb@antgroup.com>
5
+ * @date 2024/9/17
6
+ */
7
+ export declare class EventCenter implements Service {
8
+ private events;
9
+ private iframes;
10
+ private instanceId;
11
+ constructor();
12
+ /**
13
+ * Initializes the event center
14
+ */
15
+ init(initOptions: IoptionsParams, instanceId: string, sdkMetaData: SDKMetaData): void;
16
+ /**
17
+ * Cleans up event listeners when the event center is destroyed.
18
+ */
19
+ destroy(): void;
20
+ /**
21
+ * Placeholder for future update logic.
22
+ */
23
+ update(): void;
24
+ /**
25
+ * Sets the iframe container and its domain.
26
+ * @param iframe - The HTMLIFrameElement that serves as the container.
27
+ * @param domain - The domain of the app.
28
+ */
29
+ addIFrame(iframe: HTMLIFrameElement): void;
30
+ removeIFrame(iframe: HTMLIFrameElement): void;
31
+ /**
32
+ * Handles messages received from the app.
33
+ * @param e - The message event.
34
+ */
35
+ private handleAppMessage;
36
+ /**
37
+ * Processes the application message and emits the associated event.
38
+ * @param data - Parsed EventPayload from the app.
39
+ */
40
+ private _handleAppMessage;
41
+ /**
42
+ * Listens to an event by adding a callback function.
43
+ * @param name - The name of the event to listen for.
44
+ * @param func - The callback function to execute when the event is emitted.
45
+ */
46
+ listen(name: string, func: IListener): void;
47
+ /**
48
+ * Unsubscribes from an event. If a function is provided, only that function is removed.
49
+ * @param name - The name of the event to unlisten to.
50
+ * @param func - The optional callback function to remove.
51
+ */
52
+ unlisten(name: string, func?: IListener): void;
53
+ /**
54
+ * Emits an event, executing all associated callback functions.
55
+ * @param name - The name of the event to emit.
56
+ * @param data - The event data to pass to the event listeners.
57
+ */
58
+ emit(name: string, data: any, EventPayload?: EventPayload): void;
59
+ /**
60
+ * Registers a callback for an event and immediately dispatches the event to the app.
61
+ * @param payloadContext - The context containing event information and callback ID.
62
+ * @param func - The callback function to execute when the event is emitted.
63
+ */
64
+ emitAndListen(payloadContext: EventPayloadContext, func: IListener): void;
65
+ queryParse(url?: string): Record<string, any>;
66
+ /**
67
+ * Dispatches the event payload to the app via postMessage.
68
+ * @param payloadContext - The context containing event to be dispatched.
69
+ */
70
+ dispatchToApp(payloadContext: EventPayloadContext): void;
71
+ isExist(name: string): boolean;
72
+ }
73
+ interface IListener {
74
+ (data: any, EventPayload?: EventPayload): void;
75
+ }
76
+ export {};