x-app-sdk 1.0.8-beta.6 → 1.1.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/README.md +276 -16
- package/dist/index.cjs.js +1 -1
- package/dist/index.d.ts +19 -2
- package/dist/index.es.js +310 -178
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
# x-app-sdk
|
|
2
2
|
|
|
3
3
|
## Giới thiệu
|
|
4
|
-
`x-app-sdk` là một thư viện hỗ trợ phát triển ứng dụng với các tính năng tương tác với `superapp
|
|
4
|
+
`x-app-sdk` là một thư viện hỗ trợ phát triển ứng dụng với các tính năng tương tác với `superapp`.
|
|
5
|
+
SDK với dữ liệu thật chỉ được trả ra khi chạy trên Super App. Khi chạy trên web thường sẽ có những data mẫu có cấu trúc tương tự data thật.
|
|
5
6
|
|
|
6
7
|
## Cài đặt
|
|
7
8
|
Bạn có thể cài đặt `x-app-sdk` bằng npm:
|
|
@@ -14,37 +15,296 @@ yarn add x-app-sdk
|
|
|
14
15
|
```
|
|
15
16
|
|
|
16
17
|
## Các tính năng chính
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
|
|
19
|
+
### 1. Config - Cấu hình ứng dụng
|
|
20
|
+
#### `configUIApp(config)`
|
|
21
|
+
Cấu hình giao diện ứng dụng trong SuperApp.
|
|
22
|
+
```js
|
|
23
|
+
import { configUIApp } from 'x-app-sdk';
|
|
24
|
+
|
|
25
|
+
const config = {
|
|
26
|
+
headerTitle: 'Tên ứng dụng',
|
|
27
|
+
headerColor: '#ffffff',
|
|
28
|
+
headerTextColor: '#000000'
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
configUIApp(config).then(response => {
|
|
32
|
+
console.log('Cấu hình thành công:', response);
|
|
33
|
+
}).catch(error => {
|
|
34
|
+
console.error('Lỗi cấu hình:', error);
|
|
35
|
+
});
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### 2. Device - Tương tác thiết bị
|
|
39
|
+
#### `call(phoneNumber)`
|
|
40
|
+
Thực hiện cuộc gọi đến số điện thoại.
|
|
41
|
+
```js
|
|
42
|
+
import { call } from 'x-app-sdk';
|
|
43
|
+
|
|
44
|
+
call('0123456789').then(() => {
|
|
45
|
+
console.log('Bắt đầu cuộc gọi');
|
|
46
|
+
}).catch(error => {
|
|
47
|
+
console.error('Lỗi cuộc gọi:', error);
|
|
48
|
+
});
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
#### `sms(phoneNumber)`
|
|
52
|
+
Mở ứng dụng tin nhắn với số điện thoại.
|
|
53
|
+
```js
|
|
54
|
+
import { sms } from 'x-app-sdk';
|
|
55
|
+
|
|
56
|
+
sms('0123456789').then(() => {
|
|
57
|
+
console.log('Mở ứng dụng tin nhắn');
|
|
58
|
+
}).catch(error => {
|
|
59
|
+
console.error('Lỗi tin nhắn:', error);
|
|
60
|
+
});
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
#### `vibrate()`
|
|
64
|
+
Kích hoạt rung thiết bị.
|
|
65
|
+
```js
|
|
66
|
+
import { vibrate } from 'x-app-sdk';
|
|
67
|
+
|
|
68
|
+
vibrate().then(() => {
|
|
69
|
+
console.log('Thiết bị rung');
|
|
70
|
+
}).catch(error => {
|
|
71
|
+
console.error('Lỗi rung:', error);
|
|
72
|
+
});
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### 3. Location - Dịch vụ vị trí
|
|
76
|
+
#### `currentLocation()`
|
|
77
|
+
Lấy vị trí hiện tại của thiết bị.
|
|
78
|
+
```js
|
|
79
|
+
import { currentLocation } from 'x-app-sdk';
|
|
80
|
+
|
|
81
|
+
currentLocation().then(location => {
|
|
82
|
+
console.log('Vị trí hiện tại:', location.data);
|
|
83
|
+
}).catch(error => {
|
|
84
|
+
console.error('Lỗi lấy vị trí:', error);
|
|
85
|
+
});
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
#### `requestLocationPermission()`
|
|
89
|
+
Yêu cầu quyền truy cập vị trí.
|
|
90
|
+
```js
|
|
91
|
+
import { requestLocationPermission } from 'x-app-sdk';
|
|
92
|
+
|
|
93
|
+
requestLocationPermission().then(response => {
|
|
94
|
+
console.log('Quyền vị trí:', response);
|
|
95
|
+
}).catch(error => {
|
|
96
|
+
console.error('Lỗi quyền vị trí:', error);
|
|
97
|
+
});
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### 4. Media - Xử lý phương tiện
|
|
101
|
+
#### `openPickerImage(type)`
|
|
102
|
+
Mở trình chọn ảnh từ thiết bị.
|
|
103
|
+
```js
|
|
104
|
+
import { openPickerImage, EMediaType } from 'x-app-sdk';
|
|
105
|
+
|
|
106
|
+
openPickerImage(EMediaType.GALLERY).then(imageData => {
|
|
107
|
+
console.log('Dữ liệu ảnh:', imageData.data);
|
|
108
|
+
}).catch(error => {
|
|
109
|
+
console.error('Lỗi chọn ảnh:', error);
|
|
110
|
+
});
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
#### `openPickerFile()`
|
|
114
|
+
Mở trình chọn file từ thiết bị.
|
|
115
|
+
```js
|
|
116
|
+
import { openPickerFile } from 'x-app-sdk';
|
|
117
|
+
|
|
118
|
+
openPickerFile().then(fileData => {
|
|
119
|
+
console.log('Dữ liệu file:', fileData.data);
|
|
120
|
+
}).catch(error => {
|
|
121
|
+
console.error('Lỗi chọn file:', error);
|
|
122
|
+
});
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### 5. Notification - Thông báo
|
|
126
|
+
#### `listenNotifiactionEvent(callback)`
|
|
127
|
+
Lắng nghe các sự kiện thông báo từ SuperApp.
|
|
20
128
|
```js
|
|
21
|
-
import {
|
|
129
|
+
import { listenNotifiactionEvent } from 'x-app-sdk';
|
|
22
130
|
|
|
23
|
-
|
|
24
|
-
console.log('Thông
|
|
131
|
+
const unsubscribe = listenNotifiactionEvent((data) => {
|
|
132
|
+
console.log('Thông báo mới:', data);
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
// Để hủy lắng nghe
|
|
136
|
+
unsubscribe();
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### 6. Payment - Thanh toán
|
|
140
|
+
#### `paymentRequest(body)`
|
|
141
|
+
Thực hiện yêu cầu thanh toán qua SuperApp.
|
|
142
|
+
```js
|
|
143
|
+
import { paymentRequest } from 'x-app-sdk';
|
|
144
|
+
|
|
145
|
+
const paymentData = {
|
|
146
|
+
amount: 100000,
|
|
147
|
+
description: 'Thanh toán đơn hàng',
|
|
148
|
+
orderId: 'ORDER123'
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
paymentRequest(paymentData).then(result => {
|
|
152
|
+
console.log('Kết quả thanh toán:', result.data);
|
|
25
153
|
}).catch(error => {
|
|
26
|
-
console.error('Lỗi
|
|
154
|
+
console.error('Lỗi thanh toán:', error);
|
|
27
155
|
});
|
|
28
156
|
```
|
|
29
157
|
|
|
30
|
-
#### `
|
|
31
|
-
|
|
158
|
+
#### `listenPaymentEvent(callback)`
|
|
159
|
+
Lắng nghe các sự kiện thanh toán.
|
|
160
|
+
```js
|
|
161
|
+
import { listenPaymentEvent } from 'x-app-sdk';
|
|
162
|
+
|
|
163
|
+
const unsubscribe = listenPaymentEvent((data) => {
|
|
164
|
+
console.log('Sự kiện thanh toán:', data);
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
// Để hủy lắng nghe
|
|
168
|
+
unsubscribe();
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### 7. Permission - Quyền truy cập
|
|
172
|
+
#### `premissionsRequest(type)`
|
|
173
|
+
Yêu cầu quyền truy cập cho một tính năng cụ thể.
|
|
32
174
|
```js
|
|
33
|
-
import {
|
|
175
|
+
import { premissionsRequest, ETypeRequest } from 'x-app-sdk';
|
|
34
176
|
|
|
35
|
-
|
|
36
|
-
|
|
177
|
+
premissionsRequest(ETypeRequest.RequestPickerImage).then(granted => {
|
|
178
|
+
if (granted.data) {
|
|
179
|
+
console.log('Quyền được cấp');
|
|
180
|
+
} else {
|
|
181
|
+
console.log('Quyền bị từ chối');
|
|
182
|
+
}
|
|
37
183
|
}).catch(error => {
|
|
38
|
-
console.error('Lỗi
|
|
184
|
+
console.error('Lỗi kiểm tra quyền:', error);
|
|
39
185
|
});
|
|
40
186
|
```
|
|
41
187
|
|
|
42
|
-
|
|
43
|
-
|
|
188
|
+
### 8. Routing - Điều hướng
|
|
189
|
+
#### `closeApp(data?)`
|
|
190
|
+
Đóng ứng dụng và trả về SuperApp.
|
|
44
191
|
```js
|
|
45
192
|
import { closeApp } from 'x-app-sdk';
|
|
46
193
|
|
|
194
|
+
// Đóng ứng dụng
|
|
47
195
|
closeApp();
|
|
196
|
+
|
|
197
|
+
// Đóng ứng dụng với dữ liệu trả về
|
|
198
|
+
closeApp({ result: 'success', data: 'some data' });
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### 9. Store - Lưu trữ cục bộ
|
|
202
|
+
#### `saveStore(data)`
|
|
203
|
+
Lưu dữ liệu vào bộ nhớ cục bộ của SuperApp.
|
|
204
|
+
```js
|
|
205
|
+
import { saveStore } from 'x-app-sdk';
|
|
206
|
+
|
|
207
|
+
const data = JSON.stringify({ key: 'value' });
|
|
208
|
+
saveStore(data).then(() => {
|
|
209
|
+
console.log('Dữ liệu đã được lưu');
|
|
210
|
+
}).catch(error => {
|
|
211
|
+
console.error('Lỗi lưu dữ liệu:', error);
|
|
212
|
+
});
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
#### `getStore()`
|
|
216
|
+
Lấy dữ liệu từ bộ nhớ cục bộ.
|
|
217
|
+
```js
|
|
218
|
+
import { getStore } from 'x-app-sdk';
|
|
219
|
+
|
|
220
|
+
getStore().then(result => {
|
|
221
|
+
const data = JSON.parse(result.data);
|
|
222
|
+
console.log('Dữ liệu lấy được:', data);
|
|
223
|
+
}).catch(error => {
|
|
224
|
+
console.error('Lỗi lấy dữ liệu:', error);
|
|
225
|
+
});
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
#### `clearStore()`
|
|
229
|
+
Xóa tất cả dữ liệu trong bộ nhớ cục bộ.
|
|
230
|
+
```js
|
|
231
|
+
import { clearStore } from 'x-app-sdk';
|
|
232
|
+
|
|
233
|
+
clearStore().then(() => {
|
|
234
|
+
console.log('Dữ liệu đã được xóa');
|
|
235
|
+
}).catch(error => {
|
|
236
|
+
console.error('Lỗi xóa dữ liệu:', error);
|
|
237
|
+
});
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
### 10. User - Thông tin người dùng
|
|
241
|
+
#### `getInfo(key)`
|
|
242
|
+
Lấy thông tin người dùng từ SuperApp.
|
|
243
|
+
```js
|
|
244
|
+
import { getInfo, EKeyInfor } from 'x-app-sdk';
|
|
245
|
+
|
|
246
|
+
getInfo(EKeyInfor.USER_ID).then(info => {
|
|
247
|
+
console.log('ID người dùng:', info.data);
|
|
248
|
+
}).catch(error => {
|
|
249
|
+
console.error('Lỗi lấy thông tin:', error);
|
|
250
|
+
});
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
#### `getToken()`
|
|
254
|
+
Lấy token đăng nhập ngừoi dùng.
|
|
255
|
+
```js
|
|
256
|
+
import { getToken } from 'x-app-sdk';
|
|
257
|
+
|
|
258
|
+
getToken().then(token => {
|
|
259
|
+
console.log('Token người dùng:', token);
|
|
260
|
+
}).catch(error => {
|
|
261
|
+
console.error('Lỗi lấy thông tin:', error);
|
|
262
|
+
});
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
## Lưu ý quan trọng
|
|
266
|
+
|
|
267
|
+
- Tất cả các API đều yêu cầu SDK được khởi tạo trước khi sử dụng
|
|
268
|
+
- Một số tính năng yêu cầu quyền truy cập từ người dùng
|
|
269
|
+
- Khi chạy trong browser mode, một số tính năng sẽ trả về dữ liệu mẫu
|
|
270
|
+
- Luôn xử lý lỗi (catch) khi gọi các API bất đồng bộ
|
|
271
|
+
- Nhớ hủy đăng ký các listener khi không cần thiết để tránh memory leak
|
|
272
|
+
|
|
273
|
+
## Import tổng hợp
|
|
274
|
+
|
|
275
|
+
Bạn có thể import tất cả các services từ entry point chính:
|
|
276
|
+
```js
|
|
277
|
+
import {
|
|
278
|
+
// Config
|
|
279
|
+
configUIApp,
|
|
280
|
+
|
|
281
|
+
// Device
|
|
282
|
+
call, sms, vibrate,
|
|
283
|
+
|
|
284
|
+
// Location
|
|
285
|
+
currentLocation, requestLocationPermission,
|
|
286
|
+
|
|
287
|
+
// Media
|
|
288
|
+
openPickerImage, openPickerFile,
|
|
289
|
+
|
|
290
|
+
// Notification
|
|
291
|
+
listenNotifiactionEvent,
|
|
292
|
+
|
|
293
|
+
// Payment
|
|
294
|
+
paymentRequest, listenPaymentEvent,
|
|
295
|
+
|
|
296
|
+
// Permission
|
|
297
|
+
premissionsRequest,
|
|
298
|
+
|
|
299
|
+
// Routing
|
|
300
|
+
closeApp,
|
|
301
|
+
|
|
302
|
+
// Store
|
|
303
|
+
saveStore, getStore, clearStore,
|
|
304
|
+
|
|
305
|
+
// User
|
|
306
|
+
getInfo, getToken
|
|
307
|
+
} from 'x-app-sdk';
|
|
48
308
|
```
|
|
49
309
|
|
|
50
310
|
## Kết luận
|
package/dist/index.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var R=Object.defineProperty;var u=(A,g,C)=>g in A?R(A,g,{enumerable:!0,configurable:!0,writable:!0,value:C}):A[g]=C;var i=(A,g,C)=>u(A,typeof g!="symbol"?g+"":g,C);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var o=(A=>(A.RequestConfigUIApp="requestConfigUIApp",A.RequestInfo="requestInfo",A.RequestCloseApp="requestCloseApp",A.RequestPickerImage="requestPickerImage",A.RequestPickerFile="requestPickerFile",A.RequestVibrate="requestVibrate",A.RequestCall="requestCall",A.RequestSms="requestSms",A.RequestLocationPermission="requestLocationPermission",A.RequestCurrentLocation="requestCurrentLocation",A.RequestPayment="requestPayment",A.requestGetPermission="requestGetPermission",A))(o||{}),s=(A=>(A.ResponseConfigApp="responseConfigUIApp",A.ResponseInfo="responseInfo",A.ResponsePickerImage="responsePickerImage",A.ResponsePickerFile="responsePickerFile",A.ResponseVibrate="responseVibrate",A.ResponseCall="responseCall",A.ResponseSms="responseSms",A.ResponseLocationPermission="responseLocationPermission",A.ResponseCurrentLocation="responseCurrentLocation",A.ResponseCloseApp="responseCloseApp",A.ResponsePayment="responsePayment",A.ResponseNotification="responseNotification",A.ResponseGetPermisstion="responseGetPermisstion",A))(s||{}),n=(A=>(A.SUCCESS="success",A.ERROR="error",A.PREMISSION_ERROR="premissionError",A))(n||{}),c=(A=>(A.USER="user",A))(c||{}),a=(A=>(A.gallery="gallery",A.camera="camera",A))(a||{});class P{constructor(){i(this,"premissions");i(this,"getPremissions",()=>({[o.RequestInfo]:!0,[o.RequestCloseApp]:!0,[o.RequestPickerImage]:!0,[o.RequestVibrate]:!0}));i(this,"checkPremission",g=>this.premissions[g]??!0);this.premissions={},this.initialize()}initialize(){window.flutter_inappwebview||(this.premissions=this.getPremissions())}}class p{constructor(){i(this,"handlers");i(this,"isInitialized");i(this,"isBrowserMode");i(this,"cachedInfo");i(this,"infoRequests");i(this,"premissionEvent");this.handlers=new Map,this.isInitialized=!1,this.isBrowserMode=!1,this.cachedInfo=new Map,this.infoRequests=new Map,this.premissionEvent=new P,this.initialize()}initialize(){window.flutter_inappwebview?(this.setupMessageHandler(),this.isInitialized=!0,this.isBrowserMode=!1,this.send(o.RequestInfo,{})):(this.isInitialized=!0,this.isBrowserMode=!0,console.warn("Flutter channel not found. Running in browser mode."))}setupMessageHandler(){window.receiveFromFlutter=g=>{try{const C=JSON.parse(g);if(C.type===s.ResponseInfo){this.handleInfoUpdate(C.data);return}this.handleMessage(C)}catch(C){console.error("Error parsing message from Flutter:",C)}}}handleInfoUpdate(g){g&&Object.entries(g).forEach(([C,e])=>{this.cachedInfo.set(C,e),(this.infoRequests.get(C)||[]).forEach(r=>r(e)),this.infoRequests.delete(C)})}handleMessage(g){(this.handlers.get(g.type)||[]).forEach(e=>{try{e(g)}catch(t){console.error("Error in message handler:",t)}})}send(g,C){if(!this.isInitialized){console.error("SDK not initialized");return}const t=JSON.stringify({type:g,data:C});window.flutter_inappwebview&&window.flutter_inappwebview.callHandler("Flutter",t).catch(r=>console.error("Error sending message to Flutter:",r))}on(g,C){const e=this.handlers.get(g)||[];e.push(C),this.handlers.set(g,e)}off(g,C){const e=this.handlers.get(g)||[],t=e.indexOf(C);t>-1&&(e.splice(t,1),this.handlers.set(g,e))}getBrowserMode(){return this.isBrowserMode}getInitialized(){return this.isInitialized}getCachedInfo(g){return this.cachedInfo.get(g)}getInfoRequests(){return this.infoRequests}setInfoRequest(g,C){this.infoRequests.set(g,C)}checkPremissionEvent(g){return this.premissionEvent.checkPremission(g)}}const I=new p;I.getBrowserMode();const m={user:{name:"Pham Hong Son"}},d=async A=>{if(I.getBrowserMode()){if(!I.checkPremissionEvent(o.RequestInfo)){const e={type:s.ResponseInfo,status:n.PREMISSION_ERROR};return Promise.resolve(e)}const C={type:s.ResponseInfo,status:n.SUCCESS,data:m[A]};return Promise.resolve(C)}const g=I.getCachedInfo(A);if(g!==void 0){const C={type:s.ResponseInfo,status:n.SUCCESS,data:g};return Promise.resolve(C)}return new Promise(C=>{const t=I.getInfoRequests().get(A)||[];t.push(r=>{const l={type:s.ResponseInfo,status:n.SUCCESS,data:r};C(l)}),I.setInfoRequest(A,t),I.send(o.RequestInfo,{key:A})})},h={path:"/hello.png",base64:"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QC8RXhpZgAASUkqAAgAAAAGABIBAwABAAAAAQAAABoBBQABAAAAVgAAABsBBQABAAAAXgAAACgBAwABAAAAAgAAABMCAwABAAAAAQAAAGmHBAABAAAAZgAAAAAAAABgAAAAAQAAAGAAAAABAAAABgAAkAcABAAAADAyMTABkQcABAAAAAECAwAAoAcABAAAADAxMDABoAMAAQAAAP//AAACoAQAAQAAACADAAADoAQAAQAAACADAAAAAAAA/+EOAmh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4KPHg6eG1wbWV0YSB4bWxuczp4PSdhZG9iZTpuczptZXRhLyc+CjxyZGY6UkRGIHhtbG5zOnJkZj0naHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyc+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpBdHRyaWI9J2h0dHA6Ly9ucy5hdHRyaWJ1dGlvbi5jb20vYWRzLzEuMC8nPgogIDxBdHRyaWI6QWRzPgogICA8cmRmOlNlcT4KICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0nUmVzb3VyY2UnPgogICAgIDxBdHRyaWI6Q3JlYXRlZD4yMDI0LTAyLTIzPC9BdHRyaWI6Q3JlYXRlZD4KICAgICA8QXR0cmliOkV4dElkPjVmNWM3Y2U4LTAzZWYtNDc5NC1iYTJkLTE4ZjRkZjViZjVhYjwvQXR0cmliOkV4dElkPgogICAgIDxBdHRyaWI6RmJJZD41MjUyNjU5MTQxNzk1ODA8L0F0dHJpYjpGYklkPgogICAgIDxBdHRyaWI6VG91Y2hUeXBlPjI8L0F0dHJpYjpUb3VjaFR5cGU+CiAgICA8L3JkZjpsaT4KICAgPC9yZGY6U2VxPgogIDwvQXR0cmliOkFkcz4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PScnCiAgeG1sbnM6ZGM9J2h0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvJz4KICA8ZGM6dGl0bGU+CiAgIDxyZGY6QWx0PgogICAgPHJkZjpsaSB4bWw6bGFuZz0neC1kZWZhdWx0Jz5UaGnhur90IGvhur8gY2jGsGEgY8OzIHTDqm4gLSAzPC9yZGY6bGk+CiAgIDwvcmRmOkFsdD4KICA8L2RjOnRpdGxlPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpwZGY9J2h0dHA6Ly9ucy5hZG9iZS5jb20vcGRmLzEuMy8nPgogIDxwZGY6QXV0aG9yPlF14buzbmggRGnhu4VtPC9wZGY6QXV0aG9yPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczp4bXA9J2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8nPgogIDx4bXA6Q3JlYXRvclRvb2w+Q2FudmE8L3htcDpDcmVhdG9yVG9vbD4KIDwvcmRmOkRlc2NyaXB0aW9uPgo8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg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"},y={path:"/hello.png",size:12e3,base64:"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QC8RXhpZgAASUkqAAgAAAAGABIBAwABAAAAAQAAABoBBQABAAAAVgAAABsBBQABAAAAXgAAACgBAwABAAAAAgAAABMCAwABAAAAAQAAAGmHBAABAAAAZgAAAAAAAABgAAAAAQAAAGAAAAABAAAABgAAkAcABAAAADAyMTABkQcABAAAAAECAwAAoAcABAAAADAxMDABoAMAAQAAAP//AAACoAQAAQAAACADAAADoAQAAQAAACADAAAAAAAA/+EOAmh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4KPHg6eG1wbWV0YSB4bWxuczp4PSdhZG9iZTpuczptZXRhLyc+CjxyZGY6UkRGIHhtbG5zOnJkZj0naHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyc+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpBdHRyaWI9J2h0dHA6Ly9ucy5hdHRyaWJ1dGlvbi5jb20vYWRzLzEuMC8nPgogIDxBdHRyaWI6QWRzPgogICA8cmRmOlNlcT4KICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0nUmVzb3VyY2UnPgogICAgIDxBdHRyaWI6Q3JlYXRlZD4yMDI0LTAyLTIzPC9BdHRyaWI6Q3JlYXRlZD4KICAgICA8QXR0cmliOkV4dElkPjVmNWM3Y2U4LTAzZWYtNDc5NC1iYTJkLTE4ZjRkZjViZjVhYjwvQXR0cmliOkV4dElkPgogICAgIDxBdHRyaWI6RmJJZD41MjUyNjU5MTQxNzk1ODA8L0F0dHJpYjpGYklkPgogICAgIDxBdHRyaWI6VG91Y2hUeXBlPjI8L0F0dHJpYjpUb3VjaFR5cGU+CiAgICA8L3JkZjpsaT4KICAgPC9yZGY6U2VxPgogIDwvQXR0cmliOkFkcz4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PScnCiAgeG1sbnM6ZGM9J2h0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvJz4KICA8ZGM6dGl0bGU+CiAgIDxyZGY6QWx0PgogICAgPHJkZjpsaSB4bWw6bGFuZz0neC1kZWZhdWx0Jz5UaGnhur90IGvhur8gY2jGsGEgY8OzIHTDqm4gLSAzPC9yZGY6bGk+CiAgIDwvcmRmOkFsdD4KICA8L2RjOnRpdGxlPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpwZGY9J2h0dHA6Ly9ucy5hZG9iZS5jb20vcGRmLzEuMy8nPgogIDxwZGY6QXV0aG9yPlF14buzbmggRGnhu4VtPC9wZGY6QXV0aG9yPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczp4bXA9J2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8nPgogIDx4bXA6Q3JlYXRvclRvb2w+Q2FudmE8L3htcDpDcmVhdG9yVG9vbD4KIDwvcmRmOkRlc2NyaXB0aW9uPgo8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg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"},G=async A=>{if(!I.getInitialized())throw new Error("SDK not initialized");if(I.getBrowserMode()){if(!I.checkPremissionEvent(o.RequestPickerImage)){const C={type:s.ResponsePickerImage,status:n.PREMISSION_ERROR};return Promise.resolve(C)}const g={type:s.ResponsePickerImage,status:n.SUCCESS,data:h};return Promise.resolve(g)}return new Promise((g,C)=>{const e=t=>{t.status===n.ERROR?C(t):g(t),I.off(s.ResponsePickerImage,e)};I.on(s.ResponsePickerImage,e),I.send(o.RequestPickerImage,{type:A})})},f=async()=>{if(!I.getInitialized())throw new Error("SDK not initialized");if(I.getBrowserMode()){if(!I.checkPremissionEvent(o.RequestPickerFile)){const g={type:s.ResponsePickerFile,status:n.PREMISSION_ERROR};return Promise.resolve(g)}const A={type:s.ResponsePickerFile,status:n.SUCCESS,data:y};return Promise.resolve(A)}return new Promise((A,g)=>{const C=e=>{e.status===n.ERROR?g(e):A(e),I.off(s.ResponsePickerFile,C)};I.on(s.ResponsePickerFile,C),I.send(o.RequestPickerFile,void 0)})},Z=A=>{I.send(o.RequestCloseApp,A)},B=async()=>{if(!I.checkPremissionEvent(o.RequestVibrate)){const A={type:s.ResponseVibrate,status:n.PREMISSION_ERROR};return Promise.resolve(A)}I.send(o.RequestVibrate)},E=async A=>{if(!I.checkPremissionEvent(o.RequestCall)){const g={type:s.ResponseCall,status:n.PREMISSION_ERROR};return Promise.resolve(g)}I.send(o.RequestCall,{phoneNumber:A})},Q=async A=>{if(!I.checkPremissionEvent(o.RequestSms)){const g={type:s.ResponseSms,status:n.PREMISSION_ERROR};return Promise.resolve(g)}I.send(o.RequestSms,{phoneNumber:A})},w=async A=>{if(!I.getInitialized())throw new Error("SDK not initialized");if(I.getBrowserMode()){const g={type:s.ResponseConfigApp,status:n.SUCCESS};return Promise.resolve(g)}return new Promise((g,C)=>{const e=t=>{t.status===n.ERROR?C(t):g(t),I.off(s.ResponseConfigApp,e)};I.on(s.ResponseConfigApp,e),I.send(o.RequestConfigUIApp,A)})},Y=async A=>{if(!I.getInitialized())throw new Error("SDK not initialized");if(I.getBrowserMode()){if(!I.checkPremissionEvent(o.requestGetPermission)){const C={type:s.ResponseGetPermisstion,status:n.PREMISSION_ERROR};return Promise.resolve(C)}const g={type:s.ResponseGetPermisstion,status:n.SUCCESS,data:!0};return Promise.resolve(g)}return new Promise((g,C)=>{const e=t=>{t.status===n.ERROR?C(t):g(t),I.off(s.ResponseGetPermisstion,e)};I.on(s.ResponseGetPermisstion,e),I.send(o.requestGetPermission,{type:A})})},S=async A=>{if(!I.getInitialized())throw new Error("SDK not initialized");if(I.getBrowserMode()){const g={type:s.ResponsePayment,status:n.SUCCESS,data:{status:"success"}};return Promise.resolve(g)}return new Promise((g,C)=>{const e=t=>{t.status===n.ERROR?C(t):g(t),I.off(s.ResponsePayment,e)};I.on(s.ResponsePayment,e),I.send(o.RequestPayment,A)})},M=(A,g)=>{const C=g||I;if(!C.getInitialized())throw new Error("SDK not initialized");const e=t=>{A(t)};return C.on(s.ResponsePayment,e),()=>{C.off(s.ResponsePayment,e)}},z=async()=>{if(!I.getInitialized())throw new Error("SDK not initialized");if(I.getBrowserMode()){if(!I.checkPremissionEvent(o.RequestCurrentLocation)){const g={type:s.ResponseCurrentLocation,status:n.PREMISSION_ERROR};return Promise.resolve(g)}const A={type:s.ResponseCurrentLocation,status:n.SUCCESS};return Promise.resolve(A)}return new Promise((A,g)=>{const C=e=>{e.status===n.ERROR?g(e):A(e),I.off(s.ResponseCurrentLocation,C)};I.on(s.ResponseCurrentLocation,C),I.send(o.RequestCurrentLocation)})},K=async()=>{if(!I.getInitialized())throw new Error("SDK not initialized");if(I.getBrowserMode()){if(!I.checkPremissionEvent(o.RequestLocationPermission)){const g={type:s.ResponseLocationPermission,status:n.PREMISSION_ERROR};return Promise.resolve(g)}const A={type:s.ResponseLocationPermission,status:n.SUCCESS};return Promise.resolve(A)}return new Promise((A,g)=>{const C=e=>{e.status===n.ERROR?g(e):A(e),I.off(s.ResponseLocationPermission,C)};I.on(s.ResponseLocationPermission,C),I.send(o.RequestLocationPermission)})},b=(A,g)=>{const C=g||I;if(!C.getInitialized())throw new Error("SDK not initialized");const e=t=>{A(t)};return C.on(s.ResponseNotification,e),()=>{C.off(s.ResponseNotification,e)}};exports.EKeyInfor=c;exports.EMediaType=a;exports.EStatus=n;exports.ETypeRequest=o;exports.ETypeResponse=s;exports.call=E;exports.closeApp=Z;exports.configUIApp=w;exports.currentLocation=z;exports.fltSDK=I;exports.getInfo=d;exports.listenNotifiactionEvent=b;exports.listenPaymentEvent=M;exports.openPickerFile=f;exports.openPickerImage=G;exports.paymentRequest=S;exports.premissionsRequest=Y;exports.requestLocationPermission=K;exports.sms=Q;exports.vibrate=B;
|
|
1
|
+
"use strict";var u=Object.defineProperty;var P=(A,g,I)=>g in A?u(A,g,{enumerable:!0,configurable:!0,writable:!0,value:I}):A[g]=I;var r=(A,g,I)=>P(A,typeof g!="symbol"?g+"":g,I);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var o=(A=>(A.RequestConfigUIApp="requestConfigUIApp",A.RequestInfo="requestInfo",A.RequestToken="requestToken",A.RequestCloseApp="requestCloseApp",A.RequestPickerImage="requestPickerImage",A.RequestPickerFile="requestPickerFile",A.RequestVibrate="requestVibrate",A.RequestCall="requestCall",A.RequestSms="requestSms",A.RequestLocationPermission="requestLocationPermission",A.RequestCurrentLocation="requestCurrentLocation",A.RequestPayment="requestPayment",A.requestGetPermission="requestGetPermission",A.requestSaveStore="requestSaveStore",A.requestGetStore="requestGetStore",A.requestClearStore="requestClearStore",A))(o||{}),s=(A=>(A.ResponseConfigApp="responseConfigUIApp",A.ResponseInfo="responseInfo",A.ResponseToken="responseToken",A.ResponsePickerImage="responsePickerImage",A.ResponsePickerFile="responsePickerFile",A.ResponseVibrate="responseVibrate",A.ResponseCall="responseCall",A.ResponseSms="responseSms",A.ResponseLocationPermission="responseLocationPermission",A.ResponseCurrentLocation="responseCurrentLocation",A.ResponseCloseApp="responseCloseApp",A.ResponsePayment="responsePayment",A.ResponseNotification="responseNotification",A.ResponseGetPermisstion="responseGetPermisstion",A.responseSaveStore="responseSaveStore",A.responseGetStore="responseGetStore",A.responseClearStore="responseClearStore",A))(s||{}),t=(A=>(A.SUCCESS="success",A.ERROR="error",A.PREMISSION_ERROR="premissionError",A))(t||{}),c=(A=>(A.USER="user",A))(c||{}),a=(A=>(A.gallery="gallery",A.camera="camera",A))(a||{});class p{constructor(){r(this,"premissions");r(this,"getPremissions",()=>({[o.RequestInfo]:!0,[o.RequestCloseApp]:!0,[o.RequestPickerImage]:!0,[o.RequestVibrate]:!0}));r(this,"checkPremission",g=>this.premissions[g]??!0);this.premissions={},this.initialize()}initialize(){window.flutter_inappwebview||(this.premissions=this.getPremissions())}}class m{constructor(){r(this,"handlers");r(this,"isInitialized");r(this,"isBrowserMode");r(this,"cachedInfo");r(this,"infoRequests");r(this,"premissionEvent");this.handlers=new Map,this.isInitialized=!1,this.isBrowserMode=!1,this.cachedInfo=new Map,this.infoRequests=new Map,this.premissionEvent=new p,this.initialize()}initialize(){window.flutter_inappwebview?(this.setupMessageHandler(),this.isInitialized=!0,this.isBrowserMode=!1,this.send(o.RequestInfo,{})):(this.isInitialized=!0,this.isBrowserMode=!0,console.warn("Flutter channel not found. Running in browser mode."))}setupMessageHandler(){window.receiveFromFlutter=g=>{try{const I=JSON.parse(g);if(I.type===s.ResponseInfo){this.handleInfoUpdate(I.data);return}this.handleMessage(I)}catch(I){console.error("Error parsing message from Flutter:",I)}}}handleInfoUpdate(g){g&&Object.entries(g).forEach(([I,e])=>{this.cachedInfo.set(I,e),(this.infoRequests.get(I)||[]).forEach(i=>i(e)),this.infoRequests.delete(I)})}handleMessage(g){(this.handlers.get(g.type)||[]).forEach(e=>{try{e(g)}catch(n){console.error("Error in message handler:",n)}})}send(g,I){if(!this.isInitialized){console.error("SDK not initialized");return}const n=JSON.stringify({type:g,data:I});window.flutter_inappwebview&&window.flutter_inappwebview.callHandler("Flutter",n).catch(i=>console.error("Error sending message to Flutter:",i))}on(g,I){const e=this.handlers.get(g)||[];e.push(I),this.handlers.set(g,e)}off(g,I){const e=this.handlers.get(g)||[],n=e.indexOf(I);n>-1&&(e.splice(n,1),this.handlers.set(g,e))}getBrowserMode(){return this.isBrowserMode}getInitialized(){return this.isInitialized}getCachedInfo(g){return this.cachedInfo.get(g)}getInfoRequests(){return this.infoRequests}setInfoRequest(g,I){this.infoRequests.set(g,I)}checkPremissionEvent(g){return this.premissionEvent.checkPremission(g)}}const C=new m;C.getBrowserMode();const d={user:{name:"Pham Van A"}},h=async A=>{if(C.getBrowserMode()){if(!C.checkPremissionEvent(o.RequestInfo)){const e={type:s.ResponseInfo,status:t.PREMISSION_ERROR};return Promise.resolve(e)}const I={type:s.ResponseInfo,status:t.SUCCESS,data:d[A]};return Promise.resolve(I)}const g=C.getCachedInfo(A);if(g!==void 0){const I={type:s.ResponseInfo,status:t.SUCCESS,data:g};return Promise.resolve(I)}return new Promise(I=>{const n=C.getInfoRequests().get(A)||[];n.push(i=>{const R={type:s.ResponseInfo,status:t.SUCCESS,data:i};I(R)}),C.setInfoRequest(A,n),C.send(o.RequestInfo,{key:A})})},S="tokenEx.tokenEx",y=async()=>{if(!C.getInitialized())throw new Error("SDK not initialized");if(C.getBrowserMode()){if(!C.checkPremissionEvent(o.RequestToken)){const g={type:s.ResponseToken,status:t.PREMISSION_ERROR};return Promise.resolve(g)}const A={type:s.ResponseToken,status:t.SUCCESS,data:S};return Promise.resolve(A)}return new Promise((A,g)=>{const I=e=>{e.status===t.ERROR?g(e):A(e),C.off(s.ResponseToken,I)};C.on(s.ResponseToken,I),C.send(o.RequestToken)})},f={path:"/hello.png",base64:"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QC8RXhpZgAASUkqAAgAAAAGABIBAwABAAAAAQAAABoBBQABAAAAVgAAABsBBQABAAAAXgAAACgBAwABAAAAAgAAABMCAwABAAAAAQAAAGmHBAABAAAAZgAAAAAAAABgAAAAAQAAAGAAAAABAAAABgAAkAcABAAAADAyMTABkQcABAAAAAECAwAAoAcABAAAADAxMDABoAMAAQAAAP//AAACoAQAAQAAACADAAADoAQAAQAAACADAAAAAAAA/+EOAmh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4KPHg6eG1wbWV0YSB4bWxuczp4PSdhZG9iZTpuczptZXRhLyc+CjxyZGY6UkRGIHhtbG5zOnJkZj0naHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyc+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpBdHRyaWI9J2h0dHA6Ly9ucy5hdHRyaWJ1dGlvbi5jb20vYWRzLzEuMC8nPgogIDxBdHRyaWI6QWRzPgogICA8cmRmOlNlcT4KICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0nUmVzb3VyY2UnPgogICAgIDxBdHRyaWI6Q3JlYXRlZD4yMDI0LTAyLTIzPC9BdHRyaWI6Q3JlYXRlZD4KICAgICA8QXR0cmliOkV4dElkPjVmNWM3Y2U4LTAzZWYtNDc5NC1iYTJkLTE4ZjRkZjViZjVhYjwvQXR0cmliOkV4dElkPgogICAgIDxBdHRyaWI6RmJJZD41MjUyNjU5MTQxNzk1ODA8L0F0dHJpYjpGYklkPgogICAgIDxBdHRyaWI6VG91Y2hUeXBlPjI8L0F0dHJpYjpUb3VjaFR5cGU+CiAgICA8L3JkZjpsaT4KICAgPC9yZGY6U2VxPgogIDwvQXR0cmliOkFkcz4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PScnCiAgeG1sbnM6ZGM9J2h0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvJz4KICA8ZGM6dGl0bGU+CiAgIDxyZGY6QWx0PgogICAgPHJkZjpsaSB4bWw6bGFuZz0neC1kZWZhdWx0Jz5UaGnhur90IGvhur8gY2jGsGEgY8OzIHTDqm4gLSAzPC9yZGY6bGk+CiAgIDwvcmRmOkFsdD4KICA8L2RjOnRpdGxlPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpwZGY9J2h0dHA6Ly9ucy5hZG9iZS5jb20vcGRmLzEuMy8nPgogIDxwZGY6QXV0aG9yPlF14buzbmggRGnhu4VtPC9wZGY6QXV0aG9yPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczp4bXA9J2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8nPgogIDx4bXA6Q3JlYXRvclRvb2w+Q2FudmE8L3htcDpDcmVhdG9yVG9vbD4KIDwvcmRmOkRlc2NyaXB0aW9uPgo8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg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"},G={path:"/hello.png",size:12e3,base64:"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QC8RXhpZgAASUkqAAgAAAAGABIBAwABAAAAAQAAABoBBQABAAAAVgAAABsBBQABAAAAXgAAACgBAwABAAAAAgAAABMCAwABAAAAAQAAAGmHBAABAAAAZgAAAAAAAABgAAAAAQAAAGAAAAABAAAABgAAkAcABAAAADAyMTABkQcABAAAAAECAwAAoAcABAAAADAxMDABoAMAAQAAAP//AAACoAQAAQAAACADAAADoAQAAQAAACADAAAAAAAA/+EOAmh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4KPHg6eG1wbWV0YSB4bWxuczp4PSdhZG9iZTpuczptZXRhLyc+CjxyZGY6UkRGIHhtbG5zOnJkZj0naHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyc+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpBdHRyaWI9J2h0dHA6Ly9ucy5hdHRyaWJ1dGlvbi5jb20vYWRzLzEuMC8nPgogIDxBdHRyaWI6QWRzPgogICA8cmRmOlNlcT4KICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0nUmVzb3VyY2UnPgogICAgIDxBdHRyaWI6Q3JlYXRlZD4yMDI0LTAyLTIzPC9BdHRyaWI6Q3JlYXRlZD4KICAgICA8QXR0cmliOkV4dElkPjVmNWM3Y2U4LTAzZWYtNDc5NC1iYTJkLTE4ZjRkZjViZjVhYjwvQXR0cmliOkV4dElkPgogICAgIDxBdHRyaWI6RmJJZD41MjUyNjU5MTQxNzk1ODA8L0F0dHJpYjpGYklkPgogICAgIDxBdHRyaWI6VG91Y2hUeXBlPjI8L0F0dHJpYjpUb3VjaFR5cGU+CiAgICA8L3JkZjpsaT4KICAgPC9yZGY6U2VxPgogIDwvQXR0cmliOkFkcz4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PScnCiAgeG1sbnM6ZGM9J2h0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvJz4KICA8ZGM6dGl0bGU+CiAgIDxyZGY6QWx0PgogICAgPHJkZjpsaSB4bWw6bGFuZz0neC1kZWZhdWx0Jz5UaGnhur90IGvhur8gY2jGsGEgY8OzIHTDqm4gLSAzPC9yZGY6bGk+CiAgIDwvcmRmOkFsdD4KICA8L2RjOnRpdGxlPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpwZGY9J2h0dHA6Ly9ucy5hZG9iZS5jb20vcGRmLzEuMy8nPgogIDxwZGY6QXV0aG9yPlF14buzbmggRGnhu4VtPC9wZGY6QXV0aG9yPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczp4bXA9J2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8nPgogIDx4bXA6Q3JlYXRvclRvb2w+Q2FudmE8L3htcDpDcmVhdG9yVG9vbD4KIDwvcmRmOkRlc2NyaXB0aW9uPgo8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg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"},E=async A=>{if(!C.getInitialized())throw new Error("SDK not initialized");if(C.getBrowserMode()){if(!C.checkPremissionEvent(o.RequestPickerImage)){const I={type:s.ResponsePickerImage,status:t.PREMISSION_ERROR};return Promise.resolve(I)}const g={type:s.ResponsePickerImage,status:t.SUCCESS,data:f};return Promise.resolve(g)}return new Promise((g,I)=>{const e=n=>{n.status===t.ERROR?I(n):g(n),C.off(s.ResponsePickerImage,e)};C.on(s.ResponsePickerImage,e),C.send(o.RequestPickerImage,{type:A})})},w=async()=>{if(!C.getInitialized())throw new Error("SDK not initialized");if(C.getBrowserMode()){if(!C.checkPremissionEvent(o.RequestPickerFile)){const g={type:s.ResponsePickerFile,status:t.PREMISSION_ERROR};return Promise.resolve(g)}const A={type:s.ResponsePickerFile,status:t.SUCCESS,data:G};return Promise.resolve(A)}return new Promise((A,g)=>{const I=e=>{e.status===t.ERROR?g(e):A(e),C.off(s.ResponsePickerFile,I)};C.on(s.ResponsePickerFile,I),C.send(o.RequestPickerFile,void 0)})},B=A=>{C.send(o.RequestCloseApp,A)},Z=async()=>{if(!C.checkPremissionEvent(o.RequestVibrate)){const A={type:s.ResponseVibrate,status:t.PREMISSION_ERROR};return Promise.resolve(A)}C.send(o.RequestVibrate)},Q=async A=>{if(!C.getInitialized())throw new Error("SDK not initialized");if(C.getBrowserMode()){if(!C.checkPremissionEvent(o.RequestCall)){const I={type:s.ResponseCall,status:t.PREMISSION_ERROR};return Promise.resolve(I)}window.open(`tel:${A}`);const g={type:s.ResponseCall,status:t.SUCCESS};return Promise.resolve(g)}C.send(o.RequestCall,{phoneNumber:A})},k=async A=>{if(!C.getInitialized())throw new Error("SDK not initialized");if(C.getBrowserMode()){if(!C.checkPremissionEvent(o.RequestSms)){const I={type:s.ResponseSms,status:t.PREMISSION_ERROR};return Promise.resolve(I)}window.open(`sms::${A}`);const g={type:s.ResponseSms,status:t.SUCCESS};return Promise.resolve(g)}C.send(o.RequestSms,{phoneNumber:A})},v=async A=>{if(!C.getInitialized())throw new Error("SDK not initialized");if(C.getBrowserMode()){const g={type:s.ResponseConfigApp,status:t.SUCCESS};return Promise.resolve(g)}return new Promise((g,I)=>{const e=n=>{n.status===t.ERROR?I(n):g(n),C.off(s.ResponseConfigApp,e)};C.on(s.ResponseConfigApp,e),C.send(o.RequestConfigUIApp,A)})},M=async A=>{if(!C.getInitialized())throw new Error("SDK not initialized");if(C.getBrowserMode()){if(!C.checkPremissionEvent(o.requestGetPermission)){const I={type:s.ResponseGetPermisstion,status:t.PREMISSION_ERROR};return Promise.resolve(I)}const g={type:s.ResponseGetPermisstion,status:t.SUCCESS,data:C.checkPremissionEvent(A)};return Promise.resolve(g)}return new Promise((g,I)=>{const e=n=>{n.status===t.ERROR?I(n):g(n),C.off(s.ResponseGetPermisstion,e)};C.on(s.ResponseGetPermisstion,e),C.send(o.requestGetPermission,{type:A})})},z={status:"success",message:"Tạo đơn hàng thành công"},Y=async A=>{if(!C.getInitialized())throw new Error("SDK not initialized");if(C.getBrowserMode()){if(!C.checkPremissionEvent(o.RequestPayment)){const I={type:s.ResponsePayment,status:t.PREMISSION_ERROR};return Promise.resolve(I)}const g={type:s.ResponsePayment,status:t.SUCCESS,data:z};return Promise.resolve(g)}return new Promise((g,I)=>{const e=n=>{n.status===t.ERROR?I(n):g(n),C.off(s.ResponsePayment,e)};C.on(s.ResponsePayment,e),C.send(o.RequestPayment,A)})},K=(A,g)=>{const I=g||C;if(!I.getInitialized())throw new Error("SDK not initialized");const e=n=>{A(n)};return I.on(s.ResponsePayment,e),()=>{I.off(s.ResponsePayment,e)}},b={latitude:21.0239852,longitude:105.791488},D=async()=>{if(!C.getInitialized())throw new Error("SDK not initialized");if(C.getBrowserMode()){if(!C.checkPremissionEvent(o.RequestCurrentLocation)){const g={type:s.ResponseCurrentLocation,status:t.PREMISSION_ERROR};return Promise.resolve(g)}const A={type:s.ResponseCurrentLocation,status:t.SUCCESS,data:b};return Promise.resolve(A)}return new Promise((A,g)=>{const I=e=>{e.status===t.ERROR?g(e):A(e),C.off(s.ResponseCurrentLocation,I)};C.on(s.ResponseCurrentLocation,I),C.send(o.RequestCurrentLocation)})},j=async()=>{if(!C.getInitialized())throw new Error("SDK not initialized");if(C.getBrowserMode()){if(!C.checkPremissionEvent(o.RequestLocationPermission)){const g={type:s.ResponseLocationPermission,status:t.PREMISSION_ERROR};return Promise.resolve(g)}const A={type:s.ResponseLocationPermission,status:t.SUCCESS};return Promise.resolve(A)}return new Promise((A,g)=>{const I=e=>{e.status===t.ERROR?g(e):A(e),C.off(s.ResponseLocationPermission,I)};C.on(s.ResponseLocationPermission,I),C.send(o.RequestLocationPermission)})},q=(A,g)=>{const I=g||C;if(!I.getInitialized())throw new Error("SDK not initialized");const e=n=>{A(n)};return I.on(s.ResponseNotification,e),()=>{I.off(s.ResponseNotification,e)}},l="mini_app_sdk_x_app",J=async A=>{if(!C.getInitialized())throw new Error("SDK not initialized");if(C.getBrowserMode()){if(!C.checkPremissionEvent(o.requestSaveStore)){const I={type:s.responseSaveStore,status:t.PREMISSION_ERROR};return Promise.resolve(I)}localStorage.setItem(l,A);const g={type:s.responseSaveStore,status:t.SUCCESS};return Promise.resolve(g)}return new Promise((g,I)=>{const e=n=>{n.status===t.ERROR?I(n):g(n),C.off(s.responseSaveStore,e)};C.on(s.responseSaveStore,e),C.send(o.requestSaveStore,{data:A})})},U=async()=>{if(!C.getInitialized())throw new Error("SDK not initialized");if(C.getBrowserMode()){if(!C.checkPremissionEvent(o.requestGetStore)){const I={type:s.responseGetStore,status:t.PREMISSION_ERROR};return Promise.resolve(I)}const A=localStorage.getItem(l),g={type:s.responseGetStore,status:t.SUCCESS,data:A??""};return Promise.resolve(g)}return new Promise((A,g)=>{const I=e=>{e.status===t.ERROR?g(e):A(e),C.off(s.responseGetStore,I)};C.on(s.responseGetStore,I),C.send(o.requestGetStore)})},W=async()=>{if(!C.getInitialized())throw new Error("SDK not initialized");if(C.getBrowserMode()){if(!C.checkPremissionEvent(o.requestClearStore)){const g={type:s.responseClearStore,status:t.PREMISSION_ERROR};return Promise.resolve(g)}localStorage.clear();const A={type:s.responseClearStore,status:t.SUCCESS};return Promise.resolve(A)}return new Promise((A,g)=>{const I=e=>{e.status===t.ERROR?g(e):A(e),C.off(s.responseClearStore,I)};C.on(s.responseClearStore,I),C.send(o.requestClearStore)})};exports.EKeyInfor=c;exports.EMediaType=a;exports.EStatus=t;exports.ETypeRequest=o;exports.ETypeResponse=s;exports.call=Q;exports.clearStore=W;exports.closeApp=B;exports.configUIApp=v;exports.currentLocation=D;exports.fltSDK=C;exports.getInfo=h;exports.getStore=U;exports.getToken=y;exports.listenNotifiactionEvent=q;exports.listenPaymentEvent=K;exports.openPickerFile=w;exports.openPickerImage=E;exports.paymentRequest=Y;exports.premissionsRequest=M;exports.requestLocationPermission=j;exports.saveStore=J;exports.sms=k;exports.vibrate=Z;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export declare const call: (phoneNumber: string) => Promise<FlutterMessageResponse | void>;
|
|
2
2
|
|
|
3
|
+
export declare const clearStore: () => Promise<FlutterMessageResponse>;
|
|
4
|
+
|
|
3
5
|
export declare const closeApp: (data?: Record<string, string | object>) => void;
|
|
4
6
|
|
|
5
7
|
export declare const configUIApp: (config: Partial<IViewUiConfig>) => Promise<FlutterMessageResponse>;
|
|
@@ -47,6 +49,7 @@ export declare enum EStatus {
|
|
|
47
49
|
export declare enum ETypeRequest {
|
|
48
50
|
RequestConfigUIApp = "requestConfigUIApp",
|
|
49
51
|
RequestInfo = "requestInfo",
|
|
52
|
+
RequestToken = "requestToken",
|
|
50
53
|
RequestCloseApp = "requestCloseApp",
|
|
51
54
|
RequestPickerImage = "requestPickerImage",
|
|
52
55
|
RequestPickerFile = "requestPickerFile",
|
|
@@ -56,12 +59,16 @@ export declare enum ETypeRequest {
|
|
|
56
59
|
RequestLocationPermission = "requestLocationPermission",
|
|
57
60
|
RequestCurrentLocation = "requestCurrentLocation",
|
|
58
61
|
RequestPayment = "requestPayment",
|
|
59
|
-
requestGetPermission = "requestGetPermission"
|
|
62
|
+
requestGetPermission = "requestGetPermission",
|
|
63
|
+
requestSaveStore = "requestSaveStore",
|
|
64
|
+
requestGetStore = "requestGetStore",
|
|
65
|
+
requestClearStore = "requestClearStore"
|
|
60
66
|
}
|
|
61
67
|
|
|
62
68
|
export declare enum ETypeResponse {
|
|
63
69
|
ResponseConfigApp = "responseConfigUIApp",
|
|
64
70
|
ResponseInfo = "responseInfo",
|
|
71
|
+
ResponseToken = "responseToken",
|
|
65
72
|
ResponsePickerImage = "responsePickerImage",
|
|
66
73
|
ResponsePickerFile = "responsePickerFile",
|
|
67
74
|
ResponseVibrate = "responseVibrate",
|
|
@@ -72,7 +79,10 @@ export declare enum ETypeResponse {
|
|
|
72
79
|
ResponseCloseApp = "responseCloseApp",
|
|
73
80
|
ResponsePayment = "responsePayment",
|
|
74
81
|
ResponseNotification = "responseNotification",
|
|
75
|
-
ResponseGetPermisstion = "responseGetPermisstion"
|
|
82
|
+
ResponseGetPermisstion = "responseGetPermisstion",
|
|
83
|
+
responseSaveStore = "responseSaveStore",
|
|
84
|
+
responseGetStore = "responseGetStore",
|
|
85
|
+
responseClearStore = "responseClearStore"
|
|
76
86
|
}
|
|
77
87
|
|
|
78
88
|
export declare const fltSDK: CoreSdk;
|
|
@@ -90,6 +100,10 @@ export declare interface FlutterMessageResponse<T = unknown> {
|
|
|
90
100
|
|
|
91
101
|
export declare const getInfo: (key: EKeyInfor) => Promise<FlutterMessageResponse>;
|
|
92
102
|
|
|
103
|
+
export declare const getStore: () => Promise<FlutterMessageResponse<string>>;
|
|
104
|
+
|
|
105
|
+
export declare const getToken: () => Promise<FlutterMessageResponse<string>>;
|
|
106
|
+
|
|
93
107
|
export declare interface ICurrentLocation {
|
|
94
108
|
latitude: number;
|
|
95
109
|
longitude: number;
|
|
@@ -122,6 +136,7 @@ export declare interface IPaymentRequest {
|
|
|
122
136
|
|
|
123
137
|
export declare interface IPaymentResult {
|
|
124
138
|
status: string;
|
|
139
|
+
message: string;
|
|
125
140
|
}
|
|
126
141
|
|
|
127
142
|
export declare interface IViewUiConfig {
|
|
@@ -148,6 +163,8 @@ export declare const premissionsRequest: (type: ETypeRequest) => Promise<Flutter
|
|
|
148
163
|
|
|
149
164
|
export declare const requestLocationPermission: () => Promise<FlutterMessageResponse>;
|
|
150
165
|
|
|
166
|
+
export declare const saveStore: (data: string) => Promise<FlutterMessageResponse>;
|
|
167
|
+
|
|
151
168
|
export declare const sms: (phoneNumber: string) => Promise<FlutterMessageResponse | void>;
|
|
152
169
|
|
|
153
170
|
export declare const vibrate: () => Promise<FlutterMessageResponse | void>;
|
package/dist/index.es.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
var
|
|
2
|
-
var R = (A, g,
|
|
3
|
-
var
|
|
4
|
-
var o = /* @__PURE__ */ ((A) => (A.RequestConfigUIApp = "requestConfigUIApp", A.RequestInfo = "requestInfo", A.RequestCloseApp = "requestCloseApp", A.RequestPickerImage = "requestPickerImage", A.RequestPickerFile = "requestPickerFile", A.RequestVibrate = "requestVibrate", A.RequestCall = "requestCall", A.RequestSms = "requestSms", A.RequestLocationPermission = "requestLocationPermission", A.RequestCurrentLocation = "requestCurrentLocation", A.RequestPayment = "requestPayment", A.requestGetPermission = "requestGetPermission", A))(o || {}), s = /* @__PURE__ */ ((A) => (A.ResponseConfigApp = "responseConfigUIApp", A.ResponseInfo = "responseInfo", A.ResponsePickerImage = "responsePickerImage", A.ResponsePickerFile = "responsePickerFile", A.ResponseVibrate = "responseVibrate", A.ResponseCall = "responseCall", A.ResponseSms = "responseSms", A.ResponseLocationPermission = "responseLocationPermission", A.ResponseCurrentLocation = "responseCurrentLocation", A.ResponseCloseApp = "responseCloseApp", A.ResponsePayment = "responsePayment", A.ResponseNotification = "responseNotification", A.ResponseGetPermisstion = "responseGetPermisstion", A))(s || {}),
|
|
5
|
-
class
|
|
1
|
+
var l = Object.defineProperty;
|
|
2
|
+
var R = (A, g, I) => g in A ? l(A, g, { enumerable: !0, configurable: !0, writable: !0, value: I }) : A[g] = I;
|
|
3
|
+
var r = (A, g, I) => R(A, typeof g != "symbol" ? g + "" : g, I);
|
|
4
|
+
var o = /* @__PURE__ */ ((A) => (A.RequestConfigUIApp = "requestConfigUIApp", A.RequestInfo = "requestInfo", A.RequestToken = "requestToken", A.RequestCloseApp = "requestCloseApp", A.RequestPickerImage = "requestPickerImage", A.RequestPickerFile = "requestPickerFile", A.RequestVibrate = "requestVibrate", A.RequestCall = "requestCall", A.RequestSms = "requestSms", A.RequestLocationPermission = "requestLocationPermission", A.RequestCurrentLocation = "requestCurrentLocation", A.RequestPayment = "requestPayment", A.requestGetPermission = "requestGetPermission", A.requestSaveStore = "requestSaveStore", A.requestGetStore = "requestGetStore", A.requestClearStore = "requestClearStore", A))(o || {}), s = /* @__PURE__ */ ((A) => (A.ResponseConfigApp = "responseConfigUIApp", A.ResponseInfo = "responseInfo", A.ResponseToken = "responseToken", A.ResponsePickerImage = "responsePickerImage", A.ResponsePickerFile = "responsePickerFile", A.ResponseVibrate = "responseVibrate", A.ResponseCall = "responseCall", A.ResponseSms = "responseSms", A.ResponseLocationPermission = "responseLocationPermission", A.ResponseCurrentLocation = "responseCurrentLocation", A.ResponseCloseApp = "responseCloseApp", A.ResponsePayment = "responsePayment", A.ResponseNotification = "responseNotification", A.ResponseGetPermisstion = "responseGetPermisstion", A.responseSaveStore = "responseSaveStore", A.responseGetStore = "responseGetStore", A.responseClearStore = "responseClearStore", A))(s || {}), t = /* @__PURE__ */ ((A) => (A.SUCCESS = "success", A.ERROR = "error", A.PREMISSION_ERROR = "premissionError", A))(t || {}), u = /* @__PURE__ */ ((A) => (A.USER = "user", A))(u || {}), P = /* @__PURE__ */ ((A) => (A.gallery = "gallery", A.camera = "camera", A))(P || {});
|
|
5
|
+
class m {
|
|
6
6
|
constructor() {
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
r(this, "premissions");
|
|
8
|
+
r(this, "getPremissions", () => ({
|
|
9
9
|
[o.RequestInfo]: !0,
|
|
10
10
|
[o.RequestCloseApp]: !0,
|
|
11
11
|
[o.RequestPickerImage]: !0,
|
|
12
12
|
[o.RequestVibrate]: !0
|
|
13
13
|
}));
|
|
14
|
-
|
|
14
|
+
r(this, "checkPremission", (g) => this.premissions[g] ?? !0);
|
|
15
15
|
this.premissions = {}, this.initialize();
|
|
16
16
|
}
|
|
17
17
|
initialize() {
|
|
@@ -20,13 +20,13 @@ class P {
|
|
|
20
20
|
}
|
|
21
21
|
class p {
|
|
22
22
|
constructor() {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
this.handlers = /* @__PURE__ */ new Map(), this.isInitialized = !1, this.isBrowserMode = !1, this.cachedInfo = /* @__PURE__ */ new Map(), this.infoRequests = /* @__PURE__ */ new Map(), this.premissionEvent = new
|
|
23
|
+
r(this, "handlers");
|
|
24
|
+
r(this, "isInitialized");
|
|
25
|
+
r(this, "isBrowserMode");
|
|
26
|
+
r(this, "cachedInfo");
|
|
27
|
+
r(this, "infoRequests");
|
|
28
|
+
r(this, "premissionEvent");
|
|
29
|
+
this.handlers = /* @__PURE__ */ new Map(), this.isInitialized = !1, this.isBrowserMode = !1, this.cachedInfo = /* @__PURE__ */ new Map(), this.infoRequests = /* @__PURE__ */ new Map(), this.premissionEvent = new m(), this.initialize();
|
|
30
30
|
}
|
|
31
31
|
initialize() {
|
|
32
32
|
window.flutter_inappwebview ? (this.setupMessageHandler(), this.isInitialized = !0, this.isBrowserMode = !1, this.send(o.RequestInfo, {})) : (this.isInitialized = !0, this.isBrowserMode = !0, console.warn("Flutter channel not found. Running in browser mode."));
|
|
@@ -34,46 +34,46 @@ class p {
|
|
|
34
34
|
setupMessageHandler() {
|
|
35
35
|
window.receiveFromFlutter = (g) => {
|
|
36
36
|
try {
|
|
37
|
-
const
|
|
38
|
-
if (
|
|
39
|
-
this.handleInfoUpdate(
|
|
37
|
+
const I = JSON.parse(g);
|
|
38
|
+
if (I.type === s.ResponseInfo) {
|
|
39
|
+
this.handleInfoUpdate(I.data);
|
|
40
40
|
return;
|
|
41
41
|
}
|
|
42
|
-
this.handleMessage(
|
|
43
|
-
} catch (
|
|
44
|
-
console.error("Error parsing message from Flutter:",
|
|
42
|
+
this.handleMessage(I);
|
|
43
|
+
} catch (I) {
|
|
44
|
+
console.error("Error parsing message from Flutter:", I);
|
|
45
45
|
}
|
|
46
46
|
};
|
|
47
47
|
}
|
|
48
48
|
handleInfoUpdate(g) {
|
|
49
|
-
g && Object.entries(g).forEach(([
|
|
50
|
-
this.cachedInfo.set(
|
|
49
|
+
g && Object.entries(g).forEach(([I, e]) => {
|
|
50
|
+
this.cachedInfo.set(I, e), (this.infoRequests.get(I) || []).forEach((i) => i(e)), this.infoRequests.delete(I);
|
|
51
51
|
});
|
|
52
52
|
}
|
|
53
53
|
handleMessage(g) {
|
|
54
54
|
(this.handlers.get(g.type) || []).forEach((e) => {
|
|
55
55
|
try {
|
|
56
56
|
e(g);
|
|
57
|
-
} catch (
|
|
58
|
-
console.error("Error in message handler:",
|
|
57
|
+
} catch (n) {
|
|
58
|
+
console.error("Error in message handler:", n);
|
|
59
59
|
}
|
|
60
60
|
});
|
|
61
61
|
}
|
|
62
|
-
send(g,
|
|
62
|
+
send(g, I) {
|
|
63
63
|
if (!this.isInitialized) {
|
|
64
64
|
console.error("SDK not initialized");
|
|
65
65
|
return;
|
|
66
66
|
}
|
|
67
|
-
const
|
|
68
|
-
window.flutter_inappwebview && window.flutter_inappwebview.callHandler("Flutter",
|
|
67
|
+
const n = JSON.stringify({ type: g, data: I });
|
|
68
|
+
window.flutter_inappwebview && window.flutter_inappwebview.callHandler("Flutter", n).catch((i) => console.error("Error sending message to Flutter:", i));
|
|
69
69
|
}
|
|
70
|
-
on(g,
|
|
70
|
+
on(g, I) {
|
|
71
71
|
const e = this.handlers.get(g) || [];
|
|
72
|
-
e.push(
|
|
72
|
+
e.push(I), this.handlers.set(g, e);
|
|
73
73
|
}
|
|
74
|
-
off(g,
|
|
75
|
-
const e = this.handlers.get(g) || [],
|
|
76
|
-
|
|
74
|
+
off(g, I) {
|
|
75
|
+
const e = this.handlers.get(g) || [], n = e.indexOf(I);
|
|
76
|
+
n > -1 && (e.splice(n, 1), this.handlers.set(g, e));
|
|
77
77
|
}
|
|
78
78
|
getBrowserMode() {
|
|
79
79
|
return this.isBrowserMode;
|
|
@@ -87,284 +87,416 @@ class p {
|
|
|
87
87
|
getInfoRequests() {
|
|
88
88
|
return this.infoRequests;
|
|
89
89
|
}
|
|
90
|
-
setInfoRequest(g,
|
|
91
|
-
this.infoRequests.set(g,
|
|
90
|
+
setInfoRequest(g, I) {
|
|
91
|
+
this.infoRequests.set(g, I);
|
|
92
92
|
}
|
|
93
93
|
checkPremissionEvent(g) {
|
|
94
94
|
return this.premissionEvent.checkPremission(g);
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
|
-
const
|
|
98
|
-
|
|
97
|
+
const C = new p();
|
|
98
|
+
C.getBrowserMode();
|
|
99
99
|
const d = {
|
|
100
100
|
user: {
|
|
101
|
-
name: "Pham
|
|
101
|
+
name: "Pham Van A"
|
|
102
102
|
}
|
|
103
|
-
},
|
|
104
|
-
if (
|
|
105
|
-
if (!
|
|
103
|
+
}, w = async (A) => {
|
|
104
|
+
if (C.getBrowserMode()) {
|
|
105
|
+
if (!C.checkPremissionEvent(o.RequestInfo)) {
|
|
106
106
|
const e = {
|
|
107
107
|
type: s.ResponseInfo,
|
|
108
|
-
status:
|
|
108
|
+
status: t.PREMISSION_ERROR
|
|
109
109
|
};
|
|
110
110
|
return Promise.resolve(e);
|
|
111
111
|
}
|
|
112
|
-
const
|
|
112
|
+
const I = {
|
|
113
113
|
type: s.ResponseInfo,
|
|
114
|
-
status:
|
|
114
|
+
status: t.SUCCESS,
|
|
115
115
|
data: d[A]
|
|
116
116
|
};
|
|
117
|
-
return Promise.resolve(
|
|
117
|
+
return Promise.resolve(I);
|
|
118
118
|
}
|
|
119
|
-
const g =
|
|
119
|
+
const g = C.getCachedInfo(A);
|
|
120
120
|
if (g !== void 0) {
|
|
121
|
-
const
|
|
121
|
+
const I = {
|
|
122
122
|
type: s.ResponseInfo,
|
|
123
|
-
status:
|
|
123
|
+
status: t.SUCCESS,
|
|
124
124
|
data: g
|
|
125
125
|
};
|
|
126
|
-
return Promise.resolve(
|
|
126
|
+
return Promise.resolve(I);
|
|
127
127
|
}
|
|
128
|
-
return new Promise((
|
|
129
|
-
const
|
|
130
|
-
|
|
131
|
-
const
|
|
128
|
+
return new Promise((I) => {
|
|
129
|
+
const n = C.getInfoRequests().get(A) || [];
|
|
130
|
+
n.push((i) => {
|
|
131
|
+
const a = {
|
|
132
132
|
type: s.ResponseInfo,
|
|
133
|
-
status:
|
|
134
|
-
data:
|
|
133
|
+
status: t.SUCCESS,
|
|
134
|
+
data: i
|
|
135
135
|
};
|
|
136
|
-
|
|
137
|
-
}),
|
|
136
|
+
I(a);
|
|
137
|
+
}), C.setInfoRequest(A, n), C.send(o.RequestInfo, { key: A });
|
|
138
138
|
});
|
|
139
|
-
},
|
|
139
|
+
}, h = "tokenEx.tokenEx", B = async () => {
|
|
140
|
+
if (!C.getInitialized())
|
|
141
|
+
throw new Error("SDK not initialized");
|
|
142
|
+
if (C.getBrowserMode()) {
|
|
143
|
+
if (!C.checkPremissionEvent(o.RequestToken)) {
|
|
144
|
+
const g = {
|
|
145
|
+
type: s.ResponseToken,
|
|
146
|
+
status: t.PREMISSION_ERROR
|
|
147
|
+
};
|
|
148
|
+
return Promise.resolve(g);
|
|
149
|
+
}
|
|
150
|
+
const A = {
|
|
151
|
+
type: s.ResponseToken,
|
|
152
|
+
status: t.SUCCESS,
|
|
153
|
+
data: h
|
|
154
|
+
};
|
|
155
|
+
return Promise.resolve(A);
|
|
156
|
+
}
|
|
157
|
+
return new Promise((A, g) => {
|
|
158
|
+
const I = (e) => {
|
|
159
|
+
e.status === t.ERROR ? g(e) : A(e), C.off(s.ResponseToken, I);
|
|
160
|
+
};
|
|
161
|
+
C.on(s.ResponseToken, I), C.send(o.RequestToken);
|
|
162
|
+
});
|
|
163
|
+
}, S = {
|
|
140
164
|
path: "/hello.png",
|
|
141
165
|
base64: "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QC8RXhpZgAASUkqAAgAAAAGABIBAwABAAAAAQAAABoBBQABAAAAVgAAABsBBQABAAAAXgAAACgBAwABAAAAAgAAABMCAwABAAAAAQAAAGmHBAABAAAAZgAAAAAAAABgAAAAAQAAAGAAAAABAAAABgAAkAcABAAAADAyMTABkQcABAAAAAECAwAAoAcABAAAADAxMDABoAMAAQAAAP//AAACoAQAAQAAACADAAADoAQAAQAAACADAAAAAAAA/+EOAmh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4KPHg6eG1wbWV0YSB4bWxuczp4PSdhZG9iZTpuczptZXRhLyc+CjxyZGY6UkRGIHhtbG5zOnJkZj0naHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyc+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpBdHRyaWI9J2h0dHA6Ly9ucy5hdHRyaWJ1dGlvbi5jb20vYWRzLzEuMC8nPgogIDxBdHRyaWI6QWRzPgogICA8cmRmOlNlcT4KICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0nUmVzb3VyY2UnPgogICAgIDxBdHRyaWI6Q3JlYXRlZD4yMDI0LTAyLTIzPC9BdHRyaWI6Q3JlYXRlZD4KICAgICA8QXR0cmliOkV4dElkPjVmNWM3Y2U4LTAzZWYtNDc5NC1iYTJkLTE4ZjRkZjViZjVhYjwvQXR0cmliOkV4dElkPgogICAgIDxBdHRyaWI6RmJJZD41MjUyNjU5MTQxNzk1ODA8L0F0dHJpYjpGYklkPgogICAgIDxBdHRyaWI6VG91Y2hUeXBlPjI8L0F0dHJpYjpUb3VjaFR5cGU+CiAgICA8L3JkZjpsaT4KICAgPC9yZGY6U2VxPgogIDwvQXR0cmliOkFkcz4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PScnCiAgeG1sbnM6ZGM9J2h0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvJz4KICA8ZGM6dGl0bGU+CiAgIDxyZGY6QWx0PgogICAgPHJkZjpsaSB4bWw6bGFuZz0neC1kZWZhdWx0Jz5UaGnhur90IGvhur8gY2jGsGEgY8OzIHTDqm4gLSAzPC9yZGY6bGk+CiAgIDwvcmRmOkFsdD4KICA8L2RjOnRpdGxlPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpwZGY9J2h0dHA6Ly9ucy5hZG9iZS5jb20vcGRmLzEuMy8nPgogIDxwZGY6QXV0aG9yPlF14buzbmggRGnhu4VtPC9wZGY6QXV0aG9yPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczp4bXA9J2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8nPgogIDx4bXA6Q3JlYXRvclRvb2w+Q2FudmE8L3htcDpDcmVhdG9yVG9vbD4KIDwvcmRmOkRlc2NyaXB0aW9uPgo8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg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"
|
|
142
|
-
},
|
|
166
|
+
}, f = {
|
|
143
167
|
path: "/hello.png",
|
|
144
168
|
size: 12e3,
|
|
145
169
|
base64: "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QC8RXhpZgAASUkqAAgAAAAGABIBAwABAAAAAQAAABoBBQABAAAAVgAAABsBBQABAAAAXgAAACgBAwABAAAAAgAAABMCAwABAAAAAQAAAGmHBAABAAAAZgAAAAAAAABgAAAAAQAAAGAAAAABAAAABgAAkAcABAAAADAyMTABkQcABAAAAAECAwAAoAcABAAAADAxMDABoAMAAQAAAP//AAACoAQAAQAAACADAAADoAQAAQAAACADAAAAAAAA/+EOAmh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4KPHg6eG1wbWV0YSB4bWxuczp4PSdhZG9iZTpuczptZXRhLyc+CjxyZGY6UkRGIHhtbG5zOnJkZj0naHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyc+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpBdHRyaWI9J2h0dHA6Ly9ucy5hdHRyaWJ1dGlvbi5jb20vYWRzLzEuMC8nPgogIDxBdHRyaWI6QWRzPgogICA8cmRmOlNlcT4KICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0nUmVzb3VyY2UnPgogICAgIDxBdHRyaWI6Q3JlYXRlZD4yMDI0LTAyLTIzPC9BdHRyaWI6Q3JlYXRlZD4KICAgICA8QXR0cmliOkV4dElkPjVmNWM3Y2U4LTAzZWYtNDc5NC1iYTJkLTE4ZjRkZjViZjVhYjwvQXR0cmliOkV4dElkPgogICAgIDxBdHRyaWI6RmJJZD41MjUyNjU5MTQxNzk1ODA8L0F0dHJpYjpGYklkPgogICAgIDxBdHRyaWI6VG91Y2hUeXBlPjI8L0F0dHJpYjpUb3VjaFR5cGU+CiAgICA8L3JkZjpsaT4KICAgPC9yZGY6U2VxPgogIDwvQXR0cmliOkFkcz4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PScnCiAgeG1sbnM6ZGM9J2h0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvJz4KICA8ZGM6dGl0bGU+CiAgIDxyZGY6QWx0PgogICAgPHJkZjpsaSB4bWw6bGFuZz0neC1kZWZhdWx0Jz5UaGnhur90IGvhur8gY2jGsGEgY8OzIHTDqm4gLSAzPC9yZGY6bGk+CiAgIDwvcmRmOkFsdD4KICA8L2RjOnRpdGxlPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpwZGY9J2h0dHA6Ly9ucy5hZG9iZS5jb20vcGRmLzEuMy8nPgogIDxwZGY6QXV0aG9yPlF14buzbmggRGnhu4VtPC9wZGY6QXV0aG9yPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczp4bXA9J2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8nPgogIDx4bXA6Q3JlYXRvclRvb2w+Q2FudmE8L3htcDpDcmVhdG9yVG9vbD4KIDwvcmRmOkRlc2NyaXB0aW9uPgo8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg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"
|
|
146
|
-
},
|
|
147
|
-
if (!
|
|
170
|
+
}, Z = async (A) => {
|
|
171
|
+
if (!C.getInitialized())
|
|
148
172
|
throw new Error("SDK not initialized");
|
|
149
|
-
if (
|
|
150
|
-
if (!
|
|
151
|
-
const
|
|
173
|
+
if (C.getBrowserMode()) {
|
|
174
|
+
if (!C.checkPremissionEvent(o.RequestPickerImage)) {
|
|
175
|
+
const I = {
|
|
152
176
|
type: s.ResponsePickerImage,
|
|
153
|
-
status:
|
|
177
|
+
status: t.PREMISSION_ERROR
|
|
154
178
|
};
|
|
155
|
-
return Promise.resolve(
|
|
179
|
+
return Promise.resolve(I);
|
|
156
180
|
}
|
|
157
181
|
const g = {
|
|
158
182
|
type: s.ResponsePickerImage,
|
|
159
|
-
status:
|
|
160
|
-
data:
|
|
183
|
+
status: t.SUCCESS,
|
|
184
|
+
data: S
|
|
161
185
|
};
|
|
162
186
|
return Promise.resolve(g);
|
|
163
187
|
}
|
|
164
|
-
return new Promise((g,
|
|
165
|
-
const e = (
|
|
166
|
-
|
|
188
|
+
return new Promise((g, I) => {
|
|
189
|
+
const e = (n) => {
|
|
190
|
+
n.status === t.ERROR ? I(n) : g(n), C.off(s.ResponsePickerImage, e);
|
|
167
191
|
};
|
|
168
|
-
|
|
192
|
+
C.on(s.ResponsePickerImage, e), C.send(o.RequestPickerImage, { type: A });
|
|
169
193
|
});
|
|
170
|
-
},
|
|
171
|
-
if (!
|
|
194
|
+
}, Q = async () => {
|
|
195
|
+
if (!C.getInitialized())
|
|
172
196
|
throw new Error("SDK not initialized");
|
|
173
|
-
if (
|
|
174
|
-
if (!
|
|
197
|
+
if (C.getBrowserMode()) {
|
|
198
|
+
if (!C.checkPremissionEvent(o.RequestPickerFile)) {
|
|
175
199
|
const g = {
|
|
176
200
|
type: s.ResponsePickerFile,
|
|
177
|
-
status:
|
|
201
|
+
status: t.PREMISSION_ERROR
|
|
178
202
|
};
|
|
179
203
|
return Promise.resolve(g);
|
|
180
204
|
}
|
|
181
205
|
const A = {
|
|
182
206
|
type: s.ResponsePickerFile,
|
|
183
|
-
status:
|
|
184
|
-
data:
|
|
207
|
+
status: t.SUCCESS,
|
|
208
|
+
data: f
|
|
185
209
|
};
|
|
186
210
|
return Promise.resolve(A);
|
|
187
211
|
}
|
|
188
212
|
return new Promise((A, g) => {
|
|
189
|
-
const
|
|
190
|
-
e.status ===
|
|
213
|
+
const I = (e) => {
|
|
214
|
+
e.status === t.ERROR ? g(e) : A(e), C.off(s.ResponsePickerFile, I);
|
|
191
215
|
};
|
|
192
|
-
|
|
216
|
+
C.on(s.ResponsePickerFile, I), C.send(o.RequestPickerFile, void 0);
|
|
193
217
|
});
|
|
194
|
-
},
|
|
195
|
-
|
|
196
|
-
},
|
|
197
|
-
if (!
|
|
218
|
+
}, z = (A) => {
|
|
219
|
+
C.send(o.RequestCloseApp, A);
|
|
220
|
+
}, M = async () => {
|
|
221
|
+
if (!C.checkPremissionEvent(o.RequestVibrate)) {
|
|
198
222
|
const A = {
|
|
199
223
|
type: s.ResponseVibrate,
|
|
200
|
-
status:
|
|
224
|
+
status: t.PREMISSION_ERROR
|
|
201
225
|
};
|
|
202
226
|
return Promise.resolve(A);
|
|
203
227
|
}
|
|
204
|
-
|
|
205
|
-
},
|
|
206
|
-
if (!
|
|
228
|
+
C.send(o.RequestVibrate);
|
|
229
|
+
}, k = async (A) => {
|
|
230
|
+
if (!C.getInitialized())
|
|
231
|
+
throw new Error("SDK not initialized");
|
|
232
|
+
if (C.getBrowserMode()) {
|
|
233
|
+
if (!C.checkPremissionEvent(o.RequestCall)) {
|
|
234
|
+
const I = {
|
|
235
|
+
type: s.ResponseCall,
|
|
236
|
+
status: t.PREMISSION_ERROR
|
|
237
|
+
};
|
|
238
|
+
return Promise.resolve(I);
|
|
239
|
+
}
|
|
240
|
+
window.open(`tel:${A}`);
|
|
207
241
|
const g = {
|
|
208
242
|
type: s.ResponseCall,
|
|
209
|
-
status:
|
|
243
|
+
status: t.SUCCESS
|
|
210
244
|
};
|
|
211
245
|
return Promise.resolve(g);
|
|
212
246
|
}
|
|
213
|
-
|
|
214
|
-
},
|
|
215
|
-
if (!
|
|
247
|
+
C.send(o.RequestCall, { phoneNumber: A });
|
|
248
|
+
}, Y = async (A) => {
|
|
249
|
+
if (!C.getInitialized())
|
|
250
|
+
throw new Error("SDK not initialized");
|
|
251
|
+
if (C.getBrowserMode()) {
|
|
252
|
+
if (!C.checkPremissionEvent(o.RequestSms)) {
|
|
253
|
+
const I = {
|
|
254
|
+
type: s.ResponseSms,
|
|
255
|
+
status: t.PREMISSION_ERROR
|
|
256
|
+
};
|
|
257
|
+
return Promise.resolve(I);
|
|
258
|
+
}
|
|
259
|
+
window.open(`sms::${A}`);
|
|
216
260
|
const g = {
|
|
217
261
|
type: s.ResponseSms,
|
|
218
|
-
status:
|
|
262
|
+
status: t.SUCCESS
|
|
219
263
|
};
|
|
220
264
|
return Promise.resolve(g);
|
|
221
265
|
}
|
|
222
|
-
|
|
223
|
-
},
|
|
224
|
-
if (!
|
|
266
|
+
C.send(o.RequestSms, { phoneNumber: A });
|
|
267
|
+
}, v = async (A) => {
|
|
268
|
+
if (!C.getInitialized())
|
|
225
269
|
throw new Error("SDK not initialized");
|
|
226
|
-
if (
|
|
270
|
+
if (C.getBrowserMode()) {
|
|
227
271
|
const g = {
|
|
228
272
|
type: s.ResponseConfigApp,
|
|
229
|
-
status:
|
|
273
|
+
status: t.SUCCESS
|
|
230
274
|
};
|
|
231
275
|
return Promise.resolve(g);
|
|
232
276
|
}
|
|
233
|
-
return new Promise((g,
|
|
234
|
-
const e = (
|
|
235
|
-
|
|
277
|
+
return new Promise((g, I) => {
|
|
278
|
+
const e = (n) => {
|
|
279
|
+
n.status === t.ERROR ? I(n) : g(n), C.off(s.ResponseConfigApp, e);
|
|
236
280
|
};
|
|
237
|
-
|
|
281
|
+
C.on(s.ResponseConfigApp, e), C.send(o.RequestConfigUIApp, A);
|
|
238
282
|
});
|
|
239
|
-
},
|
|
240
|
-
if (!
|
|
283
|
+
}, K = async (A) => {
|
|
284
|
+
if (!C.getInitialized())
|
|
241
285
|
throw new Error("SDK not initialized");
|
|
242
|
-
if (
|
|
243
|
-
if (!
|
|
244
|
-
const
|
|
286
|
+
if (C.getBrowserMode()) {
|
|
287
|
+
if (!C.checkPremissionEvent(o.requestGetPermission)) {
|
|
288
|
+
const I = {
|
|
245
289
|
type: s.ResponseGetPermisstion,
|
|
246
|
-
status:
|
|
290
|
+
status: t.PREMISSION_ERROR
|
|
247
291
|
};
|
|
248
|
-
return Promise.resolve(
|
|
292
|
+
return Promise.resolve(I);
|
|
249
293
|
}
|
|
250
294
|
const g = {
|
|
251
295
|
type: s.ResponseGetPermisstion,
|
|
252
|
-
status:
|
|
253
|
-
data:
|
|
296
|
+
status: t.SUCCESS,
|
|
297
|
+
data: C.checkPremissionEvent(A)
|
|
254
298
|
};
|
|
255
299
|
return Promise.resolve(g);
|
|
256
300
|
}
|
|
257
|
-
return new Promise((g,
|
|
258
|
-
const e = (
|
|
259
|
-
|
|
301
|
+
return new Promise((g, I) => {
|
|
302
|
+
const e = (n) => {
|
|
303
|
+
n.status === t.ERROR ? I(n) : g(n), C.off(s.ResponseGetPermisstion, e);
|
|
260
304
|
};
|
|
261
|
-
|
|
305
|
+
C.on(s.ResponseGetPermisstion, e), C.send(o.requestGetPermission, { type: A });
|
|
262
306
|
});
|
|
263
|
-
},
|
|
264
|
-
|
|
307
|
+
}, y = {
|
|
308
|
+
status: "success",
|
|
309
|
+
message: "Tạo đơn hàng thành công"
|
|
310
|
+
}, D = async (A) => {
|
|
311
|
+
if (!C.getInitialized())
|
|
265
312
|
throw new Error("SDK not initialized");
|
|
266
|
-
if (
|
|
313
|
+
if (C.getBrowserMode()) {
|
|
314
|
+
if (!C.checkPremissionEvent(o.RequestPayment)) {
|
|
315
|
+
const I = {
|
|
316
|
+
type: s.ResponsePayment,
|
|
317
|
+
status: t.PREMISSION_ERROR
|
|
318
|
+
};
|
|
319
|
+
return Promise.resolve(I);
|
|
320
|
+
}
|
|
267
321
|
const g = {
|
|
268
322
|
type: s.ResponsePayment,
|
|
269
|
-
status:
|
|
270
|
-
data:
|
|
271
|
-
status: "success"
|
|
272
|
-
}
|
|
323
|
+
status: t.SUCCESS,
|
|
324
|
+
data: y
|
|
273
325
|
};
|
|
274
326
|
return Promise.resolve(g);
|
|
275
327
|
}
|
|
276
|
-
return new Promise((g,
|
|
277
|
-
const e = (
|
|
278
|
-
|
|
328
|
+
return new Promise((g, I) => {
|
|
329
|
+
const e = (n) => {
|
|
330
|
+
n.status === t.ERROR ? I(n) : g(n), C.off(s.ResponsePayment, e);
|
|
279
331
|
};
|
|
280
|
-
|
|
332
|
+
C.on(s.ResponsePayment, e), C.send(o.RequestPayment, A);
|
|
281
333
|
});
|
|
282
|
-
},
|
|
283
|
-
const
|
|
284
|
-
if (!
|
|
334
|
+
}, b = (A, g) => {
|
|
335
|
+
const I = g || C;
|
|
336
|
+
if (!I.getInitialized())
|
|
285
337
|
throw new Error("SDK not initialized");
|
|
286
|
-
const e = (
|
|
287
|
-
A(
|
|
338
|
+
const e = (n) => {
|
|
339
|
+
A(n);
|
|
288
340
|
};
|
|
289
|
-
return
|
|
290
|
-
|
|
341
|
+
return I.on(s.ResponsePayment, e), () => {
|
|
342
|
+
I.off(s.ResponsePayment, e);
|
|
291
343
|
};
|
|
292
|
-
},
|
|
293
|
-
|
|
344
|
+
}, G = {
|
|
345
|
+
latitude: 21.0239852,
|
|
346
|
+
longitude: 105.791488
|
|
347
|
+
}, j = async () => {
|
|
348
|
+
if (!C.getInitialized())
|
|
294
349
|
throw new Error("SDK not initialized");
|
|
295
|
-
if (
|
|
296
|
-
if (!
|
|
350
|
+
if (C.getBrowserMode()) {
|
|
351
|
+
if (!C.checkPremissionEvent(o.RequestCurrentLocation)) {
|
|
297
352
|
const g = {
|
|
298
353
|
type: s.ResponseCurrentLocation,
|
|
299
|
-
status:
|
|
354
|
+
status: t.PREMISSION_ERROR
|
|
300
355
|
};
|
|
301
356
|
return Promise.resolve(g);
|
|
302
357
|
}
|
|
303
358
|
const A = {
|
|
304
359
|
type: s.ResponseCurrentLocation,
|
|
305
|
-
status:
|
|
360
|
+
status: t.SUCCESS,
|
|
361
|
+
data: G
|
|
306
362
|
};
|
|
307
363
|
return Promise.resolve(A);
|
|
308
364
|
}
|
|
309
365
|
return new Promise((A, g) => {
|
|
310
|
-
const
|
|
311
|
-
e.status ===
|
|
366
|
+
const I = (e) => {
|
|
367
|
+
e.status === t.ERROR ? g(e) : A(e), C.off(s.ResponseCurrentLocation, I);
|
|
312
368
|
};
|
|
313
|
-
|
|
369
|
+
C.on(s.ResponseCurrentLocation, I), C.send(o.RequestCurrentLocation);
|
|
314
370
|
});
|
|
315
|
-
},
|
|
316
|
-
if (!
|
|
371
|
+
}, q = async () => {
|
|
372
|
+
if (!C.getInitialized())
|
|
317
373
|
throw new Error("SDK not initialized");
|
|
318
|
-
if (
|
|
319
|
-
if (!
|
|
374
|
+
if (C.getBrowserMode()) {
|
|
375
|
+
if (!C.checkPremissionEvent(o.RequestLocationPermission)) {
|
|
320
376
|
const g = {
|
|
321
377
|
type: s.ResponseLocationPermission,
|
|
322
|
-
status:
|
|
378
|
+
status: t.PREMISSION_ERROR
|
|
323
379
|
};
|
|
324
380
|
return Promise.resolve(g);
|
|
325
381
|
}
|
|
326
382
|
const A = {
|
|
327
383
|
type: s.ResponseLocationPermission,
|
|
328
|
-
status:
|
|
384
|
+
status: t.SUCCESS
|
|
329
385
|
};
|
|
330
386
|
return Promise.resolve(A);
|
|
331
387
|
}
|
|
332
388
|
return new Promise((A, g) => {
|
|
333
|
-
const
|
|
334
|
-
e.status ===
|
|
389
|
+
const I = (e) => {
|
|
390
|
+
e.status === t.ERROR ? g(e) : A(e), C.off(s.ResponseLocationPermission, I);
|
|
335
391
|
};
|
|
336
|
-
|
|
392
|
+
C.on(s.ResponseLocationPermission, I), C.send(o.RequestLocationPermission);
|
|
337
393
|
});
|
|
338
|
-
},
|
|
339
|
-
const
|
|
340
|
-
if (!
|
|
394
|
+
}, J = (A, g) => {
|
|
395
|
+
const I = g || C;
|
|
396
|
+
if (!I.getInitialized())
|
|
341
397
|
throw new Error("SDK not initialized");
|
|
342
|
-
const e = (
|
|
343
|
-
A(
|
|
398
|
+
const e = (n) => {
|
|
399
|
+
A(n);
|
|
344
400
|
};
|
|
345
|
-
return
|
|
346
|
-
|
|
401
|
+
return I.on(s.ResponseNotification, e), () => {
|
|
402
|
+
I.off(s.ResponseNotification, e);
|
|
347
403
|
};
|
|
404
|
+
}, c = "mini_app_sdk_x_app", W = async (A) => {
|
|
405
|
+
if (!C.getInitialized())
|
|
406
|
+
throw new Error("SDK not initialized");
|
|
407
|
+
if (C.getBrowserMode()) {
|
|
408
|
+
if (!C.checkPremissionEvent(o.requestSaveStore)) {
|
|
409
|
+
const I = {
|
|
410
|
+
type: s.responseSaveStore,
|
|
411
|
+
status: t.PREMISSION_ERROR
|
|
412
|
+
};
|
|
413
|
+
return Promise.resolve(I);
|
|
414
|
+
}
|
|
415
|
+
localStorage.setItem(c, A);
|
|
416
|
+
const g = {
|
|
417
|
+
type: s.responseSaveStore,
|
|
418
|
+
status: t.SUCCESS
|
|
419
|
+
};
|
|
420
|
+
return Promise.resolve(g);
|
|
421
|
+
}
|
|
422
|
+
return new Promise((g, I) => {
|
|
423
|
+
const e = (n) => {
|
|
424
|
+
n.status === t.ERROR ? I(n) : g(n), C.off(s.responseSaveStore, e);
|
|
425
|
+
};
|
|
426
|
+
C.on(s.responseSaveStore, e), C.send(o.requestSaveStore, { data: A });
|
|
427
|
+
});
|
|
428
|
+
}, U = async () => {
|
|
429
|
+
if (!C.getInitialized())
|
|
430
|
+
throw new Error("SDK not initialized");
|
|
431
|
+
if (C.getBrowserMode()) {
|
|
432
|
+
if (!C.checkPremissionEvent(o.requestGetStore)) {
|
|
433
|
+
const I = {
|
|
434
|
+
type: s.responseGetStore,
|
|
435
|
+
status: t.PREMISSION_ERROR
|
|
436
|
+
};
|
|
437
|
+
return Promise.resolve(I);
|
|
438
|
+
}
|
|
439
|
+
const A = localStorage.getItem(c), g = {
|
|
440
|
+
type: s.responseGetStore,
|
|
441
|
+
status: t.SUCCESS,
|
|
442
|
+
data: A ?? ""
|
|
443
|
+
};
|
|
444
|
+
return Promise.resolve(g);
|
|
445
|
+
}
|
|
446
|
+
return new Promise((A, g) => {
|
|
447
|
+
const I = (e) => {
|
|
448
|
+
e.status === t.ERROR ? g(e) : A(e), C.off(s.responseGetStore, I);
|
|
449
|
+
};
|
|
450
|
+
C.on(s.responseGetStore, I), C.send(o.requestGetStore);
|
|
451
|
+
});
|
|
452
|
+
}, L = async () => {
|
|
453
|
+
if (!C.getInitialized())
|
|
454
|
+
throw new Error("SDK not initialized");
|
|
455
|
+
if (C.getBrowserMode()) {
|
|
456
|
+
if (!C.checkPremissionEvent(o.requestClearStore)) {
|
|
457
|
+
const g = {
|
|
458
|
+
type: s.responseClearStore,
|
|
459
|
+
status: t.PREMISSION_ERROR
|
|
460
|
+
};
|
|
461
|
+
return Promise.resolve(g);
|
|
462
|
+
}
|
|
463
|
+
localStorage.clear();
|
|
464
|
+
const A = {
|
|
465
|
+
type: s.responseClearStore,
|
|
466
|
+
status: t.SUCCESS
|
|
467
|
+
};
|
|
468
|
+
return Promise.resolve(A);
|
|
469
|
+
}
|
|
470
|
+
return new Promise((A, g) => {
|
|
471
|
+
const I = (e) => {
|
|
472
|
+
e.status === t.ERROR ? g(e) : A(e), C.off(s.responseClearStore, I);
|
|
473
|
+
};
|
|
474
|
+
C.on(s.responseClearStore, I), C.send(o.requestClearStore);
|
|
475
|
+
});
|
|
348
476
|
};
|
|
349
477
|
export {
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
478
|
+
u as EKeyInfor,
|
|
479
|
+
P as EMediaType,
|
|
480
|
+
t as EStatus,
|
|
353
481
|
o as ETypeRequest,
|
|
354
482
|
s as ETypeResponse,
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
483
|
+
k as call,
|
|
484
|
+
L as clearStore,
|
|
485
|
+
z as closeApp,
|
|
486
|
+
v as configUIApp,
|
|
487
|
+
j as currentLocation,
|
|
488
|
+
C as fltSDK,
|
|
489
|
+
w as getInfo,
|
|
490
|
+
U as getStore,
|
|
491
|
+
B as getToken,
|
|
492
|
+
J as listenNotifiactionEvent,
|
|
493
|
+
b as listenPaymentEvent,
|
|
494
|
+
Q as openPickerFile,
|
|
495
|
+
Z as openPickerImage,
|
|
496
|
+
D as paymentRequest,
|
|
497
|
+
K as premissionsRequest,
|
|
498
|
+
q as requestLocationPermission,
|
|
499
|
+
W as saveStore,
|
|
500
|
+
Y as sms,
|
|
501
|
+
M as vibrate
|
|
370
502
|
};
|