customer-chat-sdk 1.0.17 → 1.0.20
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 +85 -27
- package/dist/core/IconManager.d.ts +11 -2
- package/dist/core/IconManager.d.ts.map +1 -1
- package/dist/customer-sdk.cjs.js +79 -14
- package/dist/customer-sdk.esm.js +79 -15
- package/dist/customer-sdk.min.js +1 -1
- package/dist/index.d.ts +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
## 🚀 特性
|
|
6
6
|
|
|
7
7
|
- **轻量级集成**: 一行代码快速接入
|
|
8
|
-
- **悬浮图标**:
|
|
8
|
+
- **悬浮图标**: 页面右下角悬浮聊天图标,支持自定义位置(x, y坐标)
|
|
9
|
+
- **可拖拽图标**: 支持鼠标/触摸拖拽移动图标位置
|
|
9
10
|
- **响应式设计**: PC弹窗模式 / 移动端全屏模式
|
|
10
11
|
- **设备指纹**: 自动获取设备唯一标识
|
|
11
12
|
- **iframe隔离**: 完全隔离的聊天界面,避免样式冲突
|
|
@@ -17,20 +18,19 @@
|
|
|
17
18
|
### CDN 引入
|
|
18
19
|
|
|
19
20
|
```html
|
|
20
|
-
<script src="https://cdn.jsdelivr.net/npm/customer-chat-sdk@1.0.
|
|
21
|
+
<script src="https://cdn.jsdelivr.net/npm/customer-chat-sdk@1.0.20/dist/customer-sdk.min.js"></script>
|
|
21
22
|
<script>
|
|
22
23
|
CustomerSDK.init({
|
|
23
24
|
agent: 'your_agent_id',
|
|
24
|
-
userId: 'user_123',
|
|
25
25
|
token: 'jwt_token',
|
|
26
|
-
|
|
26
|
+
iframeUrl: 'https://chat.example.com'
|
|
27
27
|
});
|
|
28
28
|
</script>
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
**或者使用 unpkg:**
|
|
32
32
|
```html
|
|
33
|
-
<script src="https://unpkg.com/customer-chat-sdk@1.0.
|
|
33
|
+
<script src="https://unpkg.com/customer-chat-sdk@1.0.20/dist/customer-sdk.min.js"></script>
|
|
34
34
|
```
|
|
35
35
|
|
|
36
36
|
### NPM 安装
|
|
@@ -43,9 +43,8 @@ import CustomerSDK from 'customer-chat-sdk';
|
|
|
43
43
|
|
|
44
44
|
CustomerSDK.init({
|
|
45
45
|
agent: 'your_agent_id',
|
|
46
|
-
userId: 'user_123',
|
|
47
46
|
token: 'jwt_token',
|
|
48
|
-
|
|
47
|
+
iframeUrl: 'https://chat.example.com'
|
|
49
48
|
});
|
|
50
49
|
```
|
|
51
50
|
|
|
@@ -57,10 +56,20 @@ CustomerSDK.init({
|
|
|
57
56
|
// 初始化SDK
|
|
58
57
|
await CustomerSDK.init({
|
|
59
58
|
agent: 'agent_123',
|
|
60
|
-
userId: 'user_456',
|
|
61
59
|
token: 'jwt_token_here',
|
|
62
|
-
|
|
60
|
+
iframeUrl: 'https://chat.example.com',
|
|
63
61
|
debug: true
|
|
62
|
+
}, {
|
|
63
|
+
// 自定义图标位置(可选)
|
|
64
|
+
iconPosition: {
|
|
65
|
+
x: 20, // 距离左边的距离(像素)
|
|
66
|
+
y: 80 // 距离顶部的距离(像素)
|
|
67
|
+
},
|
|
68
|
+
// 或者使用CSS值
|
|
69
|
+
// iconPosition: {
|
|
70
|
+
// x: '20px',
|
|
71
|
+
// y: '10%'
|
|
72
|
+
// }
|
|
64
73
|
});
|
|
65
74
|
|
|
66
75
|
// 关闭悬浮图标
|
|
@@ -69,6 +78,9 @@ CustomerSDK.hideIcon();
|
|
|
69
78
|
// 打开悬浮图标
|
|
70
79
|
CustomerSDK.showIcon();
|
|
71
80
|
|
|
81
|
+
// 动态设置图标位置
|
|
82
|
+
CustomerSDK.setIconCoordinates({ x: 50, y: 100 });
|
|
83
|
+
|
|
72
84
|
// 打开聊天窗口
|
|
73
85
|
CustomerSDK.openChat();
|
|
74
86
|
|
|
@@ -87,10 +99,8 @@ CustomerSDK.clearNotification(); // 清除通知
|
|
|
87
99
|
// 完整的配置选项
|
|
88
100
|
await CustomerSDK.init({
|
|
89
101
|
agent: 'your_agent_id',
|
|
90
|
-
userId: 'your_user_id',
|
|
91
102
|
token: 'your_jwt_token',
|
|
92
|
-
|
|
93
|
-
apiBaseUrl: 'https://api.example.com',
|
|
103
|
+
iframeUrl: 'https://chat.example.com',
|
|
94
104
|
debug: true
|
|
95
105
|
}, {
|
|
96
106
|
// iframe选项(可选)
|
|
@@ -99,7 +109,12 @@ await CustomerSDK.init({
|
|
|
99
109
|
mode: 'auto', // 'auto' | 'fullscreen' | 'popup'
|
|
100
110
|
draggable: false,
|
|
101
111
|
resizable: false,
|
|
102
|
-
allowClose: true
|
|
112
|
+
allowClose: true,
|
|
113
|
+
// 图标位置配置(可选)
|
|
114
|
+
iconPosition: {
|
|
115
|
+
x: 20, // 距离左边的距离(像素或CSS值,如'20px'、'10%')
|
|
116
|
+
y: 80 // 距离顶部的距离(像素或CSS值,如'80px'、'10%')
|
|
117
|
+
}
|
|
103
118
|
});
|
|
104
119
|
```
|
|
105
120
|
|
|
@@ -120,14 +135,30 @@ await CustomerSDK.init({
|
|
|
120
135
|
```typescript
|
|
121
136
|
interface SDKConfig {
|
|
122
137
|
agent: string; // 代理商ID
|
|
123
|
-
userId: string; // 用户ID
|
|
124
138
|
token: string; // 认证令牌
|
|
125
|
-
|
|
126
|
-
apiBaseUrl?: string; // API基础地址
|
|
139
|
+
iframeUrl: string; // iframe聊天页面URL (必需)
|
|
127
140
|
debug?: boolean; // 调试模式
|
|
128
141
|
}
|
|
129
142
|
```
|
|
130
143
|
|
|
144
|
+
**ChatWindowOptions:**
|
|
145
|
+
```typescript
|
|
146
|
+
interface ChatWindowOptions {
|
|
147
|
+
width?: number; // iframe宽度
|
|
148
|
+
height?: number; // iframe高度
|
|
149
|
+
position?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
|
|
150
|
+
draggable?: boolean; // 是否可拖拽
|
|
151
|
+
resizable?: boolean; // 是否可调整大小
|
|
152
|
+
minimizable?: boolean; // 是否可最小化
|
|
153
|
+
iconPosition?: IconPosition; // 图标位置配置
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
interface IconPosition {
|
|
157
|
+
x?: number | string; // x坐标(像素值或CSS值,如'20px'、'10%')
|
|
158
|
+
y?: number | string; // y坐标(像素值或CSS值,如'80px'、'10%')
|
|
159
|
+
}
|
|
160
|
+
```
|
|
161
|
+
|
|
131
162
|
### 核心方法
|
|
132
163
|
|
|
133
164
|
#### `CustomerSDK.openChat()` / `CustomerSDK.closeChat()`
|
|
@@ -138,6 +169,35 @@ interface SDKConfig {
|
|
|
138
169
|
|
|
139
170
|
显示或隐藏悬浮图标。
|
|
140
171
|
|
|
172
|
+
#### `CustomerSDK.setIconPosition(position)`
|
|
173
|
+
|
|
174
|
+
设置图标到预设位置(兼容旧API)。
|
|
175
|
+
|
|
176
|
+
**参数:**
|
|
177
|
+
- `position` ('top-left' | 'top-right' | 'bottom-left' | 'bottom-right'): 预设位置
|
|
178
|
+
|
|
179
|
+
#### `CustomerSDK.setIconCoordinates(position)`
|
|
180
|
+
|
|
181
|
+
设置图标到自定义坐标位置。
|
|
182
|
+
|
|
183
|
+
**参数:**
|
|
184
|
+
- `position` (IconPosition): 位置配置对象
|
|
185
|
+
```typescript
|
|
186
|
+
{
|
|
187
|
+
x?: number | string; // x坐标(像素值或CSS值)
|
|
188
|
+
y?: number | string; // y坐标(像素值或CSS值)
|
|
189
|
+
}
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
**示例:**
|
|
193
|
+
```javascript
|
|
194
|
+
// 使用像素值
|
|
195
|
+
CustomerSDK.setIconCoordinates({ x: 50, y: 100 });
|
|
196
|
+
|
|
197
|
+
// 使用CSS值
|
|
198
|
+
CustomerSDK.setIconCoordinates({ x: '20px', y: '10%' });
|
|
199
|
+
```
|
|
200
|
+
|
|
141
201
|
#### `CustomerSDK.isChatOpen()`
|
|
142
202
|
|
|
143
203
|
检查聊天窗口是否打开。
|
|
@@ -167,15 +227,14 @@ interface SDKConfig {
|
|
|
167
227
|
|
|
168
228
|
SDK会向iframe URL自动添加以下参数:
|
|
169
229
|
|
|
170
|
-
- `
|
|
171
|
-
- `
|
|
172
|
-
- `
|
|
173
|
-
- `
|
|
174
|
-
- `debug`: 调试模式
|
|
230
|
+
- `Agent`: 代理商ID
|
|
231
|
+
- `Authorization`: 认证令牌
|
|
232
|
+
- `DeviceSign`: 设备指纹ID(通过FingerprintJS自动获取)
|
|
233
|
+
- `Referrer`: 页面来源URL(通过`document.referrer`自动获取)
|
|
175
234
|
|
|
176
235
|
**最终URL示例:**
|
|
177
236
|
```
|
|
178
|
-
https://chat.example.com?
|
|
237
|
+
https://chat.example.com?Agent=demo_app&Authorization=test_token_1703123456789&DeviceSign=abc123xyz&Referrer=https://example.com/page
|
|
179
238
|
```
|
|
180
239
|
|
|
181
240
|
## 🔧 响应式设计
|
|
@@ -183,12 +242,12 @@ https://chat.example.com?agent=demo_app&userId=1703123456&token=test_token_17031
|
|
|
183
242
|
SDK自动检测设备类型并应用相应样式:
|
|
184
243
|
|
|
185
244
|
**PC模式:**
|
|
186
|
-
-
|
|
187
|
-
-
|
|
245
|
+
- 悬浮图标:默认右下角,可自定义位置(x, y坐标),支持拖拽移动
|
|
246
|
+
- 聊天窗口:居中弹窗,可通过iframe发送`close`消息关闭
|
|
188
247
|
|
|
189
248
|
**移动端模式:**
|
|
190
|
-
-
|
|
191
|
-
-
|
|
249
|
+
- 悬浮图标:默认右下角,可自定义位置(x, y坐标),支持触摸拖拽移动
|
|
250
|
+
- 聊天窗口:全屏显示,可通过iframe发送`close`消息关闭
|
|
192
251
|
|
|
193
252
|
## 🛠️ 开发
|
|
194
253
|
|
|
@@ -250,7 +309,6 @@ SDK通过postMessage与iframe进行通信:
|
|
|
250
309
|
CustomerSDK.sendToIframe({
|
|
251
310
|
type: 'userInfo',
|
|
252
311
|
data: {
|
|
253
|
-
userId: 'user_123',
|
|
254
312
|
profile: { name: 'John', avatar: '...' }
|
|
255
313
|
}
|
|
256
314
|
});
|
|
@@ -4,6 +4,10 @@ interface NotificationOptions {
|
|
|
4
4
|
badgeText?: string;
|
|
5
5
|
pulse?: boolean;
|
|
6
6
|
}
|
|
7
|
+
interface IconPosition {
|
|
8
|
+
x?: number | string;
|
|
9
|
+
y?: number | string;
|
|
10
|
+
}
|
|
7
11
|
export declare class IconManager {
|
|
8
12
|
private iconElement;
|
|
9
13
|
private badgeElement;
|
|
@@ -16,7 +20,8 @@ export declare class IconManager {
|
|
|
16
20
|
private iconStartY;
|
|
17
21
|
private dragMoveHandler;
|
|
18
22
|
private dragEndHandler;
|
|
19
|
-
|
|
23
|
+
private iconPosition;
|
|
24
|
+
constructor(position?: IconPosition);
|
|
20
25
|
/**
|
|
21
26
|
* 显示悬浮图标
|
|
22
27
|
*/
|
|
@@ -30,9 +35,13 @@ export declare class IconManager {
|
|
|
30
35
|
*/
|
|
31
36
|
hide(): void;
|
|
32
37
|
/**
|
|
33
|
-
*
|
|
38
|
+
* 设置图标位置(兼容旧的position参数)
|
|
34
39
|
*/
|
|
35
40
|
setPosition(position: any): void;
|
|
41
|
+
/**
|
|
42
|
+
* 设置图标坐标位置(x, y)
|
|
43
|
+
*/
|
|
44
|
+
setIconPosition(position: IconPosition): void;
|
|
36
45
|
/**
|
|
37
46
|
* setStyle(暂时保留接口兼容性)
|
|
38
47
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconManager.d.ts","sourceRoot":"","sources":["../../src/core/IconManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"IconManager.d.ts","sourceRoot":"","sources":["../../src/core/IconManager.ts"],"names":[],"mappings":"AAGA,UAAU,mBAAmB;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,UAAU,YAAY;IACpB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACpB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,oBAAoB,CAAqC;IACjE,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,eAAe,CAAsD;IAC7E,OAAO,CAAC,cAAc,CAAsD;IAC5E,OAAO,CAAC,YAAY,CAA4B;gBAEpC,QAAQ,CAAC,EAAE,YAAY;IAInC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA0G3B;;OAEG;IACH,sBAAsB,IAAI,IAAI;IA6B9B;;OAEG;IACH,IAAI,IAAI,IAAI;IAcZ;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI;IAIhC;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAwB7C;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAI1B;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAInC;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAInD;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IA0BpD;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAQzB;;OAEG;IACH,OAAO,CAAC,eAAe;IAYvB;;OAEG;IACH,OAAO,CAAC,eAAe;IAqEvB;;OAEG;IACH,OAAO,CAAC,cAAc;IA+DtB;;OAEG;IACH,OAAO,CAAC,aAAa;IAwBrB;;OAEG;IACH,OAAO,CAAC,WAAW;IAMnB;;OAEG;IACH,OAAO,CAAC,WAAW;CAmDpB"}
|
package/dist/customer-sdk.cjs.js
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
// 直接使用base64字符串,避免打包后路径问题
|
|
6
|
+
const iconImage = 'data:image/png;base64,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';
|
|
7
7
|
class IconManager {
|
|
8
|
-
constructor() {
|
|
8
|
+
constructor(position) {
|
|
9
9
|
this.iconElement = null;
|
|
10
10
|
this.badgeElement = null;
|
|
11
11
|
this.onClickCallback = null;
|
|
@@ -17,6 +17,8 @@ class IconManager {
|
|
|
17
17
|
this.iconStartY = 0;
|
|
18
18
|
this.dragMoveHandler = null;
|
|
19
19
|
this.dragEndHandler = null;
|
|
20
|
+
this.iconPosition = null; // 图标位置配置
|
|
21
|
+
this.iconPosition = position || null;
|
|
20
22
|
}
|
|
21
23
|
/**
|
|
22
24
|
* 显示悬浮图标
|
|
@@ -29,7 +31,7 @@ class IconManager {
|
|
|
29
31
|
this.iconElement = document.createElement('div');
|
|
30
32
|
this.iconElement.className = 'customer-sdk-icon';
|
|
31
33
|
// 直接设置样式 - 图标容器
|
|
32
|
-
|
|
34
|
+
const defaultStyle = {
|
|
33
35
|
position: 'fixed',
|
|
34
36
|
width: '30px',
|
|
35
37
|
height: '30px',
|
|
@@ -45,13 +47,38 @@ class IconManager {
|
|
|
45
47
|
transition: 'transform 0.2s ease',
|
|
46
48
|
border: 'none',
|
|
47
49
|
outline: 'none',
|
|
48
|
-
bottom: '80px',
|
|
49
|
-
right: '20px',
|
|
50
50
|
overflow: 'visible' // 允许红点显示在图标外部
|
|
51
|
-
}
|
|
52
|
-
//
|
|
51
|
+
};
|
|
52
|
+
// 如果指定了位置,使用left/top;否则使用默认的bottom/right
|
|
53
|
+
if (this.iconPosition) {
|
|
54
|
+
if (this.iconPosition.x !== undefined) {
|
|
55
|
+
defaultStyle.left = typeof this.iconPosition.x === 'number'
|
|
56
|
+
? `${this.iconPosition.x}px`
|
|
57
|
+
: this.iconPosition.x;
|
|
58
|
+
defaultStyle.right = 'auto';
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
defaultStyle.right = '20px';
|
|
62
|
+
}
|
|
63
|
+
if (this.iconPosition.y !== undefined) {
|
|
64
|
+
defaultStyle.top = typeof this.iconPosition.y === 'number'
|
|
65
|
+
? `${this.iconPosition.y}px`
|
|
66
|
+
: this.iconPosition.y;
|
|
67
|
+
defaultStyle.bottom = 'auto';
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
defaultStyle.bottom = '80px';
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
// 默认位置:右下角
|
|
75
|
+
defaultStyle.bottom = '80px';
|
|
76
|
+
defaultStyle.right = '20px';
|
|
77
|
+
}
|
|
78
|
+
Object.assign(this.iconElement.style, defaultStyle);
|
|
79
|
+
// 添加图标图片(直接使用base64字符串,避免打包后路径问题)
|
|
53
80
|
const iconImg = document.createElement('img');
|
|
54
|
-
iconImg.src = iconImage;
|
|
81
|
+
iconImg.src = iconImage; // iconImage是base64字符串
|
|
55
82
|
iconImg.style.width = '100%';
|
|
56
83
|
iconImg.style.height = '100%';
|
|
57
84
|
iconImg.style.objectFit = 'cover'; // 改为cover,让图片填充整个容器
|
|
@@ -138,10 +165,35 @@ class IconManager {
|
|
|
138
165
|
}
|
|
139
166
|
}
|
|
140
167
|
/**
|
|
141
|
-
*
|
|
168
|
+
* 设置图标位置(兼容旧的position参数)
|
|
142
169
|
*/
|
|
143
170
|
setPosition(position) {
|
|
144
|
-
//
|
|
171
|
+
// 现在固定为右下角,不做处理(保留兼容性)
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* 设置图标坐标位置(x, y)
|
|
175
|
+
*/
|
|
176
|
+
setIconPosition(position) {
|
|
177
|
+
this.iconPosition = position;
|
|
178
|
+
if (this.iconElement) {
|
|
179
|
+
// 更新现有图标的位置
|
|
180
|
+
if (position.x !== undefined) {
|
|
181
|
+
this.iconElement.style.left = typeof position.x === 'number'
|
|
182
|
+
? `${position.x}px`
|
|
183
|
+
: position.x;
|
|
184
|
+
this.iconElement.style.right = 'auto';
|
|
185
|
+
}
|
|
186
|
+
if (position.y !== undefined) {
|
|
187
|
+
this.iconElement.style.top = typeof position.y === 'number'
|
|
188
|
+
? `${position.y}px`
|
|
189
|
+
: position.y;
|
|
190
|
+
this.iconElement.style.bottom = 'auto';
|
|
191
|
+
}
|
|
192
|
+
// 保存当前位置用于拖动
|
|
193
|
+
const rect = this.iconElement.getBoundingClientRect();
|
|
194
|
+
this.iconStartX = rect.left;
|
|
195
|
+
this.iconStartY = rect.top;
|
|
196
|
+
}
|
|
145
197
|
}
|
|
146
198
|
/**
|
|
147
199
|
* setStyle(暂时保留接口兼容性)
|
|
@@ -4165,8 +4217,9 @@ class CustomerServiceSDK {
|
|
|
4165
4217
|
console.log('Device ID:', deviceId);
|
|
4166
4218
|
// 构建iframe URL(带参数)
|
|
4167
4219
|
const iframeUrl = this.buildIframeUrl(config, deviceId);
|
|
4168
|
-
//
|
|
4169
|
-
|
|
4220
|
+
// 创建悬浮图标管理器(支持自定义位置)
|
|
4221
|
+
const iconPosition = options?.iconPosition || undefined;
|
|
4222
|
+
this.iconManager = new IconManager(iconPosition);
|
|
4170
4223
|
await this.iconManager.show();
|
|
4171
4224
|
// 创建iframe管理器(自动检测设备类型)
|
|
4172
4225
|
this.iframeManager = new IframeManager({
|
|
@@ -4175,7 +4228,7 @@ class CustomerServiceSDK {
|
|
|
4175
4228
|
width: 400,
|
|
4176
4229
|
height: 600,
|
|
4177
4230
|
allowClose: true,
|
|
4178
|
-
onMessage: (messageType,
|
|
4231
|
+
onMessage: (messageType, _data) => {
|
|
4179
4232
|
// 处理来自iframe的消息
|
|
4180
4233
|
if (messageType === 'new-message') {
|
|
4181
4234
|
// 显示红点通知(只显示红点,不显示数字)
|
|
@@ -4219,6 +4272,12 @@ class CustomerServiceSDK {
|
|
|
4219
4272
|
setIconPosition(position) {
|
|
4220
4273
|
this.iconManager?.setPosition(position);
|
|
4221
4274
|
}
|
|
4275
|
+
/**
|
|
4276
|
+
* 设置图标坐标位置(x, y)
|
|
4277
|
+
*/
|
|
4278
|
+
setIconCoordinates(position) {
|
|
4279
|
+
this.iconManager?.setIconPosition(position);
|
|
4280
|
+
}
|
|
4222
4281
|
/**
|
|
4223
4282
|
* 更新图标样式
|
|
4224
4283
|
*/
|
|
@@ -4370,6 +4429,10 @@ const setIconPosition = (position) => {
|
|
|
4370
4429
|
const sdk = getInstance();
|
|
4371
4430
|
sdk.setIconPosition(position);
|
|
4372
4431
|
};
|
|
4432
|
+
const setIconCoordinates = (position) => {
|
|
4433
|
+
const sdk = getInstance();
|
|
4434
|
+
sdk.setIconCoordinates(position);
|
|
4435
|
+
};
|
|
4373
4436
|
const setIconStyle = (style) => {
|
|
4374
4437
|
const sdk = getInstance();
|
|
4375
4438
|
sdk.setIconStyle(style);
|
|
@@ -4426,6 +4489,7 @@ var index = {
|
|
|
4426
4489
|
showIcon,
|
|
4427
4490
|
hideIcon,
|
|
4428
4491
|
setIconPosition,
|
|
4492
|
+
setIconCoordinates,
|
|
4429
4493
|
setIconStyle,
|
|
4430
4494
|
openChat,
|
|
4431
4495
|
closeChat,
|
|
@@ -4449,6 +4513,7 @@ exports.init = init;
|
|
|
4449
4513
|
exports.isChatOpen = isChatOpen;
|
|
4450
4514
|
exports.openChat = openChat;
|
|
4451
4515
|
exports.sendToIframe = sendToIframe;
|
|
4516
|
+
exports.setIconCoordinates = setIconCoordinates;
|
|
4452
4517
|
exports.setIconPosition = setIconPosition;
|
|
4453
4518
|
exports.setIconStyle = setIconStyle;
|
|
4454
4519
|
exports.showIcon = showIcon;
|
package/dist/customer-sdk.esm.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
// 直接使用base64字符串,避免打包后路径问题
|
|
2
|
+
const iconImage = 'data:image/png;base64,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';
|
|
3
3
|
class IconManager {
|
|
4
|
-
constructor() {
|
|
4
|
+
constructor(position) {
|
|
5
5
|
this.iconElement = null;
|
|
6
6
|
this.badgeElement = null;
|
|
7
7
|
this.onClickCallback = null;
|
|
@@ -13,6 +13,8 @@ class IconManager {
|
|
|
13
13
|
this.iconStartY = 0;
|
|
14
14
|
this.dragMoveHandler = null;
|
|
15
15
|
this.dragEndHandler = null;
|
|
16
|
+
this.iconPosition = null; // 图标位置配置
|
|
17
|
+
this.iconPosition = position || null;
|
|
16
18
|
}
|
|
17
19
|
/**
|
|
18
20
|
* 显示悬浮图标
|
|
@@ -25,7 +27,7 @@ class IconManager {
|
|
|
25
27
|
this.iconElement = document.createElement('div');
|
|
26
28
|
this.iconElement.className = 'customer-sdk-icon';
|
|
27
29
|
// 直接设置样式 - 图标容器
|
|
28
|
-
|
|
30
|
+
const defaultStyle = {
|
|
29
31
|
position: 'fixed',
|
|
30
32
|
width: '30px',
|
|
31
33
|
height: '30px',
|
|
@@ -41,13 +43,38 @@ class IconManager {
|
|
|
41
43
|
transition: 'transform 0.2s ease',
|
|
42
44
|
border: 'none',
|
|
43
45
|
outline: 'none',
|
|
44
|
-
bottom: '80px',
|
|
45
|
-
right: '20px',
|
|
46
46
|
overflow: 'visible' // 允许红点显示在图标外部
|
|
47
|
-
}
|
|
48
|
-
//
|
|
47
|
+
};
|
|
48
|
+
// 如果指定了位置,使用left/top;否则使用默认的bottom/right
|
|
49
|
+
if (this.iconPosition) {
|
|
50
|
+
if (this.iconPosition.x !== undefined) {
|
|
51
|
+
defaultStyle.left = typeof this.iconPosition.x === 'number'
|
|
52
|
+
? `${this.iconPosition.x}px`
|
|
53
|
+
: this.iconPosition.x;
|
|
54
|
+
defaultStyle.right = 'auto';
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
defaultStyle.right = '20px';
|
|
58
|
+
}
|
|
59
|
+
if (this.iconPosition.y !== undefined) {
|
|
60
|
+
defaultStyle.top = typeof this.iconPosition.y === 'number'
|
|
61
|
+
? `${this.iconPosition.y}px`
|
|
62
|
+
: this.iconPosition.y;
|
|
63
|
+
defaultStyle.bottom = 'auto';
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
defaultStyle.bottom = '80px';
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
// 默认位置:右下角
|
|
71
|
+
defaultStyle.bottom = '80px';
|
|
72
|
+
defaultStyle.right = '20px';
|
|
73
|
+
}
|
|
74
|
+
Object.assign(this.iconElement.style, defaultStyle);
|
|
75
|
+
// 添加图标图片(直接使用base64字符串,避免打包后路径问题)
|
|
49
76
|
const iconImg = document.createElement('img');
|
|
50
|
-
iconImg.src = iconImage;
|
|
77
|
+
iconImg.src = iconImage; // iconImage是base64字符串
|
|
51
78
|
iconImg.style.width = '100%';
|
|
52
79
|
iconImg.style.height = '100%';
|
|
53
80
|
iconImg.style.objectFit = 'cover'; // 改为cover,让图片填充整个容器
|
|
@@ -134,10 +161,35 @@ class IconManager {
|
|
|
134
161
|
}
|
|
135
162
|
}
|
|
136
163
|
/**
|
|
137
|
-
*
|
|
164
|
+
* 设置图标位置(兼容旧的position参数)
|
|
138
165
|
*/
|
|
139
166
|
setPosition(position) {
|
|
140
|
-
//
|
|
167
|
+
// 现在固定为右下角,不做处理(保留兼容性)
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* 设置图标坐标位置(x, y)
|
|
171
|
+
*/
|
|
172
|
+
setIconPosition(position) {
|
|
173
|
+
this.iconPosition = position;
|
|
174
|
+
if (this.iconElement) {
|
|
175
|
+
// 更新现有图标的位置
|
|
176
|
+
if (position.x !== undefined) {
|
|
177
|
+
this.iconElement.style.left = typeof position.x === 'number'
|
|
178
|
+
? `${position.x}px`
|
|
179
|
+
: position.x;
|
|
180
|
+
this.iconElement.style.right = 'auto';
|
|
181
|
+
}
|
|
182
|
+
if (position.y !== undefined) {
|
|
183
|
+
this.iconElement.style.top = typeof position.y === 'number'
|
|
184
|
+
? `${position.y}px`
|
|
185
|
+
: position.y;
|
|
186
|
+
this.iconElement.style.bottom = 'auto';
|
|
187
|
+
}
|
|
188
|
+
// 保存当前位置用于拖动
|
|
189
|
+
const rect = this.iconElement.getBoundingClientRect();
|
|
190
|
+
this.iconStartX = rect.left;
|
|
191
|
+
this.iconStartY = rect.top;
|
|
192
|
+
}
|
|
141
193
|
}
|
|
142
194
|
/**
|
|
143
195
|
* setStyle(暂时保留接口兼容性)
|
|
@@ -4161,8 +4213,9 @@ class CustomerServiceSDK {
|
|
|
4161
4213
|
console.log('Device ID:', deviceId);
|
|
4162
4214
|
// 构建iframe URL(带参数)
|
|
4163
4215
|
const iframeUrl = this.buildIframeUrl(config, deviceId);
|
|
4164
|
-
//
|
|
4165
|
-
|
|
4216
|
+
// 创建悬浮图标管理器(支持自定义位置)
|
|
4217
|
+
const iconPosition = options?.iconPosition || undefined;
|
|
4218
|
+
this.iconManager = new IconManager(iconPosition);
|
|
4166
4219
|
await this.iconManager.show();
|
|
4167
4220
|
// 创建iframe管理器(自动检测设备类型)
|
|
4168
4221
|
this.iframeManager = new IframeManager({
|
|
@@ -4171,7 +4224,7 @@ class CustomerServiceSDK {
|
|
|
4171
4224
|
width: 400,
|
|
4172
4225
|
height: 600,
|
|
4173
4226
|
allowClose: true,
|
|
4174
|
-
onMessage: (messageType,
|
|
4227
|
+
onMessage: (messageType, _data) => {
|
|
4175
4228
|
// 处理来自iframe的消息
|
|
4176
4229
|
if (messageType === 'new-message') {
|
|
4177
4230
|
// 显示红点通知(只显示红点,不显示数字)
|
|
@@ -4215,6 +4268,12 @@ class CustomerServiceSDK {
|
|
|
4215
4268
|
setIconPosition(position) {
|
|
4216
4269
|
this.iconManager?.setPosition(position);
|
|
4217
4270
|
}
|
|
4271
|
+
/**
|
|
4272
|
+
* 设置图标坐标位置(x, y)
|
|
4273
|
+
*/
|
|
4274
|
+
setIconCoordinates(position) {
|
|
4275
|
+
this.iconManager?.setIconPosition(position);
|
|
4276
|
+
}
|
|
4218
4277
|
/**
|
|
4219
4278
|
* 更新图标样式
|
|
4220
4279
|
*/
|
|
@@ -4366,6 +4425,10 @@ const setIconPosition = (position) => {
|
|
|
4366
4425
|
const sdk = getInstance();
|
|
4367
4426
|
sdk.setIconPosition(position);
|
|
4368
4427
|
};
|
|
4428
|
+
const setIconCoordinates = (position) => {
|
|
4429
|
+
const sdk = getInstance();
|
|
4430
|
+
sdk.setIconCoordinates(position);
|
|
4431
|
+
};
|
|
4369
4432
|
const setIconStyle = (style) => {
|
|
4370
4433
|
const sdk = getInstance();
|
|
4371
4434
|
sdk.setIconStyle(style);
|
|
@@ -4422,6 +4485,7 @@ var index = {
|
|
|
4422
4485
|
showIcon,
|
|
4423
4486
|
hideIcon,
|
|
4424
4487
|
setIconPosition,
|
|
4488
|
+
setIconCoordinates,
|
|
4425
4489
|
setIconStyle,
|
|
4426
4490
|
openChat,
|
|
4427
4491
|
closeChat,
|
|
@@ -4433,4 +4497,4 @@ var index = {
|
|
|
4433
4497
|
destroy
|
|
4434
4498
|
};
|
|
4435
4499
|
|
|
4436
|
-
export { CustomerServiceSDK, clearNotification, closeChat, index as default, destroy, getConnectionStatus, getInstance, hideIcon, init, isChatOpen, openChat, sendToIframe, setIconPosition, setIconStyle, showIcon, showNotification };
|
|
4500
|
+
export { CustomerServiceSDK, clearNotification, closeChat, index as default, destroy, getConnectionStatus, getInstance, hideIcon, init, isChatOpen, openChat, sendToIframe, setIconCoordinates, setIconPosition, setIconStyle, showIcon, showNotification };
|
package/dist/customer-sdk.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).CustomerSDK={})}(this,function(e){"use strict";class t{constructor(){this.iconElement=null,this.badgeElement=null,this.onClickCallback=null,this.notificationCallback=null,this.isDragging=!1,this.dragStartX=0,this.dragStartY=0,this.iconStartX=0,this.iconStartY=0,this.dragMoveHandler=null,this.dragEndHandler=null}async show(){if(this.iconElement)return;this.iconElement=document.createElement("div"),this.iconElement.className="customer-sdk-icon",Object.assign(this.iconElement.style,{position:"fixed",width:"30px",height:"30px",backgroundColor:"transparent",borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",zIndex:"999999",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.15)",userSelect:"none",transition:"transform 0.2s ease",border:"none",outline:"none",bottom:"80px",right:"20px",overflow:"visible"});const e=document.createElement("img");e.src="cd55183185a9b3ae.png",e.style.width="100%",e.style.height="100%",e.style.objectFit="cover",e.style.display="block",e.alt="Customer Service",e.onload=()=>{this.iconElement&&(e.style.opacity="1",e.style.visibility="visible")},e.onerror=e=>{},e.style.opacity="1",e.style.visibility="visible";const t=document.createElement("div");Object.assign(t.style,{width:"100%",height:"100%",borderRadius:"50%",overflow:"hidden",position:"relative"}),t.appendChild(e),this.iconElement.appendChild(t),this.setupDragEvents(),document.body.appendChild(this.iconElement)}forceCleanupDragEvents(){if(this.dragMoveHandler)try{document.removeEventListener("mousemove",this.dragMoveHandler),document.removeEventListener("touchmove",this.dragMoveHandler)}catch(e){}if(this.dragEndHandler)try{document.removeEventListener("mouseup",this.dragEndHandler),document.removeEventListener("touchend",this.dragEndHandler)}catch(e){}this.isDragging=!1,this.iconElement&&(this.iconElement.style.transition="transform 0.2s ease",this.iconElement.style.cursor="pointer")}hide(){this.forceCleanupDragEvents(),this.iconElement&&(this.iconElement.remove(),this.iconElement=null,this.onClickCallback=null,this.dragMoveHandler=null,this.dragEndHandler=null)}setPosition(e){}setStyle(e){}onClick(e){this.onClickCallback=e}onNotification(e){this.notificationCallback=e}showNotification(e){if(!this.iconElement)return;const{showBadge:t=!0,badgeCount:n=0,badgeText:i="",pulse:o=!1}=e;(t||n>0)&&this.createBadge(n,i,o),this.notificationCallback&&this.notificationCallback({badgeCount:n,badgeText:i,pulse:o})}clearNotification(){this.badgeElement&&(this.badgeElement.remove(),this.badgeElement=null)}setupDragEvents(){this.iconElement&&(this.dragMoveHandler=this.handleDragMove.bind(this),this.dragEndHandler=this.handleDragEnd.bind(this),this.iconElement.addEventListener("mousedown",this.handleDragStart.bind(this)),this.iconElement.addEventListener("touchstart",this.handleDragStart.bind(this),{passive:!1}))}handleDragStart(e){if(!this.iconElement)return;if(e.target!==this.iconElement&&!this.iconElement.contains(e.target))return;e.preventDefault(),e.stopPropagation();const t="touches"in e?e.touches[0].clientX:e.clientX,n="touches"in e?e.touches[0].clientY:e.clientY;this.isDragging=!1,this.dragStartX=t,this.dragStartY=n;const i=this.iconElement.getBoundingClientRect();this.iconStartX=i.left,this.iconStartY=i.top,this.iconElement.style.transition="none",this.iconElement.style.cursor="grabbing";const o=e=>{const t="touches"in e?e.touches[0].clientX:e.clientX,n="touches"in e?e.touches[0].clientY:e.clientY,i=t-this.dragStartX,r=n-this.dragStartY;(Math.abs(i)>5||Math.abs(r)>5)&&(this.isDragging=!0,"touches"in e?document.removeEventListener("touchmove",o):document.removeEventListener("mousemove",o),this.dragMoveHandler&&this.dragEndHandler&&("touches"in e?(document.addEventListener("touchmove",this.dragMoveHandler,{passive:!1}),document.addEventListener("touchend",this.dragEndHandler)):(document.addEventListener("mousemove",this.dragMoveHandler),document.addEventListener("mouseup",this.dragEndHandler))))};"touches"in e?(document.addEventListener("touchmove",o,{passive:!1}),document.addEventListener("touchend",this.dragEndHandler)):(document.addEventListener("mousemove",o),document.addEventListener("mouseup",this.dragEndHandler))}handleDragMove(e){if(!this.iconElement||!this.isDragging)return;const t="touches"in e?e.touches[0].clientX:e.clientX,n="touches"in e?e.touches[0].clientY:e.clientY,i=e.target;if(i&&i!==this.iconElement&&!this.iconElement.contains(i)){if("IFRAME"===i.tagName||i.closest("iframe")||i.closest(".customer-sdk-container")||i.closest(".customer-sdk-overlay"))return void this.handleDragEnd()}const o=t-this.dragStartX,r=n-this.dragStartY,a=this.iconElement.getBoundingClientRect(),s=a.left+a.width/2,c=a.top+a.height/2;if(Math.sqrt(Math.pow(t-s,2)+Math.pow(n-c,2))>3*Math.max(a.width,a.height))return void this.handleDragEnd();e.preventDefault(),e.stopPropagation();const l=this.iconStartX+o,u=this.iconStartY+r,d=window.innerWidth-this.iconElement.offsetWidth,h=window.innerHeight-this.iconElement.offsetHeight,m=Math.max(0,Math.min(l,d)),f=Math.max(0,Math.min(u,h));this.iconElement.style.left=`${m}px`,this.iconElement.style.top=`${f}px`,this.iconElement.style.right="auto",this.iconElement.style.bottom="auto"}handleDragEnd(e){this.iconElement&&(this.dragMoveHandler&&(document.removeEventListener("mousemove",this.dragMoveHandler),document.removeEventListener("touchmove",this.dragMoveHandler)),this.dragEndHandler&&(document.removeEventListener("mouseup",this.dragEndHandler),document.removeEventListener("touchend",this.dragEndHandler)),this.iconElement.style.transition="transform 0.2s ease",this.iconElement.style.cursor="pointer",this.isDragging||this.handleClick(),this.isDragging=!1)}handleClick(){this.onClickCallback&&this.onClickCallback()}createBadge(e,t="",n=!1){this.clearNotification(),this.badgeElement=document.createElement("div"),this.badgeElement.className="customer-sdk-icon-badge",this.badgeElement.textContent=e>0?e>99?"99+":e.toString():t||"",Object.assign(this.badgeElement.style,{position:"absolute",top:"-4px",left:"-4px",right:"auto",minWidth:"18px",height:"18px",borderRadius:"50%",backgroundColor:"#ff4444",color:"#ffffff",fontSize:"10px",fontWeight:"bold",display:"flex",alignItems:"center",justifyContent:"center",zIndex:"1000001",boxShadow:"0 -1px 4px rgba(0, 0, 0, 0.3), 0 2px 8px rgba(0, 0, 0, 0.15)",...0===e&&""===t&&{width:"12px",height:"12px",minWidth:"12px",top:"-2px",left:"-2px"},...n&&{animation:"sdk-badge-pulse 1.5s infinite"}}),this.iconElement&&this.iconElement.appendChild(this.badgeElement)}}class n{constructor(e={}){this.iframeElement=null,this.overlayElement=null,this.containerElement=null,this.isOpen=!1,this.isCreated=!1,this.config={src:"",mode:"auto",width:400,height:600,allowClose:!0,...e},this.setupMessageListener()}async init(){try{this.createIframe(),this.isCreated=!0}catch(e){throw e}}show(){if(!this.isOpen){if(!this.isCreated)throw new Error("Iframe not initialized. Call init() first.");try{const e="popup"===this.getActualMode();e&&this.createOverlay(),this.containerElement&&(e?(Object.assign(this.containerElement.style,{position:"fixed",top:"50%",left:"50%",transform:"translate(-50%, -50%)",visibility:"visible",opacity:"1",display:"block"}),this.overlayElement?.appendChild(this.containerElement)):(Object.assign(this.containerElement.style,{position:"fixed",visibility:"visible",opacity:"1",display:"block"}),this.preventBodyScroll(!0))),this.isOpen=!0}catch(e){}}}open(){this.show()}hide(){if(!this.isOpen)return;this.containerElement&&Object.assign(this.containerElement.style,{visibility:"hidden",opacity:"0",display:"none"}),this.overlayElement&&(this.overlayElement.remove(),this.overlayElement=null);"fullscreen"===this.getActualMode()&&this.preventBodyScroll(!1),this.isOpen=!1,this.config.onClose&&this.config.onClose()}close(){this.hide()}destroy(){this.hide(),this.containerElement&&(this.containerElement.remove(),this.containerElement=null,this.iframeElement=null),this.isCreated=!1}isIframeOpen(){return this.isOpen}sendToIframe(e){this.iframeElement&&this.iframeElement.contentWindow&&this.iframeElement.contentWindow.postMessage(e,"*")}createOverlay(){this.overlayElement=document.createElement("div"),this.overlayElement.className="customer-sdk-overlay",Object.assign(this.overlayElement.style,{position:"fixed",top:"0",left:"0",width:"100%",height:"100%",backgroundColor:"rgba(0, 0, 0, 0.5)",zIndex:"999998",display:"flex",alignItems:"center",justifyContent:"center",cursor:this.config.allowClose?"pointer":"default"}),this.config.allowClose&&this.overlayElement.addEventListener("click",e=>{e.target===this.overlayElement&&this.close()}),document.body.appendChild(this.overlayElement)}createIframe(){this.containerElement=document.createElement("div"),this.containerElement.className="customer-sdk-container",this.iframeElement=document.createElement("iframe"),this.iframeElement.className="customer-sdk-iframe",this.iframeElement.src=this.config.src||"",this.iframeElement.frameBorder="0",this.iframeElement.setAttribute("allow",["microphone","camera","geolocation","clipboard-read","clipboard-write","fullscreen","autoplay","encrypted-media"].join("; ")),this.iframeElement.setAttribute("sandbox",["allow-same-origin","allow-scripts","allow-forms","allow-popups","allow-popups-to-escape-sandbox","allow-presentation","allow-top-navigation","allow-top-navigation-by-user-activation","allow-downloads","allow-modals","allow-orientation-lock","allow-pointer-lock","allow-storage-access-by-user-activation"].join(" "));const e="popup"===this.getActualMode();this.iframeElement.scrolling=e?"auto":"no";const t={width:e?`${this.config.width}px`:"100%",height:e?`${this.config.height}px`:"100%",maxWidth:e?"450px":"100%",maxHeight:e?"700px":"100%",backgroundColor:"#ffffff",borderRadius:e?"12px":"12px 12px 0 0",boxShadow:e?"0 20px 40px rgba(0, 0, 0, 0.15)":"0 -4px 16px rgba(0, 0, 0, 0.25)",border:"none",position:"fixed",zIndex:"999999",...e?{top:"50%",left:"50%",transform:"translate(-50%, -50%)"}:{top:"0",left:"0",bottom:"0",right:"0",transform:"none",overflow:"hidden",position:"fixed"},visibility:"hidden",opacity:"0",display:"none"};Object.assign(this.containerElement.style,t);const n={width:"100%",height:"100%",border:"none",borderRadius:"inherit",...e?{}:{overflow:"hidden",scrollbarWidth:"none",msOverflowStyle:"none",WebkitScrollbar:"none"}};Object.assign(this.iframeElement.style,n),this.containerElement.appendChild(this.iframeElement),this.iframeElement.addEventListener("load",()=>{e||this.injectMobileStyles()}),document.body.appendChild(this.containerElement)}injectMobileStyles(){if(this.iframeElement)try{const e=this.iframeElement.contentDocument||this.iframeElement.contentWindow?.document;if(e){const t=e.createElement("style");t.textContent="\n /* 移动端iframe全屏样式优化 */\n * {\n -webkit-overflow-scrolling: touch !important;\n }\n \n body, html, #app, .container {\n overflow: auto !important;\n -webkit-overflow-scrolling: touch !important;\n }\n \n /* 隐藏所有滚动条 */\n ::-webkit-scrollbar {\n width: 0px !important;\n height: 0px !important;\n background: transparent !important;\n }\n \n /* Firefox */\n html {\n scrollbar-width: none !important;\n }\n \n /* IE/Edge */\n body {\n -ms-overflow-style: none !important;\n }\n \n /* 确保内容可以滚动 */\n body {\n overflow: auto !important;\n height: 100vh !important;\n margin: 0 !important;\n padding: 0 !important;\n }\n ",e.head?.appendChild(t)}}catch(e){}}preventBodyScroll(e){if(e){const e=window.scrollY;Object.assign(document.body.style,{position:"fixed",top:`-${e}px`,width:"100%",overflow:"hidden"}),document.body.setAttribute("data-scroll-position",e.toString())}else{const e=parseInt(document.body.getAttribute("data-scroll-position")||"0");Object.assign(document.body.style,{position:"",top:"",width:"",overflow:""}),document.body.removeAttribute("data-scroll-position"),window.scrollTo(0,e)}}isMobileDevice(){return window.innerWidth<=768||/Android|iPhone|iPad|iPod|Opera Mini|IEMobile/i.test(navigator.userAgent)}getActualMode(){return"auto"===this.config.mode?this.isMobileDevice()?"fullscreen":"popup":this.config.mode}setupMessageListener(){window.addEventListener("message",e=>{this.config.src&&e.origin!==new URL(this.config.src).origin||this.handleIframeMessage(e.data)},!1)}handleIframeMessage(e){let t;if("string"==typeof e)t=e;else{if(!e||!e.type)return;t=e.type}switch(t){case"iframe_ready":break;case"close_iframe":case"close":this.close();break;case"resize_iframe":case"resize":e.width&&e.height&&this.resizeIframe(e.width,e.height);break;case"new-message":this.config.onMessage&&this.config.onMessage(t,e)}}resizeIframe(e,t){this.iframeElement&&(this.iframeElement.style.width=`${e}px`,this.iframeElement.style.height=`${t}px`)}}var i=function(){return i=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},i.apply(this,arguments)};function o(e,t,n,i){return new(n||(n=Promise))(function(o,r){function a(e){try{c(i.next(e))}catch(e){r(e)}}function s(e){try{c(i.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}c((i=i.apply(e,t||[])).next())})}function r(e,t){var n,i,o,r={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return a.next=s(0),a.throw=s(1),a.return=s(2),"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(s){return function(c){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,s[0]&&(r=0)),r;)try{if(n=1,i&&(o=2&s[0]?i.return:s[0]?i.throw||((o=i.return)&&o.call(i),0):i.next)&&!(o=o.call(i,s[1])).done)return o;switch(i=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return r.label++,{value:s[1],done:!1};case 5:r.label++,i=s[1],s=[0];continue;case 7:s=r.ops.pop(),r.trys.pop();continue;default:if(!(o=r.trys,(o=o.length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){r=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){r.label=s[1];break}if(6===s[0]&&r.label<o[1]){r.label=o[1],o=s;break}if(o&&r.label<o[2]){r.label=o[2],r.ops.push(s);break}o[2]&&r.ops.pop(),r.trys.pop();continue}s=t.call(e,r)}catch(e){s=[6,e],i=0}finally{n=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,c])}}}function a(e,t,n){if(n||2===arguments.length)for(var i,o=0,r=t.length;o<r;o++)!i&&o in t||(i||(i=Array.prototype.slice.call(t,0,o)),i[o]=t[o]);return e.concat(i||Array.prototype.slice.call(t))}"function"==typeof SuppressedError&&SuppressedError;var s="4.6.2";function c(e,t){return new Promise(function(n){return setTimeout(n,e,t)})}function l(e){return!!e&&"function"==typeof e.then}function u(e,t){try{var n=e();l(n)?n.then(function(e){return t(!0,e)},function(e){return t(!1,e)}):t(!0,n)}catch(e){t(!1,e)}}function d(e,t,n){return void 0===n&&(n=16),o(this,void 0,void 0,function(){var i,o,a,s;return r(this,function(r){switch(r.label){case 0:i=Array(e.length),o=Date.now(),a=0,r.label=1;case 1:return a<e.length?(i[a]=t(e[a],a),(s=Date.now())>=o+n?(o=s,[4,new Promise(function(e){var t=new MessageChannel;t.port1.onmessage=function(){return e()},t.port2.postMessage(null)})]):[3,3]):[3,4];case 2:r.sent(),r.label=3;case 3:return++a,[3,1];case 4:return[2,i]}})})}function h(e){return e.then(void 0,function(){}),e}function m(e){return parseInt(e)}function f(e){return parseFloat(e)}function v(e,t){return"number"==typeof e&&isNaN(e)?t:e}function p(e){return e.reduce(function(e,t){return e+(t?1:0)},0)}function g(e,t){if(void 0===t&&(t=1),Math.abs(t)>=1)return Math.round(e/t)*t;var n=1/t;return Math.round(e*n)/n}function b(e,t){var n=e[0]>>>16,i=65535&e[0],o=e[1]>>>16,r=65535&e[1],a=t[0]>>>16,s=65535&t[0],c=t[1]>>>16,l=0,u=0,d=0,h=0;d+=(h+=r+(65535&t[1]))>>>16,h&=65535,u+=(d+=o+c)>>>16,d&=65535,l+=(u+=i+s)>>>16,u&=65535,l+=n+a,l&=65535,e[0]=l<<16|u,e[1]=d<<16|h}function y(e,t){var n=e[0]>>>16,i=65535&e[0],o=e[1]>>>16,r=65535&e[1],a=t[0]>>>16,s=65535&t[0],c=t[1]>>>16,l=65535&t[1],u=0,d=0,h=0,m=0;h+=(m+=r*l)>>>16,m&=65535,d+=(h+=o*l)>>>16,h&=65535,d+=(h+=r*c)>>>16,h&=65535,u+=(d+=i*l)>>>16,d&=65535,u+=(d+=o*c)>>>16,d&=65535,u+=(d+=r*s)>>>16,d&=65535,u+=n*l+i*c+o*s+r*a,u&=65535,e[0]=u<<16|d,e[1]=h<<16|m}function w(e,t){var n=e[0];32===(t%=64)?(e[0]=e[1],e[1]=n):t<32?(e[0]=n<<t|e[1]>>>32-t,e[1]=e[1]<<t|n>>>32-t):(t-=32,e[0]=e[1]<<t|n>>>32-t,e[1]=n<<t|e[1]>>>32-t)}function E(e,t){0!==(t%=64)&&(t<32?(e[0]=e[1]>>>32-t,e[1]=e[1]<<t):(e[0]=e[1]<<t-32,e[1]=0))}function L(e,t){e[0]^=t[0],e[1]^=t[1]}var k=[4283543511,3981806797],x=[3301882366,444984403];function S(e){var t=[0,e[0]>>>1];L(e,t),y(e,k),t[1]=e[0]>>>1,L(e,t),y(e,x),t[1]=e[0]>>>1,L(e,t)}var M=[2277735313,289559509],C=[1291169091,658871167],I=[0,5],V=[0,1390208809],W=[0,944331445];function Z(e,t){var n=function(e){for(var t=new Uint8Array(e.length),n=0;n<e.length;n++){var i=e.charCodeAt(n);if(i>127)return(new TextEncoder).encode(e);t[n]=i}return t}(e);t=t||0;var i,o=[0,n.length],r=o[1]%16,a=o[1]-r,s=[0,t],c=[0,t],l=[0,0],u=[0,0];for(i=0;i<a;i+=16)l[0]=n[i+4]|n[i+5]<<8|n[i+6]<<16|n[i+7]<<24,l[1]=n[i]|n[i+1]<<8|n[i+2]<<16|n[i+3]<<24,u[0]=n[i+12]|n[i+13]<<8|n[i+14]<<16|n[i+15]<<24,u[1]=n[i+8]|n[i+9]<<8|n[i+10]<<16|n[i+11]<<24,y(l,M),w(l,31),y(l,C),L(s,l),w(s,27),b(s,c),y(s,I),b(s,V),y(u,C),w(u,33),y(u,M),L(c,u),w(c,31),b(c,s),y(c,I),b(c,W);l[0]=0,l[1]=0,u[0]=0,u[1]=0;var d=[0,0];switch(r){case 15:d[1]=n[i+14],E(d,48),L(u,d);case 14:d[1]=n[i+13],E(d,40),L(u,d);case 13:d[1]=n[i+12],E(d,32),L(u,d);case 12:d[1]=n[i+11],E(d,24),L(u,d);case 11:d[1]=n[i+10],E(d,16),L(u,d);case 10:d[1]=n[i+9],E(d,8),L(u,d);case 9:d[1]=n[i+8],L(u,d),y(u,C),w(u,33),y(u,M),L(c,u);case 8:d[1]=n[i+7],E(d,56),L(l,d);case 7:d[1]=n[i+6],E(d,48),L(l,d);case 6:d[1]=n[i+5],E(d,40),L(l,d);case 5:d[1]=n[i+4],E(d,32),L(l,d);case 4:d[1]=n[i+3],E(d,24),L(l,d);case 3:d[1]=n[i+2],E(d,16),L(l,d);case 2:d[1]=n[i+1],E(d,8),L(l,d);case 1:d[1]=n[i],L(l,d),y(l,M),w(l,31),y(l,C),L(s,l)}return L(s,o),L(c,o),b(s,c),b(c,s),S(s),S(c),b(s,c),b(c,s),("00000000"+(s[0]>>>0).toString(16)).slice(-8)+("00000000"+(s[1]>>>0).toString(16)).slice(-8)+("00000000"+(c[0]>>>0).toString(16)).slice(-8)+("00000000"+(c[1]>>>0).toString(16)).slice(-8)}function R(e,t,n,i){var a=Object.keys(e).filter(function(e){return!function(e,t){for(var n=0,i=e.length;n<i;++n)if(e[n]===t)return!0;return!1}(n,e)}),s=h(d(a,function(n){return function(e,t){var n=h(new Promise(function(n){var i=Date.now();u(e.bind(null,t),function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var o=Date.now()-i;if(!e[0])return n(function(){return{error:e[1],duration:o}});var r=e[1];if(function(e){return"function"!=typeof e}(r))return n(function(){return{value:r,duration:o}});n(function(){return new Promise(function(e){var t=Date.now();u(r,function(){for(var n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];var r=o+Date.now()-t;if(!n[0])return e({error:n[1],duration:r});e({value:n[1],duration:r})})})})})}));return function(){return n.then(function(e){return e()})}}(e[n],t)},i));return function(){return o(this,void 0,void 0,function(){var e,t,n,o;return r(this,function(r){switch(r.label){case 0:return[4,s];case 1:return[4,d(r.sent(),function(e){return h(e())},i)];case 2:return e=r.sent(),[4,Promise.all(e)];case 3:for(t=r.sent(),n={},o=0;o<a.length;++o)n[a[o]]=t[o];return[2,n]}})})}}function j(){var e=window,t=navigator;return p(["MSCSSMatrix"in e,"msSetImmediate"in e,"msIndexedDB"in e,"msMaxTouchPoints"in t,"msPointerEnabled"in t])>=4}function H(){var e=window,t=navigator;return p(["webkitPersistentStorage"in t,"webkitTemporaryStorage"in t,0===(t.vendor||"").indexOf("Google"),"webkitResolveLocalFileSystemURL"in e,"BatteryManager"in e,"webkitMediaStream"in e,"webkitSpeechGrammar"in e])>=5}function Y(){var e=window;return p(["ApplePayError"in e,"CSSPrimitiveValue"in e,"Counter"in e,0===navigator.vendor.indexOf("Apple"),"RGBColor"in e,"WebKitMediaKeys"in e])>=4}function F(){var e=window,t=e.HTMLElement,n=e.Document;return p(["safari"in e,!("ongestureend"in e),!("TouchEvent"in e),!("orientation"in e),t&&!("autocapitalize"in t.prototype),n&&"pointerLockElement"in n.prototype])>=4}function G(){var e,t=window;return e=t.print,/^function\s.*?\{\s*\[native code]\s*}$/.test(String(e))&&"[object WebPageNamespace]"===String(t.browser)}function P(){var e,t,n=window;return p(["buildID"in navigator,"MozAppearance"in(null!==(t=null===(e=document.documentElement)||void 0===e?void 0:e.style)&&void 0!==t?t:{}),"onmozfullscreenchange"in n,"mozInnerScreenX"in n,"CSSMozDocumentRule"in n,"CanvasCaptureMediaStream"in n])>=4}function X(){var e=window,t=navigator,n=e.CSS,i=e.HTMLButtonElement;return p([!("getStorageUpdates"in t),i&&"popover"in i.prototype,"CSSCounterStyleRule"in e,n.supports("font-size-adjust: ex-height 0.5"),n.supports("text-transform: full-width")])>=4}function D(){var e=document;return(e.exitFullscreen||e.msExitFullscreen||e.mozCancelFullScreen||e.webkitExitFullscreen).call(e)}function N(){var e=H(),t=P(),n=window,i=navigator,o="connection";return e?p([!("SharedWorker"in n),i[o]&&"ontypechange"in i[o],!("sinkId"in new Audio)])>=2:!!t&&p(["onorientationchange"in n,"orientation"in n,/android/i.test(i.appVersion)])>=2}function A(e){var t=new Error(e);return t.name=e,t}function O(e,t,n){var i,a,s;return void 0===n&&(n=50),o(this,void 0,void 0,function(){var o,l;return r(this,function(r){switch(r.label){case 0:o=document,r.label=1;case 1:return o.body?[3,3]:[4,c(n)];case 2:return r.sent(),[3,1];case 3:l=o.createElement("iframe"),r.label=4;case 4:return r.trys.push([4,,10,11]),[4,new Promise(function(e,n){var i=!1,r=function(){i=!0,e()};l.onload=r,l.onerror=function(e){i=!0,n(e)};var a=l.style;a.setProperty("display","block","important"),a.position="absolute",a.top="0",a.left="0",a.visibility="hidden",t&&"srcdoc"in l?l.srcdoc=t:l.src="about:blank",o.body.appendChild(l);var s=function(){var e,t;i||("complete"===(null===(t=null===(e=l.contentWindow)||void 0===e?void 0:e.document)||void 0===t?void 0:t.readyState)?r():setTimeout(s,10))};s()})];case 5:r.sent(),r.label=6;case 6:return(null===(a=null===(i=l.contentWindow)||void 0===i?void 0:i.document)||void 0===a?void 0:a.body)?[3,8]:[4,c(n)];case 7:return r.sent(),[3,6];case 8:return[4,e(l,l.contentWindow)];case 9:return[2,r.sent()];case 10:return null===(s=l.parentNode)||void 0===s||s.removeChild(l),[7];case 11:return[2]}})})}function T(e){for(var t=function(e){for(var t,n,i="Unexpected syntax '".concat(e,"'"),o=/^\s*([a-z-]*)(.*)$/i.exec(e),r=o[1]||void 0,a={},s=/([.:#][\w-]+|\[.+?\])/gi,c=function(e,t){a[e]=a[e]||[],a[e].push(t)};;){var l=s.exec(o[2]);if(!l)break;var u=l[0];switch(u[0]){case".":c("class",u.slice(1));break;case"#":c("id",u.slice(1));break;case"[":var d=/^\[([\w-]+)([~|^$*]?=("(.*?)"|([\w-]+)))?(\s+[is])?\]$/.exec(u);if(!d)throw new Error(i);c(d[1],null!==(n=null!==(t=d[4])&&void 0!==t?t:d[5])&&void 0!==n?n:"");break;default:throw new Error(i)}}return[r,a]}(e),n=t[0],i=t[1],o=document.createElement(null!=n?n:"div"),r=0,a=Object.keys(i);r<a.length;r++){var s=a[r],c=i[s].join(" ");"style"===s?z(o.style,c):o.setAttribute(s,c)}return o}function z(e,t){for(var n=0,i=t.split(";");n<i.length;n++){var o=i[n],r=/^\s*([\w-]+)\s*:\s*(.+?)(\s*!([\w-]+))?\s*$/.exec(o);if(r){var a=r[1],s=r[2],c=r[4];e.setProperty(a,s,c||"")}}}var J=["monospace","sans-serif","serif"],_=["sans-serif-thin","ARNO PRO","Agency FB","Arabic Typesetting","Arial Unicode MS","AvantGarde Bk BT","BankGothic Md BT","Batang","Bitstream Vera Sans Mono","Calibri","Century","Century Gothic","Clarendon","EUROSTILE","Franklin Gothic","Futura Bk BT","Futura Md BT","GOTHAM","Gill Sans","HELV","Haettenschweiler","Helvetica Neue","Humanst521 BT","Leelawadee","Letter Gothic","Levenim MT","Lucida Bright","Lucida Sans","Menlo","MS Mincho","MS Outlook","MS Reference Specialty","MS UI Gothic","MT Extra","MYRIAD PRO","Marlett","Meiryo UI","Microsoft Uighur","Minion Pro","Monotype Corsiva","PMingLiU","Pristina","SCRIPTINA","Segoe UI Light","Serifa","SimHei","Small Fonts","Staccato222 BT","TRAJAN PRO","Univers CE 55 Medium","Vrinda","ZWAdobeF"];function B(e){return e.toDataURL()}var U,Q;function K(){var e=this;return function(){if(void 0===Q){var e=function(){var t=$();q(t)?Q=setTimeout(e,2500):(U=t,Q=void 0)};e()}}(),function(){return o(e,void 0,void 0,function(){var e;return r(this,function(t){switch(t.label){case 0:return q(e=$())?U?[2,a([],U,!0)]:(n=document).fullscreenElement||n.msFullscreenElement||n.mozFullScreenElement||n.webkitFullscreenElement?[4,D()]:[3,2]:[3,2];case 1:t.sent(),e=$(),t.label=2;case 2:return q(e)||(U=e),[2,e]}var n})})}}function $(){var e=screen;return[v(f(e.availTop),null),v(f(e.width)-f(e.availWidth)-v(f(e.availLeft),0),null),v(f(e.height)-f(e.availHeight)-v(f(e.availTop),0),null),v(f(e.availLeft),null)]}function q(e){for(var t=0;t<4;++t)if(e[t])return!1;return!0}function ee(e){var t;return o(this,void 0,void 0,function(){var n,i,o,a,s,l,u;return r(this,function(r){switch(r.label){case 0:for(n=document,i=n.createElement("div"),o=new Array(e.length),a={},te(i),u=0;u<e.length;++u)"DIALOG"===(s=T(e[u])).tagName&&s.show(),te(l=n.createElement("div")),l.appendChild(s),i.appendChild(l),o[u]=s;r.label=1;case 1:return n.body?[3,3]:[4,c(50)];case 2:return r.sent(),[3,1];case 3:n.body.appendChild(i);try{for(u=0;u<e.length;++u)o[u].offsetParent||(a[e[u]]=!0)}finally{null===(t=i.parentNode)||void 0===t||t.removeChild(i)}return[2,a]}})})}function te(e){e.style.setProperty("visibility","hidden","important"),e.style.setProperty("display","block","important")}function ne(e){return matchMedia("(inverted-colors: ".concat(e,")")).matches}function ie(e){return matchMedia("(forced-colors: ".concat(e,")")).matches}function oe(e){return matchMedia("(prefers-contrast: ".concat(e,")")).matches}function re(e){return matchMedia("(prefers-reduced-motion: ".concat(e,")")).matches}function ae(e){return matchMedia("(prefers-reduced-transparency: ".concat(e,")")).matches}function se(e){return matchMedia("(dynamic-range: ".concat(e,")")).matches}var ce=Math,le=function(){return 0};var ue={default:[],apple:[{font:"-apple-system-body"}],serif:[{fontFamily:"serif"}],sans:[{fontFamily:"sans-serif"}],mono:[{fontFamily:"monospace"}],min:[{fontSize:"1px"}],system:[{fontFamily:"system-ui"}]};var de=function(){for(var e=window;;){var t=e.parent;if(!t||t===e)return!1;try{if(t.location.origin!==e.location.origin)return!0}catch(e){if(e instanceof Error&&"SecurityError"===e.name)return!0;throw e}e=t}};var he=new Set([10752,2849,2884,2885,2886,2928,2929,2930,2931,2932,2960,2961,2962,2963,2964,2965,2966,2967,2968,2978,3024,3042,3088,3089,3106,3107,32773,32777,32777,32823,32824,32936,32937,32938,32939,32968,32969,32970,32971,3317,33170,3333,3379,3386,33901,33902,34016,34024,34076,3408,3410,3411,3412,3413,3414,3415,34467,34816,34817,34818,34819,34877,34921,34930,35660,35661,35724,35738,35739,36003,36004,36005,36347,36348,36349,37440,37441,37443,7936,7937,7938]),me=new Set([34047,35723,36063,34852,34853,34854,34229,36392,36795,38449]),fe=["FRAGMENT_SHADER","VERTEX_SHADER"],ve=["LOW_FLOAT","MEDIUM_FLOAT","HIGH_FLOAT","LOW_INT","MEDIUM_INT","HIGH_INT"],pe="WEBGL_debug_renderer_info";function ge(e){if(e.webgl)return e.webgl.context;var t,n=document.createElement("canvas");n.addEventListener("webglCreateContextError",function(){return t=void 0});for(var i=0,o=["webgl","experimental-webgl"];i<o.length;i++){var r=o[i];try{t=n.getContext(r)}catch(e){}if(t)break}return e.webgl={context:t},t}function be(e,t,n){var i=e.getShaderPrecisionFormat(e[t],e[n]);return i?[i.rangeMin,i.rangeMax,i.precision]:[]}function ye(e){return Object.keys(e.__proto__).filter(we)}function we(e){return"string"==typeof e&&!e.match(/[^A-Z0-9_x]/)}function Ee(){return P()}function Le(){return H()||Y()}function ke(e){return"function"==typeof e.getParameter}var xe={fonts:function(){var e=this;return O(function(t,n){var i=n.document;return o(e,void 0,void 0,function(){var e,t,n,o,a,s,c,l,u,d,h;return r(this,function(r){for((e=i.body).style.fontSize="48px",(t=i.createElement("div")).style.setProperty("visibility","hidden","important"),n={},o={},a=function(e){var n=i.createElement("span"),o=n.style;return o.position="absolute",o.top="0",o.left="0",o.fontFamily=e,n.textContent="mmMwWLliI0O&1",t.appendChild(n),n},s=function(e,t){return a("'".concat(e,"',").concat(t))},c=function(){for(var e={},t=function(t){e[t]=J.map(function(e){return s(t,e)})},n=0,i=_;n<i.length;n++){t(i[n])}return e},l=function(e){return J.some(function(t,i){return e[i].offsetWidth!==n[t]||e[i].offsetHeight!==o[t]})},u=function(){return J.map(a)}(),d=c(),e.appendChild(t),h=0;h<J.length;h++)n[J[h]]=u[h].offsetWidth,o[J[h]]=u[h].offsetHeight;return[2,_.filter(function(e){return l(d[e])})]})})})},domBlockers:function(e){var t=(void 0===e?{}:e).debug;return o(this,void 0,void 0,function(){var e,n,i,o,a;return r(this,function(r){switch(r.label){case 0:return Y()||N()?(s=atob,e={abpIndo:["#Iklan-Melayang","#Kolom-Iklan-728","#SidebarIklan-wrapper",'[title="ALIENBOLA" i]',s("I0JveC1CYW5uZXItYWRz")],abpvn:[".quangcao","#mobileCatfish",s("LmNsb3NlLWFkcw=="),'[id^="bn_bottom_fixed_"]',"#pmadv"],adBlockFinland:[".mainostila",s("LnNwb25zb3JpdA=="),".ylamainos",s("YVtocmVmKj0iL2NsaWNrdGhyZ2guYXNwPyJd"),s("YVtocmVmXj0iaHR0cHM6Ly9hcHAucmVhZHBlYWsuY29tL2FkcyJd")],adBlockPersian:["#navbar_notice_50",".kadr",'TABLE[width="140px"]',"#divAgahi",s("YVtocmVmXj0iaHR0cDovL2cxLnYuZndtcm0ubmV0L2FkLyJd")],adBlockWarningRemoval:["#adblock-honeypot",".adblocker-root",".wp_adblock_detect",s("LmhlYWRlci1ibG9ja2VkLWFk"),s("I2FkX2Jsb2NrZXI=")],adGuardAnnoyances:[".hs-sosyal","#cookieconsentdiv",'div[class^="app_gdpr"]',".as-oil",'[data-cypress="soft-push-notification-modal"]'],adGuardBase:[".BetterJsPopOverlay",s("I2FkXzMwMFgyNTA="),s("I2Jhbm5lcmZsb2F0MjI="),s("I2NhbXBhaWduLWJhbm5lcg=="),s("I0FkLUNvbnRlbnQ=")],adGuardChinese:[s("LlppX2FkX2FfSA=="),s("YVtocmVmKj0iLmh0aGJldDM0LmNvbSJd"),"#widget-quan",s("YVtocmVmKj0iLzg0OTkyMDIwLnh5eiJd"),s("YVtocmVmKj0iLjE5NTZobC5jb20vIl0=")],adGuardFrench:["#pavePub",s("LmFkLWRlc2t0b3AtcmVjdGFuZ2xl"),".mobile_adhesion",".widgetadv",s("LmFkc19iYW4=")],adGuardGerman:['aside[data-portal-id="leaderboard"]'],adGuardJapanese:["#kauli_yad_1",s("YVtocmVmXj0iaHR0cDovL2FkMi50cmFmZmljZ2F0ZS5uZXQvIl0="),s("Ll9wb3BJbl9pbmZpbml0ZV9hZA=="),s("LmFkZ29vZ2xl"),s("Ll9faXNib29zdFJldHVybkFk")],adGuardMobile:[s("YW1wLWF1dG8tYWRz"),s("LmFtcF9hZA=="),'amp-embed[type="24smi"]',"#mgid_iframe1",s("I2FkX2ludmlld19hcmVh")],adGuardRussian:[s("YVtocmVmXj0iaHR0cHM6Ly9hZC5sZXRtZWFkcy5jb20vIl0="),s("LnJlY2xhbWE="),'div[id^="smi2adblock"]',s("ZGl2W2lkXj0iQWRGb3hfYmFubmVyXyJd"),"#psyduckpockeball"],adGuardSocial:[s("YVtocmVmXj0iLy93d3cuc3R1bWJsZXVwb24uY29tL3N1Ym1pdD91cmw9Il0="),s("YVtocmVmXj0iLy90ZWxlZ3JhbS5tZS9zaGFyZS91cmw/Il0="),".etsy-tweet","#inlineShare",".popup-social"],adGuardSpanishPortuguese:["#barraPublicidade","#Publicidade","#publiEspecial","#queTooltip",".cnt-publi"],adGuardTrackingProtection:["#qoo-counter",s("YVtocmVmXj0iaHR0cDovL2NsaWNrLmhvdGxvZy5ydS8iXQ=="),s("YVtocmVmXj0iaHR0cDovL2hpdGNvdW50ZXIucnUvdG9wL3N0YXQucGhwIl0="),s("YVtocmVmXj0iaHR0cDovL3RvcC5tYWlsLnJ1L2p1bXAiXQ=="),"#top100counter"],adGuardTurkish:["#backkapat",s("I3Jla2xhbWk="),s("YVtocmVmXj0iaHR0cDovL2Fkc2Vydi5vbnRlay5jb20udHIvIl0="),s("YVtocmVmXj0iaHR0cDovL2l6bGVuemkuY29tL2NhbXBhaWduLyJd"),s("YVtocmVmXj0iaHR0cDovL3d3dy5pbnN0YWxsYWRzLm5ldC8iXQ==")],bulgarian:[s("dGQjZnJlZW5ldF90YWJsZV9hZHM="),"#ea_intext_div",".lapni-pop-over","#xenium_hot_offers"],easyList:[".yb-floorad",s("LndpZGdldF9wb19hZHNfd2lkZ2V0"),s("LnRyYWZmaWNqdW5reS1hZA=="),".textad_headline",s("LnNwb25zb3JlZC10ZXh0LWxpbmtz")],easyListChina:[s("LmFwcGd1aWRlLXdyYXBbb25jbGljayo9ImJjZWJvcy5jb20iXQ=="),s("LmZyb250cGFnZUFkdk0="),"#taotaole","#aafoot.top_box",".cfa_popup"],easyListCookie:[".ezmob-footer",".cc-CookieWarning","[data-cookie-number]",s("LmF3LWNvb2tpZS1iYW5uZXI="),".sygnal24-gdpr-modal-wrap"],easyListCzechSlovak:["#onlajny-stickers",s("I3Jla2xhbW5pLWJveA=="),s("LnJla2xhbWEtbWVnYWJvYXJk"),".sklik",s("W2lkXj0ic2tsaWtSZWtsYW1hIl0=")],easyListDutch:[s("I2FkdmVydGVudGll"),s("I3ZpcEFkbWFya3RCYW5uZXJCbG9jaw=="),".adstekst",s("YVtocmVmXj0iaHR0cHM6Ly94bHR1YmUubmwvY2xpY2svIl0="),"#semilo-lrectangle"],easyListGermany:["#SSpotIMPopSlider",s("LnNwb25zb3JsaW5rZ3J1ZW4="),s("I3dlcmJ1bmdza3k="),s("I3Jla2xhbWUtcmVjaHRzLW1pdHRl"),s("YVtocmVmXj0iaHR0cHM6Ly9iZDc0Mi5jb20vIl0=")],easyListItaly:[s("LmJveF9hZHZfYW5udW5jaQ=="),".sb-box-pubbliredazionale",s("YVtocmVmXj0iaHR0cDovL2FmZmlsaWF6aW9uaWFkcy5zbmFpLml0LyJd"),s("YVtocmVmXj0iaHR0cHM6Ly9hZHNlcnZlci5odG1sLml0LyJd"),s("YVtocmVmXj0iaHR0cHM6Ly9hZmZpbGlhemlvbmlhZHMuc25haS5pdC8iXQ==")],easyListLithuania:[s("LnJla2xhbW9zX3RhcnBhcw=="),s("LnJla2xhbW9zX251b3JvZG9z"),s("aW1nW2FsdD0iUmVrbGFtaW5pcyBza3lkZWxpcyJd"),s("aW1nW2FsdD0iRGVkaWt1b3RpLmx0IHNlcnZlcmlhaSJd"),s("aW1nW2FsdD0iSG9zdGluZ2FzIFNlcnZlcmlhaS5sdCJd")],estonian:[s("QVtocmVmKj0iaHR0cDovL3BheTRyZXN1bHRzMjQuZXUiXQ==")],fanboyAnnoyances:["#ac-lre-player",".navigate-to-top","#subscribe_popup",".newsletter_holder","#back-top"],fanboyAntiFacebook:[".util-bar-module-firefly-visible"],fanboyEnhancedTrackers:[".open.pushModal","#issuem-leaky-paywall-articles-zero-remaining-nag","#sovrn_container",'div[class$="-hide"][zoompage-fontsize][style="display: block;"]',".BlockNag__Card"],fanboySocial:["#FollowUs","#meteored_share","#social_follow",".article-sharer",".community__social-desc"],frellwitSwedish:[s("YVtocmVmKj0iY2FzaW5vcHJvLnNlIl1bdGFyZ2V0PSJfYmxhbmsiXQ=="),s("YVtocmVmKj0iZG9rdG9yLXNlLm9uZWxpbmsubWUiXQ=="),"article.category-samarbete",s("ZGl2LmhvbGlkQWRz"),"ul.adsmodern"],greekAdBlock:[s("QVtocmVmKj0iYWRtYW4ub3RlbmV0LmdyL2NsaWNrPyJd"),s("QVtocmVmKj0iaHR0cDovL2F4aWFiYW5uZXJzLmV4b2R1cy5nci8iXQ=="),s("QVtocmVmKj0iaHR0cDovL2ludGVyYWN0aXZlLmZvcnRobmV0LmdyL2NsaWNrPyJd"),"DIV.agores300","TABLE.advright"],hungarian:["#cemp_doboz",".optimonk-iframe-container",s("LmFkX19tYWlu"),s("W2NsYXNzKj0iR29vZ2xlQWRzIl0="),"#hirdetesek_box"],iDontCareAboutCookies:['.alert-info[data-block-track*="CookieNotice"]',".ModuleTemplateCookieIndicator",".o--cookies--container","#cookies-policy-sticky","#stickyCookieBar"],icelandicAbp:[s("QVtocmVmXj0iL2ZyYW1ld29yay9yZXNvdXJjZXMvZm9ybXMvYWRzLmFzcHgiXQ==")],latvian:[s("YVtocmVmPSJodHRwOi8vd3d3LnNhbGlkemluaS5sdi8iXVtzdHlsZT0iZGlzcGxheTogYmxvY2s7IHdpZHRoOiAxMjBweDsgaGVpZ2h0OiA0MHB4OyBvdmVyZmxvdzogaGlkZGVuOyBwb3NpdGlvbjogcmVsYXRpdmU7Il0="),s("YVtocmVmPSJodHRwOi8vd3d3LnNhbGlkemluaS5sdi8iXVtzdHlsZT0iZGlzcGxheTogYmxvY2s7IHdpZHRoOiA4OHB4OyBoZWlnaHQ6IDMxcHg7IG92ZXJmbG93OiBoaWRkZW47IHBvc2l0aW9uOiByZWxhdGl2ZTsiXQ==")],listKr:[s("YVtocmVmKj0iLy9hZC5wbGFuYnBsdXMuY28ua3IvIl0="),s("I2xpdmVyZUFkV3JhcHBlcg=="),s("YVtocmVmKj0iLy9hZHYuaW1hZHJlcC5jby5rci8iXQ=="),s("aW5zLmZhc3R2aWV3LWFk"),".revenue_unit_item.dable"],listeAr:[s("LmdlbWluaUxCMUFk"),".right-and-left-sponsers",s("YVtocmVmKj0iLmFmbGFtLmluZm8iXQ=="),s("YVtocmVmKj0iYm9vcmFxLm9yZyJd"),s("YVtocmVmKj0iZHViaXp6bGUuY29tL2FyLz91dG1fc291cmNlPSJd")],listeFr:[s("YVtocmVmXj0iaHR0cDovL3Byb21vLnZhZG9yLmNvbS8iXQ=="),s("I2FkY29udGFpbmVyX3JlY2hlcmNoZQ=="),s("YVtocmVmKj0id2Vib3JhbWEuZnIvZmNnaS1iaW4vIl0="),".site-pub-interstitiel",'div[id^="crt-"][data-criteo-id]'],officialPolish:["#ceneo-placeholder-ceneo-12",s("W2hyZWZePSJodHRwczovL2FmZi5zZW5kaHViLnBsLyJd"),s("YVtocmVmXj0iaHR0cDovL2Fkdm1hbmFnZXIudGVjaGZ1bi5wbC9yZWRpcmVjdC8iXQ=="),s("YVtocmVmXj0iaHR0cDovL3d3dy50cml6ZXIucGwvP3V0bV9zb3VyY2UiXQ=="),s("ZGl2I3NrYXBpZWNfYWQ=")],ro:[s("YVtocmVmXj0iLy9hZmZ0cmsuYWx0ZXgucm8vQ291bnRlci9DbGljayJd"),s("YVtocmVmXj0iaHR0cHM6Ly9ibGFja2ZyaWRheXNhbGVzLnJvL3Ryay9zaG9wLyJd"),s("YVtocmVmXj0iaHR0cHM6Ly9ldmVudC4ycGVyZm9ybWFudC5jb20vZXZlbnRzL2NsaWNrIl0="),s("YVtocmVmXj0iaHR0cHM6Ly9sLnByb2ZpdHNoYXJlLnJvLyJd"),'a[href^="/url/"]'],ruAd:[s("YVtocmVmKj0iLy9mZWJyYXJlLnJ1LyJd"),s("YVtocmVmKj0iLy91dGltZy5ydS8iXQ=="),s("YVtocmVmKj0iOi8vY2hpa2lkaWtpLnJ1Il0="),"#pgeldiz",".yandex-rtb-block"],thaiAds:["a[href*=macau-uta-popup]",s("I2Fkcy1nb29nbGUtbWlkZGxlX3JlY3RhbmdsZS1ncm91cA=="),s("LmFkczMwMHM="),".bumq",".img-kosana"],webAnnoyancesUltralist:["#mod-social-share-2","#social-tools",s("LmN0cGwtZnVsbGJhbm5lcg=="),".zergnet-recommend",".yt.btn-link.btn-md.btn"]},n=Object.keys(e),[4,ee((a=[]).concat.apply(a,n.map(function(t){return e[t]})))]):[2,void 0];case 1:return i=r.sent(),t&&function(e,t){for(var n=0,i=Object.keys(e);n<i.length;n++){var o=i[n];"\n".concat(o,":");for(var r=0,a=e[o];r<a.length;r++){var s=a[r];"\n ".concat(t[s]?"🚫":"➡️"," ").concat(s)}}}(e,i),(o=n.filter(function(t){var n=e[t];return p(n.map(function(e){return i[e]}))>.6*n.length})).sort(),[2,o]}var s})})},fontPreferences:function(){return function(e,t){void 0===t&&(t=4e3);return O(function(n,i){var o=i.document,r=o.body,s=r.style;s.width="".concat(t,"px"),s.webkitTextSizeAdjust=s.textSizeAdjust="none",H()?r.style.zoom="".concat(1/i.devicePixelRatio):Y()&&(r.style.zoom="reset");var c=o.createElement("div");return c.textContent=a([],Array(t/20|0),!0).map(function(){return"word"}).join(" "),r.appendChild(c),e(o,r)},'<!doctype html><html><head><meta name="viewport" content="width=device-width, initial-scale=1">')}(function(e,t){for(var n={},i={},o=0,r=Object.keys(ue);o<r.length;o++){var a=r[o],s=ue[a],c=s[0],l=void 0===c?{}:c,u=s[1],d=void 0===u?"mmMwWLliI0fiflO&1":u,h=e.createElement("span");h.textContent=d,h.style.whiteSpace="nowrap";for(var m=0,f=Object.keys(l);m<f.length;m++){var v=f[m],p=l[v];void 0!==p&&(h.style[v]=p)}n[a]=h,t.append(e.createElement("br"),h)}for(var g=0,b=Object.keys(ue);g<b.length;g++){i[a=b[g]]=n[a].getBoundingClientRect().width}return i})},audio:function(){return Y()&&X()&&G()||H()&&(e=navigator,t=window,n=Audio.prototype,i=t.visualViewport,p(["srLatency"in n,"srChannelCount"in n,"devicePosture"in e,i&&"segments"in i,"getTextInformation"in Image.prototype])>=3)&&function(){var e=window,t=e.URLPattern;return p(["union"in Set.prototype,"Iterator"in e,t&&"hasRegExpGroups"in t.prototype,"RGB8"in WebGLRenderingContext.prototype])>=3}()?-4:function(){var e=window,t=e.OfflineAudioContext||e.webkitOfflineAudioContext;if(!t)return-2;if(Y()&&!F()&&!function(){var e=window;return p(["DOMRectList"in e,"RTCPeerConnectionIceEvent"in e,"SVGGeometryElement"in e,"ontransitioncancel"in e])>=3}())return-1;var n=4500,i=new t(1,5e3,44100),o=i.createOscillator();o.type="triangle",o.frequency.value=1e4;var r=i.createDynamicsCompressor();r.threshold.value=-50,r.knee.value=40,r.ratio.value=12,r.attack.value=0,r.release.value=.25,o.connect(r),r.connect(i.destination),o.start(0);var a=function(e){var t=3,n=500,i=500,o=5e3,r=function(){},a=new Promise(function(a,s){var c=!1,u=0,d=0;e.oncomplete=function(e){return a(e.renderedBuffer)};var m=function(){setTimeout(function(){return s(A("timeout"))},Math.min(i,d+o-Date.now()))},f=function(){try{var i=e.startRendering();switch(l(i)&&h(i),e.state){case"running":d=Date.now(),c&&m();break;case"suspended":document.hidden||u++,c&&u>=t?s(A("suspended")):setTimeout(f,n)}}catch(e){s(e)}};f(),r=function(){c||(c=!0,d>0&&m())}});return[a,r]}(i),s=a[0],c=a[1],u=h(s.then(function(e){return function(e){for(var t=0,n=0;n<e.length;++n)t+=Math.abs(e[n]);return t}(e.getChannelData(0).subarray(n))},function(e){if("timeout"===e.name||"suspended"===e.name)return-3;throw e}));return function(){return c(),u}}();var e,t,n,i},screenFrame:function(){var e=this;if(Y()&&X()&&G())return function(){return Promise.resolve(void 0)};var t=K();return function(){return o(e,void 0,void 0,function(){var e,n;return r(this,function(i){switch(i.label){case 0:return[4,t()];case 1:return e=i.sent(),[2,[(n=function(e){return null===e?null:g(e,10)})(e[0]),n(e[1]),n(e[2]),n(e[3])]]}})})}},canvas:function(){return function(e){var t,n,i,o=!1,r=function(){var e=document.createElement("canvas");return e.width=1,e.height=1,[e,e.getContext("2d")]}(),a=r[0],s=r[1];!function(e,t){return!(!t||!e.toDataURL)}(a,s)?n=i="unsupported":(o=function(e){return e.rect(0,0,10,10),e.rect(2,2,6,6),!e.isPointInPath(5,5,"evenodd")}(s),e?n=i="skipped":(t=function(e,t){!function(e,t){e.width=240,e.height=60,t.textBaseline="alphabetic",t.fillStyle="#f60",t.fillRect(100,1,62,20),t.fillStyle="#069",t.font='11pt "Times New Roman"';var n="Cwm fjordbank gly ".concat(String.fromCharCode(55357,56835));t.fillText(n,2,15),t.fillStyle="rgba(102, 204, 0, 0.2)",t.font="18pt Arial",t.fillText(n,4,45)}(e,t);var n=B(e),i=B(e);if(n!==i)return["unstable","unstable"];!function(e,t){e.width=122,e.height=110,t.globalCompositeOperation="multiply";for(var n=0,i=[["#f2f",40,40],["#2ff",80,40],["#ff2",60,80]];n<i.length;n++){var o=i[n],r=o[0],a=o[1],s=o[2];t.fillStyle=r,t.beginPath(),t.arc(a,s,40,0,2*Math.PI,!0),t.closePath(),t.fill()}t.fillStyle="#f9c",t.arc(60,60,60,0,2*Math.PI,!0),t.arc(60,60,20,0,2*Math.PI,!0),t.fill("evenodd")}(e,t);var o=B(e);return[o,n]}(a,s),n=t[0],i=t[1]));return{winding:o,geometry:n,text:i}}(Y()&&X()&&G())},osCpu:function(){return navigator.oscpu},languages:function(){var e,t=navigator,n=[],i=t.language||t.userLanguage||t.browserLanguage||t.systemLanguage;if(void 0!==i&&n.push([i]),Array.isArray(t.languages))H()&&p([!("MediaSettingsRange"in(e=window)),"RTCEncodedAudioFrame"in e,""+e.Intl=="[object Intl]",""+e.Reflect=="[object Reflect]"])>=3||n.push(t.languages);else if("string"==typeof t.languages){var o=t.languages;o&&n.push(o.split(","))}return n},colorDepth:function(){return window.screen.colorDepth},deviceMemory:function(){return v(f(navigator.deviceMemory),void 0)},screenResolution:function(){var e,t,n;if(!(Y()&&X()&&G()))return e=screen,(n=[(t=function(e){return v(m(e),null)})(e.width),t(e.height)]).sort().reverse(),n},hardwareConcurrency:function(){return v(m(navigator.hardwareConcurrency),void 0)},timezone:function(){var e,t=null===(e=window.Intl)||void 0===e?void 0:e.DateTimeFormat;if(t){var n=(new t).resolvedOptions().timeZone;if(n)return n}var i,o=(i=(new Date).getFullYear(),-Math.max(f(new Date(i,0,1).getTimezoneOffset()),f(new Date(i,6,1).getTimezoneOffset())));return"UTC".concat(o>=0?"+":"").concat(o)},sessionStorage:function(){try{return!!window.sessionStorage}catch(e){return!0}},localStorage:function(){try{return!!window.localStorage}catch(e){return!0}},indexedDB:function(){var e,t;if(!(j()||(e=window,t=navigator,p(["msWriteProfilerMark"in e,"MSStream"in e,"msLaunchUri"in t,"msSaveBlob"in t])>=3&&!j())))try{return!!window.indexedDB}catch(e){return!0}},openDatabase:function(){return!!window.openDatabase},cpuClass:function(){return navigator.cpuClass},platform:function(){var e=navigator.platform;return"MacIntel"===e&&Y()&&!F()?function(){if("iPad"===navigator.platform)return!0;var e=screen,t=e.width/e.height;return p(["MediaSource"in window,!!Element.prototype.webkitRequestFullscreen,t>.65&&t<1.53])>=2}()?"iPad":"iPhone":e},plugins:function(){var e=navigator.plugins;if(e){for(var t=[],n=0;n<e.length;++n){var i=e[n];if(i){for(var o=[],r=0;r<i.length;++r){var a=i[r];o.push({type:a.type,suffixes:a.suffixes})}t.push({name:i.name,description:i.description,mimeTypes:o})}}return t}},touchSupport:function(){var e,t=navigator,n=0;void 0!==t.maxTouchPoints?n=m(t.maxTouchPoints):void 0!==t.msMaxTouchPoints&&(n=t.msMaxTouchPoints);try{document.createEvent("TouchEvent"),e=!0}catch(t){e=!1}return{maxTouchPoints:n,touchEvent:e,touchStart:"ontouchstart"in window}},vendor:function(){return navigator.vendor||""},vendorFlavors:function(){for(var e=[],t=0,n=["chrome","safari","__crWeb","__gCrWeb","yandex","__yb","__ybro","__firefox__","__edgeTrackingPreventionStatistics","webkit","oprt","samsungAr","ucweb","UCShellJava","puffinDevice"];t<n.length;t++){var i=n[t],o=window[i];o&&"object"==typeof o&&e.push(i)}return e.sort()},cookiesEnabled:function(){var e=document;try{e.cookie="cookietest=1; SameSite=Strict;";var t=-1!==e.cookie.indexOf("cookietest=");return e.cookie="cookietest=1; SameSite=Strict; expires=Thu, 01-Jan-1970 00:00:01 GMT",t}catch(e){return!1}},colorGamut:function(){for(var e=0,t=["rec2020","p3","srgb"];e<t.length;e++){var n=t[e];if(matchMedia("(color-gamut: ".concat(n,")")).matches)return n}},invertedColors:function(){return!!ne("inverted")||!ne("none")&&void 0},forcedColors:function(){return!!ie("active")||!ie("none")&&void 0},monochrome:function(){if(matchMedia("(min-monochrome: 0)").matches){for(var e=0;e<=100;++e)if(matchMedia("(max-monochrome: ".concat(e,")")).matches)return e;throw new Error("Too high value")}},contrast:function(){return oe("no-preference")?0:oe("high")||oe("more")?1:oe("low")||oe("less")?-1:oe("forced")?10:void 0},reducedMotion:function(){return!!re("reduce")||!re("no-preference")&&void 0},reducedTransparency:function(){return!!ae("reduce")||!ae("no-preference")&&void 0},hdr:function(){return!!se("high")||!se("standard")&&void 0},math:function(){var e,t=ce.acos||le,n=ce.acosh||le,i=ce.asin||le,o=ce.asinh||le,r=ce.atanh||le,a=ce.atan||le,s=ce.sin||le,c=ce.sinh||le,l=ce.cos||le,u=ce.cosh||le,d=ce.tan||le,h=ce.tanh||le,m=ce.exp||le,f=ce.expm1||le,v=ce.log1p||le;return{acos:t(.12312423423423424),acosh:n(1e308),acoshPf:(e=1e154,ce.log(e+ce.sqrt(e*e-1))),asin:i(.12312423423423424),asinh:o(1),asinhPf:function(e){return ce.log(e+ce.sqrt(e*e+1))}(1),atanh:r(.5),atanhPf:function(e){return ce.log((1+e)/(1-e))/2}(.5),atan:a(.5),sin:s(-1e300),sinh:c(1),sinhPf:function(e){return ce.exp(e)-1/ce.exp(e)/2}(1),cos:l(10.000000000123),cosh:u(1),coshPf:function(e){return(ce.exp(e)+1/ce.exp(e))/2}(1),tan:d(-1e300),tanh:h(1),tanhPf:function(e){return(ce.exp(2*e)-1)/(ce.exp(2*e)+1)}(1),exp:m(1),expm1:f(1),expm1Pf:function(e){return ce.exp(e)-1}(1),log1p:v(10),log1pPf:function(e){return ce.log(1+e)}(10),powPI:function(e){return ce.pow(ce.PI,e)}(-100)}},pdfViewerEnabled:function(){return navigator.pdfViewerEnabled},architecture:function(){var e=new Float32Array(1),t=new Uint8Array(e.buffer);return e[0]=1/0,e[0]=e[0]-e[0],t[3]},applePay:function(){var e=window.ApplePaySession;if("function"!=typeof(null==e?void 0:e.canMakePayments))return-1;if(de())return-3;try{return e.canMakePayments()?1:0}catch(e){return function(e){if(e instanceof Error&&"InvalidAccessError"===e.name&&/\bfrom\b.*\binsecure\b/i.test(e.message))return-2;throw e}(e)}},privateClickMeasurement:function(){var e,t=document.createElement("a"),n=null!==(e=t.attributionSourceId)&&void 0!==e?e:t.attributionsourceid;return void 0===n?void 0:String(n)},audioBaseLatency:function(){if(!(N()||Y()))return-2;if(!window.AudioContext)return-1;var e=(new AudioContext).baseLatency;return null==e?-1:isFinite(e)?e:-3},dateTimeLocale:function(){if(!window.Intl)return-1;var e=window.Intl.DateTimeFormat;if(!e)return-2;var t=e().resolvedOptions().locale;return t||""===t?t:-3},webGlBasics:function(e){var t,n,i,o,r,a,s=ge(e.cache);if(!s)return-1;if(!ke(s))return-2;var c=Ee()?null:s.getExtension(pe);return{version:(null===(t=s.getParameter(s.VERSION))||void 0===t?void 0:t.toString())||"",vendor:(null===(n=s.getParameter(s.VENDOR))||void 0===n?void 0:n.toString())||"",vendorUnmasked:c?null===(i=s.getParameter(c.UNMASKED_VENDOR_WEBGL))||void 0===i?void 0:i.toString():"",renderer:(null===(o=s.getParameter(s.RENDERER))||void 0===o?void 0:o.toString())||"",rendererUnmasked:c?null===(r=s.getParameter(c.UNMASKED_RENDERER_WEBGL))||void 0===r?void 0:r.toString():"",shadingLanguageVersion:(null===(a=s.getParameter(s.SHADING_LANGUAGE_VERSION))||void 0===a?void 0:a.toString())||""}},webGlExtensions:function(e){var t=ge(e.cache);if(!t)return-1;if(!ke(t))return-2;var n=t.getSupportedExtensions(),i=t.getContextAttributes(),o=[],r=[],a=[],s=[],c=[];if(i)for(var l=0,u=Object.keys(i);l<u.length;l++){var d=u[l];r.push("".concat(d,"=").concat(i[d]))}for(var h=0,m=ye(t);h<m.length;h++){var f=t[E=m[h]];a.push("".concat(E,"=").concat(f).concat(he.has(f)?"=".concat(t.getParameter(f)):""))}if(n)for(var v=0,p=n;v<p.length;v++){var g=p[v];if(!(g===pe&&Ee()||"WEBGL_polygon_mode"===g&&Le())){var b=t.getExtension(g);if(b)for(var y=0,w=ye(b);y<w.length;y++){var E;f=b[E=w[y]];s.push("".concat(E,"=").concat(f).concat(me.has(f)?"=".concat(t.getParameter(f)):""))}else o.push(g)}}for(var L=0,k=fe;L<k.length;L++)for(var x=k[L],S=0,M=ve;S<M.length;S++){var C=M[S],I=be(t,x,C);c.push("".concat(x,".").concat(C,"=").concat(I.join(",")))}return s.sort(),a.sort(),{contextAttributes:r,parameters:a,shaderPrecisions:c,extensions:n,extensionParameters:s,unsupportedExtensions:o}}};function Se(e){var t=function(e){if(N())return.4;if(Y())return!F()||X()&&G()?.3:.5;var t="value"in e.platform?e.platform.value:"";if(/^Win/.test(t))return.6;if(/^Mac/.test(t))return.5;return.7}(e),n=function(e){return g(.99+.01*e,1e-4)}(t);return{score:t,comment:"$ if upgrade to Pro: https://fpjs.dev/pro".replace(/\$/g,"".concat(n))}}function Me(e){return Z(function(e){for(var t="",n=0,i=Object.keys(e).sort();n<i.length;n++){var o=i[n],r=e[o],a="error"in r?"error":JSON.stringify(r.value);t+="".concat(t?"|":"").concat(o.replace(/([:|\\])/g,"\\$1"),":").concat(a)}return t}(e))}function Ce(e){return void 0===e&&(e=50),function(e,t){void 0===t&&(t=1/0);var n=window.requestIdleCallback;return n?new Promise(function(e){return n.call(window,function(){return e()},{timeout:t})}):c(Math.min(e,t))}(e,2*e)}function Ie(e,t){Date.now();return{get:function(n){return o(this,void 0,void 0,function(){var i,o;return r(this,function(r){switch(r.label){case 0:return Date.now(),[4,e()];case 1:return i=r.sent(),o=function(e){var t,n=Se(e);return{get visitorId(){return void 0===t&&(t=Me(this.components)),t},set visitorId(e){t=e},confidence:n,components:e,version:s}}(i),t||null==n||n.debug,[2,o]}})})}}}var Ve={load:function(e){var t;return void 0===e&&(e={}),o(this,void 0,void 0,function(){var n,i,o;return r(this,function(r){switch(r.label){case 0:return(null===(t=e.monitoring)||void 0===t||t)&&function(){if(!(window.__fpjs_d_m||Math.random()>=.001))try{var e=new XMLHttpRequest;e.open("get","https://m1.openfpcdn.io/fingerprintjs/v".concat(s,"/npm-monitoring"),!0),e.send()}catch(e){}}(),n=e.delayFallback,i=e.debug,[4,Ce(n)];case 1:return r.sent(),o=function(e){return R(xe,e,[])}({cache:{},debug:i}),[2,Ie(o,i)]}})})},hashComponents:Me,componentsToDebugString:function(e){return JSON.stringify(e,function(e,t){return t instanceof Error?i({name:(n=t).name,message:n.message,stack:null===(o=n.stack)||void 0===o?void 0:o.split("\n")},n):t;var n,o},2)}};class We{constructor(){this.iconManager=null,this.iframeManager=null,this.config=null,this.isInitialized=!1}async init(e,i){if(!this.isInitialized){this.config=e;try{const o=await this.getDeviceId(),r=this.buildIframeUrl(e,o);this.iconManager=new t,await this.iconManager.show(),this.iframeManager=new n({src:r,mode:"auto",width:400,height:600,allowClose:!0,onMessage:(e,t)=>{"new-message"===e&&this.showNotification(0,{pulse:!0})},onClose:()=>{this.iconManager?.forceCleanupDragEvents()},...i}),await this.iframeManager.init(),this.iconManager.onClick(()=>{this.clearNotification(),this.iframeManager?.show()}),this.isInitialized=!0}catch(e){throw e}}}showIcon(){this.iconManager?.show()}hideIcon(){this.iconManager?.hide()}setIconPosition(e){this.iconManager?.setPosition(e)}setIconStyle(e){this.iconManager?.setStyle(e)}openChat(){this.clearNotification(),this.iframeManager?.open()}closeChat(){this.iconManager?.forceCleanupDragEvents(),this.iframeManager?.close()}isChatOpen(){return this.iframeManager?.isIframeOpen()||!1}sendToIframe(e){this.iframeManager?.sendToIframe(e)}getConnectionStatus(){return this.isInitialized}showNotification(e=1,t={}){this.iconManager&&(this.iconManager.showNotification({badgeCount:"string"==typeof e?0:e,badgeText:"string"==typeof e?e:"",pulse:t.pulse||!1}),t.autoHide&&t.autoHide>0&&setTimeout(()=>{this.iconManager?.clearNotification()},t.autoHide))}clearNotification(){this.iconManager?.clearNotification()}destroy(){this.iconManager?.hide(),this.iframeManager?.close(),this.iconManager=null,this.iframeManager=null,this.config=null,this.isInitialized=!1}async getDeviceId(){try{const e=await Ve.load();return(await e.get()).visitorId}catch(e){return"device_"+Date.now()+"_"+Math.random().toString(36).substr(2,9)}}buildIframeUrl(e,t){const n=e.iframeUrl;if(!n||""===n.trim())throw new Error("iframeUrl is required but not provided or is empty");const i=new URL(n);return i.searchParams.set("Agent",e.agent),i.searchParams.set("Authorization",e.token),i.searchParams.set("DeviceSign",t),i.searchParams.set("Referrer",document.referrer),i.toString()}}let Ze=null;const Re=async(e,t)=>{Ze||(Ze=new We),await Ze.init(e,t)},je=()=>{if(!Ze)throw new Error("SDK not initialized. Call init() first.");return Ze},He=()=>{je().showIcon()},Ye=()=>{je().hideIcon()},Fe=e=>{je().setIconPosition(e)},Ge=e=>{je().setIconStyle(e)},Pe=()=>{je().openChat()},Xe=()=>{je().closeChat()},De=()=>je().isChatOpen(),Ne=e=>{je().sendToIframe(e)},Ae=()=>je().getConnectionStatus(),Oe=(e=1,t={})=>{je().showNotification(e,t)},Te=()=>{je().clearNotification()},ze=()=>{je().destroy(),Ze=null};var Je={init:Re,getInstance:je,showIcon:He,hideIcon:Ye,setIconPosition:Fe,setIconStyle:Ge,openChat:Pe,closeChat:Xe,isChatOpen:De,sendToIframe:Ne,getConnectionStatus:Ae,showNotification:Oe,clearNotification:Te,destroy:ze};e.CustomerServiceSDK=We,e.clearNotification=Te,e.closeChat=Xe,e.default=Je,e.destroy=ze,e.getConnectionStatus=Ae,e.getInstance=je,e.hideIcon=Ye,e.init=Re,e.isChatOpen=De,e.openChat=Pe,e.sendToIframe=Ne,e.setIconPosition=Fe,e.setIconStyle=Ge,e.showIcon=He,e.showNotification=Oe,Object.defineProperty(e,"__esModule",{value:!0})});
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).CustomerSDK={})}(this,function(e){"use strict";class t{constructor(e){this.iconElement=null,this.badgeElement=null,this.onClickCallback=null,this.notificationCallback=null,this.isDragging=!1,this.dragStartX=0,this.dragStartY=0,this.iconStartX=0,this.iconStartY=0,this.dragMoveHandler=null,this.dragEndHandler=null,this.iconPosition=null,this.iconPosition=e||null}async show(){if(this.iconElement)return;this.iconElement=document.createElement("div"),this.iconElement.className="customer-sdk-icon";const e={position:"fixed",width:"30px",height:"30px",backgroundColor:"transparent",borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",zIndex:"999999",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.15)",userSelect:"none",transition:"transform 0.2s ease",border:"none",outline:"none",overflow:"visible"};this.iconPosition?(void 0!==this.iconPosition.x?(e.left="number"==typeof this.iconPosition.x?`${this.iconPosition.x}px`:this.iconPosition.x,e.right="auto"):e.right="20px",void 0!==this.iconPosition.y?(e.top="number"==typeof this.iconPosition.y?`${this.iconPosition.y}px`:this.iconPosition.y,e.bottom="auto"):e.bottom="80px"):(e.bottom="80px",e.right="20px"),Object.assign(this.iconElement.style,e);const t=document.createElement("img");t.src="data:image/png;base64,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",t.style.width="100%",t.style.height="100%",t.style.objectFit="cover",t.style.display="block",t.alt="Customer Service",t.onload=()=>{this.iconElement&&(t.style.opacity="1",t.style.visibility="visible")},t.onerror=e=>{},t.style.opacity="1",t.style.visibility="visible";const n=document.createElement("div");Object.assign(n.style,{width:"100%",height:"100%",borderRadius:"50%",overflow:"hidden",position:"relative"}),n.appendChild(t),this.iconElement.appendChild(n),this.setupDragEvents(),document.body.appendChild(this.iconElement)}forceCleanupDragEvents(){if(this.dragMoveHandler)try{document.removeEventListener("mousemove",this.dragMoveHandler),document.removeEventListener("touchmove",this.dragMoveHandler)}catch(e){}if(this.dragEndHandler)try{document.removeEventListener("mouseup",this.dragEndHandler),document.removeEventListener("touchend",this.dragEndHandler)}catch(e){}this.isDragging=!1,this.iconElement&&(this.iconElement.style.transition="transform 0.2s ease",this.iconElement.style.cursor="pointer")}hide(){this.forceCleanupDragEvents(),this.iconElement&&(this.iconElement.remove(),this.iconElement=null,this.onClickCallback=null,this.dragMoveHandler=null,this.dragEndHandler=null)}setPosition(e){}setIconPosition(e){if(this.iconPosition=e,this.iconElement){void 0!==e.x&&(this.iconElement.style.left="number"==typeof e.x?`${e.x}px`:e.x,this.iconElement.style.right="auto"),void 0!==e.y&&(this.iconElement.style.top="number"==typeof e.y?`${e.y}px`:e.y,this.iconElement.style.bottom="auto");const t=this.iconElement.getBoundingClientRect();this.iconStartX=t.left,this.iconStartY=t.top}}setStyle(e){}onClick(e){this.onClickCallback=e}onNotification(e){this.notificationCallback=e}showNotification(e){if(!this.iconElement)return;const{showBadge:t=!0,badgeCount:n=0,badgeText:i="",pulse:o=!1}=e;(t||n>0)&&this.createBadge(n,i,o),this.notificationCallback&&this.notificationCallback({badgeCount:n,badgeText:i,pulse:o})}clearNotification(){this.badgeElement&&(this.badgeElement.remove(),this.badgeElement=null)}setupDragEvents(){this.iconElement&&(this.dragMoveHandler=this.handleDragMove.bind(this),this.dragEndHandler=this.handleDragEnd.bind(this),this.iconElement.addEventListener("mousedown",this.handleDragStart.bind(this)),this.iconElement.addEventListener("touchstart",this.handleDragStart.bind(this),{passive:!1}))}handleDragStart(e){if(!this.iconElement)return;if(e.target!==this.iconElement&&!this.iconElement.contains(e.target))return;e.preventDefault(),e.stopPropagation();const t="touches"in e?e.touches[0].clientX:e.clientX,n="touches"in e?e.touches[0].clientY:e.clientY;this.isDragging=!1,this.dragStartX=t,this.dragStartY=n;const i=this.iconElement.getBoundingClientRect();this.iconStartX=i.left,this.iconStartY=i.top,this.iconElement.style.transition="none",this.iconElement.style.cursor="grabbing";const o=e=>{const t="touches"in e?e.touches[0].clientX:e.clientX,n="touches"in e?e.touches[0].clientY:e.clientY,i=t-this.dragStartX,r=n-this.dragStartY;(Math.abs(i)>5||Math.abs(r)>5)&&(this.isDragging=!0,"touches"in e?document.removeEventListener("touchmove",o):document.removeEventListener("mousemove",o),this.dragMoveHandler&&this.dragEndHandler&&("touches"in e?(document.addEventListener("touchmove",this.dragMoveHandler,{passive:!1}),document.addEventListener("touchend",this.dragEndHandler)):(document.addEventListener("mousemove",this.dragMoveHandler),document.addEventListener("mouseup",this.dragEndHandler))))};"touches"in e?(document.addEventListener("touchmove",o,{passive:!1}),document.addEventListener("touchend",this.dragEndHandler)):(document.addEventListener("mousemove",o),document.addEventListener("mouseup",this.dragEndHandler))}handleDragMove(e){if(!this.iconElement||!this.isDragging)return;const t="touches"in e?e.touches[0].clientX:e.clientX,n="touches"in e?e.touches[0].clientY:e.clientY,i=e.target;if(i&&i!==this.iconElement&&!this.iconElement.contains(i)){if("IFRAME"===i.tagName||i.closest("iframe")||i.closest(".customer-sdk-container")||i.closest(".customer-sdk-overlay"))return void this.handleDragEnd()}const o=t-this.dragStartX,r=n-this.dragStartY,a=this.iconElement.getBoundingClientRect(),s=a.left+a.width/2,c=a.top+a.height/2;if(Math.sqrt(Math.pow(t-s,2)+Math.pow(n-c,2))>3*Math.max(a.width,a.height))return void this.handleDragEnd();e.preventDefault(),e.stopPropagation();const l=this.iconStartX+o,u=this.iconStartY+r,d=window.innerWidth-this.iconElement.offsetWidth,h=window.innerHeight-this.iconElement.offsetHeight,m=Math.max(0,Math.min(l,d)),f=Math.max(0,Math.min(u,h));this.iconElement.style.left=`${m}px`,this.iconElement.style.top=`${f}px`,this.iconElement.style.right="auto",this.iconElement.style.bottom="auto"}handleDragEnd(e){this.iconElement&&(this.dragMoveHandler&&(document.removeEventListener("mousemove",this.dragMoveHandler),document.removeEventListener("touchmove",this.dragMoveHandler)),this.dragEndHandler&&(document.removeEventListener("mouseup",this.dragEndHandler),document.removeEventListener("touchend",this.dragEndHandler)),this.iconElement.style.transition="transform 0.2s ease",this.iconElement.style.cursor="pointer",this.isDragging||this.handleClick(),this.isDragging=!1)}handleClick(){this.onClickCallback&&this.onClickCallback()}createBadge(e,t="",n=!1){this.clearNotification(),this.badgeElement=document.createElement("div"),this.badgeElement.className="customer-sdk-icon-badge",this.badgeElement.textContent=e>0?e>99?"99+":e.toString():t||"",Object.assign(this.badgeElement.style,{position:"absolute",top:"-4px",left:"-4px",right:"auto",minWidth:"18px",height:"18px",borderRadius:"50%",backgroundColor:"#ff4444",color:"#ffffff",fontSize:"10px",fontWeight:"bold",display:"flex",alignItems:"center",justifyContent:"center",zIndex:"1000001",boxShadow:"0 -1px 4px rgba(0, 0, 0, 0.3), 0 2px 8px rgba(0, 0, 0, 0.15)",...0===e&&""===t&&{width:"12px",height:"12px",minWidth:"12px",top:"-2px",left:"-2px"},...n&&{animation:"sdk-badge-pulse 1.5s infinite"}}),this.iconElement&&this.iconElement.appendChild(this.badgeElement)}}class n{constructor(e={}){this.iframeElement=null,this.overlayElement=null,this.containerElement=null,this.isOpen=!1,this.isCreated=!1,this.config={src:"",mode:"auto",width:400,height:600,allowClose:!0,...e},this.setupMessageListener()}async init(){try{this.createIframe(),this.isCreated=!0}catch(e){throw e}}show(){if(!this.isOpen){if(!this.isCreated)throw new Error("Iframe not initialized. Call init() first.");try{const e="popup"===this.getActualMode();e&&this.createOverlay(),this.containerElement&&(e?(Object.assign(this.containerElement.style,{position:"fixed",top:"50%",left:"50%",transform:"translate(-50%, -50%)",visibility:"visible",opacity:"1",display:"block"}),this.overlayElement?.appendChild(this.containerElement)):(Object.assign(this.containerElement.style,{position:"fixed",visibility:"visible",opacity:"1",display:"block"}),this.preventBodyScroll(!0))),this.isOpen=!0}catch(e){}}}open(){this.show()}hide(){if(!this.isOpen)return;this.containerElement&&Object.assign(this.containerElement.style,{visibility:"hidden",opacity:"0",display:"none"}),this.overlayElement&&(this.overlayElement.remove(),this.overlayElement=null);"fullscreen"===this.getActualMode()&&this.preventBodyScroll(!1),this.isOpen=!1,this.config.onClose&&this.config.onClose()}close(){this.hide()}destroy(){this.hide(),this.containerElement&&(this.containerElement.remove(),this.containerElement=null,this.iframeElement=null),this.isCreated=!1}isIframeOpen(){return this.isOpen}sendToIframe(e){this.iframeElement&&this.iframeElement.contentWindow&&this.iframeElement.contentWindow.postMessage(e,"*")}createOverlay(){this.overlayElement=document.createElement("div"),this.overlayElement.className="customer-sdk-overlay",Object.assign(this.overlayElement.style,{position:"fixed",top:"0",left:"0",width:"100%",height:"100%",backgroundColor:"rgba(0, 0, 0, 0.5)",zIndex:"999998",display:"flex",alignItems:"center",justifyContent:"center",cursor:this.config.allowClose?"pointer":"default"}),this.config.allowClose&&this.overlayElement.addEventListener("click",e=>{e.target===this.overlayElement&&this.close()}),document.body.appendChild(this.overlayElement)}createIframe(){this.containerElement=document.createElement("div"),this.containerElement.className="customer-sdk-container",this.iframeElement=document.createElement("iframe"),this.iframeElement.className="customer-sdk-iframe",this.iframeElement.src=this.config.src||"",this.iframeElement.frameBorder="0",this.iframeElement.setAttribute("allow",["microphone","camera","geolocation","clipboard-read","clipboard-write","fullscreen","autoplay","encrypted-media"].join("; ")),this.iframeElement.setAttribute("sandbox",["allow-same-origin","allow-scripts","allow-forms","allow-popups","allow-popups-to-escape-sandbox","allow-presentation","allow-top-navigation","allow-top-navigation-by-user-activation","allow-downloads","allow-modals","allow-orientation-lock","allow-pointer-lock","allow-storage-access-by-user-activation"].join(" "));const e="popup"===this.getActualMode();this.iframeElement.scrolling=e?"auto":"no";const t={width:e?`${this.config.width}px`:"100%",height:e?`${this.config.height}px`:"100%",maxWidth:e?"450px":"100%",maxHeight:e?"700px":"100%",backgroundColor:"#ffffff",borderRadius:e?"12px":"12px 12px 0 0",boxShadow:e?"0 20px 40px rgba(0, 0, 0, 0.15)":"0 -4px 16px rgba(0, 0, 0, 0.25)",border:"none",position:"fixed",zIndex:"999999",...e?{top:"50%",left:"50%",transform:"translate(-50%, -50%)"}:{top:"0",left:"0",bottom:"0",right:"0",transform:"none",overflow:"hidden",position:"fixed"},visibility:"hidden",opacity:"0",display:"none"};Object.assign(this.containerElement.style,t);const n={width:"100%",height:"100%",border:"none",borderRadius:"inherit",...e?{}:{overflow:"hidden",scrollbarWidth:"none",msOverflowStyle:"none",WebkitScrollbar:"none"}};Object.assign(this.iframeElement.style,n),this.containerElement.appendChild(this.iframeElement),this.iframeElement.addEventListener("load",()=>{e||this.injectMobileStyles()}),document.body.appendChild(this.containerElement)}injectMobileStyles(){if(this.iframeElement)try{const e=this.iframeElement.contentDocument||this.iframeElement.contentWindow?.document;if(e){const t=e.createElement("style");t.textContent="\n /* 移动端iframe全屏样式优化 */\n * {\n -webkit-overflow-scrolling: touch !important;\n }\n \n body, html, #app, .container {\n overflow: auto !important;\n -webkit-overflow-scrolling: touch !important;\n }\n \n /* 隐藏所有滚动条 */\n ::-webkit-scrollbar {\n width: 0px !important;\n height: 0px !important;\n background: transparent !important;\n }\n \n /* Firefox */\n html {\n scrollbar-width: none !important;\n }\n \n /* IE/Edge */\n body {\n -ms-overflow-style: none !important;\n }\n \n /* 确保内容可以滚动 */\n body {\n overflow: auto !important;\n height: 100vh !important;\n margin: 0 !important;\n padding: 0 !important;\n }\n ",e.head?.appendChild(t)}}catch(e){}}preventBodyScroll(e){if(e){const e=window.scrollY;Object.assign(document.body.style,{position:"fixed",top:`-${e}px`,width:"100%",overflow:"hidden"}),document.body.setAttribute("data-scroll-position",e.toString())}else{const e=parseInt(document.body.getAttribute("data-scroll-position")||"0");Object.assign(document.body.style,{position:"",top:"",width:"",overflow:""}),document.body.removeAttribute("data-scroll-position"),window.scrollTo(0,e)}}isMobileDevice(){return window.innerWidth<=768||/Android|iPhone|iPad|iPod|Opera Mini|IEMobile/i.test(navigator.userAgent)}getActualMode(){return"auto"===this.config.mode?this.isMobileDevice()?"fullscreen":"popup":this.config.mode}setupMessageListener(){window.addEventListener("message",e=>{this.config.src&&e.origin!==new URL(this.config.src).origin||this.handleIframeMessage(e.data)},!1)}handleIframeMessage(e){let t;if("string"==typeof e)t=e;else{if(!e||!e.type)return;t=e.type}switch(t){case"iframe_ready":break;case"close_iframe":case"close":this.close();break;case"resize_iframe":case"resize":e.width&&e.height&&this.resizeIframe(e.width,e.height);break;case"new-message":this.config.onMessage&&this.config.onMessage(t,e)}}resizeIframe(e,t){this.iframeElement&&(this.iframeElement.style.width=`${e}px`,this.iframeElement.style.height=`${t}px`)}}var i=function(){return i=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},i.apply(this,arguments)};function o(e,t,n,i){return new(n||(n=Promise))(function(o,r){function a(e){try{c(i.next(e))}catch(e){r(e)}}function s(e){try{c(i.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}c((i=i.apply(e,t||[])).next())})}function r(e,t){var n,i,o,r={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return a.next=s(0),a.throw=s(1),a.return=s(2),"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(s){return function(c){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,s[0]&&(r=0)),r;)try{if(n=1,i&&(o=2&s[0]?i.return:s[0]?i.throw||((o=i.return)&&o.call(i),0):i.next)&&!(o=o.call(i,s[1])).done)return o;switch(i=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return r.label++,{value:s[1],done:!1};case 5:r.label++,i=s[1],s=[0];continue;case 7:s=r.ops.pop(),r.trys.pop();continue;default:if(!(o=r.trys,(o=o.length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){r=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){r.label=s[1];break}if(6===s[0]&&r.label<o[1]){r.label=o[1],o=s;break}if(o&&r.label<o[2]){r.label=o[2],r.ops.push(s);break}o[2]&&r.ops.pop(),r.trys.pop();continue}s=t.call(e,r)}catch(e){s=[6,e],i=0}finally{n=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,c])}}}function a(e,t,n){if(n||2===arguments.length)for(var i,o=0,r=t.length;o<r;o++)!i&&o in t||(i||(i=Array.prototype.slice.call(t,0,o)),i[o]=t[o]);return e.concat(i||Array.prototype.slice.call(t))}"function"==typeof SuppressedError&&SuppressedError;var s="4.6.2";function c(e,t){return new Promise(function(n){return setTimeout(n,e,t)})}function l(e){return!!e&&"function"==typeof e.then}function u(e,t){try{var n=e();l(n)?n.then(function(e){return t(!0,e)},function(e){return t(!1,e)}):t(!0,n)}catch(e){t(!1,e)}}function d(e,t,n){return void 0===n&&(n=16),o(this,void 0,void 0,function(){var i,o,a,s;return r(this,function(r){switch(r.label){case 0:i=Array(e.length),o=Date.now(),a=0,r.label=1;case 1:return a<e.length?(i[a]=t(e[a],a),(s=Date.now())>=o+n?(o=s,[4,new Promise(function(e){var t=new MessageChannel;t.port1.onmessage=function(){return e()},t.port2.postMessage(null)})]):[3,3]):[3,4];case 2:r.sent(),r.label=3;case 3:return++a,[3,1];case 4:return[2,i]}})})}function h(e){return e.then(void 0,function(){}),e}function m(e){return parseInt(e)}function f(e){return parseFloat(e)}function v(e,t){return"number"==typeof e&&isNaN(e)?t:e}function p(e){return e.reduce(function(e,t){return e+(t?1:0)},0)}function g(e,t){if(void 0===t&&(t=1),Math.abs(t)>=1)return Math.round(e/t)*t;var n=1/t;return Math.round(e*n)/n}function b(e,t){var n=e[0]>>>16,i=65535&e[0],o=e[1]>>>16,r=65535&e[1],a=t[0]>>>16,s=65535&t[0],c=t[1]>>>16,l=0,u=0,d=0,h=0;d+=(h+=r+(65535&t[1]))>>>16,h&=65535,u+=(d+=o+c)>>>16,d&=65535,l+=(u+=i+s)>>>16,u&=65535,l+=n+a,l&=65535,e[0]=l<<16|u,e[1]=d<<16|h}function y(e,t){var n=e[0]>>>16,i=65535&e[0],o=e[1]>>>16,r=65535&e[1],a=t[0]>>>16,s=65535&t[0],c=t[1]>>>16,l=65535&t[1],u=0,d=0,h=0,m=0;h+=(m+=r*l)>>>16,m&=65535,d+=(h+=o*l)>>>16,h&=65535,d+=(h+=r*c)>>>16,h&=65535,u+=(d+=i*l)>>>16,d&=65535,u+=(d+=o*c)>>>16,d&=65535,u+=(d+=r*s)>>>16,d&=65535,u+=n*l+i*c+o*s+r*a,u&=65535,e[0]=u<<16|d,e[1]=h<<16|m}function w(e,t){var n=e[0];32===(t%=64)?(e[0]=e[1],e[1]=n):t<32?(e[0]=n<<t|e[1]>>>32-t,e[1]=e[1]<<t|n>>>32-t):(t-=32,e[0]=e[1]<<t|n>>>32-t,e[1]=n<<t|e[1]>>>32-t)}function E(e,t){0!==(t%=64)&&(t<32?(e[0]=e[1]>>>32-t,e[1]=e[1]<<t):(e[0]=e[1]<<t-32,e[1]=0))}function L(e,t){e[0]^=t[0],e[1]^=t[1]}var x=[4283543511,3981806797],k=[3301882366,444984403];function S(e){var t=[0,e[0]>>>1];L(e,t),y(e,x),t[1]=e[0]>>>1,L(e,t),y(e,k),t[1]=e[0]>>>1,L(e,t)}var C=[2277735313,289559509],M=[1291169091,658871167],I=[0,5],V=[0,1390208809],W=[0,944331445];function Z(e,t){var n=function(e){for(var t=new Uint8Array(e.length),n=0;n<e.length;n++){var i=e.charCodeAt(n);if(i>127)return(new TextEncoder).encode(e);t[n]=i}return t}(e);t=t||0;var i,o=[0,n.length],r=o[1]%16,a=o[1]-r,s=[0,t],c=[0,t],l=[0,0],u=[0,0];for(i=0;i<a;i+=16)l[0]=n[i+4]|n[i+5]<<8|n[i+6]<<16|n[i+7]<<24,l[1]=n[i]|n[i+1]<<8|n[i+2]<<16|n[i+3]<<24,u[0]=n[i+12]|n[i+13]<<8|n[i+14]<<16|n[i+15]<<24,u[1]=n[i+8]|n[i+9]<<8|n[i+10]<<16|n[i+11]<<24,y(l,C),w(l,31),y(l,M),L(s,l),w(s,27),b(s,c),y(s,I),b(s,V),y(u,M),w(u,33),y(u,C),L(c,u),w(c,31),b(c,s),y(c,I),b(c,W);l[0]=0,l[1]=0,u[0]=0,u[1]=0;var d=[0,0];switch(r){case 15:d[1]=n[i+14],E(d,48),L(u,d);case 14:d[1]=n[i+13],E(d,40),L(u,d);case 13:d[1]=n[i+12],E(d,32),L(u,d);case 12:d[1]=n[i+11],E(d,24),L(u,d);case 11:d[1]=n[i+10],E(d,16),L(u,d);case 10:d[1]=n[i+9],E(d,8),L(u,d);case 9:d[1]=n[i+8],L(u,d),y(u,M),w(u,33),y(u,C),L(c,u);case 8:d[1]=n[i+7],E(d,56),L(l,d);case 7:d[1]=n[i+6],E(d,48),L(l,d);case 6:d[1]=n[i+5],E(d,40),L(l,d);case 5:d[1]=n[i+4],E(d,32),L(l,d);case 4:d[1]=n[i+3],E(d,24),L(l,d);case 3:d[1]=n[i+2],E(d,16),L(l,d);case 2:d[1]=n[i+1],E(d,8),L(l,d);case 1:d[1]=n[i],L(l,d),y(l,C),w(l,31),y(l,M),L(s,l)}return L(s,o),L(c,o),b(s,c),b(c,s),S(s),S(c),b(s,c),b(c,s),("00000000"+(s[0]>>>0).toString(16)).slice(-8)+("00000000"+(s[1]>>>0).toString(16)).slice(-8)+("00000000"+(c[0]>>>0).toString(16)).slice(-8)+("00000000"+(c[1]>>>0).toString(16)).slice(-8)}function R(e,t,n,i){var a=Object.keys(e).filter(function(e){return!function(e,t){for(var n=0,i=e.length;n<i;++n)if(e[n]===t)return!0;return!1}(n,e)}),s=h(d(a,function(n){return function(e,t){var n=h(new Promise(function(n){var i=Date.now();u(e.bind(null,t),function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var o=Date.now()-i;if(!e[0])return n(function(){return{error:e[1],duration:o}});var r=e[1];if(function(e){return"function"!=typeof e}(r))return n(function(){return{value:r,duration:o}});n(function(){return new Promise(function(e){var t=Date.now();u(r,function(){for(var n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];var r=o+Date.now()-t;if(!n[0])return e({error:n[1],duration:r});e({value:n[1],duration:r})})})})})}));return function(){return n.then(function(e){return e()})}}(e[n],t)},i));return function(){return o(this,void 0,void 0,function(){var e,t,n,o;return r(this,function(r){switch(r.label){case 0:return[4,s];case 1:return[4,d(r.sent(),function(e){return h(e())},i)];case 2:return e=r.sent(),[4,Promise.all(e)];case 3:for(t=r.sent(),n={},o=0;o<a.length;++o)n[a[o]]=t[o];return[2,n]}})})}}function A(){var e=window,t=navigator;return p(["MSCSSMatrix"in e,"msSetImmediate"in e,"msIndexedDB"in e,"msMaxTouchPoints"in t,"msPointerEnabled"in t])>=4}function P(){var e=window,t=navigator;return p(["webkitPersistentStorage"in t,"webkitTemporaryStorage"in t,0===(t.vendor||"").indexOf("Google"),"webkitResolveLocalFileSystemURL"in e,"BatteryManager"in e,"webkitMediaStream"in e,"webkitSpeechGrammar"in e])>=5}function H(){var e=window;return p(["ApplePayError"in e,"CSSPrimitiveValue"in e,"Counter"in e,0===navigator.vendor.indexOf("Apple"),"RGBColor"in e,"WebKitMediaKeys"in e])>=4}function F(){var e=window,t=e.HTMLElement,n=e.Document;return p(["safari"in e,!("ongestureend"in e),!("TouchEvent"in e),!("orientation"in e),t&&!("autocapitalize"in t.prototype),n&&"pointerLockElement"in n.prototype])>=4}function j(){var e,t=window;return e=t.print,/^function\s.*?\{\s*\[native code]\s*}$/.test(String(e))&&"[object WebPageNamespace]"===String(t.browser)}function X(){var e,t,n=window;return p(["buildID"in navigator,"MozAppearance"in(null!==(t=null===(e=document.documentElement)||void 0===e?void 0:e.style)&&void 0!==t?t:{}),"onmozfullscreenchange"in n,"mozInnerScreenX"in n,"CSSMozDocumentRule"in n,"CanvasCaptureMediaStream"in n])>=4}function Y(){var e=window,t=navigator,n=e.CSS,i=e.HTMLButtonElement;return p([!("getStorageUpdates"in t),i&&"popover"in i.prototype,"CSSCounterStyleRule"in e,n.supports("font-size-adjust: ex-height 0.5"),n.supports("text-transform: full-width")])>=4}function G(){var e=document;return(e.exitFullscreen||e.msExitFullscreen||e.mozCancelFullScreen||e.webkitExitFullscreen).call(e)}function D(){var e=P(),t=X(),n=window,i=navigator,o="connection";return e?p([!("SharedWorker"in n),i[o]&&"ontypechange"in i[o],!("sinkId"in new Audio)])>=2:!!t&&p(["onorientationchange"in n,"orientation"in n,/android/i.test(i.appVersion)])>=2}function N(e){var t=new Error(e);return t.name=e,t}function T(e,t,n){var i,a,s;return void 0===n&&(n=50),o(this,void 0,void 0,function(){var o,l;return r(this,function(r){switch(r.label){case 0:o=document,r.label=1;case 1:return o.body?[3,3]:[4,c(n)];case 2:return r.sent(),[3,1];case 3:l=o.createElement("iframe"),r.label=4;case 4:return r.trys.push([4,,10,11]),[4,new Promise(function(e,n){var i=!1,r=function(){i=!0,e()};l.onload=r,l.onerror=function(e){i=!0,n(e)};var a=l.style;a.setProperty("display","block","important"),a.position="absolute",a.top="0",a.left="0",a.visibility="hidden",t&&"srcdoc"in l?l.srcdoc=t:l.src="about:blank",o.body.appendChild(l);var s=function(){var e,t;i||("complete"===(null===(t=null===(e=l.contentWindow)||void 0===e?void 0:e.document)||void 0===t?void 0:t.readyState)?r():setTimeout(s,10))};s()})];case 5:r.sent(),r.label=6;case 6:return(null===(a=null===(i=l.contentWindow)||void 0===i?void 0:i.document)||void 0===a?void 0:a.body)?[3,8]:[4,c(n)];case 7:return r.sent(),[3,6];case 8:return[4,e(l,l.contentWindow)];case 9:return[2,r.sent()];case 10:return null===(s=l.parentNode)||void 0===s||s.removeChild(l),[7];case 11:return[2]}})})}function O(e){for(var t=function(e){for(var t,n,i="Unexpected syntax '".concat(e,"'"),o=/^\s*([a-z-]*)(.*)$/i.exec(e),r=o[1]||void 0,a={},s=/([.:#][\w-]+|\[.+?\])/gi,c=function(e,t){a[e]=a[e]||[],a[e].push(t)};;){var l=s.exec(o[2]);if(!l)break;var u=l[0];switch(u[0]){case".":c("class",u.slice(1));break;case"#":c("id",u.slice(1));break;case"[":var d=/^\[([\w-]+)([~|^$*]?=("(.*?)"|([\w-]+)))?(\s+[is])?\]$/.exec(u);if(!d)throw new Error(i);c(d[1],null!==(n=null!==(t=d[4])&&void 0!==t?t:d[5])&&void 0!==n?n:"");break;default:throw new Error(i)}}return[r,a]}(e),n=t[0],i=t[1],o=document.createElement(null!=n?n:"div"),r=0,a=Object.keys(i);r<a.length;r++){var s=a[r],c=i[s].join(" ");"style"===s?J(o.style,c):o.setAttribute(s,c)}return o}function J(e,t){for(var n=0,i=t.split(";");n<i.length;n++){var o=i[n],r=/^\s*([\w-]+)\s*:\s*(.+?)(\s*!([\w-]+))?\s*$/.exec(o);if(r){var a=r[1],s=r[2],c=r[4];e.setProperty(a,s,c||"")}}}var B=["monospace","sans-serif","serif"],z=["sans-serif-thin","ARNO PRO","Agency FB","Arabic Typesetting","Arial Unicode MS","AvantGarde Bk BT","BankGothic Md BT","Batang","Bitstream Vera Sans Mono","Calibri","Century","Century Gothic","Clarendon","EUROSTILE","Franklin Gothic","Futura Bk BT","Futura Md BT","GOTHAM","Gill Sans","HELV","Haettenschweiler","Helvetica Neue","Humanst521 BT","Leelawadee","Letter Gothic","Levenim MT","Lucida Bright","Lucida Sans","Menlo","MS Mincho","MS Outlook","MS Reference Specialty","MS UI Gothic","MT Extra","MYRIAD PRO","Marlett","Meiryo UI","Microsoft Uighur","Minion Pro","Monotype Corsiva","PMingLiU","Pristina","SCRIPTINA","Segoe UI Light","Serifa","SimHei","Small Fonts","Staccato222 BT","TRAJAN PRO","Univers CE 55 Medium","Vrinda","ZWAdobeF"];function U(e){return e.toDataURL()}var Q,K;function _(){var e=this;return function(){if(void 0===K){var e=function(){var t=q();$(t)?K=setTimeout(e,2500):(Q=t,K=void 0)};e()}}(),function(){return o(e,void 0,void 0,function(){var e;return r(this,function(t){switch(t.label){case 0:return $(e=q())?Q?[2,a([],Q,!0)]:(n=document).fullscreenElement||n.msFullscreenElement||n.mozFullScreenElement||n.webkitFullscreenElement?[4,G()]:[3,2]:[3,2];case 1:t.sent(),e=q(),t.label=2;case 2:return $(e)||(Q=e),[2,e]}var n})})}}function q(){var e=screen;return[v(f(e.availTop),null),v(f(e.width)-f(e.availWidth)-v(f(e.availLeft),0),null),v(f(e.height)-f(e.availHeight)-v(f(e.availTop),0),null),v(f(e.availLeft),null)]}function $(e){for(var t=0;t<4;++t)if(e[t])return!1;return!0}function ee(e){var t;return o(this,void 0,void 0,function(){var n,i,o,a,s,l,u;return r(this,function(r){switch(r.label){case 0:for(n=document,i=n.createElement("div"),o=new Array(e.length),a={},te(i),u=0;u<e.length;++u)"DIALOG"===(s=O(e[u])).tagName&&s.show(),te(l=n.createElement("div")),l.appendChild(s),i.appendChild(l),o[u]=s;r.label=1;case 1:return n.body?[3,3]:[4,c(50)];case 2:return r.sent(),[3,1];case 3:n.body.appendChild(i);try{for(u=0;u<e.length;++u)o[u].offsetParent||(a[e[u]]=!0)}finally{null===(t=i.parentNode)||void 0===t||t.removeChild(i)}return[2,a]}})})}function te(e){e.style.setProperty("visibility","hidden","important"),e.style.setProperty("display","block","important")}function ne(e){return matchMedia("(inverted-colors: ".concat(e,")")).matches}function ie(e){return matchMedia("(forced-colors: ".concat(e,")")).matches}function oe(e){return matchMedia("(prefers-contrast: ".concat(e,")")).matches}function re(e){return matchMedia("(prefers-reduced-motion: ".concat(e,")")).matches}function ae(e){return matchMedia("(prefers-reduced-transparency: ".concat(e,")")).matches}function se(e){return matchMedia("(dynamic-range: ".concat(e,")")).matches}var ce=Math,le=function(){return 0};var ue={default:[],apple:[{font:"-apple-system-body"}],serif:[{fontFamily:"serif"}],sans:[{fontFamily:"sans-serif"}],mono:[{fontFamily:"monospace"}],min:[{fontSize:"1px"}],system:[{fontFamily:"system-ui"}]};var de=function(){for(var e=window;;){var t=e.parent;if(!t||t===e)return!1;try{if(t.location.origin!==e.location.origin)return!0}catch(e){if(e instanceof Error&&"SecurityError"===e.name)return!0;throw e}e=t}};var he=new Set([10752,2849,2884,2885,2886,2928,2929,2930,2931,2932,2960,2961,2962,2963,2964,2965,2966,2967,2968,2978,3024,3042,3088,3089,3106,3107,32773,32777,32777,32823,32824,32936,32937,32938,32939,32968,32969,32970,32971,3317,33170,3333,3379,3386,33901,33902,34016,34024,34076,3408,3410,3411,3412,3413,3414,3415,34467,34816,34817,34818,34819,34877,34921,34930,35660,35661,35724,35738,35739,36003,36004,36005,36347,36348,36349,37440,37441,37443,7936,7937,7938]),me=new Set([34047,35723,36063,34852,34853,34854,34229,36392,36795,38449]),fe=["FRAGMENT_SHADER","VERTEX_SHADER"],ve=["LOW_FLOAT","MEDIUM_FLOAT","HIGH_FLOAT","LOW_INT","MEDIUM_INT","HIGH_INT"],pe="WEBGL_debug_renderer_info";function ge(e){if(e.webgl)return e.webgl.context;var t,n=document.createElement("canvas");n.addEventListener("webglCreateContextError",function(){return t=void 0});for(var i=0,o=["webgl","experimental-webgl"];i<o.length;i++){var r=o[i];try{t=n.getContext(r)}catch(e){}if(t)break}return e.webgl={context:t},t}function be(e,t,n){var i=e.getShaderPrecisionFormat(e[t],e[n]);return i?[i.rangeMin,i.rangeMax,i.precision]:[]}function ye(e){return Object.keys(e.__proto__).filter(we)}function we(e){return"string"==typeof e&&!e.match(/[^A-Z0-9_x]/)}function Ee(){return X()}function Le(){return P()||H()}function xe(e){return"function"==typeof e.getParameter}var ke={fonts:function(){var e=this;return T(function(t,n){var i=n.document;return o(e,void 0,void 0,function(){var e,t,n,o,a,s,c,l,u,d,h;return r(this,function(r){for((e=i.body).style.fontSize="48px",(t=i.createElement("div")).style.setProperty("visibility","hidden","important"),n={},o={},a=function(e){var n=i.createElement("span"),o=n.style;return o.position="absolute",o.top="0",o.left="0",o.fontFamily=e,n.textContent="mmMwWLliI0O&1",t.appendChild(n),n},s=function(e,t){return a("'".concat(e,"',").concat(t))},c=function(){for(var e={},t=function(t){e[t]=B.map(function(e){return s(t,e)})},n=0,i=z;n<i.length;n++){t(i[n])}return e},l=function(e){return B.some(function(t,i){return e[i].offsetWidth!==n[t]||e[i].offsetHeight!==o[t]})},u=function(){return B.map(a)}(),d=c(),e.appendChild(t),h=0;h<B.length;h++)n[B[h]]=u[h].offsetWidth,o[B[h]]=u[h].offsetHeight;return[2,z.filter(function(e){return l(d[e])})]})})})},domBlockers:function(e){var t=(void 0===e?{}:e).debug;return o(this,void 0,void 0,function(){var e,n,i,o,a;return r(this,function(r){switch(r.label){case 0:return H()||D()?(s=atob,e={abpIndo:["#Iklan-Melayang","#Kolom-Iklan-728","#SidebarIklan-wrapper",'[title="ALIENBOLA" i]',s("I0JveC1CYW5uZXItYWRz")],abpvn:[".quangcao","#mobileCatfish",s("LmNsb3NlLWFkcw=="),'[id^="bn_bottom_fixed_"]',"#pmadv"],adBlockFinland:[".mainostila",s("LnNwb25zb3JpdA=="),".ylamainos",s("YVtocmVmKj0iL2NsaWNrdGhyZ2guYXNwPyJd"),s("YVtocmVmXj0iaHR0cHM6Ly9hcHAucmVhZHBlYWsuY29tL2FkcyJd")],adBlockPersian:["#navbar_notice_50",".kadr",'TABLE[width="140px"]',"#divAgahi",s("YVtocmVmXj0iaHR0cDovL2cxLnYuZndtcm0ubmV0L2FkLyJd")],adBlockWarningRemoval:["#adblock-honeypot",".adblocker-root",".wp_adblock_detect",s("LmhlYWRlci1ibG9ja2VkLWFk"),s("I2FkX2Jsb2NrZXI=")],adGuardAnnoyances:[".hs-sosyal","#cookieconsentdiv",'div[class^="app_gdpr"]',".as-oil",'[data-cypress="soft-push-notification-modal"]'],adGuardBase:[".BetterJsPopOverlay",s("I2FkXzMwMFgyNTA="),s("I2Jhbm5lcmZsb2F0MjI="),s("I2NhbXBhaWduLWJhbm5lcg=="),s("I0FkLUNvbnRlbnQ=")],adGuardChinese:[s("LlppX2FkX2FfSA=="),s("YVtocmVmKj0iLmh0aGJldDM0LmNvbSJd"),"#widget-quan",s("YVtocmVmKj0iLzg0OTkyMDIwLnh5eiJd"),s("YVtocmVmKj0iLjE5NTZobC5jb20vIl0=")],adGuardFrench:["#pavePub",s("LmFkLWRlc2t0b3AtcmVjdGFuZ2xl"),".mobile_adhesion",".widgetadv",s("LmFkc19iYW4=")],adGuardGerman:['aside[data-portal-id="leaderboard"]'],adGuardJapanese:["#kauli_yad_1",s("YVtocmVmXj0iaHR0cDovL2FkMi50cmFmZmljZ2F0ZS5uZXQvIl0="),s("Ll9wb3BJbl9pbmZpbml0ZV9hZA=="),s("LmFkZ29vZ2xl"),s("Ll9faXNib29zdFJldHVybkFk")],adGuardMobile:[s("YW1wLWF1dG8tYWRz"),s("LmFtcF9hZA=="),'amp-embed[type="24smi"]',"#mgid_iframe1",s("I2FkX2ludmlld19hcmVh")],adGuardRussian:[s("YVtocmVmXj0iaHR0cHM6Ly9hZC5sZXRtZWFkcy5jb20vIl0="),s("LnJlY2xhbWE="),'div[id^="smi2adblock"]',s("ZGl2W2lkXj0iQWRGb3hfYmFubmVyXyJd"),"#psyduckpockeball"],adGuardSocial:[s("YVtocmVmXj0iLy93d3cuc3R1bWJsZXVwb24uY29tL3N1Ym1pdD91cmw9Il0="),s("YVtocmVmXj0iLy90ZWxlZ3JhbS5tZS9zaGFyZS91cmw/Il0="),".etsy-tweet","#inlineShare",".popup-social"],adGuardSpanishPortuguese:["#barraPublicidade","#Publicidade","#publiEspecial","#queTooltip",".cnt-publi"],adGuardTrackingProtection:["#qoo-counter",s("YVtocmVmXj0iaHR0cDovL2NsaWNrLmhvdGxvZy5ydS8iXQ=="),s("YVtocmVmXj0iaHR0cDovL2hpdGNvdW50ZXIucnUvdG9wL3N0YXQucGhwIl0="),s("YVtocmVmXj0iaHR0cDovL3RvcC5tYWlsLnJ1L2p1bXAiXQ=="),"#top100counter"],adGuardTurkish:["#backkapat",s("I3Jla2xhbWk="),s("YVtocmVmXj0iaHR0cDovL2Fkc2Vydi5vbnRlay5jb20udHIvIl0="),s("YVtocmVmXj0iaHR0cDovL2l6bGVuemkuY29tL2NhbXBhaWduLyJd"),s("YVtocmVmXj0iaHR0cDovL3d3dy5pbnN0YWxsYWRzLm5ldC8iXQ==")],bulgarian:[s("dGQjZnJlZW5ldF90YWJsZV9hZHM="),"#ea_intext_div",".lapni-pop-over","#xenium_hot_offers"],easyList:[".yb-floorad",s("LndpZGdldF9wb19hZHNfd2lkZ2V0"),s("LnRyYWZmaWNqdW5reS1hZA=="),".textad_headline",s("LnNwb25zb3JlZC10ZXh0LWxpbmtz")],easyListChina:[s("LmFwcGd1aWRlLXdyYXBbb25jbGljayo9ImJjZWJvcy5jb20iXQ=="),s("LmZyb250cGFnZUFkdk0="),"#taotaole","#aafoot.top_box",".cfa_popup"],easyListCookie:[".ezmob-footer",".cc-CookieWarning","[data-cookie-number]",s("LmF3LWNvb2tpZS1iYW5uZXI="),".sygnal24-gdpr-modal-wrap"],easyListCzechSlovak:["#onlajny-stickers",s("I3Jla2xhbW5pLWJveA=="),s("LnJla2xhbWEtbWVnYWJvYXJk"),".sklik",s("W2lkXj0ic2tsaWtSZWtsYW1hIl0=")],easyListDutch:[s("I2FkdmVydGVudGll"),s("I3ZpcEFkbWFya3RCYW5uZXJCbG9jaw=="),".adstekst",s("YVtocmVmXj0iaHR0cHM6Ly94bHR1YmUubmwvY2xpY2svIl0="),"#semilo-lrectangle"],easyListGermany:["#SSpotIMPopSlider",s("LnNwb25zb3JsaW5rZ3J1ZW4="),s("I3dlcmJ1bmdza3k="),s("I3Jla2xhbWUtcmVjaHRzLW1pdHRl"),s("YVtocmVmXj0iaHR0cHM6Ly9iZDc0Mi5jb20vIl0=")],easyListItaly:[s("LmJveF9hZHZfYW5udW5jaQ=="),".sb-box-pubbliredazionale",s("YVtocmVmXj0iaHR0cDovL2FmZmlsaWF6aW9uaWFkcy5zbmFpLml0LyJd"),s("YVtocmVmXj0iaHR0cHM6Ly9hZHNlcnZlci5odG1sLml0LyJd"),s("YVtocmVmXj0iaHR0cHM6Ly9hZmZpbGlhemlvbmlhZHMuc25haS5pdC8iXQ==")],easyListLithuania:[s("LnJla2xhbW9zX3RhcnBhcw=="),s("LnJla2xhbW9zX251b3JvZG9z"),s("aW1nW2FsdD0iUmVrbGFtaW5pcyBza3lkZWxpcyJd"),s("aW1nW2FsdD0iRGVkaWt1b3RpLmx0IHNlcnZlcmlhaSJd"),s("aW1nW2FsdD0iSG9zdGluZ2FzIFNlcnZlcmlhaS5sdCJd")],estonian:[s("QVtocmVmKj0iaHR0cDovL3BheTRyZXN1bHRzMjQuZXUiXQ==")],fanboyAnnoyances:["#ac-lre-player",".navigate-to-top","#subscribe_popup",".newsletter_holder","#back-top"],fanboyAntiFacebook:[".util-bar-module-firefly-visible"],fanboyEnhancedTrackers:[".open.pushModal","#issuem-leaky-paywall-articles-zero-remaining-nag","#sovrn_container",'div[class$="-hide"][zoompage-fontsize][style="display: block;"]',".BlockNag__Card"],fanboySocial:["#FollowUs","#meteored_share","#social_follow",".article-sharer",".community__social-desc"],frellwitSwedish:[s("YVtocmVmKj0iY2FzaW5vcHJvLnNlIl1bdGFyZ2V0PSJfYmxhbmsiXQ=="),s("YVtocmVmKj0iZG9rdG9yLXNlLm9uZWxpbmsubWUiXQ=="),"article.category-samarbete",s("ZGl2LmhvbGlkQWRz"),"ul.adsmodern"],greekAdBlock:[s("QVtocmVmKj0iYWRtYW4ub3RlbmV0LmdyL2NsaWNrPyJd"),s("QVtocmVmKj0iaHR0cDovL2F4aWFiYW5uZXJzLmV4b2R1cy5nci8iXQ=="),s("QVtocmVmKj0iaHR0cDovL2ludGVyYWN0aXZlLmZvcnRobmV0LmdyL2NsaWNrPyJd"),"DIV.agores300","TABLE.advright"],hungarian:["#cemp_doboz",".optimonk-iframe-container",s("LmFkX19tYWlu"),s("W2NsYXNzKj0iR29vZ2xlQWRzIl0="),"#hirdetesek_box"],iDontCareAboutCookies:['.alert-info[data-block-track*="CookieNotice"]',".ModuleTemplateCookieIndicator",".o--cookies--container","#cookies-policy-sticky","#stickyCookieBar"],icelandicAbp:[s("QVtocmVmXj0iL2ZyYW1ld29yay9yZXNvdXJjZXMvZm9ybXMvYWRzLmFzcHgiXQ==")],latvian:[s("YVtocmVmPSJodHRwOi8vd3d3LnNhbGlkemluaS5sdi8iXVtzdHlsZT0iZGlzcGxheTogYmxvY2s7IHdpZHRoOiAxMjBweDsgaGVpZ2h0OiA0MHB4OyBvdmVyZmxvdzogaGlkZGVuOyBwb3NpdGlvbjogcmVsYXRpdmU7Il0="),s("YVtocmVmPSJodHRwOi8vd3d3LnNhbGlkemluaS5sdi8iXVtzdHlsZT0iZGlzcGxheTogYmxvY2s7IHdpZHRoOiA4OHB4OyBoZWlnaHQ6IDMxcHg7IG92ZXJmbG93OiBoaWRkZW47IHBvc2l0aW9uOiByZWxhdGl2ZTsiXQ==")],listKr:[s("YVtocmVmKj0iLy9hZC5wbGFuYnBsdXMuY28ua3IvIl0="),s("I2xpdmVyZUFkV3JhcHBlcg=="),s("YVtocmVmKj0iLy9hZHYuaW1hZHJlcC5jby5rci8iXQ=="),s("aW5zLmZhc3R2aWV3LWFk"),".revenue_unit_item.dable"],listeAr:[s("LmdlbWluaUxCMUFk"),".right-and-left-sponsers",s("YVtocmVmKj0iLmFmbGFtLmluZm8iXQ=="),s("YVtocmVmKj0iYm9vcmFxLm9yZyJd"),s("YVtocmVmKj0iZHViaXp6bGUuY29tL2FyLz91dG1fc291cmNlPSJd")],listeFr:[s("YVtocmVmXj0iaHR0cDovL3Byb21vLnZhZG9yLmNvbS8iXQ=="),s("I2FkY29udGFpbmVyX3JlY2hlcmNoZQ=="),s("YVtocmVmKj0id2Vib3JhbWEuZnIvZmNnaS1iaW4vIl0="),".site-pub-interstitiel",'div[id^="crt-"][data-criteo-id]'],officialPolish:["#ceneo-placeholder-ceneo-12",s("W2hyZWZePSJodHRwczovL2FmZi5zZW5kaHViLnBsLyJd"),s("YVtocmVmXj0iaHR0cDovL2Fkdm1hbmFnZXIudGVjaGZ1bi5wbC9yZWRpcmVjdC8iXQ=="),s("YVtocmVmXj0iaHR0cDovL3d3dy50cml6ZXIucGwvP3V0bV9zb3VyY2UiXQ=="),s("ZGl2I3NrYXBpZWNfYWQ=")],ro:[s("YVtocmVmXj0iLy9hZmZ0cmsuYWx0ZXgucm8vQ291bnRlci9DbGljayJd"),s("YVtocmVmXj0iaHR0cHM6Ly9ibGFja2ZyaWRheXNhbGVzLnJvL3Ryay9zaG9wLyJd"),s("YVtocmVmXj0iaHR0cHM6Ly9ldmVudC4ycGVyZm9ybWFudC5jb20vZXZlbnRzL2NsaWNrIl0="),s("YVtocmVmXj0iaHR0cHM6Ly9sLnByb2ZpdHNoYXJlLnJvLyJd"),'a[href^="/url/"]'],ruAd:[s("YVtocmVmKj0iLy9mZWJyYXJlLnJ1LyJd"),s("YVtocmVmKj0iLy91dGltZy5ydS8iXQ=="),s("YVtocmVmKj0iOi8vY2hpa2lkaWtpLnJ1Il0="),"#pgeldiz",".yandex-rtb-block"],thaiAds:["a[href*=macau-uta-popup]",s("I2Fkcy1nb29nbGUtbWlkZGxlX3JlY3RhbmdsZS1ncm91cA=="),s("LmFkczMwMHM="),".bumq",".img-kosana"],webAnnoyancesUltralist:["#mod-social-share-2","#social-tools",s("LmN0cGwtZnVsbGJhbm5lcg=="),".zergnet-recommend",".yt.btn-link.btn-md.btn"]},n=Object.keys(e),[4,ee((a=[]).concat.apply(a,n.map(function(t){return e[t]})))]):[2,void 0];case 1:return i=r.sent(),t&&function(e,t){for(var n=0,i=Object.keys(e);n<i.length;n++){var o=i[n];"\n".concat(o,":");for(var r=0,a=e[o];r<a.length;r++){var s=a[r];"\n ".concat(t[s]?"🚫":"➡️"," ").concat(s)}}}(e,i),(o=n.filter(function(t){var n=e[t];return p(n.map(function(e){return i[e]}))>.6*n.length})).sort(),[2,o]}var s})})},fontPreferences:function(){return function(e,t){void 0===t&&(t=4e3);return T(function(n,i){var o=i.document,r=o.body,s=r.style;s.width="".concat(t,"px"),s.webkitTextSizeAdjust=s.textSizeAdjust="none",P()?r.style.zoom="".concat(1/i.devicePixelRatio):H()&&(r.style.zoom="reset");var c=o.createElement("div");return c.textContent=a([],Array(t/20|0),!0).map(function(){return"word"}).join(" "),r.appendChild(c),e(o,r)},'<!doctype html><html><head><meta name="viewport" content="width=device-width, initial-scale=1">')}(function(e,t){for(var n={},i={},o=0,r=Object.keys(ue);o<r.length;o++){var a=r[o],s=ue[a],c=s[0],l=void 0===c?{}:c,u=s[1],d=void 0===u?"mmMwWLliI0fiflO&1":u,h=e.createElement("span");h.textContent=d,h.style.whiteSpace="nowrap";for(var m=0,f=Object.keys(l);m<f.length;m++){var v=f[m],p=l[v];void 0!==p&&(h.style[v]=p)}n[a]=h,t.append(e.createElement("br"),h)}for(var g=0,b=Object.keys(ue);g<b.length;g++){i[a=b[g]]=n[a].getBoundingClientRect().width}return i})},audio:function(){return H()&&Y()&&j()||P()&&(e=navigator,t=window,n=Audio.prototype,i=t.visualViewport,p(["srLatency"in n,"srChannelCount"in n,"devicePosture"in e,i&&"segments"in i,"getTextInformation"in Image.prototype])>=3)&&function(){var e=window,t=e.URLPattern;return p(["union"in Set.prototype,"Iterator"in e,t&&"hasRegExpGroups"in t.prototype,"RGB8"in WebGLRenderingContext.prototype])>=3}()?-4:function(){var e=window,t=e.OfflineAudioContext||e.webkitOfflineAudioContext;if(!t)return-2;if(H()&&!F()&&!function(){var e=window;return p(["DOMRectList"in e,"RTCPeerConnectionIceEvent"in e,"SVGGeometryElement"in e,"ontransitioncancel"in e])>=3}())return-1;var n=4500,i=new t(1,5e3,44100),o=i.createOscillator();o.type="triangle",o.frequency.value=1e4;var r=i.createDynamicsCompressor();r.threshold.value=-50,r.knee.value=40,r.ratio.value=12,r.attack.value=0,r.release.value=.25,o.connect(r),r.connect(i.destination),o.start(0);var a=function(e){var t=3,n=500,i=500,o=5e3,r=function(){},a=new Promise(function(a,s){var c=!1,u=0,d=0;e.oncomplete=function(e){return a(e.renderedBuffer)};var m=function(){setTimeout(function(){return s(N("timeout"))},Math.min(i,d+o-Date.now()))},f=function(){try{var i=e.startRendering();switch(l(i)&&h(i),e.state){case"running":d=Date.now(),c&&m();break;case"suspended":document.hidden||u++,c&&u>=t?s(N("suspended")):setTimeout(f,n)}}catch(e){s(e)}};f(),r=function(){c||(c=!0,d>0&&m())}});return[a,r]}(i),s=a[0],c=a[1],u=h(s.then(function(e){return function(e){for(var t=0,n=0;n<e.length;++n)t+=Math.abs(e[n]);return t}(e.getChannelData(0).subarray(n))},function(e){if("timeout"===e.name||"suspended"===e.name)return-3;throw e}));return function(){return c(),u}}();var e,t,n,i},screenFrame:function(){var e=this;if(H()&&Y()&&j())return function(){return Promise.resolve(void 0)};var t=_();return function(){return o(e,void 0,void 0,function(){var e,n;return r(this,function(i){switch(i.label){case 0:return[4,t()];case 1:return e=i.sent(),[2,[(n=function(e){return null===e?null:g(e,10)})(e[0]),n(e[1]),n(e[2]),n(e[3])]]}})})}},canvas:function(){return function(e){var t,n,i,o=!1,r=function(){var e=document.createElement("canvas");return e.width=1,e.height=1,[e,e.getContext("2d")]}(),a=r[0],s=r[1];!function(e,t){return!(!t||!e.toDataURL)}(a,s)?n=i="unsupported":(o=function(e){return e.rect(0,0,10,10),e.rect(2,2,6,6),!e.isPointInPath(5,5,"evenodd")}(s),e?n=i="skipped":(t=function(e,t){!function(e,t){e.width=240,e.height=60,t.textBaseline="alphabetic",t.fillStyle="#f60",t.fillRect(100,1,62,20),t.fillStyle="#069",t.font='11pt "Times New Roman"';var n="Cwm fjordbank gly ".concat(String.fromCharCode(55357,56835));t.fillText(n,2,15),t.fillStyle="rgba(102, 204, 0, 0.2)",t.font="18pt Arial",t.fillText(n,4,45)}(e,t);var n=U(e),i=U(e);if(n!==i)return["unstable","unstable"];!function(e,t){e.width=122,e.height=110,t.globalCompositeOperation="multiply";for(var n=0,i=[["#f2f",40,40],["#2ff",80,40],["#ff2",60,80]];n<i.length;n++){var o=i[n],r=o[0],a=o[1],s=o[2];t.fillStyle=r,t.beginPath(),t.arc(a,s,40,0,2*Math.PI,!0),t.closePath(),t.fill()}t.fillStyle="#f9c",t.arc(60,60,60,0,2*Math.PI,!0),t.arc(60,60,20,0,2*Math.PI,!0),t.fill("evenodd")}(e,t);var o=U(e);return[o,n]}(a,s),n=t[0],i=t[1]));return{winding:o,geometry:n,text:i}}(H()&&Y()&&j())},osCpu:function(){return navigator.oscpu},languages:function(){var e,t=navigator,n=[],i=t.language||t.userLanguage||t.browserLanguage||t.systemLanguage;if(void 0!==i&&n.push([i]),Array.isArray(t.languages))P()&&p([!("MediaSettingsRange"in(e=window)),"RTCEncodedAudioFrame"in e,""+e.Intl=="[object Intl]",""+e.Reflect=="[object Reflect]"])>=3||n.push(t.languages);else if("string"==typeof t.languages){var o=t.languages;o&&n.push(o.split(","))}return n},colorDepth:function(){return window.screen.colorDepth},deviceMemory:function(){return v(f(navigator.deviceMemory),void 0)},screenResolution:function(){var e,t,n;if(!(H()&&Y()&&j()))return e=screen,(n=[(t=function(e){return v(m(e),null)})(e.width),t(e.height)]).sort().reverse(),n},hardwareConcurrency:function(){return v(m(navigator.hardwareConcurrency),void 0)},timezone:function(){var e,t=null===(e=window.Intl)||void 0===e?void 0:e.DateTimeFormat;if(t){var n=(new t).resolvedOptions().timeZone;if(n)return n}var i,o=(i=(new Date).getFullYear(),-Math.max(f(new Date(i,0,1).getTimezoneOffset()),f(new Date(i,6,1).getTimezoneOffset())));return"UTC".concat(o>=0?"+":"").concat(o)},sessionStorage:function(){try{return!!window.sessionStorage}catch(e){return!0}},localStorage:function(){try{return!!window.localStorage}catch(e){return!0}},indexedDB:function(){var e,t;if(!(A()||(e=window,t=navigator,p(["msWriteProfilerMark"in e,"MSStream"in e,"msLaunchUri"in t,"msSaveBlob"in t])>=3&&!A())))try{return!!window.indexedDB}catch(e){return!0}},openDatabase:function(){return!!window.openDatabase},cpuClass:function(){return navigator.cpuClass},platform:function(){var e=navigator.platform;return"MacIntel"===e&&H()&&!F()?function(){if("iPad"===navigator.platform)return!0;var e=screen,t=e.width/e.height;return p(["MediaSource"in window,!!Element.prototype.webkitRequestFullscreen,t>.65&&t<1.53])>=2}()?"iPad":"iPhone":e},plugins:function(){var e=navigator.plugins;if(e){for(var t=[],n=0;n<e.length;++n){var i=e[n];if(i){for(var o=[],r=0;r<i.length;++r){var a=i[r];o.push({type:a.type,suffixes:a.suffixes})}t.push({name:i.name,description:i.description,mimeTypes:o})}}return t}},touchSupport:function(){var e,t=navigator,n=0;void 0!==t.maxTouchPoints?n=m(t.maxTouchPoints):void 0!==t.msMaxTouchPoints&&(n=t.msMaxTouchPoints);try{document.createEvent("TouchEvent"),e=!0}catch(t){e=!1}return{maxTouchPoints:n,touchEvent:e,touchStart:"ontouchstart"in window}},vendor:function(){return navigator.vendor||""},vendorFlavors:function(){for(var e=[],t=0,n=["chrome","safari","__crWeb","__gCrWeb","yandex","__yb","__ybro","__firefox__","__edgeTrackingPreventionStatistics","webkit","oprt","samsungAr","ucweb","UCShellJava","puffinDevice"];t<n.length;t++){var i=n[t],o=window[i];o&&"object"==typeof o&&e.push(i)}return e.sort()},cookiesEnabled:function(){var e=document;try{e.cookie="cookietest=1; SameSite=Strict;";var t=-1!==e.cookie.indexOf("cookietest=");return e.cookie="cookietest=1; SameSite=Strict; expires=Thu, 01-Jan-1970 00:00:01 GMT",t}catch(e){return!1}},colorGamut:function(){for(var e=0,t=["rec2020","p3","srgb"];e<t.length;e++){var n=t[e];if(matchMedia("(color-gamut: ".concat(n,")")).matches)return n}},invertedColors:function(){return!!ne("inverted")||!ne("none")&&void 0},forcedColors:function(){return!!ie("active")||!ie("none")&&void 0},monochrome:function(){if(matchMedia("(min-monochrome: 0)").matches){for(var e=0;e<=100;++e)if(matchMedia("(max-monochrome: ".concat(e,")")).matches)return e;throw new Error("Too high value")}},contrast:function(){return oe("no-preference")?0:oe("high")||oe("more")?1:oe("low")||oe("less")?-1:oe("forced")?10:void 0},reducedMotion:function(){return!!re("reduce")||!re("no-preference")&&void 0},reducedTransparency:function(){return!!ae("reduce")||!ae("no-preference")&&void 0},hdr:function(){return!!se("high")||!se("standard")&&void 0},math:function(){var e,t=ce.acos||le,n=ce.acosh||le,i=ce.asin||le,o=ce.asinh||le,r=ce.atanh||le,a=ce.atan||le,s=ce.sin||le,c=ce.sinh||le,l=ce.cos||le,u=ce.cosh||le,d=ce.tan||le,h=ce.tanh||le,m=ce.exp||le,f=ce.expm1||le,v=ce.log1p||le;return{acos:t(.12312423423423424),acosh:n(1e308),acoshPf:(e=1e154,ce.log(e+ce.sqrt(e*e-1))),asin:i(.12312423423423424),asinh:o(1),asinhPf:function(e){return ce.log(e+ce.sqrt(e*e+1))}(1),atanh:r(.5),atanhPf:function(e){return ce.log((1+e)/(1-e))/2}(.5),atan:a(.5),sin:s(-1e300),sinh:c(1),sinhPf:function(e){return ce.exp(e)-1/ce.exp(e)/2}(1),cos:l(10.000000000123),cosh:u(1),coshPf:function(e){return(ce.exp(e)+1/ce.exp(e))/2}(1),tan:d(-1e300),tanh:h(1),tanhPf:function(e){return(ce.exp(2*e)-1)/(ce.exp(2*e)+1)}(1),exp:m(1),expm1:f(1),expm1Pf:function(e){return ce.exp(e)-1}(1),log1p:v(10),log1pPf:function(e){return ce.log(1+e)}(10),powPI:function(e){return ce.pow(ce.PI,e)}(-100)}},pdfViewerEnabled:function(){return navigator.pdfViewerEnabled},architecture:function(){var e=new Float32Array(1),t=new Uint8Array(e.buffer);return e[0]=1/0,e[0]=e[0]-e[0],t[3]},applePay:function(){var e=window.ApplePaySession;if("function"!=typeof(null==e?void 0:e.canMakePayments))return-1;if(de())return-3;try{return e.canMakePayments()?1:0}catch(e){return function(e){if(e instanceof Error&&"InvalidAccessError"===e.name&&/\bfrom\b.*\binsecure\b/i.test(e.message))return-2;throw e}(e)}},privateClickMeasurement:function(){var e,t=document.createElement("a"),n=null!==(e=t.attributionSourceId)&&void 0!==e?e:t.attributionsourceid;return void 0===n?void 0:String(n)},audioBaseLatency:function(){if(!(D()||H()))return-2;if(!window.AudioContext)return-1;var e=(new AudioContext).baseLatency;return null==e?-1:isFinite(e)?e:-3},dateTimeLocale:function(){if(!window.Intl)return-1;var e=window.Intl.DateTimeFormat;if(!e)return-2;var t=e().resolvedOptions().locale;return t||""===t?t:-3},webGlBasics:function(e){var t,n,i,o,r,a,s=ge(e.cache);if(!s)return-1;if(!xe(s))return-2;var c=Ee()?null:s.getExtension(pe);return{version:(null===(t=s.getParameter(s.VERSION))||void 0===t?void 0:t.toString())||"",vendor:(null===(n=s.getParameter(s.VENDOR))||void 0===n?void 0:n.toString())||"",vendorUnmasked:c?null===(i=s.getParameter(c.UNMASKED_VENDOR_WEBGL))||void 0===i?void 0:i.toString():"",renderer:(null===(o=s.getParameter(s.RENDERER))||void 0===o?void 0:o.toString())||"",rendererUnmasked:c?null===(r=s.getParameter(c.UNMASKED_RENDERER_WEBGL))||void 0===r?void 0:r.toString():"",shadingLanguageVersion:(null===(a=s.getParameter(s.SHADING_LANGUAGE_VERSION))||void 0===a?void 0:a.toString())||""}},webGlExtensions:function(e){var t=ge(e.cache);if(!t)return-1;if(!xe(t))return-2;var n=t.getSupportedExtensions(),i=t.getContextAttributes(),o=[],r=[],a=[],s=[],c=[];if(i)for(var l=0,u=Object.keys(i);l<u.length;l++){var d=u[l];r.push("".concat(d,"=").concat(i[d]))}for(var h=0,m=ye(t);h<m.length;h++){var f=t[E=m[h]];a.push("".concat(E,"=").concat(f).concat(he.has(f)?"=".concat(t.getParameter(f)):""))}if(n)for(var v=0,p=n;v<p.length;v++){var g=p[v];if(!(g===pe&&Ee()||"WEBGL_polygon_mode"===g&&Le())){var b=t.getExtension(g);if(b)for(var y=0,w=ye(b);y<w.length;y++){var E;f=b[E=w[y]];s.push("".concat(E,"=").concat(f).concat(me.has(f)?"=".concat(t.getParameter(f)):""))}else o.push(g)}}for(var L=0,x=fe;L<x.length;L++)for(var k=x[L],S=0,C=ve;S<C.length;S++){var M=C[S],I=be(t,k,M);c.push("".concat(k,".").concat(M,"=").concat(I.join(",")))}return s.sort(),a.sort(),{contextAttributes:r,parameters:a,shaderPrecisions:c,extensions:n,extensionParameters:s,unsupportedExtensions:o}}};function Se(e){var t=function(e){if(D())return.4;if(H())return!F()||Y()&&j()?.3:.5;var t="value"in e.platform?e.platform.value:"";if(/^Win/.test(t))return.6;if(/^Mac/.test(t))return.5;return.7}(e),n=function(e){return g(.99+.01*e,1e-4)}(t);return{score:t,comment:"$ if upgrade to Pro: https://fpjs.dev/pro".replace(/\$/g,"".concat(n))}}function Ce(e){return Z(function(e){for(var t="",n=0,i=Object.keys(e).sort();n<i.length;n++){var o=i[n],r=e[o],a="error"in r?"error":JSON.stringify(r.value);t+="".concat(t?"|":"").concat(o.replace(/([:|\\])/g,"\\$1"),":").concat(a)}return t}(e))}function Me(e){return void 0===e&&(e=50),function(e,t){void 0===t&&(t=1/0);var n=window.requestIdleCallback;return n?new Promise(function(e){return n.call(window,function(){return e()},{timeout:t})}):c(Math.min(e,t))}(e,2*e)}function Ie(e,t){Date.now();return{get:function(n){return o(this,void 0,void 0,function(){var i,o;return r(this,function(r){switch(r.label){case 0:return Date.now(),[4,e()];case 1:return i=r.sent(),o=function(e){var t,n=Se(e);return{get visitorId(){return void 0===t&&(t=Ce(this.components)),t},set visitorId(e){t=e},confidence:n,components:e,version:s}}(i),t||null==n||n.debug,[2,o]}})})}}}var Ve={load:function(e){var t;return void 0===e&&(e={}),o(this,void 0,void 0,function(){var n,i,o;return r(this,function(r){switch(r.label){case 0:return(null===(t=e.monitoring)||void 0===t||t)&&function(){if(!(window.__fpjs_d_m||Math.random()>=.001))try{var e=new XMLHttpRequest;e.open("get","https://m1.openfpcdn.io/fingerprintjs/v".concat(s,"/npm-monitoring"),!0),e.send()}catch(e){}}(),n=e.delayFallback,i=e.debug,[4,Me(n)];case 1:return r.sent(),o=function(e){return R(ke,e,[])}({cache:{},debug:i}),[2,Ie(o,i)]}})})},hashComponents:Ce,componentsToDebugString:function(e){return JSON.stringify(e,function(e,t){return t instanceof Error?i({name:(n=t).name,message:n.message,stack:null===(o=n.stack)||void 0===o?void 0:o.split("\n")},n):t;var n,o},2)}};class We{constructor(){this.iconManager=null,this.iframeManager=null,this.config=null,this.isInitialized=!1}async init(e,i){if(!this.isInitialized){this.config=e;try{const o=await this.getDeviceId(),r=this.buildIframeUrl(e,o),a=i?.iconPosition||void 0;this.iconManager=new t(a),await this.iconManager.show(),this.iframeManager=new n({src:r,mode:"auto",width:400,height:600,allowClose:!0,onMessage:(e,t)=>{"new-message"===e&&this.showNotification(0,{pulse:!0})},onClose:()=>{this.iconManager?.forceCleanupDragEvents()},...i}),await this.iframeManager.init(),this.iconManager.onClick(()=>{this.clearNotification(),this.iframeManager?.show()}),this.isInitialized=!0}catch(e){throw e}}}showIcon(){this.iconManager?.show()}hideIcon(){this.iconManager?.hide()}setIconPosition(e){this.iconManager?.setPosition(e)}setIconCoordinates(e){this.iconManager?.setIconPosition(e)}setIconStyle(e){this.iconManager?.setStyle(e)}openChat(){this.clearNotification(),this.iframeManager?.open()}closeChat(){this.iconManager?.forceCleanupDragEvents(),this.iframeManager?.close()}isChatOpen(){return this.iframeManager?.isIframeOpen()||!1}sendToIframe(e){this.iframeManager?.sendToIframe(e)}getConnectionStatus(){return this.isInitialized}showNotification(e=1,t={}){this.iconManager&&(this.iconManager.showNotification({badgeCount:"string"==typeof e?0:e,badgeText:"string"==typeof e?e:"",pulse:t.pulse||!1}),t.autoHide&&t.autoHide>0&&setTimeout(()=>{this.iconManager?.clearNotification()},t.autoHide))}clearNotification(){this.iconManager?.clearNotification()}destroy(){this.iconManager?.hide(),this.iframeManager?.close(),this.iconManager=null,this.iframeManager=null,this.config=null,this.isInitialized=!1}async getDeviceId(){try{const e=await Ve.load();return(await e.get()).visitorId}catch(e){return"device_"+Date.now()+"_"+Math.random().toString(36).substr(2,9)}}buildIframeUrl(e,t){const n=e.iframeUrl;if(!n||""===n.trim())throw new Error("iframeUrl is required but not provided or is empty");const i=new URL(n);return i.searchParams.set("Agent",e.agent),i.searchParams.set("Authorization",e.token),i.searchParams.set("DeviceSign",t),i.searchParams.set("Referrer",document.referrer),i.toString()}}let Ze=null;const Re=async(e,t)=>{Ze||(Ze=new We),await Ze.init(e,t)},Ae=()=>{if(!Ze)throw new Error("SDK not initialized. Call init() first.");return Ze},Pe=()=>{Ae().showIcon()},He=()=>{Ae().hideIcon()},Fe=e=>{Ae().setIconPosition(e)},je=e=>{Ae().setIconCoordinates(e)},Xe=e=>{Ae().setIconStyle(e)},Ye=()=>{Ae().openChat()},Ge=()=>{Ae().closeChat()},De=()=>Ae().isChatOpen(),Ne=e=>{Ae().sendToIframe(e)},Te=()=>Ae().getConnectionStatus(),Oe=(e=1,t={})=>{Ae().showNotification(e,t)},Je=()=>{Ae().clearNotification()},Be=()=>{Ae().destroy(),Ze=null};var ze={init:Re,getInstance:Ae,showIcon:Pe,hideIcon:He,setIconPosition:Fe,setIconCoordinates:je,setIconStyle:Xe,openChat:Ye,closeChat:Ge,isChatOpen:De,sendToIframe:Ne,getConnectionStatus:Te,showNotification:Oe,clearNotification:Je,destroy:Be};e.CustomerServiceSDK=We,e.clearNotification=Je,e.closeChat=Ge,e.default=ze,e.destroy=Be,e.getConnectionStatus=Te,e.getInstance=Ae,e.hideIcon=He,e.init=Re,e.isChatOpen=De,e.openChat=Ye,e.sendToIframe=Ne,e.setIconCoordinates=je,e.setIconPosition=Fe,e.setIconStyle=Xe,e.showIcon=Pe,e.showNotification=Oe,Object.defineProperty(e,"__esModule",{value:!0})});
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SDKConfig, ChatWindowOptions } from './types';
|
|
1
|
+
import { SDKConfig, ChatWindowOptions, IconPosition } from './types';
|
|
2
2
|
/**
|
|
3
3
|
* Customer SDK 主类
|
|
4
4
|
* 只负责悬浮图标和iframe管理,不处理WebSocket连接
|
|
@@ -24,6 +24,10 @@ export declare class CustomerServiceSDK {
|
|
|
24
24
|
* 设置图标位置
|
|
25
25
|
*/
|
|
26
26
|
setIconPosition(position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'): void;
|
|
27
|
+
/**
|
|
28
|
+
* 设置图标坐标位置(x, y)
|
|
29
|
+
*/
|
|
30
|
+
setIconCoordinates(position: IconPosition): void;
|
|
27
31
|
/**
|
|
28
32
|
* 更新图标样式
|
|
29
33
|
*/
|
|
@@ -91,6 +95,7 @@ export declare const getInstance: () => CustomerServiceSDK;
|
|
|
91
95
|
export declare const showIcon: () => void;
|
|
92
96
|
export declare const hideIcon: () => void;
|
|
93
97
|
export declare const setIconPosition: (position: "top-left" | "top-right" | "bottom-left" | "bottom-right") => void;
|
|
98
|
+
export declare const setIconCoordinates: (position: IconPosition) => void;
|
|
94
99
|
export declare const setIconStyle: (style: {
|
|
95
100
|
size?: string;
|
|
96
101
|
background?: string;
|
|
@@ -126,6 +131,7 @@ declare const _default: {
|
|
|
126
131
|
showIcon: () => void;
|
|
127
132
|
hideIcon: () => void;
|
|
128
133
|
setIconPosition: (position: "top-left" | "top-right" | "bottom-left" | "bottom-right") => void;
|
|
134
|
+
setIconCoordinates: (position: IconPosition) => void;
|
|
129
135
|
setIconStyle: (style: {
|
|
130
136
|
size?: string;
|
|
131
137
|
background?: string;
|
|
@@ -145,5 +151,5 @@ declare const _default: {
|
|
|
145
151
|
destroy: () => void;
|
|
146
152
|
};
|
|
147
153
|
export default _default;
|
|
148
|
-
export type { SDKConfig, ChatWindowOptions };
|
|
154
|
+
export type { SDKConfig, ChatWindowOptions, IconPosition };
|
|
149
155
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -13,6 +13,10 @@ export interface IconOptions {
|
|
|
13
13
|
animation?: boolean;
|
|
14
14
|
autoShow?: boolean;
|
|
15
15
|
}
|
|
16
|
+
export interface IconPosition {
|
|
17
|
+
x?: number | string;
|
|
18
|
+
y?: number | string;
|
|
19
|
+
}
|
|
16
20
|
export interface ChatWindowOptions {
|
|
17
21
|
width?: number;
|
|
18
22
|
height?: number;
|
|
@@ -20,5 +24,6 @@ export interface ChatWindowOptions {
|
|
|
20
24
|
draggable?: boolean;
|
|
21
25
|
resizable?: boolean;
|
|
22
26
|
minimizable?: boolean;
|
|
27
|
+
iconPosition?: IconPosition;
|
|
23
28
|
}
|
|
24
29
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAGD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAA;IACpE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAGD,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,cAAc,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAA;IACpE,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAGD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAA;IACpE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAGD,MAAM,WAAW,YAAY;IAC3B,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACpB;AAGD,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,cAAc,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAA;IACpE,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B"}
|
package/package.json
CHANGED