gis-common 4.2.21 → 4.2.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constant/{ErrorTypeConstant.d.ts → ErrorType.d.ts} +6 -6
- package/dist/constant/{GraphicConstant.d.ts → GraphicTypes.d.ts} +2 -6
- package/dist/constant/index.d.ts +3 -3
- package/dist/core/CanvasDrawer.d.ts +1 -0
- package/dist/core/EventDispatcher.d.ts +2 -2
- package/dist/core/HashMap.d.ts +1 -1
- package/dist/gis-common.es.js +205 -65
- package/dist/gis-common.umd.js +1 -1
- package/dist/utils/GeoUtil.d.ts +1 -1
- package/dist/utils/MessageUtil.d.ts +17 -15
- package/dist/utils/StringUtil.d.ts +3 -17
- package/package.json +1 -1
- /package/dist/constant/{EventTypeConstant.d.ts → EventType.d.ts} +0 -0
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
declare enum ErrorType {
|
|
2
2
|
LOGIN_EXPIRED = "\u767B\u5F55\u4FE1\u606F\u8FC7\u671F\uFF0C\u8BF7\u91CD\u65B0\u767B\u5F55",
|
|
3
|
-
CROSS_ERROR = "\u8DE8\
|
|
4
|
-
|
|
3
|
+
CROSS_ERROR = "\u4E0D\u5141\u8BB8\u8DE8\u7AD9\u70B9\u8BBF\u95EE\u8D44\u6E90",
|
|
4
|
+
NO_DATA_FOUND = "\u8D44\u6E90\u4E0D\u5B58\u5728",
|
|
5
5
|
TIMEOUT = "\u8BF7\u6C42\u8D85\u65F6",
|
|
6
6
|
INTERNAL_ERROR = "\u5185\u90E8\u9519\u8BEF",
|
|
7
7
|
NETWORK_ERROR = "\u8BF7\u6C42\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u662F\u5426\u5DF2\u8FDE\u63A5",
|
|
8
|
-
PROCESS_FAIL = "\u5904\u7406\u5931\u8D25",
|
|
8
|
+
PROCESS_FAIL = "\u4EFB\u52A1\u5904\u7406\u5931\u8D25",
|
|
9
|
+
PROCESS_TIMEOUT = "\u4EFB\u52A1\u5904\u7406\u8D85\u65F6",
|
|
9
10
|
AUTH_VERIFY_ERROR = "\u6743\u9650\u9A8C\u8BC1\u5931\u8D25",
|
|
10
|
-
|
|
11
|
-
DUPLICATE_INSTANCE = "\u5B9E\u4F8B\u4E3A\u5355\u4F8B\u6A21\u5F0F\uFF0C\u4E0D\u5141\u8BB8\u91CD\u590D\u6784\u5EFA",
|
|
11
|
+
INSTANCE_DUPLICATE = "\u5B9E\u4F8B\u4E3A\u5355\u4F8B\u6A21\u5F0F\uFF0C\u4E0D\u5141\u8BB8\u91CD\u590D\u6784\u5EFA",
|
|
12
12
|
JSON_PARSE_ERROR = "JSON\u89E3\u6790\u5931\u8D25\uFF0C\u683C\u5F0F\u6709\u8BEF",
|
|
13
13
|
JSON_VALUE_ERROR = "JSON\u65E0\u6B64\u952E",
|
|
14
|
-
STRING_CHECK_LOSS = "\u5B57\u7B26\u7F3A\u5C11\u5173\u952E\u5B57",
|
|
14
|
+
STRING_CHECK_LOSS = "\u5B57\u7B26\u4E32\u7F3A\u5C11\u5173\u952E\u5B57",
|
|
15
15
|
PARAMETER_ERROR = "\u9A8C\u8BC1\u6570\u636E\u7C7B\u578B\u5931\u8D25",
|
|
16
16
|
PARAMETER_ERROR_ARRAY = "\u9A8C\u8BC1\u6570\u636E\u7C7B\u578B\u5931\u8D25\uFF0C\u5FC5\u987B\u662F\u6570\u7EC4",
|
|
17
17
|
PARAMETER_ERROR_STRING = "\u9A8C\u8BC1\u6570\u636E\u7C7B\u578B\u5931\u8D25\uFF0C\u5FC5\u987B\u662F\u5B57\u7B26",
|
|
@@ -19,10 +19,6 @@ export declare enum LineSymbol {
|
|
|
19
19
|
export declare enum MeasureMode {
|
|
20
20
|
DISTANCE = "distance",
|
|
21
21
|
AREA = "area",
|
|
22
|
-
HEIGHT = "height"
|
|
23
|
-
|
|
24
|
-
export declare enum ObjectState {
|
|
25
|
-
ADD = "add",
|
|
26
|
-
REMOVE = "remove",
|
|
27
|
-
INIT = "init"
|
|
22
|
+
HEIGHT = "height",
|
|
23
|
+
ANGLE = "angle"
|
|
28
24
|
}
|
package/dist/constant/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { default as EventType } from './
|
|
2
|
-
export { default as ErrorType } from './
|
|
1
|
+
export { default as EventType } from './EventType';
|
|
2
|
+
export { default as ErrorType } from './ErrorType';
|
|
3
3
|
export { default as LayerType } from './LayerType';
|
|
4
|
-
export * from './
|
|
4
|
+
export * from './GraphicTypes';
|
|
@@ -27,5 +27,6 @@ export default class CanvasDrawer {
|
|
|
27
27
|
* @throws 当Canvas context为null或undefined时抛出错误
|
|
28
28
|
*/
|
|
29
29
|
drawArc({ x, y }: Coordinate, radius: number, startAngle: number, endAngle: number, anticlockwise: boolean, isFill: boolean, bgColor: string): void;
|
|
30
|
+
drawImage(src: string, { x, y }: Coordinate): void;
|
|
30
31
|
static createCanvas(width?: number, height?: number): HTMLCanvasElement;
|
|
31
32
|
}
|
|
@@ -8,8 +8,8 @@ export default class EventDispatcher {
|
|
|
8
8
|
private _mutex;
|
|
9
9
|
private _context;
|
|
10
10
|
addEventListener(type: string, listener: Function, context?: any, mutexStatus?: boolean): EventDispatcher;
|
|
11
|
-
hasEventListener(type: string, listener:
|
|
12
|
-
removeEventListener(type: string, listener:
|
|
11
|
+
hasEventListener(type: string, listener: Function): boolean;
|
|
12
|
+
removeEventListener(type: string, listener: Function): void;
|
|
13
13
|
dispatchEvent(event: Event): void;
|
|
14
14
|
removeAllListener(): void;
|
|
15
15
|
}
|
package/dist/core/HashMap.d.ts
CHANGED
|
@@ -16,5 +16,5 @@ export default class HashMap<K, V> extends Map<K, V> {
|
|
|
16
16
|
* @param str JSON字符串
|
|
17
17
|
* @returns HashMap实例
|
|
18
18
|
*/
|
|
19
|
-
static fromJson<K extends string | number | symbol, V>(str:
|
|
19
|
+
static fromJson<K extends string | number | symbol, V>(str: string): HashMap<K, V>;
|
|
20
20
|
}
|
package/dist/gis-common.es.js
CHANGED
|
@@ -30,18 +30,18 @@ var EventType = /* @__PURE__ */ ((EventType2) => {
|
|
|
30
30
|
})(EventType || {});
|
|
31
31
|
var ErrorType = /* @__PURE__ */ ((ErrorType2) => {
|
|
32
32
|
ErrorType2["LOGIN_EXPIRED"] = "登录信息过期,请重新登录";
|
|
33
|
-
ErrorType2["CROSS_ERROR"] = "
|
|
34
|
-
ErrorType2["
|
|
33
|
+
ErrorType2["CROSS_ERROR"] = "不允许跨站点访问资源";
|
|
34
|
+
ErrorType2["NO_DATA_FOUND"] = "资源不存在";
|
|
35
35
|
ErrorType2["TIMEOUT"] = "请求超时";
|
|
36
36
|
ErrorType2["INTERNAL_ERROR"] = "内部错误";
|
|
37
37
|
ErrorType2["NETWORK_ERROR"] = "请求失败,请检查网络是否已连接";
|
|
38
|
-
ErrorType2["PROCESS_FAIL"] = "
|
|
38
|
+
ErrorType2["PROCESS_FAIL"] = "任务处理失败";
|
|
39
|
+
ErrorType2["PROCESS_TIMEOUT"] = "任务处理超时";
|
|
39
40
|
ErrorType2["AUTH_VERIFY_ERROR"] = "权限验证失败";
|
|
40
|
-
ErrorType2["
|
|
41
|
-
ErrorType2["DUPLICATE_INSTANCE"] = "实例为单例模式,不允许重复构建";
|
|
41
|
+
ErrorType2["INSTANCE_DUPLICATE"] = "实例为单例模式,不允许重复构建";
|
|
42
42
|
ErrorType2["JSON_PARSE_ERROR"] = "JSON解析失败,格式有误";
|
|
43
43
|
ErrorType2["JSON_VALUE_ERROR"] = "JSON无此键";
|
|
44
|
-
ErrorType2["STRING_CHECK_LOSS"] = "
|
|
44
|
+
ErrorType2["STRING_CHECK_LOSS"] = "字符串缺少关键字";
|
|
45
45
|
ErrorType2["PARAMETER_ERROR"] = "验证数据类型失败";
|
|
46
46
|
ErrorType2["PARAMETER_ERROR_ARRAY"] = "验证数据类型失败,必须是数组";
|
|
47
47
|
ErrorType2["PARAMETER_ERROR_STRING"] = "验证数据类型失败,必须是字符";
|
|
@@ -90,14 +90,9 @@ var MeasureMode = /* @__PURE__ */ ((MeasureMode2) => {
|
|
|
90
90
|
MeasureMode2["DISTANCE"] = "distance";
|
|
91
91
|
MeasureMode2["AREA"] = "area";
|
|
92
92
|
MeasureMode2["HEIGHT"] = "height";
|
|
93
|
+
MeasureMode2["ANGLE"] = "angle";
|
|
93
94
|
return MeasureMode2;
|
|
94
95
|
})(MeasureMode || {});
|
|
95
|
-
var ObjectState = /* @__PURE__ */ ((ObjectState2) => {
|
|
96
|
-
ObjectState2["ADD"] = "add";
|
|
97
|
-
ObjectState2["REMOVE"] = "remove";
|
|
98
|
-
ObjectState2["INIT"] = "init";
|
|
99
|
-
return ObjectState2;
|
|
100
|
-
})(ObjectState || {});
|
|
101
96
|
class AudioPlayer {
|
|
102
97
|
constructor(url) {
|
|
103
98
|
/**
|
|
@@ -192,24 +187,156 @@ const MathUtil = {
|
|
|
192
187
|
return Math.max(min, Math.min(max, val));
|
|
193
188
|
}
|
|
194
189
|
};
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
190
|
+
const ColorName = {
|
|
191
|
+
aliceblue: [240, 248, 255],
|
|
192
|
+
antiquewhite: [250, 235, 215],
|
|
193
|
+
aqua: [0, 255, 255],
|
|
194
|
+
aquamarine: [127, 255, 212],
|
|
195
|
+
azure: [240, 255, 255],
|
|
196
|
+
beige: [245, 245, 220],
|
|
197
|
+
bisque: [255, 228, 196],
|
|
198
|
+
black: [0, 0, 0],
|
|
199
|
+
blanchedalmond: [255, 235, 205],
|
|
200
|
+
blue: [0, 0, 255],
|
|
201
|
+
blueviolet: [138, 43, 226],
|
|
202
|
+
brown: [165, 42, 42],
|
|
203
|
+
burlywood: [222, 184, 135],
|
|
204
|
+
cadetblue: [95, 158, 160],
|
|
205
|
+
chartreuse: [127, 255, 0],
|
|
206
|
+
chocolate: [210, 105, 30],
|
|
207
|
+
coral: [255, 127, 80],
|
|
208
|
+
cornflowerblue: [100, 149, 237],
|
|
209
|
+
cornsilk: [255, 248, 220],
|
|
210
|
+
crimson: [220, 20, 60],
|
|
211
|
+
cyan: [0, 255, 255],
|
|
212
|
+
darkblue: [0, 0, 139],
|
|
213
|
+
darkcyan: [0, 139, 139],
|
|
214
|
+
darkgoldenrod: [184, 134, 11],
|
|
215
|
+
darkgray: [169, 169, 169],
|
|
216
|
+
darkgreen: [0, 100, 0],
|
|
217
|
+
darkgrey: [169, 169, 169],
|
|
218
|
+
darkkhaki: [189, 183, 107],
|
|
219
|
+
darkmagenta: [139, 0, 139],
|
|
220
|
+
darkolivegreen: [85, 107, 47],
|
|
221
|
+
darkorange: [255, 140, 0],
|
|
222
|
+
darkorchid: [153, 50, 204],
|
|
223
|
+
darkred: [139, 0, 0],
|
|
224
|
+
darksalmon: [233, 150, 122],
|
|
225
|
+
darkseagreen: [143, 188, 143],
|
|
226
|
+
darkslateblue: [72, 61, 139],
|
|
227
|
+
darkslategray: [47, 79, 79],
|
|
228
|
+
darkslategrey: [47, 79, 79],
|
|
229
|
+
darkturquoise: [0, 206, 209],
|
|
230
|
+
darkviolet: [148, 0, 211],
|
|
231
|
+
deeppink: [255, 20, 147],
|
|
232
|
+
deepskyblue: [0, 191, 255],
|
|
233
|
+
dimgray: [105, 105, 105],
|
|
234
|
+
dimgrey: [105, 105, 105],
|
|
235
|
+
dodgerblue: [30, 144, 255],
|
|
236
|
+
firebrick: [178, 34, 34],
|
|
237
|
+
floralwhite: [255, 250, 240],
|
|
238
|
+
forestgreen: [34, 139, 34],
|
|
239
|
+
fuchsia: [255, 0, 255],
|
|
240
|
+
gainsboro: [220, 220, 220],
|
|
241
|
+
ghostwhite: [248, 248, 255],
|
|
242
|
+
gold: [255, 215, 0],
|
|
243
|
+
goldenrod: [218, 165, 32],
|
|
244
|
+
gray: [128, 128, 128],
|
|
245
|
+
green: [0, 128, 0],
|
|
246
|
+
greenyellow: [173, 255, 47],
|
|
247
|
+
grey: [128, 128, 128],
|
|
248
|
+
honeydew: [240, 255, 240],
|
|
249
|
+
hotpink: [255, 105, 180],
|
|
250
|
+
indianred: [205, 92, 92],
|
|
251
|
+
indigo: [75, 0, 130],
|
|
252
|
+
ivory: [255, 255, 240],
|
|
253
|
+
khaki: [240, 230, 140],
|
|
254
|
+
lavender: [230, 230, 250],
|
|
255
|
+
lavenderblush: [255, 240, 245],
|
|
256
|
+
lawngreen: [124, 252, 0],
|
|
257
|
+
lemonchiffon: [255, 250, 205],
|
|
258
|
+
lightblue: [173, 216, 230],
|
|
259
|
+
lightcoral: [240, 128, 128],
|
|
260
|
+
lightcyan: [224, 255, 255],
|
|
261
|
+
lightgoldenrodyellow: [250, 250, 210],
|
|
262
|
+
lightgray: [211, 211, 211],
|
|
263
|
+
lightgreen: [144, 238, 144],
|
|
264
|
+
lightgrey: [211, 211, 211],
|
|
265
|
+
lightpink: [255, 182, 193],
|
|
266
|
+
lightsalmon: [255, 160, 122],
|
|
267
|
+
lightseagreen: [32, 178, 170],
|
|
268
|
+
lightskyblue: [135, 206, 250],
|
|
269
|
+
lightslategray: [119, 136, 153],
|
|
270
|
+
lightslategrey: [119, 136, 153],
|
|
271
|
+
lightsteelblue: [176, 196, 222],
|
|
272
|
+
lightyellow: [255, 255, 224],
|
|
273
|
+
lime: [0, 255, 0],
|
|
274
|
+
limegreen: [50, 205, 50],
|
|
275
|
+
linen: [250, 240, 230],
|
|
276
|
+
magenta: [255, 0, 255],
|
|
277
|
+
maroon: [128, 0, 0],
|
|
278
|
+
mediumaquamarine: [102, 205, 170],
|
|
279
|
+
mediumblue: [0, 0, 205],
|
|
280
|
+
mediumorchid: [186, 85, 211],
|
|
281
|
+
mediumpurple: [147, 112, 219],
|
|
282
|
+
mediumseagreen: [60, 179, 113],
|
|
283
|
+
mediumslateblue: [123, 104, 238],
|
|
284
|
+
mediumspringgreen: [0, 250, 154],
|
|
285
|
+
mediumturquoise: [72, 209, 204],
|
|
286
|
+
mediumvioletred: [199, 21, 133],
|
|
287
|
+
midnightblue: [25, 25, 112],
|
|
288
|
+
mintcream: [245, 255, 250],
|
|
289
|
+
mistyrose: [255, 228, 225],
|
|
290
|
+
moccasin: [255, 228, 181],
|
|
291
|
+
navajowhite: [255, 222, 173],
|
|
292
|
+
navy: [0, 0, 128],
|
|
293
|
+
oldlace: [253, 245, 230],
|
|
294
|
+
olive: [128, 128, 0],
|
|
295
|
+
olivedrab: [107, 142, 35],
|
|
296
|
+
orange: [255, 165, 0],
|
|
297
|
+
orangered: [255, 69, 0],
|
|
298
|
+
orchid: [218, 112, 214],
|
|
299
|
+
palegoldenrod: [238, 232, 170],
|
|
300
|
+
palegreen: [152, 251, 152],
|
|
301
|
+
paleturquoise: [175, 238, 238],
|
|
302
|
+
palevioletred: [219, 112, 147],
|
|
303
|
+
papayawhip: [255, 239, 213],
|
|
304
|
+
peachpuff: [255, 218, 185],
|
|
305
|
+
peru: [205, 133, 63],
|
|
306
|
+
pink: [255, 192, 203],
|
|
307
|
+
plum: [221, 160, 221],
|
|
308
|
+
powderblue: [176, 224, 230],
|
|
309
|
+
purple: [128, 0, 128],
|
|
310
|
+
rebeccapurple: [102, 51, 153],
|
|
311
|
+
red: [255, 0, 0],
|
|
312
|
+
rosybrown: [188, 143, 143],
|
|
313
|
+
royalblue: [65, 105, 225],
|
|
314
|
+
saddlebrown: [139, 69, 19],
|
|
315
|
+
salmon: [250, 128, 114],
|
|
316
|
+
sandybrown: [244, 164, 96],
|
|
317
|
+
seagreen: [46, 139, 87],
|
|
318
|
+
seashell: [255, 245, 238],
|
|
319
|
+
sienna: [160, 82, 45],
|
|
320
|
+
silver: [192, 192, 192],
|
|
321
|
+
skyblue: [135, 206, 235],
|
|
322
|
+
slateblue: [106, 90, 205],
|
|
323
|
+
slategray: [112, 128, 144],
|
|
324
|
+
slategrey: [112, 128, 144],
|
|
325
|
+
snow: [255, 250, 250],
|
|
326
|
+
springgreen: [0, 255, 127],
|
|
327
|
+
steelblue: [70, 130, 180],
|
|
328
|
+
tan: [210, 180, 140],
|
|
329
|
+
teal: [0, 128, 128],
|
|
330
|
+
thistle: [216, 191, 216],
|
|
331
|
+
tomato: [255, 99, 71],
|
|
332
|
+
turquoise: [64, 224, 208],
|
|
333
|
+
violet: [238, 130, 238],
|
|
334
|
+
wheat: [245, 222, 179],
|
|
335
|
+
white: [255, 255, 255],
|
|
336
|
+
whitesmoke: [245, 245, 245],
|
|
337
|
+
yellow: [255, 255, 0],
|
|
338
|
+
yellowgreen: [154, 205, 50]
|
|
339
|
+
};
|
|
213
340
|
class Color {
|
|
214
341
|
constructor(r, g, b, a) {
|
|
215
342
|
__publicField(this, "_r");
|
|
@@ -327,7 +454,10 @@ class Color {
|
|
|
327
454
|
}
|
|
328
455
|
static fromName(str) {
|
|
329
456
|
const rgba = ColorName[str];
|
|
330
|
-
|
|
457
|
+
if (!rgba) {
|
|
458
|
+
throw new Error(`Invalid color name: ${str}`);
|
|
459
|
+
}
|
|
460
|
+
return new Color(rgba[0], rgba[1], rgba[2], rgba.length > 3 ? rgba[3] : 1);
|
|
331
461
|
}
|
|
332
462
|
/**
|
|
333
463
|
* 从字符串中创建颜色对象
|
|
@@ -456,6 +586,18 @@ class CanvasDrawer {
|
|
|
456
586
|
this.context.stroke();
|
|
457
587
|
}
|
|
458
588
|
}
|
|
589
|
+
drawImage(src, { x, y }) {
|
|
590
|
+
const img = new Image();
|
|
591
|
+
img.src = src;
|
|
592
|
+
img.onload = () => {
|
|
593
|
+
const width = img.width;
|
|
594
|
+
const height = img.height;
|
|
595
|
+
if (!this.context) {
|
|
596
|
+
throw new Error("Canvas context is null");
|
|
597
|
+
}
|
|
598
|
+
this.context.drawImage(img, x, y, -width / 2, -height / 2);
|
|
599
|
+
};
|
|
600
|
+
}
|
|
459
601
|
static createCanvas(width = 1, height = 1) {
|
|
460
602
|
const canvas = document.createElement("canvas");
|
|
461
603
|
if (width) {
|
|
@@ -469,12 +611,11 @@ class CanvasDrawer {
|
|
|
469
611
|
}
|
|
470
612
|
class EventDispatcher {
|
|
471
613
|
constructor() {
|
|
472
|
-
__publicField(this, "_listeners");
|
|
614
|
+
__publicField(this, "_listeners", {});
|
|
473
615
|
__publicField(this, "_mutex", {});
|
|
474
616
|
__publicField(this, "_context");
|
|
475
617
|
}
|
|
476
618
|
addEventListener(type, listener, context, mutexStatus) {
|
|
477
|
-
if (this._listeners === void 0) this._listeners = {};
|
|
478
619
|
this._context = context;
|
|
479
620
|
const mutex = this._mutex;
|
|
480
621
|
const listeners = this._listeners;
|
|
@@ -829,7 +970,7 @@ const Util = {
|
|
|
829
970
|
return Array.isArray(a);
|
|
830
971
|
},
|
|
831
972
|
isObject(a) {
|
|
832
|
-
return
|
|
973
|
+
return typeof a === "object" && a !== null;
|
|
833
974
|
},
|
|
834
975
|
isNil(a) {
|
|
835
976
|
return a === void 0 || a === "undefined" || a === null || a === "null";
|
|
@@ -2225,22 +2366,22 @@ myArray.prototype.max = function() {
|
|
|
2225
2366
|
myArray.prototype.min = function() {
|
|
2226
2367
|
return Math.min.apply({}, this);
|
|
2227
2368
|
};
|
|
2228
|
-
myArray.sum = function() {
|
|
2369
|
+
myArray.prototype.sum = function() {
|
|
2229
2370
|
return this.length > 0 ? this.reduce((prev = 0, curr = 0) => prev + curr) : 0;
|
|
2230
2371
|
};
|
|
2231
|
-
myArray.avg = function() {
|
|
2372
|
+
myArray.prototype.avg = function() {
|
|
2232
2373
|
return this.length ? this.sum() / this.length : 0;
|
|
2233
2374
|
};
|
|
2234
|
-
myArray.desc = function(f = (d) => d) {
|
|
2375
|
+
myArray.prototype.desc = function(f = (d) => d) {
|
|
2235
2376
|
return this.sort((n1, n2) => f(n2) - f(n1));
|
|
2236
2377
|
};
|
|
2237
|
-
myArray.asc = function(f = (d) => d) {
|
|
2378
|
+
myArray.prototype.asc = function(f = (d) => d) {
|
|
2238
2379
|
return this.sort((n1, n2) => f(n1) - f(n2));
|
|
2239
2380
|
};
|
|
2240
|
-
myArray.random = function() {
|
|
2381
|
+
myArray.prototype.random = function() {
|
|
2241
2382
|
return this[Math.floor(Math.random() * this.length)];
|
|
2242
2383
|
};
|
|
2243
|
-
myArray.remove = function(obj) {
|
|
2384
|
+
myArray.prototype.remove = function(obj) {
|
|
2244
2385
|
const i = this.indexOf(obj);
|
|
2245
2386
|
if (i > -1) {
|
|
2246
2387
|
this.splice(i, 1);
|
|
@@ -3217,14 +3358,14 @@ class MessageUtil {
|
|
|
3217
3358
|
this.isMute = !!Number(!this.isMute);
|
|
3218
3359
|
localStorage.setItem("mute", Number(this.isMute).toString());
|
|
3219
3360
|
}
|
|
3220
|
-
static _call(method, message) {
|
|
3361
|
+
static _call(method, message, options) {
|
|
3221
3362
|
if (!this.warned[message]) {
|
|
3222
|
-
method(message);
|
|
3363
|
+
method(message, options);
|
|
3223
3364
|
this.warned[message] = true;
|
|
3224
3365
|
}
|
|
3225
3366
|
}
|
|
3226
3367
|
/**
|
|
3227
|
-
*
|
|
3368
|
+
* 播放消息提示音和文字朗读(语音需要有交互)
|
|
3228
3369
|
*
|
|
3229
3370
|
* @param type 消息类型
|
|
3230
3371
|
* @param message 消息内容
|
|
@@ -3234,7 +3375,7 @@ class MessageUtil {
|
|
|
3234
3375
|
static msg(type, message, options = {}) {
|
|
3235
3376
|
Message({ type, message });
|
|
3236
3377
|
if (this.isMute) return;
|
|
3237
|
-
const typename = Util.decodeDict(type, "success", "
|
|
3378
|
+
const typename = Util.decodeDict(type, "success", "恭喜", "error", "发生错误", "warning", "警告", "info", "友情提示") + ":";
|
|
3238
3379
|
this.speechSynthesisUtterance.text = typename + message;
|
|
3239
3380
|
this.speechSynthesisUtterance.lang = options.lang || "zh-CN";
|
|
3240
3381
|
this.speechSynthesisUtterance.volume = options.volume || 1;
|
|
@@ -3246,41 +3387,41 @@ class MessageUtil {
|
|
|
3246
3387
|
this.speechSynthesisUtterance.text = e;
|
|
3247
3388
|
this.speechSynthesis.cancel();
|
|
3248
3389
|
}
|
|
3249
|
-
static warning(message) {
|
|
3390
|
+
static warning(message, options) {
|
|
3250
3391
|
if (process.env.NODE_ENV === "development" && console !== void 0) {
|
|
3251
|
-
console.warn(`Warning: ${message}
|
|
3392
|
+
console.warn(`Warning: %c${message}`, "color:#E6A23C;font-weight: bold;");
|
|
3252
3393
|
}
|
|
3253
|
-
this.msg("warning", message);
|
|
3394
|
+
this.msg("warning", message, options);
|
|
3254
3395
|
}
|
|
3255
|
-
static warningOnce(message) {
|
|
3256
|
-
this._call(this.warning.bind(this), message);
|
|
3396
|
+
static warningOnce(message, options) {
|
|
3397
|
+
this._call(this.warning.bind(this), message, options);
|
|
3257
3398
|
}
|
|
3258
|
-
static info(message) {
|
|
3399
|
+
static info(message, options) {
|
|
3259
3400
|
if (process.env.NODE_ENV === "development" && console !== void 0) {
|
|
3260
|
-
console.info(`Info: ${message}
|
|
3401
|
+
console.info(`Info: %c${message}`, "color:#909399;font-weight: bold;");
|
|
3261
3402
|
}
|
|
3262
|
-
this.msg("info", message);
|
|
3403
|
+
this.msg("info", message, options);
|
|
3263
3404
|
}
|
|
3264
|
-
static infoOnce(message) {
|
|
3265
|
-
this._call(this.info.bind(this), message);
|
|
3405
|
+
static infoOnce(message, options) {
|
|
3406
|
+
this._call(this.info.bind(this), message, options);
|
|
3266
3407
|
}
|
|
3267
|
-
static error(message) {
|
|
3408
|
+
static error(message, options) {
|
|
3268
3409
|
if (process.env.NODE_ENV === "development" && console !== void 0) {
|
|
3269
|
-
console.error(`Error: ${message}
|
|
3410
|
+
console.error(`Error: %c${message}`, "color:#F56C6C;font-weight: bold;");
|
|
3270
3411
|
}
|
|
3271
|
-
this.msg("error", message);
|
|
3412
|
+
this.msg("error", message, options);
|
|
3272
3413
|
}
|
|
3273
|
-
static errorOnce(message) {
|
|
3274
|
-
this._call(this.error.bind(this), message);
|
|
3414
|
+
static errorOnce(message, options) {
|
|
3415
|
+
this._call(this.error.bind(this), message, options);
|
|
3275
3416
|
}
|
|
3276
|
-
static success(message) {
|
|
3417
|
+
static success(message, options) {
|
|
3277
3418
|
if (process.env.NODE_ENV === "development" && console !== void 0) {
|
|
3278
|
-
console.log(`Success: ${message}
|
|
3419
|
+
console.log(`Success: %c${message}`, "color:#67C23A;font-weight: bold;");
|
|
3279
3420
|
}
|
|
3280
|
-
this.msg("success", message);
|
|
3421
|
+
this.msg("success", message, options);
|
|
3281
3422
|
}
|
|
3282
|
-
static successOnce(message) {
|
|
3283
|
-
this._call(this.success.bind(this), message);
|
|
3423
|
+
static successOnce(message, options) {
|
|
3424
|
+
this._call(this.success.bind(this), message, options);
|
|
3284
3425
|
}
|
|
3285
3426
|
}
|
|
3286
3427
|
__publicField(MessageUtil, "warned", {});
|
|
@@ -3699,7 +3840,6 @@ export {
|
|
|
3699
3840
|
MeasureMode,
|
|
3700
3841
|
MessageUtil,
|
|
3701
3842
|
MqttClient,
|
|
3702
|
-
ObjectState,
|
|
3703
3843
|
ObjectUtil,
|
|
3704
3844
|
OptimizeUtil,
|
|
3705
3845
|
Storage,
|
package/dist/gis-common.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("element-ui"),require("mqtt-browser")):"function"==typeof define&&define.amd?define(["exports","element-ui","mqtt-browser"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["gis-common"]={},t.elementUi,t.mqttBrowser)}(this,(function(t,e,s){"use strict";var n,r=Object.defineProperty,i=(t,e,s)=>((t,e,s)=>e in t?r(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s)(t,"symbol"!=typeof e?e+"":e,s),a=(t=>(t.MAP_RENDER="mapRender",t.MAP_READY="mapReady",t.MOUSE_CLICK="click",t.MOUSE_DOUBLE_CLICK="dblclick",t.MOUSE_MOVE="mousemove",t.MOUSE_IN="mousein",t.MOUSE_OUT="mouseout",t.MOUSE_RIGHT_CLICK="mouseRightClick",t.KEY_DOWN="keyDown",t.KEY_UP="keyUp",t.DRAW_ACTIVE="drawActive",t.DRAW_MOVE="drawMove",t.DRAW_COMPLETE="drawComplete",t.MQTT_CONNECT="mqttConnect",t.MQTT_ERROR="mqttError",t.MQTT_MESSAGE="mqttMessage",t.MQTT_CLOSE="mqttClose",t.WEB_SOCKET_CONNECT="webSocketConnect",t.WEB_SOCKET_ERROR="webSocketError",t.WEB_SOCKET_MESSAGE="webSocketMessage",t.WEB_SOCKET_CLOSE="webSocketClose",t))(a||{}),o=(t=>(t.LOGIN_EXPIRED="登录信息过期,请重新登录",t.CROSS_ERROR="跨域访问",t.UNEXIST_RESOURCE="资源不存在",t.TIMEOUT="请求超时",t.INTERNAL_ERROR="内部错误",t.NETWORK_ERROR="请求失败,请检查网络是否已连接",t.PROCESS_FAIL="处理失败",t.AUTH_VERIFY_ERROR="权限验证失败",t.NO_DATA_FOUND="未找到数据",t.DUPLICATE_INSTANCE="实例为单例模式,不允许重复构建",t.JSON_PARSE_ERROR="JSON解析失败,格式有误",t.JSON_VALUE_ERROR="JSON无此键",t.STRING_CHECK_LOSS="字符缺少关键字",t.PARAMETER_ERROR="验证数据类型失败",t.PARAMETER_ERROR_ARRAY="验证数据类型失败,必须是数组",t.PARAMETER_ERROR_STRING="验证数据类型失败,必须是字符",t.PARAMETER_ERROR_FUNCTION="验证数据类型失败,必须是函数",t.PARAMETER_ERROR_OBJECT="验证数据类型失败,必须是对象",t.PARAMETER_ERROR_INTEGER="验证数据类型失败,必须是整型",t.PARAMETER_ERROR_NUMBER="验证数据类型失败,必须是数值",t.PARAMETER_ERROR_LACK="验证数据类型失败,必须非空",t.DATA_ERROR="格式类型验证失败",t.DATA_ERROR_COORDINATE="格式类型验证失败,必须是坐标",t.DATA_ERROR_COLOR="格式类型验证失败,必须是颜色代码",t.DATA_ERROR_GEOJSON="格式类型验证失败,必须是GeoJSON",t))(o||{}),c=(t=>(t.SUPER_MAP_IMAGES="SuperMapImages",t.SUPER_MAP_DATA="SuperMapData",t.ARC_GIS_MAP_IMAGES="ArcGisMapImages",t.ARC_GIS_MAP_DATA="ArcGisMapData",t.OSGB_LAYER="OSGBLayer",t.S3M_GROUP="S3MGroup",t.TERRAIN_LAYER="TerrainFileLayer",t))(c||{}),l=(t=>(t.POINT="Point",t.POLYLINE="Polyline",t.POLYGON="Polygon",t.RECTANGLE="Rectangle",t.BILLBOARD="Billboard",t.CYLINDER="Cylinder",t.ELLIPSOID="Ellipsoid",t.LABEL="Label",t.MODEL="Model",t.WALL="Wall",t))(l||{}),h=(t=>(t.DASH="10,5",t.DOT="3",t.DASHDOT="10,3,3,3",t.DASHDOTDOT="10,3,3,3,3,3",t))(h||{}),u=(t=>(t.DISTANCE="distance",t.AREA="area",t.HEIGHT="height",t))(u||{}),d=(t=>(t.ADD="add",t.REMOVE="remove",t.INIT="init",t))(d||{});const g={DEG2RAD:Math.PI/180,RAD2DEG:180/Math.PI,randInt:(t,e)=>t+Math.floor(Math.random()*(e-t+1)),randFloat:(t,e)=>t+Math.random()*(e-t),deg2Rad(t){return t*this.DEG2RAD},rad2Deg(t){return t*this.RAD2DEG},round:(t,e=2)=>Math.round(t*Math.pow(10,e))/Math.pow(10,e),clamp:(t,e,s)=>Math.max(e,Math.min(s,t))};var p=(t=>(t.white="rgba(255, 255, 255, 1)",t.black="rgba(0, 0, 0, 1)",t.red="rgba(255, 0, 0, 1)",t.green="rgba(0, 255, 0, 1)",t.blue="rgba(0, 0, 255, 1)",t.yellow="rgba(255, 255, 0, 1)",t.cyan="rgba(0, 255, 255, 1)",t.magenta="rgba(255, 0, 255, 1)",t.purple="rgba(128, 0, 128, 1)",t.brown="rgba(165, 42, 42, 1)",t.gray="rgba(128, 128, 128, 1)",t.orange="rgba(255, 165, 0, 1)",t.golden="rgba(255, 215, 0, 1)",t.silvery="rgba(192, 192, 192, 1)",t.transparent="rgba(0, 0, 0, 0)",t))(p||{});class f{constructor(t,e,s,n){i(this,"_r"),i(this,"_g"),i(this,"_b"),i(this,"_alpha"),this._validateColorChannel(t),this._validateColorChannel(e),this._validateColorChannel(s),this._r=t,this._g=e,this._b=s,this._alpha=g.clamp(n||1,0,1)}_validateColorChannel(t){if(t<0||t>255)throw new Error("Color channel must be between 0 and 255.")}toString(){return`rgba(${this._r}, ${this._g}, ${this._b}, ${this._alpha})`}toJson(){return{r:this._r,g:this._g,b:this._b,a:this._alpha}}get rgba(){return`rgba(${this._r}, ${this._g}, ${this._b}, ${this._alpha})`}get hex(){return f.rgb2hex(this._r,this._g,this._b,this._alpha)}setAlpha(t){return this._alpha=g.clamp(t,0,1),this}setRgb(t,e,s){return this._validateColorChannel(t),this._validateColorChannel(e),this._validateColorChannel(s),this._r=t,this._g=e,this._b=s,this}static fromRgba(t){const e=t.match(/^rgba?\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([\d.]+))?\s*\)$/);if(!e)throw new Error("Invalid RGBA color value");const s=parseInt(e[1],10),n=parseInt(e[2],10),r=parseInt(e[3],10),i=e[5]?parseFloat(e[5]):1;return new f(s,n,r,i)}static fromHex(t,e=1){const s=t.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,((t,e,s,n)=>e+e+s+s+n+n)),n=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(s);if(!n)throw new Error("Invalid HEX color value");const r=parseInt(n[1],16),i=parseInt(n[2],16),a=parseInt(n[3],16);return new f(r,i,a,e)}static fromHsl(t){const e=/hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(t)||/hsla\((\d+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)/g.exec(t);if(!e)throw new Error("Invalid HSL color value");const s=parseInt(e[1],10)/360,n=parseInt(e[2],10)/100,r=parseInt(e[3],10)/100,i=e[4]?parseFloat(e[4]):1;function a(t,e,s){return s<0&&(s+=1),s>1&&(s-=1),s<1/6?t+6*(e-t)*s:s<.5?e:s<2/3?t+(e-t)*(2/3-s)*6:t}let o,c,l;if(0===n)o=c=l=r;else{const t=r<.5?r*(1+n):r+n-r*n,e=2*r-t;o=a(e,t,s+1/3),c=a(e,t,s),l=a(e,t,s-1/3)}return new f(Math.round(255*o),Math.round(255*c),Math.round(255*l),i)}static fromName(t){const e=p[t];return this.fromRgba(e)}static from(t){if(this.isRgb(t))return this.fromRgba(t);if(this.isHex(t))return this.fromHex(t);if(this.isHsl(t))return this.fromHsl(t);if(Object.keys(p).map((t=>t.toString())).includes(t))return this.fromName(t);throw new Error("Invalid color value")}static rgb2hex(t,e,s,n){var r="#"+((1<<24)+(t<<16)+(e<<8)+s).toString(16).slice(1);if(void 0!==n){return r+Math.round(255*n).toString(16).padStart(2,"0")}return r}static isHex(t){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t)}static isRgb(t){return/^rgba?\s*\(\s*\d+\s*,\s*\d+\s*,\s*\d+\s*(,\s*[\d.]+)?\s*\)$/.test(t)}static isHsl(t){return/^(hsl|hsla)\(\d+,\s*[\d.]+%,\s*[\d.]+%(,\s*[\d.]+)?\)$/.test(t)}static isColor(t){return this.isHex(t)||this.isRgb(t)||this.isHsl(t)}static random(){let t=Math.floor(256*Math.random()),e=Math.floor(256*Math.random()),s=Math.floor(256*Math.random()),n=Math.random();return new f(t,e,s,n)}}class m{constructor(){i(this,"_listeners"),i(this,"_mutex",{}),i(this,"_context")}addEventListener(t,e,s,n){void 0===this._listeners&&(this._listeners={}),this._context=s;const r=this._mutex,i=this._listeners;return void 0===i[t]&&(i[t]=[]),-1===i[t].indexOf(e)&&(n&&(r[t]=e),i[t].push(e)),this}hasEventListener(t,e){if(null===this._listeners||void 0===this._listeners)return!1;const s=this._listeners;return void 0!==s[t]&&-1!==s[t].indexOf(e)}removeEventListener(t,e){if(void 0===this._listeners)return;const s=this._listeners[t];if(this._mutex[t]===e&&(this._mutex[t]=null),void 0!==s){const t=s.map((t=>t.toString())).indexOf(e.toString());-1!==t&&s.splice(t,1)}}dispatchEvent(t){if(void 0===this._listeners)return;const e=this._listeners[t.type];if(void 0!==e){t.target=this;const s=e.slice(0);if(void 0!==this._mutex[t.type]){const e=s.find((e=>e===this._mutex[t.type]));if(e)return void e.call(this._context||this,t)}for(let e=0,n=s.length;e<n;e++){const n=s[e];"function"==typeof n&&n.call(this._context||this,t)}}}removeAllListener(){this._mutex={};for(const t in this._listeners)this._listeners[t]=[]}}const y={getDataType:t=>Object.prototype.toString.call(t).slice(8,-1),asArray(t){return this.isEmpty(t)?[]:Array.isArray(t)?t:[t]},asNumber:t=>Number.isNaN(Number(t))?0:Number(t),asString(t){if(this.isEmpty(t))return"";switch(this.getDataType(t)){case"Object":case"Array":return JSON.stringify(t);default:return t}},isEmpty(t){if(null==t)return!0;switch(this.getDataType(t)){case"String":return""===t.trim();case"Array":return!t.length;case"Object":return!Object.keys(t).length;case"Boolean":return!t;default:return!1}},json2form(t){const e=new FormData;return this.isEmpty(t)||Object.keys(t).forEach((s=>{e.append(s,t[s]instanceof Object?JSON.stringify(t[s]):t[s])})),e},guid(){const t=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return t()+t()+t()+t()+t()+t()+t()+t()},decodeDict(...t){let e="";if(t.length>1){const s=t.slice(1,t.length%2==0?t.length-1:t.length);for(let n=0;n<s.length;n+=2){const r=s[n];t[0]===r&&(e=s[n+1])}e||t.length%2!=0||(e=t[t.length-1])}else e=t[0];return e},extend(t,...e){let s,n,r,i;for(n=0,r=e.length;n<r;n++)for(s in i=e[n],i)t[s]=i[s];return t},convertToTree2(t,e="id",s="parentId",n="children"){const r=[];function i(a){const o=t.filter((t=>t[s]===a[e])).map((t=>(r.some((s=>s[e]===t[e]))||i(t),t)));o.length>0&&(a[n]=o)}return t.forEach((n=>{t.some((t=>t[s]===n[e]))||(i(n),r.push(n))})),r},asyncLoadScript:t=>new Promise(((e,s)=>{try{const n=document.createElement("script");n.type="text/javascript",n.src=t,"readyState"in n?n.onreadystatechange=function(){"complete"!==n.readyState&&"loaded"!==n.readyState||e(n)}:(n.onload=function(){e(n)},n.onerror=function(){s(new Error("Script failed to load for URL: "+t))}),document.body.appendChild(n)}catch(n){s(n)}})),loadStyle(t){t.forEach((t=>{const e=document.createElement("link");e.href=t,e.rel="stylesheet",e.type="text/css",e.onerror=function(){console.error(`Style loading failed for URL: ${t}`)},document.head.appendChild(e)}))},template:(t,e)=>t.replace(/\{ *([\w_-]+) *\}/g,((t,s)=>{const n=e[s];if(void 0===n)throw new Error(`${o.JSON_VALUE_ERROR}: ${t}`);return"function"==typeof n?n(e):n})),deleteEmptyProperty(t){return Object.fromEntries(Object.keys(t).filter((e=>!this.isEmpty(t[e]))).map((e=>[e,t[e]])))},deepAssign(t,...e){"object"==typeof t&&null!==t||(t={});for(const s of e)if("object"==typeof s&&null!==s)for(const e in s)Object.prototype.hasOwnProperty.call(s,e)&&("object"==typeof s[e]&&null!==s[e]?(t[e]||(t[e]=Array.isArray(s[e])?[]:{}),this.deepAssign(t[e],s[e])):t[e]=s[e]);return t},handleCopyValue(t){if(navigator.clipboard&&window.isSecureContext)return navigator.clipboard.writeText(t);{const e=document.createElement("textarea");return e.style.position="fixed",e.style.top=e.style.left="-100vh",e.style.opacity="0",e.value=t,document.body.appendChild(e),e.focus(),e.select(),new Promise(((t,s)=>{try{document.execCommand("copy"),t()}catch(n){s(new Error("copy failed"))}finally{e.remove()}}))}},isArray:t=>Array.isArray(t),isObject:t=>Object.prototype.toString.call(t).indexOf("Object")>-1,isNil:t=>void 0===t||"undefined"===t||null===t||"null"===t,isNumber:t=>"number"==typeof t&&!isNaN(t)||"string"==typeof t&&Number.isFinite(+t),isInteger:t=>parseInt(t)===t,isFunction(t){return!this.isNil(t)&&("function"==typeof t||null!==t.constructor&&t.constructor===Function)},isElement:t=>"object"==typeof t&&1===t.nodeType,checheVersion:(t,e)=>t.replace(/[^0-9]/gi,"")<e.replace(/[^0-9]/gi,"")},E={deepClone:t=>structuredClone(t),isEqual:(t,e)=>JSON.stringify(t)===JSON.stringify(e),parse:t=>"string"==typeof t&&t.startsWith("{")&&t.endsWith("}")?JSON.parse(t):y.isEmpty(t)?{}:y.isObject(t)?t:void 0};class w extends Map{isEmpty(){return 0===this.size}_values(){return Array.from(this.values())}_keys(){return Array.from(this.keys())}_entries(){return Array.from(this.entries())}static fromEntries(t=[]){const e=new w;return t.forEach((t=>{Array.isArray(t)&&2===t.length&&e.set(t[0],t[1])})),e}static fromJson(t){const e=E.parse(t);return new w(Object.entries(e))}}const M={emptyImageUrl:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",getURL(t){let e,s;if(/^data:/i.test(t.src))return t.src;if("undefined"==typeof HTMLCanvasElement)return t.src;if(t instanceof HTMLCanvasElement)s=t;else{void 0===e&&(e=document.createElementNS("http://www.w3.org/1999/xhtml","canvas")),e.width=t.width,e.height=t.height;const n=e.getContext("2d");n&&(t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height)),s=e}return s.width>2048||s.height>2048?(console.warn("ImageUtil.getDataURL: Image converted to jpg for performance reasons",t),s.toDataURL("image/jpeg",.6)):s.toDataURL("image/png")},getBase64(t){return new Promise(((e,s)=>{let n=new Image;n.setAttribute("crossOrigin","Anonymous"),n.src=t,n.onload=()=>{let t=this.getURL(n);e(t)},n.onerror=s}))},parseBase64(t){let e=new RegExp("data:(?<type>.*?);base64,(?<data>.*)").exec(t);return e&&e.groups?{type:e.groups.type,ext:e.groups.type.split("/").slice(-1)[0],data:e.groups.data}:null},async copyImage(t){try{const e=await this.getBase64(t),s=this.parseBase64(e.dataURL);if(!s)throw new Error("Failed to parse base64 data.");let n=s.type,r=atob(s.data),i=new ArrayBuffer(r.length),a=new Uint8Array(i);for(let t=0;t<r.length;t++)a[t]=r.charCodeAt(t);let o=new Blob([i],{type:n});await navigator.clipboard.write([new ClipboardItem({[n]:o})])}catch(e){console.error("Failed to copy image to clipboard:",e)}}},R={jsonp(t,e){const s="_jsonp_"+y.guid(),n=document.getElementsByTagName("head")[0];t.includes("?")?t+="&callback="+s:t+="?callback="+s;let r=document.createElement("script");r.type="text/javascript",r.src=t,window[s]=function(t){e(null,t),n.removeChild(r),r=null,delete window[s]},n.appendChild(r)},get(t,e={},s){if(y.isFunction(e)){const t=s;s=e,e=t}const n=this._getClient(s);if(n.open("GET",t,!0),e){for(const t in e.headers)n.setRequestHeader(t,e.headers[t]);n.withCredentials="include"===e.credentials,e.responseType&&(n.responseType=e.responseType)}return n.send(null),n},post(t,e={},s){let n;if("string"!=typeof t?(s=e.cb,n=e.postData,delete(e={...e}).cb,delete e.postData,t=e.url):("function"==typeof e&&(s=e,e={}),n=e.postData),!s)throw new Error("Callback function is required");const r=this._getClient(s);return r.open("POST",t,!0),e.headers=e.headers||{},e.headers["Content-Type"]||(e.headers["Content-Type"]="application/x-www-form-urlencoded"),Object.keys(e.headers).forEach((t=>{r.setRequestHeader(t,e.headers[t])})),"string"!=typeof n&&(n=JSON.stringify(n)),r.send(n),r},_wrapCallback:(t,e)=>function(){if(4===t.readyState)if(200===t.status)if("arraybuffer"===t.responseType){0===t.response.byteLength?e(new Error("http status 200 returned without content.")):e(null,{data:t.response,cacheControl:t.getResponseHeader("Cache-Control"),expires:t.getResponseHeader("Expires"),contentType:t.getResponseHeader("Content-Type")})}else e(null,t.responseText);else e(new Error(t.statusText+","+t.status))},_getClient(t){let e=null;try{e=new XMLHttpRequest}catch(s){throw new Error("XMLHttpRequest not supported.")}return e&&(e.onreadystatechange=this._wrapCallback(e,t)),e},getArrayBuffer(t,e,s){if(y.isFunction(e)){const t=s;s=e,e=t}return e||(e={}),e.responseType="arraybuffer",this.get(t,e,s)},getImage(t,e,s){return this.getArrayBuffer(e,s,((e,s)=>{if(e)t.onerror&&t.onerror(e);else if(s){const e=window.URL||window.webkitURL,n=t.onload;t.onload=()=>{n&&n(),e.revokeObjectURL(t.src)};const r=new Blob([new Uint8Array(s.data)],{type:s.contentType});t.cacheControl=s.cacheControl,t.expires=s.expires,t.src=s.data.byteLength?e.createObjectURL(r):M.emptyImageUrl}}))},getJSON(t,e,s){if(y.isFunction(e)){const t=s;s=e,e=t}const n=function(t,e){const n=e?E.parse(e):null;s&&s(t,n)};return e&&e.jsonp?this.jsonp(t,n):this.get(t,e,n)}};class b{static isLnglat(t,e){return y.isNumber(t)&&y.isNumber(e)&&!!(+e>-90&&+e<90&&+t>-180&&+t<180)}static distance(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}static distanceByPoints(t,e){const{lng:s,lat:n}=t,{lng:r,lat:i}=e;let a=Math.cos(n*Math.PI/180)*Math.cos(i*Math.PI/180)*Math.cos((s-r)*Math.PI/180)+Math.sin(n*Math.PI/180)*Math.sin(i*Math.PI/180);a>1&&(a=1),a<-1&&(a=-1);return 6371e3*Math.acos(a)}static formatLnglat(t,e){let s="";function n(t){const e=Math.floor(t),s=Math.floor(60*(t-e));return`${e}°${s}′${(3600*(t-e)-60*s).toFixed(2)}″`}return this.isLnglat(t,e)?s=n(t)+","+n(e):isNaN(t)?isNaN(e)||(s=n(e)):s=n(t),s}static transformLnglat(t,e){function s(t){let e=/[sw]/i.test(t)?-1:1;const s=t.match(/[\d.]+/g)||[];let n=0;for(let r=0;r<s.length;r++)n+=parseFloat(s[r])/e,e*=60;return n}if(t&&e)return{lng:s(t),lat:s(e)}}static rayCasting(t,e){for(var s=t.x,n=t.y,r=!1,i=0,a=e.length,o=a-1;i<a;o=i,i++){var c=e[i].x,l=e[i].y,h=e[o].x,u=e[o].y;if(c===s&&l===n||h===s&&u===n)return"on";if(l<n&&u>=n||l>=n&&u<n){var d=c+(n-l)*(h-c)/(u-l);if(d===s)return"on";d>s&&(r=!r)}}return r?"in":"out"}static rotatePoint(t,e,s){return{x:(t.x-e.x)*Math.cos(Math.PI/180*-s)-(t.y-e.y)*Math.sin(Math.PI/180*-s)+e.x,y:(t.x-e.x)*Math.sin(Math.PI/180*-s)+(t.y-e.y)*Math.cos(Math.PI/180*-s)+e.y}}static calcBearAndDis(t,e){const{x:s,y:n}=t,{x:r,y:i}=e,a=r-s,o=i-n,c=Math.sqrt(a*a+o*o);return{angle:(Math.atan2(o,a)*(180/Math.PI)+360+90)%360,distance:c}}static calcBearAndDisByPoints(t,e){var s=1*t.lat,n=1*t.lng,r=1*e.lat,i=1*e.lng,a=Math.sin((i-n)*this.toRadian)*Math.cos(r*this.toRadian),o=Math.cos(s*this.toRadian)*Math.sin(r*this.toRadian)-Math.sin(s*this.toRadian)*Math.cos(r*this.toRadian)*Math.cos((i-n)*this.toRadian),c=Math.atan2(a,o)*(180/Math.PI),l=(r-s)*this.toRadian,h=(i-n)*this.toRadian,u=Math.sin(l/2)*Math.sin(l/2)+Math.cos(s*this.toRadian)*Math.cos(r*this.toRadian)*Math.sin(h/2)*Math.sin(h/2),d=2*Math.atan2(Math.sqrt(u),Math.sqrt(1-u));return{angle:c,distance:this.R*d}}static distanceToSegment(t,e,s){const n=t.x,r=t.y,i=e.x,a=e.y,o=s.x,c=s.y,l=(o-i)*(n-i)+(c-a)*(r-a);if(l<=0)return Math.sqrt((n-i)*(n-i)+(r-a)*(r-a));const h=(o-i)*(o-i)+(c-a)*(c-a);if(l>=h)return Math.sqrt((n-o)*(n-o)+(r-c)*(r-c));const u=l/h,d=i+(o-i)*u,g=a+(c-a)*u;return Math.sqrt((n-d)*(n-d)+(r-g)*(r-g))}static calcPointByBearAndDis(t,e,s){const n=g.deg2Rad(1*t.lat),r=g.deg2Rad(1*t.lng),i=s/this.R;e=g.deg2Rad(e);const a=Math.asin(Math.sin(n)*Math.cos(i)+Math.cos(n)*Math.sin(i)*Math.cos(e)),o=r+Math.atan2(Math.sin(e)*Math.sin(i)*Math.cos(n),Math.cos(i)-Math.sin(n)*Math.sin(a));return{lat:g.rad2Deg(a),lng:g.rad2Deg(o)}}static mercatorTolonlat(t,e){var s=e/20037508.34*180;return{lng:t/20037508.34*180,lat:180/Math.PI*(2*Math.atan(Math.exp(s*Math.PI/180))-Math.PI/2)}}static lonlatToMercator(t,e){var s=6378137;const n=t*Math.PI/180*s;var r=e*Math.PI/180;return{x:n,y:3189068.5*Math.log((1+Math.sin(r))/(1-Math.sin(r)))}}static interpolate({x:t,y:e,z:s=0},{x:n,y:r,z:i=0},a){return{x:t+(n-t)*a,y:e+(r-e)*a,z:s+(i-s)*a}}}i(b,"toRadian",Math.PI/180),i(b,"R",6371393);const A={checkStr(t,e){switch(e){case"phone":return/^1[3|4|5|6|7|8|9][0-9]{9}$/.test(t);case"tel":return/^(0\d{2,3}-\d{7,8})(-\d{1,4})?$/.test(t);case"card":return/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(t);case"pwd":return/^[a-zA-Z]\w{5,17}$/.test(t);case"postal":return/[1-9]\d{5}(?!\d)/.test(t);case"QQ":return/^[1-9][0-9]{4,9}$/.test(t);case"email":return/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/.test(t);case"money":return/^\d*(?:\.\d{0,2})?$/.test(t);case"URL":return/(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/.test(t);case"IP":return/((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))/.test(t);case"date":return/^(\d{4})\-(\d{2})\-(\d{2}) (\d{2})(?:\:\d{2}|:(\d{2}):(\d{2}))$/.test(t)||/^(\d{4})\-(\d{2})\-(\d{2})$/.test(t);case"number":return/^[0-9]$/.test(t);case"english":return/^[a-zA-Z]+$/.test(t);case"chinese":return/^[\u4E00-\u9FA5]+$/.test(t);case"lower":return/^[a-z]+$/.test(t);case"upper":return/^[A-Z]+$/.test(t);case"HTML":return/<("[^"]*"|'[^']*'|[^'">])*>/.test(t);default:return!0}},changeCase(t,e){switch(e=e||4){case 1:return t.replace(/\b\w+\b/g,(function(t){return t.substring(0,1).toUpperCase()+t.substring(1).toLowerCase()}));case 2:return t.replace(/\b\w+\b/g,(function(t){return t.substring(0,1).toLowerCase()+t.substring(1).toUpperCase()}));case 3:return t.split("").map((function(t){return/[a-z]/.test(t)?t.toUpperCase():t.toLowerCase()})).join("");case 4:return t.toUpperCase();case 5:return t.toLowerCase();default:return t}},getByteLength:t=>t.replace(/[\u0391-\uFFE5]/g,"aa").length,subStringByte(t,e,s){var n=/[^\x00-\xff]/g;if(t.replace(n,"mm").length<=s)return t;for(var r=Math.floor(s/2);r<t.length;r++){let i=t.substring(e,r);if(i.replace(n,"mm").length>=s)return i}return t},string2Bytes(t){const e=[];let s;const n=t.length;for(let r=0;r<n;r++)s=t.charCodeAt(r),s>=65536&&s<=1114111?(e.push(s>>18&7|240),e.push(s>>12&63|128),e.push(s>>6&63|128),e.push(63&s|128)):s>=2048&&s<=65535?(e.push(s>>12&15|224),e.push(s>>6&63|128),e.push(63&s|128)):s>=128&&s<=2047?(e.push(s>>6&31|192),e.push(63&s|128)):e.push(255&s);return new Uint8Array(e)},bytes2String(t){if("string"==typeof t)return t;let e="";const s=t;for(let n=0;n<s.length;n++){const t=s[n].toString(2),r=t.match(/^1+?(?=0)/);if(r&&8==t.length){const t=r[0].length;let i=s[n].toString(2).slice(7-t);for(let e=1;e<t;e++)i+=s[e+n].toString(2).slice(2);e+=String.fromCharCode(parseInt(i,2)),n+=t-1}else e+=String.fromCharCode(s[n])}return e}},_=["Point","MultiPoint","LineString","MultiLineString","Polygon","MultiPolygon"],S={getGeoJsonType:t=>t.geometry?t.geometry.type:null,isGeoJson(t){const e=this.getGeoJsonType(t);if(e)for(let s=0,n=_.length;s<n;s++)if(_[s]===e)return!0;return!1},isGeoJsonPolygon(t){const e=this.getGeoJsonType(t);return!(!e||e!==_[4]&&e!==_[5])},isGeoJsonLine(t){const e=this.getGeoJsonType(t);return!(!e||e!==_[2]&&e!==_[3])},isGeoJsonPoint(t){const e=this.getGeoJsonType(t);return!(!e||e!==_[0]&&e!==_[1])},isGeoJsonMulti(t){const e=this.getGeoJsonType(t);return!!(e&&e.indexOf("Multi")>-1)},getGeoJsonCoordinates:t=>t.geometry?t.geometry.coordinates:[],getGeoJsonCenter(t,e){const s=this.getGeoJsonType(t);if(!s||!t.geometry)return null;const n=t.geometry.coordinates;if(!n)return null;let r=0,i=0,a=0;switch(s){case"Point":r=n[0],i=n[1],a++;break;case"MultiPoint":case"LineString":for(let t=0,e=n.length;t<e;t++)r+=n[t][0],i+=n[t][1],a++;break;case"MultiLineString":case"Polygon":for(let t=0,e=n.length;t<e;t++)for(let s=0,o=n[t].length;s<o;s++)r+=n[t][s][0],i+=n[t][s][1],a++;break;case"MultiPolygon":for(let t=0,e=n.length;t<e;t++)for(let s=0,o=n[t].length;s<o;s++)for(let e=0,c=n[t][s].length;e<c;e++)r+=n[t][s][e][0],i+=n[t][s][e][1],a++}const o=r/a,c=i/a;return e?(e.x=o,e.y=c,e):{x:o,y:c}},spliteGeoJsonMulti(t){const e=this.getGeoJsonType(t);if(!e||!t.geometry)return null;const s=t.geometry,n=t.properties||{},r=s.coordinates;if(!r)return null;const i=[];let a;switch(e){case"MultiPoint":a="Point";break;case"MultiLineString":a="LineString";break;case"MultiPolygon":a="Polygon"}if(a)for(let o=0,c=r.length;o<c;o++)i.push({type:"Feature",geometry:{type:a,coordinates:r[o]},properties:n});else i.push(t);return i},getGeoJsonByCoordinates(t){if(!Array.isArray(t))throw Error("coordinates 参数格式错误");let e;if(2===t.length&&"number"==typeof t[0]&&"number"==typeof t[1])e="Point";else if(Array.isArray(t[0])&&2===t[0].length)e="LineString";else{if(!Array.isArray(t[0])||!Array.isArray(t[0][0]))throw Error("coordinates 参数格式错误");{const s=t[0];if(s[0].join(",")===s[s.length-1].join(","))e="Polygon";else{if(!(t.length>1))throw Error("coordinates 参数格式错误");e="MultiPolygon"}}}return{type:"Feature",geometry:{type:e,coordinates:t}}}},C={assertEmpty(...t){t.forEach((t=>{if(y.isEmpty(t))throw Error(o.PARAMETER_ERROR_LACK+" -> "+t)}))},assertInteger(...t){t.forEach((t=>{if(!y.isInteger(t))throw Error(o.PARAMETER_ERROR_INTEGER+" -> "+t)}))},assertNumber(...t){t.forEach((t=>{if(!y.isNumber(t))throw Error(o.PARAMETER_ERROR_NUMBER+" -> "+t)}))},assertArray(...t){t.forEach((t=>{if(!y.isArray(t))throw Error(o.PARAMETER_ERROR_ARRAY+" -> "+t)}))},assertFunction(...t){t.forEach((t=>{if(!y.isFunction(t))throw Error(o.PARAMETER_ERROR_FUNCTION+" -> "+t)}))},assertObject(...t){t.forEach((t=>{if(!y.isObject(t))throw Error(o.PARAMETER_ERROR_OBJECT+" -> "+t)}))},assertColor(...t){t.forEach((t=>{if(!f.isColor(t))throw Error(o.DATA_ERROR_COLOR+" -> "+t)}))},assertLnglat(...t){t.forEach((t=>{if(!b.isLnglat(t.lng,t.lat))throw Error(o.DATA_ERROR_COORDINATE+" -> "+t)}))},assertGeoJson(...t){t.forEach((t=>{if(!S.isGeoJson(t))throw Error(o.DATA_ERROR_GEOJSON+" -> "+t)}))},assertContain(t,...e){let s=!1;for(let n=0,r=e.length||0;n<r;n++)s=t.indexOf(e[n])>=0;if(s)throw Error(o.STRING_CHECK_LOSS+" -> "+t)},assertStartWith(t,e){if(!t.startsWith(e))throw Error("字符串"+t+"开头不是 -> "+e)},assertEndWith(t,e){if(!t.endsWith(e))throw Error("字符串"+t+"结尾不是 -> "+e)},assertLegal(t,e){const s=A.checkStr(t,e);let n="";switch(e){case"phone":n="电话";break;case"tel":n="座机";break;case"card":n="身份证";break;case"pwd":n="密码";break;case"postal":n="邮政编码";break;case"QQ":n="QQ";break;case"email":n="邮箱";break;case"money":n="金额";break;case"URL":n="网址";break;case"IP":n="IP";break;case"date":n="日期时间";break;case"number":n="数字";break;case"english":n="英文";break;case"chinese":n="中文";break;case"lower":n="小写";break;case"upper":n="大写";break;case"HTML":n="HTML标记"}if(!s)throw Error(o.DATA_ERROR+" -> 不是"+n)}},v=Object.create(Array);v.groupBy=function(t){var e={};return this.forEach((function(s){var n=JSON.stringify(t(s));e[n]=e[n]||[],e[n].push(s)})),Object.keys(e).map((t=>e[t]))},v.distinct=function(t=t=>t){const e=[],s={};return this.forEach((n=>{const r=t(n),i=String(r);s[i]||(s[i]=!0,e.push(n))})),e},v.prototype.max=function(){return Math.max.apply({},this)},v.prototype.min=function(){return Math.min.apply({},this)},v.sum=function(){return this.length>0?this.reduce(((t=0,e=0)=>t+e)):0},v.avg=function(){return this.length?this.sum()/this.length:0},v.desc=function(t=t=>t){return this.sort(((e,s)=>t(s)-t(e)))},v.asc=function(t=t=>t){return this.sort(((e,s)=>t(e)-t(s)))},v.random=function(){return this[Math.floor(Math.random()*this.length)]},v.remove=function(t){const e=this.indexOf(t);return e>-1&&this.splice(e,1),this};const O={create:t=>[...new Array(t).keys()],union(...t){let e=[];return t.forEach((t=>{Array.isArray(t)&&(e=e.concat(t.filter((t=>!e.includes(t)))))})),e},intersection(...t){let e=t[0]||[];return t.forEach((t=>{Array.isArray(t)&&(e=e.filter((e=>t.includes(e))))})),e},unionAll:(...t)=>[...t].flat().filter((t=>!!t)),difference(...t){return 0===t.length?[]:this.union(...t).filter((e=>!this.intersection(...t).includes(e)))},zhSort:(t,e=t=>t,s)=>(t.sort((function(t,n){return s?e(t).localeCompare(e(n),"zh"):e(n).localeCompare(e(t),"zh")})),t)};class T{static getSystem(){var t,e,s,n,r,i,a,o,c;const l=this.userAgent||(null==(t=this.navigator)?void 0:t.userAgent);let h="",u="";if(l.includes("Android")||l.includes("Adr"))h="Android",u=(null==(e=l.match(/Android ([\d.]+);/))?void 0:e[1])||"";else if(l.includes("CrOS"))h="Chromium OS",u=(null==(s=l.match(/MSIE ([\d.]+)/))?void 0:s[1])||(null==(n=l.match(/rv:([\d.]+)/))?void 0:n[1])||"";else if(l.includes("Linux")||l.includes("X11"))h="Linux",u=(null==(r=l.match(/Linux ([\d.]+)/))?void 0:r[1])||"";else if(l.includes("Ubuntu"))h="Ubuntu",u=(null==(i=l.match(/Ubuntu ([\d.]+)/))?void 0:i[1])||"";else if(l.includes("Windows")){let t=(null==(a=l.match(/^Mozilla\/\d.0 \(Windows NT ([\d.]+)[;)].*$/))?void 0:a[1])||"",e={"10.0":"10",6.4:"10 Technical Preview",6.3:"8.1",6.2:"8",6.1:"7","6.0":"Vista",5.2:"XP 64-bit",5.1:"XP",5.01:"2000 SP1","5.0":"2000","4.0":"NT","4.90":"ME"};h="Windows",u=t in e?e[t]:t}else l.includes("like Mac OS X")?(h="IOS",u=(null==(o=l.match(/OS ([\d_]+) like/))?void 0:o[1].replace(/_/g,"."))||""):l.includes("Macintosh")&&(h="macOS",u=(null==(c=l.match(/Mac OS X -?([\d_]+)/))?void 0:c[1].replace(/_/g,"."))||"");return{type:h,version:u}}static getExplorer(){var t;const e=this.userAgent||(null==(t=this.navigator)?void 0:t.userAgent);let s="",n="";if(/MSIE|Trident/.test(e)){let t=/MSIE\s(\d+\.\d+)/.exec(e)||/rv:(\d+\.\d+)/.exec(e);t&&(s="IE",n=t[1])}else if(/Edge/.test(e)){let t=/Edge\/(\d+\.\d+)/.exec(e);t&&(s="Edge",n=t[1])}else if(/Chrome/.test(e)&&/Google Inc/.test(this.navigator.vendor)){let t=/Chrome\/(\d+\.\d+)/.exec(e);t&&(s="Chrome",n=t[1])}else if(/Firefox/.test(e)){let t=/Firefox\/(\d+\.\d+)/.exec(e);t&&(s="Firefox",n=t[1])}else if(/Safari/.test(e)&&/Apple Computer/.test(this.navigator.vendor)){let t=/Version\/(\d+\.\d+)([^S]*)(Safari)/.exec(e);t&&(s="Safari",n=t[1])}return{type:s,version:n}}static switchFullScreen(t){if(t){const t=document.documentElement;t.requestFullscreen?t.requestFullscreen():"msRequestFullscreen"in t?t.msRequestFullscreen():"mozRequestFullScreen"in t?t.mozRequestFullScreen():"webkitRequestFullscreen"in t&&t.webkitRequestFullscreen()}else document.exitFullscreen?document.exitFullscreen():"msExitFullscreen"in document?document.msExitFullscreen():"mozCancelFullScreen"in document?document.mozCancelFullScreen():"webkitExitFullscreen"in document&&document.webkitExitFullscreen()}static isSupportWebGL(){if(!(null==this?void 0:this.document))return!1;const t=this.document.createElement("canvas"),e=t.getContext("webgl")||t.getContext("experimental-webgl");return e&&e instanceof WebGLRenderingContext}static getGPU(){let t="",e="";if(null==this?void 0:this.document){let s=this.document.createElement("canvas"),n=s.getContext("webgl")||s.getContext("experimental-webgl");if(n instanceof WebGLRenderingContext){let s=n.getExtension("WEBGL_debug_renderer_info");if(s){let r=n.getParameter(s.UNMASKED_RENDERER_WEBGL);t=(r.match(/ANGLE \((.+?),/)||[])[1]||"",e=(r.match(/, (.+?) (\(|vs_)/)||[])[1]||""}}}return{type:t,model:e}}static getLanguage(){var t,e;let s=(null==(t=this.navigator)?void 0:t.language)||(null==(e=this.navigator)?void 0:e.userLanguage);if("string"!=typeof s)return"";let n=s.split("-");return n[1]&&(n[1]=n[1].toUpperCase()),n.join("_")}static getTimeZone(){var t,e;return null==(e=null==(t=null==Intl?void 0:Intl.DateTimeFormat())?void 0:t.resolvedOptions())?void 0:e.timeZone}static async getScreenFPS(){return new Promise((function(t){let e=0,s=1,n=[],r=function(i){if(e>0)if(s<12)n.push(i-e),e=i,s++,requestAnimationFrame(r);else{n.sort(),n=n.slice(1,11);let e=n.reduce(((t,e)=>t+e));const s=10*Math.round(1e4/e/10);t(s)}else e=i,requestAnimationFrame(r)};requestAnimationFrame(r)}))}static async getIPAddress(){const t=/\b((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/,e=/\b(?:[A-F0-9]{1,4}:){7}[A-F0-9]{1,4}\b/i;let s=window.RTCPeerConnection||window.mozRTCPeerConnection||window.webkitRTCPeerConnection;const n=new Set,r=s=>{var r;const i=null==(r=null==s?void 0:s.candidate)?void 0:r.candidate;if(i)for(const a of[t,e]){const t=i.match(a);t&&n.add(t[0])}};return new Promise((function(t,e){const i=new s({iceServers:[{urls:"stun:stun.l.google.com:19302"},{urls:"stun:stun.services.mozilla.com"}]});i.addEventListener("icecandidate",r),i.createDataChannel(""),i.createOffer().then((t=>i.setLocalDescription(t)),e);let a,o=20,c=function(){try{i.removeEventListener("icecandidate",r),i.close()}catch{}a&&clearInterval(a)};a=window.setInterval((function(){let e=[...n];e.length?(c(),t(e[0])):o?o--:(c(),t(""))}),100)}))}static async getNetwork(){var t,e;let s="unknown",n=null==(t=this.navigator)?void 0:t.connection;return n&&(s=n.type||n.effectiveType,"2"!=s&&"unknown"!=s||(s="wifi")),{network:s,isOnline:(null==(e=this.navigator)?void 0:e.onLine)||!1,ip:await this.getIPAddress()}}}i(T,"document",null==window?void 0:window.document),i(T,"navigator",null==window?void 0:window.navigator),i(T,"userAgent",null==(n=null==window?void 0:window.navigator)?void 0:n.userAgent),i(T,"screen",null==window?void 0:window.screen);class x{static delta(t,e){const s=6378245,n=.006693421622965943;let r=this.transformLat(e-105,t-35),i=this.transformLon(e-105,t-35);const a=t/180*this.PI;let o=Math.sin(a);o=1-n*o*o;const c=Math.sqrt(o);return r=180*r/(s*(1-n)/(o*c)*this.PI),i=180*i/(s/c*Math.cos(a)*this.PI),{lat:r,lng:i}}static outOfChina(t,e){return t<72.004||t>137.8347||(e<.8293||e>55.8271)}static gcjEncrypt(t,e){if(this.outOfChina(t,e))return{lat:t,lng:e};const s=this.delta(t,e);return{lat:t+s.lat,lng:e+s.lng}}static gcjDecrypt(t,e){if(this.outOfChina(t,e))return{lat:t,lng:e};const s=this.delta(t,e);return{lat:t-s.lat,lng:e-s.lng}}static gcjDecryptExact(t,e){let s=.01,n=.01,r=t-s,i=e-n,a=t+s,o=e+n,c=0,l=0,h=0;for(;;){c=(r+a)/2,l=(i+o)/2;const u=this.gcjEncrypt(c,l);if(s=u.lat-t,n=u.lng-e,Math.abs(s)<1e-9&&Math.abs(n)<1e-9)break;if(s>0?a=c:r=c,n>0?o=l:i=l,++h>1e4)break}return{lat:c,lng:l}}static bdEncrypt(t,e){const s=e,n=t,r=Math.sqrt(s*s+n*n)+2e-5*Math.sin(n*this.XPI),i=Math.atan2(n,s)+3e-6*Math.cos(s*this.XPI),a=r*Math.cos(i)+.0065;return{lat:r*Math.sin(i)+.006,lng:a}}static bdDecrypt(t,e){const s=e-.0065,n=t-.006,r=Math.sqrt(s*s+n*n)-2e-5*Math.sin(n*this.XPI),i=Math.atan2(n,s)-3e-6*Math.cos(s*this.XPI),a=r*Math.cos(i);return{lat:r*Math.sin(i),lng:a}}static mercatorEncrypt(t,e){const s=20037508.34*e/180;let n=Math.log(Math.tan((90+t)*this.PI/360))/(this.PI/180);return n=20037508.34*n/180,{lat:n,lng:s}}static mercatorDecrypt(t,e){const s=e/20037508.34*180;let n=t/20037508.34*180;return n=180/this.PI*(2*Math.atan(Math.exp(n*this.PI/180))-this.PI/2),{lat:n,lng:s}}static transformLat(t,e){let s=2*t-100+3*e+.2*e*e+.1*t*e+.2*Math.sqrt(Math.abs(t));return s+=2*(20*Math.sin(6*t*this.PI)+20*Math.sin(2*t*this.PI))/3,s+=2*(20*Math.sin(e*this.PI)+40*Math.sin(e/3*this.PI))/3,s+=2*(160*Math.sin(e/12*this.PI)+320*Math.sin(e*this.PI/30))/3,s}static transformLon(t,e){let s=300+t+2*e+.1*t*t+.1*t*e+.1*Math.sqrt(Math.abs(t));return s+=2*(20*Math.sin(6*t*this.PI)+20*Math.sin(2*t*this.PI))/3,s+=2*(20*Math.sin(t*this.PI)+40*Math.sin(t/3*this.PI))/3,s+=2*(150*Math.sin(t/12*this.PI)+300*Math.sin(t/30*this.PI))/3,s}static random({x:t,y:e},{x:s,y:n}){return{x:Math.random()*(s-t)+t,y:Math.random()*(n-e)+e}}static deCompose(t,e,s){if(!Array.isArray(t))return s?e.call(s,t):e(t);const n=[];let r,i;for(let a=0,o=t.length;a<o;a++)r=t[a],y.isNil(r)?n.push(null):Array.isArray(r)?n.push(this.deCompose(r,e,s)):(i=s?e.call(s,r):e(r),n.push(i));return n}}i(x,"PI",3.141592653589793),i(x,"XPI",52.35987755982988);const I=Object.create(Date);I.prototype.format=function(t="yyyy-MM-dd hh:mm:ss"){const e={"M+":this.getMonth()+1,"d+":this.getDate(),"h+":this.getHours(),"H+":this.getHours(),"m+":this.getMinutes(),"s+":this.getSeconds(),"q+":Math.floor((this.getMonth()+3)/3),S:this.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(this.getFullYear()+"").substr(4-RegExp.$1.length)));for(const s in e){const n=new RegExp("("+s+")","g");n.test(t)&&(t=t.replace(n,(t=>(1===t.length?e[s]:("00"+e[s]).substr((""+e[s]).length)).toString())))}return t},I.prototype.addDate=function(t,e){const s=new Date(this);switch(t){case"y":s.setFullYear(this.getFullYear()+e);break;case"q":s.setMonth(this.getMonth()+3*e);break;case"M":s.setMonth(this.getMonth()+e);break;case"w":s.setDate(this.getDate()+7*e);break;case"d":default:s.setDate(this.getDate()+e);break;case"h":s.setHours(this.getHours()+e);break;case"m":s.setMinutes(this.getMinutes()+e);break;case"s":s.setSeconds(this.getSeconds()+e)}return s};class D{static parseDate(t){if("string"==typeof t){var e=t.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) *$/);if(e&&e.length>3)return new Date(parseInt(e[1]),parseInt(e[2])-1,parseInt(e[3]));if((e=t.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2}) *$/))&&e.length>6)return new Date(parseInt(e[1]),parseInt(e[2])-1,parseInt(e[3]),parseInt(e[4]),parseInt(e[5]),parseInt(e[6]));if((e=t.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2})\.(\d{1,9}) *$/))&&e.length>7)return new Date(parseInt(e[1]),parseInt(e[2])-1,parseInt(e[3]),parseInt(e[4]),parseInt(e[5]),parseInt(e[6]),parseInt(e[7]))}return null}static formatDateInterval(t,e){const s=new Date(t),n=new Date(e).getTime()-s.getTime(),r=Math.floor(n/864e5),i=n%864e5,a=Math.floor(i/36e5),o=i%36e5,c=Math.floor(o/6e4),l=o%6e4,h=Math.round(l/1e3);let u="";return r>0&&(u+=r+"天"),a>0&&(u+=a+"时"),c>0&&(u+=c+"分"),h>0&&(u+=h+"秒"),0===r&&0===a&&0===c&&0===h&&(u="少于1秒"),u}static formatterCounter(t){const e=function(t){return(t>10?"":"0")+(t||0)},s=t%3600,n=s%60;return`${e(Math.floor(t/3600))}:${e(Math.floor(s/60))}:${e(Math.round(n))}`}static sleep(t){}}function P(t){return function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}(t).split(/\s+/)}i(D,"lastMonthDate",new Date((new Date).getFullYear(),(new Date).getMonth()-1,1)),i(D,"thisMonthDate",new Date((new Date).getFullYear(),(new Date).getMonth(),1)),i(D,"nextMonthDate",new Date((new Date).getFullYear(),(new Date).getMonth()+1,1)),i(D,"lastWeekDate",new Date((new Date).getFullYear(),(new Date).getMonth(),(new Date).getDate()+1-7-(new Date).getDay())),i(D,"thisWeekDate",new Date((new Date).getFullYear(),(new Date).getMonth(),(new Date).getDate()+1-(new Date).getDay())),i(D,"nextWeekDate",new Date((new Date).getFullYear(),(new Date).getMonth(),(new Date).getDate()+1+7-(new Date).getDay())),i(D,"lastDayDate",new Date((new Date).getFullYear(),(new Date).getMonth(),(new Date).getDate()-1)),i(D,"thisDayDate",new Date((new Date).setHours(0,0,0,0))),i(D,"nextDayDate",new Date((new Date).getFullYear(),(new Date).getMonth(),(new Date).getDate()+1));const L={getStyle(t,e){var s;let n=t.style[e];if(!n||"auto"===n){const r=null==(s=document.defaultView)?void 0:s.getComputedStyle(t,null);n=r?r[e]:null,"auto"===n&&(n=null)}return n},create(t,e,s){const n=document.createElement(t);return n.className=e||"",s&&s.appendChild(n),n},remove(t){const e=t.parentNode;e&&e.removeChild(t)},empty(t){for(;t.firstChild;)t.removeChild(t.firstChild)},toFront(t){const e=t.parentNode;e&&e.lastChild!==t&&e.appendChild(t)},toBack(t){const e=t.parentNode;e&&e.firstChild!==t&&e.insertBefore(t,e.firstChild)},getClass:t=>((null==t?void 0:t.host)||t).className.toString(),hasClass(t,e){var s;if(null==(s=t.classList)?void 0:s.contains(e))return!0;const n=this.getClass(t);return n.length>0&&new RegExp(`(^|\\s)${e}(\\s|$)`).test(n)},addClass(t,e){if(void 0!==t.classList){const s=P(e);for(let e=0,n=s.length;e<n;e++)t.classList.add(s[e])}else if(!this.hasClass(t,e)){const s=this.getClass(t);this.setClass(t,(s?s+" ":"")+e)}},removeClass(t,e){if(void 0!==t.classList){P(e).forEach((e=>t.classList.remove(e)))}else this.setClass(t,(" "+this.getClass(t)+" ").replace(" "+e+" "," ").trim())},setClass(t,e){"classList"in t&&(t.classList.value="",e.split(" ").forEach((e=>t.classList.add(e))))},parseFromString:t=>(new DOMParser).parseFromString(t,"text/xml").children[0]},N={convertBase64ToBlob(t){const e=t.split(",")[0].split(":")[1].split(";")[0],s=atob(t.split(",")[1]),n=new Array(s.length);for(let i=0;i<s.length;i++)n[i]=s.charCodeAt(i);const r=new Uint8Array(n);return new Blob([r],{type:e})},convertBase64ToFile(t,e){const s=t.split(","),n=s[0].match(/:(.*?);/),r=n?n[1]:"image/png",i=atob(s[1]),a=new Uint8Array(i.length);for(let o=0;o<i.length;o++)a[o]=i.charCodeAt(o);return new File([a],e,{type:r})},downloadFromFile(t,e){if("object"==typeof t)if(t instanceof Blob)t=URL.createObjectURL(t);else{const e=JSON.stringify(t),s=new Blob([e],{type:"text/json"});t=window.URL.createObjectURL(s)}else if("string"==typeof t&&-1===t.indexOf("http")){const e=new Blob([t],{type:"text/json"});t=window.URL.createObjectURL(e)}var s=document.createElement("a");s.href=t,s.download=e||"",s.click(),window.URL.revokeObjectURL(s.href)}};class U{static resetWarned(){this.warned={}}static changeVoice(){this.isMute=!!Number(!this.isMute),localStorage.setItem("mute",Number(this.isMute).toString())}static _call(t,e){this.warned[e]||(t(e),this.warned[e]=!0)}static msg(t,s,n={}){if(e.Message({type:t,message:s}),this.isMute)return;const r=y.decodeDict(t,"success","恭喜:","error","发生错误:","warning","警告:","info","友情提示:")+":";this.speechSynthesisUtterance.text=r+s,this.speechSynthesisUtterance.lang=n.lang||"zh-CN",this.speechSynthesisUtterance.volume=n.volume||1,this.speechSynthesisUtterance.rate=n.rate||1,this.speechSynthesisUtterance.pitch=n.pitch||1,this.speechSynthesis.speak(this.speechSynthesisUtterance)}static stop(t){this.speechSynthesisUtterance.text=t,this.speechSynthesis.cancel()}static warning(t){"development"===process.env.NODE_ENV&&void 0!==console&&console.warn(`Warning: ${t}`),this.msg("warning",t)}static warningOnce(t){this._call(this.warning.bind(this),t)}static info(t){"development"===process.env.NODE_ENV&&void 0!==console&&console.info(`Info: ${t}`),this.msg("info",t)}static infoOnce(t){this._call(this.info.bind(this),t)}static error(t){"development"===process.env.NODE_ENV&&void 0!==console&&console.error(`Error: ${t}`),this.msg("error",t)}static errorOnce(t){this._call(this.error.bind(this),t)}static success(t){"development"===process.env.NODE_ENV&&void 0!==console&&console.log(`Success: ${t}`),this.msg("success",t)}static successOnce(t){this._call(this.success.bind(this),t)}}i(U,"warned",{}),i(U,"isMute",!!Number(localStorage.getItem("mute"))||!1),i(U,"speechSynthesis",window.speechSynthesis),i(U,"speechSynthesisUtterance",new SpeechSynthesisUtterance);const k={debounce(t,e,s=!0){let n,r,i=null;const a=()=>{const o=Date.now()-n;o<e&&o>0?i=setTimeout(a,e-o):(i=null,s||(r=t.apply(this,undefined)))};return(...o)=>{n=Date.now();const c=s&&!i;return i||(i=setTimeout(a,e)),c&&(r=t.apply(this,o),i||(o=null)),r}},throttle(t,e,s=1){let n=0,r=null;return(...i)=>{if(1===s){const s=Date.now();s-n>=e&&(t.apply(this,i),n=s)}else 2===s&&(r||(r=setTimeout((()=>{r=null,t.apply(this,i)}),e)))}},memoize(t){const e=new Map;return(...s)=>{const n=JSON.stringify(s);if(e.has(n))return e.get(n);{const r=t.apply(this,s);return e.set(n,r),r}}},recurve(t,e=500,s=5e3){let n=0;setTimeout((()=>{n++,n<Math.floor(s/e)&&(t.call(this),setTimeout(this.recurve.bind(this,t,e,s),e))}),e)},once(t){let e=!1;return function(...s){if(!e)return e=!0,t(...s)}}},F={json2Query(t){var e=[];for(var s in t)if(t.hasOwnProperty(s)){var n=s,r=t[s];e.push(encodeURIComponent(n)+"="+encodeURIComponent(r))}return e.join("&")},query2Json(t=window.location.href,e=!0){const s=/([^&=]+)=([\w\W]*?)(&|$|#)/g,{search:n,hash:r}=new URL(t),i=[n,r];let a={};for(let o=0;o<i.length;o++){const t=i[o];if(t){const n=t.replace(/#|\//g,"").split("?");if(n.length>1)for(let t=1;t<n.length;t++){let r;for(;r=s.exec(n[t]);)a[r[1]]=e?decodeURIComponent(r[2]):r[2]}}}return a}},G=class t extends m{constructor(e=`ws://${window.document.domain}:20007/mqtt`,n={}){super(),i(this,"state"),i(this,"url"),i(this,"context"),i(this,"options"),i(this,"client"),i(this,"topics"),this.context=y.extend(t.defaultContext,n),this.options={connectTimeout:this.context.MQTT_TIMEOUTM,clientId:y.guid(),username:this.context.MQTT_USERNAME,password:this.context.MQTT_PASSWORD,clean:!0},this.url=e,this.client=s.connect(this.url,this.options),this._onConnect(),this._onMessage(),this.state=0,this.topics=[]}_onConnect(){this.client.on("connect",(()=>{this.state=1,console.log("链接mqtt成功==>"+this.url),this.dispatchEvent({type:a.MQTT_CONNECT,message:this})})),this.client.on("error",(t=>{console.log("链接mqtt报错",t),this.state=-1,this.dispatchEvent({type:a.MQTT_ERROR,message:this}),this.client.end(),this.client.reconnect()}))}_onMessage(){this.client.on("message",((t,e)=>{let s=e,n="";e instanceof Uint8Array&&(s=e.toString());try{n=E.parse(s)}catch(r){throw new Error(o.JSON_PARSE_ERROR)}this.dispatchEvent({type:a.MQTT_MESSAGE,message:{topic:t,data:n}})}))}sendMsg(t,e){if(this.client.connected)return this.client.publish(t,e,{qos:1,retain:!0}),this;console.error("客户端未连接")}subscribe(t){return 1===this.state?this.client.subscribe(t,{qos:1},((e,s)=>{e instanceof Error?console.error("订阅失败==>"+t,e):(this.topics=O.union(this.topics,t),console.log("订阅成功==>"+t))})):this.addEventListener(a.MQTT_CONNECT,(e=>{this.client.subscribe(t,{qos:1},((e,s)=>{e instanceof Error?console.error("订阅失败==>"+t,e):(this.topics=O.union(this.topics,t),console.log("订阅成功==>"+t))}))})),this}unsubscribe(t){return this.client.unsubscribe(t,{qos:1},((e,s)=>{e instanceof Error?console.error(`取消订阅失败==>${t}`,e):(this.topics=O.difference(this.topics,t),console.log(`取消订阅成功==>${t}`))})),this}unsubscribeAll(){return this.unsubscribe(this.topics),this}unconnect(){this.client.end(),this.client=null,this.dispatchEvent({type:a.MQTT_CLOSE,message:null}),console.log("断开mqtt成功==>"+this.url)}};i(G,"defaultContext",{MQTT_USERNAME:"iRVMS-WEB",MQTT_PASSWORD:"novasky888",MQTT_TIMEOUTM:2e4});let $=G;const B=class t{static useLocal(){this.store=window.localStorage}static useSession(){this.store=window.sessionStorage}static set(t,e=null,s={}){var n=this._getPrefixedKey(t,s);try{const{expires:t}=s,r={data:e};t&&(r.expires=t),this.store.setItem(n,JSON.stringify(r))}catch(r){console&&console.warn(`Storage didn't successfully save the '{"${t}": "${e}"}' pair, because the Storage is full.`)}}static get(t,e,s){var n,r=this._getPrefixedKey(t,s);try{n=JSON.parse(this.store.getItem(r)||"")}catch(i){n=this.store[r]?{data:this.store.getItem(r)}:null}if(!n)return e;if("object"==typeof n&&void 0!==n.data){const t=n.expires;return t&&Date.now()>t?e:n.data}}static keys(){const e=[];var s=Object.keys(this.store);return 0===t.prefix.length?s:(s.forEach((function(s){-1!==s.indexOf(t.prefix)&&e.push(s.replace(t.prefix,""))})),e)}static getAll(e){var s=t.keys();if(e){const n=[];return s.forEach((s=>{if(e.includes(s)){const e={};e[s]=t.get(s,null,null),n.push(e)}})),n}return s.map((e=>t.get(e,null,null)))}static remove(t,e){var s=this._getPrefixedKey(t,e);this.store.removeItem(s)}static clear(e){t.prefix.length?this.keys().forEach((t=>{this.store.removeItem(this._getPrefixedKey(t,e))})):this.store.clear()}};i(B,"store",window.sessionStorage),i(B,"prefix",""),i(B,"_getPrefixedKey",(function(t,e){return(e=e||{}).noPrefix?t:B.prefix+t}));let j=B;t.AjaxUtil=R,t.ArrayUtil=O,t.AssertUtil=C,t.AudioPlayer=class{constructor(t){i(this,"audio"),this.audio=new Audio,this.audio.src=t}play(){!this.muted&&this.audio.play()}pause(){this.audio.pause()}get muted(){return this.audio.muted}set muted(t){this.audio.muted=t}},t.BrowserUtil=T,t.CanvasDrawer=class{constructor(t){if(i(this,"context",null),"string"==typeof t&&!(t=document.querySelector("#"+t)))throw new Error("Element not found");if(!(t instanceof HTMLElement))throw new Error("Element is not an HTMLElement");{const e=t;if(!e.getContext)throw new Error("getContext is not available on this element");this.context=e.getContext("2d")}}drawLine({x:t,y:e},{x:s,y:n},r={}){if(!this.context)throw new Error("Canvas context is null or undefined");this.context.beginPath();const i=r.width||1,a=r.color||"#000";this.context.lineWidth=i,this.context.strokeStyle=a,this.context.moveTo(t,e),this.context.lineTo(s,n),this.context.stroke()}drawArc({x:t,y:e},s,n,r,i,a,o){if(!this.context)throw new Error("Canvas context is null or undefined");a?(this.context.fillStyle=o,this.context.beginPath(),this.context.arc(t,e,s,g.deg2Rad(n),g.deg2Rad(r),i),this.context.fill()):(this.context.strokeStyle=o,this.context.beginPath(),this.context.arc(t,e,s,g.deg2Rad(n),g.deg2Rad(r),i),this.context.stroke())}static createCanvas(t=1,e=1){const s=document.createElement("canvas");return t&&(s.width=t),e&&(s.height=e),s}},t.Color=f,t.Cookie=class{static set(t,e,s=30){if("string"!=typeof t||"string"!=typeof e||"number"!=typeof s)throw new Error("Invalid arguments");const n=new Date;n.setTime(n.getTime()+24*s*60*60*1e3),document.cookie=`${t}=${encodeURIComponent(e)};expires=${n.toUTCString()}`}static remove(t){var e=new Date;e.setTime(e.getTime()-1);var s=this.get(t);null!=s&&(document.cookie=t+"="+s+";expires="+e.toUTCString())}static get(t){var e=document.cookie.match(new RegExp("(^| )"+t+"=([^;]*)(;|$)"));return null!=e?e[2]:""}},t.CoordsUtil=x,t.DateUtil=D,t.DomUtil=L,t.ErrorType=o,t.EventDispatcher=m,t.EventType=a,t.FileUtil=N,t.GeoJsonUtil=S,t.GeoUtil=b,t.GraphicType=l,t.HashMap=w,t.ImageUtil=M,t.LayerType=c,t.LineSymbol=h,t.MathUtil=g,t.MeasureMode=u,t.MessageUtil=U,t.MqttClient=$,t.ObjectState=d,t.ObjectUtil=E,t.OptimizeUtil=k,t.Storage=j,t.StringUtil=A,t.UrlUtil=F,t.Util=y,t.WebSocketClient=class extends m{constructor(t="ws://127.0.0.1:10088"){super(),i(this,"maxCheckTimes",10),i(this,"url"),i(this,"checkTimes",0),i(this,"connectStatus",!1),i(this,"client",null),this.maxCheckTimes=10,this.url=t,this.checkTimes=0,this.connect(),this.connCheckStatus(this.maxCheckTimes)}connect(){if(this.disconnect(),this.url)try{if(console.info("创建ws连接>>>"+this.url),this.client=new WebSocket(this.url),this.client){const t=this;this.client.onopen=function(e){t.dispatchEvent({type:a.WEB_SOCKET_CONNECT,message:e})},this.client.onmessage=function(e){t.connectStatus=!0,t.dispatchEvent({type:a.WEB_SOCKET_MESSAGE,message:e})},this.client.onclose=function(e){t.dispatchEvent({type:a.WEB_SOCKET_CLOSE,message:e})},this.checkTimes===this.maxCheckTimes&&(this.client.onerror=function(e){t.dispatchEvent({type:a.WEB_SOCKET_ERROR,message:e})})}}catch(t){console.error("创建ws连接失败"+this.url+":"+t)}}disconnect(){if(this.client)try{console.log("ws断开连接"+this.url),this.client.close(),this.client=null}catch(t){this.client=null}}connCheckStatus(t){this.checkTimes>t||setTimeout((()=>{this.checkTimes++,this.client&&0!==this.client.readyState&&1!==this.client.readyState&&this.connect(),this.connCheckStatus(t)}),2e3)}send(t){return this.client&&1===this.client.readyState?(this.client.send(t),!0):(console.error(this.url+"消息发送失败:"+t),this)}heartbeat(){setTimeout((()=>{this.client&&1===this.client.readyState&&this.send("HeartBeat"),console.log("HeartBeat,"+this.url),setTimeout(this.heartbeat,3e4)}),1e3)}},Object.defineProperty(t,Symbol.toStringTag,{value:"Module"})}));
|
|
1
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("element-ui"),require("mqtt-browser")):"function"==typeof define&&define.amd?define(["exports","element-ui","mqtt-browser"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["gis-common"]={},t.elementUi,t.mqttBrowser)}(this,(function(t,e,n){"use strict";var s,r=Object.defineProperty,i=(t,e,n)=>((t,e,n)=>e in t?r(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n)(t,"symbol"!=typeof e?e+"":e,n),o=(t=>(t.MAP_RENDER="mapRender",t.MAP_READY="mapReady",t.MOUSE_CLICK="click",t.MOUSE_DOUBLE_CLICK="dblclick",t.MOUSE_MOVE="mousemove",t.MOUSE_IN="mousein",t.MOUSE_OUT="mouseout",t.MOUSE_RIGHT_CLICK="mouseRightClick",t.KEY_DOWN="keyDown",t.KEY_UP="keyUp",t.DRAW_ACTIVE="drawActive",t.DRAW_MOVE="drawMove",t.DRAW_COMPLETE="drawComplete",t.MQTT_CONNECT="mqttConnect",t.MQTT_ERROR="mqttError",t.MQTT_MESSAGE="mqttMessage",t.MQTT_CLOSE="mqttClose",t.WEB_SOCKET_CONNECT="webSocketConnect",t.WEB_SOCKET_ERROR="webSocketError",t.WEB_SOCKET_MESSAGE="webSocketMessage",t.WEB_SOCKET_CLOSE="webSocketClose",t))(o||{}),a=(t=>(t.LOGIN_EXPIRED="登录信息过期,请重新登录",t.CROSS_ERROR="不允许跨站点访问资源",t.NO_DATA_FOUND="资源不存在",t.TIMEOUT="请求超时",t.INTERNAL_ERROR="内部错误",t.NETWORK_ERROR="请求失败,请检查网络是否已连接",t.PROCESS_FAIL="任务处理失败",t.PROCESS_TIMEOUT="任务处理超时",t.AUTH_VERIFY_ERROR="权限验证失败",t.INSTANCE_DUPLICATE="实例为单例模式,不允许重复构建",t.JSON_PARSE_ERROR="JSON解析失败,格式有误",t.JSON_VALUE_ERROR="JSON无此键",t.STRING_CHECK_LOSS="字符串缺少关键字",t.PARAMETER_ERROR="验证数据类型失败",t.PARAMETER_ERROR_ARRAY="验证数据类型失败,必须是数组",t.PARAMETER_ERROR_STRING="验证数据类型失败,必须是字符",t.PARAMETER_ERROR_FUNCTION="验证数据类型失败,必须是函数",t.PARAMETER_ERROR_OBJECT="验证数据类型失败,必须是对象",t.PARAMETER_ERROR_INTEGER="验证数据类型失败,必须是整型",t.PARAMETER_ERROR_NUMBER="验证数据类型失败,必须是数值",t.PARAMETER_ERROR_LACK="验证数据类型失败,必须非空",t.DATA_ERROR="格式类型验证失败",t.DATA_ERROR_COORDINATE="格式类型验证失败,必须是坐标",t.DATA_ERROR_COLOR="格式类型验证失败,必须是颜色代码",t.DATA_ERROR_GEOJSON="格式类型验证失败,必须是GeoJSON",t))(a||{}),l=(t=>(t.SUPER_MAP_IMAGES="SuperMapImages",t.SUPER_MAP_DATA="SuperMapData",t.ARC_GIS_MAP_IMAGES="ArcGisMapImages",t.ARC_GIS_MAP_DATA="ArcGisMapData",t.OSGB_LAYER="OSGBLayer",t.S3M_GROUP="S3MGroup",t.TERRAIN_LAYER="TerrainFileLayer",t))(l||{}),c=(t=>(t.POINT="Point",t.POLYLINE="Polyline",t.POLYGON="Polygon",t.RECTANGLE="Rectangle",t.BILLBOARD="Billboard",t.CYLINDER="Cylinder",t.ELLIPSOID="Ellipsoid",t.LABEL="Label",t.MODEL="Model",t.WALL="Wall",t))(c||{}),h=(t=>(t.DASH="10,5",t.DOT="3",t.DASHDOT="10,3,3,3",t.DASHDOTDOT="10,3,3,3,3,3",t))(h||{}),u=(t=>(t.DISTANCE="distance",t.AREA="area",t.HEIGHT="height",t.ANGLE="angle",t))(u||{});const d={DEG2RAD:Math.PI/180,RAD2DEG:180/Math.PI,randInt:(t,e)=>t+Math.floor(Math.random()*(e-t+1)),randFloat:(t,e)=>t+Math.random()*(e-t),deg2Rad(t){return t*this.DEG2RAD},rad2Deg(t){return t*this.RAD2DEG},round:(t,e=2)=>Math.round(t*Math.pow(10,e))/Math.pow(10,e),clamp:(t,e,n)=>Math.max(e,Math.min(n,t))},g={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};class p{constructor(t,e,n,s){i(this,"_r"),i(this,"_g"),i(this,"_b"),i(this,"_alpha"),this._validateColorChannel(t),this._validateColorChannel(e),this._validateColorChannel(n),this._r=t,this._g=e,this._b=n,this._alpha=d.clamp(s||1,0,1)}_validateColorChannel(t){if(t<0||t>255)throw new Error("Color channel must be between 0 and 255.")}toString(){return`rgba(${this._r}, ${this._g}, ${this._b}, ${this._alpha})`}toJson(){return{r:this._r,g:this._g,b:this._b,a:this._alpha}}get rgba(){return`rgba(${this._r}, ${this._g}, ${this._b}, ${this._alpha})`}get hex(){return p.rgb2hex(this._r,this._g,this._b,this._alpha)}setAlpha(t){return this._alpha=d.clamp(t,0,1),this}setRgb(t,e,n){return this._validateColorChannel(t),this._validateColorChannel(e),this._validateColorChannel(n),this._r=t,this._g=e,this._b=n,this}static fromRgba(t){const e=t.match(/^rgba?\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([\d.]+))?\s*\)$/);if(!e)throw new Error("Invalid RGBA color value");const n=parseInt(e[1],10),s=parseInt(e[2],10),r=parseInt(e[3],10),i=e[5]?parseFloat(e[5]):1;return new p(n,s,r,i)}static fromHex(t,e=1){const n=t.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,((t,e,n,s)=>e+e+n+n+s+s)),s=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(n);if(!s)throw new Error("Invalid HEX color value");const r=parseInt(s[1],16),i=parseInt(s[2],16),o=parseInt(s[3],16);return new p(r,i,o,e)}static fromHsl(t){const e=/hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(t)||/hsla\((\d+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)/g.exec(t);if(!e)throw new Error("Invalid HSL color value");const n=parseInt(e[1],10)/360,s=parseInt(e[2],10)/100,r=parseInt(e[3],10)/100,i=e[4]?parseFloat(e[4]):1;function o(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t}let a,l,c;if(0===s)a=l=c=r;else{const t=r<.5?r*(1+s):r+s-r*s,e=2*r-t;a=o(e,t,n+1/3),l=o(e,t,n),c=o(e,t,n-1/3)}return new p(Math.round(255*a),Math.round(255*l),Math.round(255*c),i)}static fromName(t){const e=g[t];if(!e)throw new Error(`Invalid color name: ${t}`);return new p(e[0],e[1],e[2],e.length>3?e[3]:1)}static from(t){if(this.isRgb(t))return this.fromRgba(t);if(this.isHex(t))return this.fromHex(t);if(this.isHsl(t))return this.fromHsl(t);if(Object.keys(g).map((t=>t.toString())).includes(t))return this.fromName(t);throw new Error("Invalid color value")}static rgb2hex(t,e,n,s){var r="#"+((1<<24)+(t<<16)+(e<<8)+n).toString(16).slice(1);if(void 0!==s){return r+Math.round(255*s).toString(16).padStart(2,"0")}return r}static isHex(t){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t)}static isRgb(t){return/^rgba?\s*\(\s*\d+\s*,\s*\d+\s*,\s*\d+\s*(,\s*[\d.]+)?\s*\)$/.test(t)}static isHsl(t){return/^(hsl|hsla)\(\d+,\s*[\d.]+%,\s*[\d.]+%(,\s*[\d.]+)?\)$/.test(t)}static isColor(t){return this.isHex(t)||this.isRgb(t)||this.isHsl(t)}static random(){let t=Math.floor(256*Math.random()),e=Math.floor(256*Math.random()),n=Math.floor(256*Math.random()),s=Math.random();return new p(t,e,n,s)}}class f{constructor(){i(this,"_listeners",{}),i(this,"_mutex",{}),i(this,"_context")}addEventListener(t,e,n,s){this._context=n;const r=this._mutex,i=this._listeners;return void 0===i[t]&&(i[t]=[]),-1===i[t].indexOf(e)&&(s&&(r[t]=e),i[t].push(e)),this}hasEventListener(t,e){if(null===this._listeners||void 0===this._listeners)return!1;const n=this._listeners;return void 0!==n[t]&&-1!==n[t].indexOf(e)}removeEventListener(t,e){if(void 0===this._listeners)return;const n=this._listeners[t];if(this._mutex[t]===e&&(this._mutex[t]=null),void 0!==n){const t=n.map((t=>t.toString())).indexOf(e.toString());-1!==t&&n.splice(t,1)}}dispatchEvent(t){if(void 0===this._listeners)return;const e=this._listeners[t.type];if(void 0!==e){t.target=this;const n=e.slice(0);if(void 0!==this._mutex[t.type]){const e=n.find((e=>e===this._mutex[t.type]));if(e)return void e.call(this._context||this,t)}for(let e=0,s=n.length;e<s;e++){const s=n[e];"function"==typeof s&&s.call(this._context||this,t)}}}removeAllListener(){this._mutex={};for(const t in this._listeners)this._listeners[t]=[]}}const m={getDataType:t=>Object.prototype.toString.call(t).slice(8,-1),asArray(t){return this.isEmpty(t)?[]:Array.isArray(t)?t:[t]},asNumber:t=>Number.isNaN(Number(t))?0:Number(t),asString(t){if(this.isEmpty(t))return"";switch(this.getDataType(t)){case"Object":case"Array":return JSON.stringify(t);default:return t}},isEmpty(t){if(null==t)return!0;switch(this.getDataType(t)){case"String":return""===t.trim();case"Array":return!t.length;case"Object":return!Object.keys(t).length;case"Boolean":return!t;default:return!1}},json2form(t){const e=new FormData;return this.isEmpty(t)||Object.keys(t).forEach((n=>{e.append(n,t[n]instanceof Object?JSON.stringify(t[n]):t[n])})),e},guid(){const t=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return t()+t()+t()+t()+t()+t()+t()+t()},decodeDict(...t){let e="";if(t.length>1){const n=t.slice(1,t.length%2==0?t.length-1:t.length);for(let s=0;s<n.length;s+=2){const r=n[s];t[0]===r&&(e=n[s+1])}e||t.length%2!=0||(e=t[t.length-1])}else e=t[0];return e},extend(t,...e){let n,s,r,i;for(s=0,r=e.length;s<r;s++)for(n in i=e[s],i)t[n]=i[n];return t},convertToTree2(t,e="id",n="parentId",s="children"){const r=[];function i(o){const a=t.filter((t=>t[n]===o[e])).map((t=>(r.some((n=>n[e]===t[e]))||i(t),t)));a.length>0&&(o[s]=a)}return t.forEach((s=>{t.some((t=>t[n]===s[e]))||(i(s),r.push(s))})),r},asyncLoadScript:t=>new Promise(((e,n)=>{try{const s=document.createElement("script");s.type="text/javascript",s.src=t,"readyState"in s?s.onreadystatechange=function(){"complete"!==s.readyState&&"loaded"!==s.readyState||e(s)}:(s.onload=function(){e(s)},s.onerror=function(){n(new Error("Script failed to load for URL: "+t))}),document.body.appendChild(s)}catch(s){n(s)}})),loadStyle(t){t.forEach((t=>{const e=document.createElement("link");e.href=t,e.rel="stylesheet",e.type="text/css",e.onerror=function(){console.error(`Style loading failed for URL: ${t}`)},document.head.appendChild(e)}))},template:(t,e)=>t.replace(/\{ *([\w_-]+) *\}/g,((t,n)=>{const s=e[n];if(void 0===s)throw new Error(`${a.JSON_VALUE_ERROR}: ${t}`);return"function"==typeof s?s(e):s})),deleteEmptyProperty(t){return Object.fromEntries(Object.keys(t).filter((e=>!this.isEmpty(t[e]))).map((e=>[e,t[e]])))},deepAssign(t,...e){"object"==typeof t&&null!==t||(t={});for(const n of e)if("object"==typeof n&&null!==n)for(const e in n)Object.prototype.hasOwnProperty.call(n,e)&&("object"==typeof n[e]&&null!==n[e]?(t[e]||(t[e]=Array.isArray(n[e])?[]:{}),this.deepAssign(t[e],n[e])):t[e]=n[e]);return t},handleCopyValue(t){if(navigator.clipboard&&window.isSecureContext)return navigator.clipboard.writeText(t);{const e=document.createElement("textarea");return e.style.position="fixed",e.style.top=e.style.left="-100vh",e.style.opacity="0",e.value=t,document.body.appendChild(e),e.focus(),e.select(),new Promise(((t,n)=>{try{document.execCommand("copy"),t()}catch(s){n(new Error("copy failed"))}finally{e.remove()}}))}},isArray:t=>Array.isArray(t),isObject:t=>"object"==typeof t&&null!==t,isNil:t=>void 0===t||"undefined"===t||null===t||"null"===t,isNumber:t=>"number"==typeof t&&!isNaN(t)||"string"==typeof t&&Number.isFinite(+t),isInteger:t=>parseInt(t)===t,isFunction(t){return!this.isNil(t)&&("function"==typeof t||null!==t.constructor&&t.constructor===Function)},isElement:t=>"object"==typeof t&&1===t.nodeType,checheVersion:(t,e)=>t.replace(/[^0-9]/gi,"")<e.replace(/[^0-9]/gi,"")},y={deepClone:t=>structuredClone(t),isEqual:(t,e)=>JSON.stringify(t)===JSON.stringify(e),parse:t=>"string"==typeof t&&t.startsWith("{")&&t.endsWith("}")?JSON.parse(t):m.isEmpty(t)?{}:m.isObject(t)?t:void 0};class w extends Map{isEmpty(){return 0===this.size}_values(){return Array.from(this.values())}_keys(){return Array.from(this.keys())}_entries(){return Array.from(this.entries())}static fromEntries(t=[]){const e=new w;return t.forEach((t=>{Array.isArray(t)&&2===t.length&&e.set(t[0],t[1])})),e}static fromJson(t){const e=y.parse(t);return new w(Object.entries(e))}}const E={emptyImageUrl:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",getURL(t){let e,n;if(/^data:/i.test(t.src))return t.src;if("undefined"==typeof HTMLCanvasElement)return t.src;if(t instanceof HTMLCanvasElement)n=t;else{void 0===e&&(e=document.createElementNS("http://www.w3.org/1999/xhtml","canvas")),e.width=t.width,e.height=t.height;const s=e.getContext("2d");s&&(t instanceof ImageData?s.putImageData(t,0,0):s.drawImage(t,0,0,t.width,t.height)),n=e}return n.width>2048||n.height>2048?(console.warn("ImageUtil.getDataURL: Image converted to jpg for performance reasons",t),n.toDataURL("image/jpeg",.6)):n.toDataURL("image/png")},getBase64(t){return new Promise(((e,n)=>{let s=new Image;s.setAttribute("crossOrigin","Anonymous"),s.src=t,s.onload=()=>{let t=this.getURL(s);e(t)},s.onerror=n}))},parseBase64(t){let e=new RegExp("data:(?<type>.*?);base64,(?<data>.*)").exec(t);return e&&e.groups?{type:e.groups.type,ext:e.groups.type.split("/").slice(-1)[0],data:e.groups.data}:null},async copyImage(t){try{const e=await this.getBase64(t),n=this.parseBase64(e.dataURL);if(!n)throw new Error("Failed to parse base64 data.");let s=n.type,r=atob(n.data),i=new ArrayBuffer(r.length),o=new Uint8Array(i);for(let t=0;t<r.length;t++)o[t]=r.charCodeAt(t);let a=new Blob([i],{type:s});await navigator.clipboard.write([new ClipboardItem({[s]:a})])}catch(e){console.error("Failed to copy image to clipboard:",e)}}},M={jsonp(t,e){const n="_jsonp_"+m.guid(),s=document.getElementsByTagName("head")[0];t.includes("?")?t+="&callback="+n:t+="?callback="+n;let r=document.createElement("script");r.type="text/javascript",r.src=t,window[n]=function(t){e(null,t),s.removeChild(r),r=null,delete window[n]},s.appendChild(r)},get(t,e={},n){if(m.isFunction(e)){const t=n;n=e,e=t}const s=this._getClient(n);if(s.open("GET",t,!0),e){for(const t in e.headers)s.setRequestHeader(t,e.headers[t]);s.withCredentials="include"===e.credentials,e.responseType&&(s.responseType=e.responseType)}return s.send(null),s},post(t,e={},n){let s;if("string"!=typeof t?(n=e.cb,s=e.postData,delete(e={...e}).cb,delete e.postData,t=e.url):("function"==typeof e&&(n=e,e={}),s=e.postData),!n)throw new Error("Callback function is required");const r=this._getClient(n);return r.open("POST",t,!0),e.headers=e.headers||{},e.headers["Content-Type"]||(e.headers["Content-Type"]="application/x-www-form-urlencoded"),Object.keys(e.headers).forEach((t=>{r.setRequestHeader(t,e.headers[t])})),"string"!=typeof s&&(s=JSON.stringify(s)),r.send(s),r},_wrapCallback:(t,e)=>function(){if(4===t.readyState)if(200===t.status)if("arraybuffer"===t.responseType){0===t.response.byteLength?e(new Error("http status 200 returned without content.")):e(null,{data:t.response,cacheControl:t.getResponseHeader("Cache-Control"),expires:t.getResponseHeader("Expires"),contentType:t.getResponseHeader("Content-Type")})}else e(null,t.responseText);else e(new Error(t.statusText+","+t.status))},_getClient(t){let e=null;try{e=new XMLHttpRequest}catch(n){throw new Error("XMLHttpRequest not supported.")}return e&&(e.onreadystatechange=this._wrapCallback(e,t)),e},getArrayBuffer(t,e,n){if(m.isFunction(e)){const t=n;n=e,e=t}return e||(e={}),e.responseType="arraybuffer",this.get(t,e,n)},getImage(t,e,n){return this.getArrayBuffer(e,n,((e,n)=>{if(e)t.onerror&&t.onerror(e);else if(n){const e=window.URL||window.webkitURL,s=t.onload;t.onload=()=>{s&&s(),e.revokeObjectURL(t.src)};const r=new Blob([new Uint8Array(n.data)],{type:n.contentType});t.cacheControl=n.cacheControl,t.expires=n.expires,t.src=n.data.byteLength?e.createObjectURL(r):E.emptyImageUrl}}))},getJSON(t,e,n){if(m.isFunction(e)){const t=n;n=e,e=t}const s=function(t,e){const s=e?y.parse(e):null;n&&n(t,s)};return e&&e.jsonp?this.jsonp(t,s):this.get(t,e,s)}};class R{static isLnglat(t,e){return m.isNumber(t)&&m.isNumber(e)&&!!(+e>-90&&+e<90&&+t>-180&&+t<180)}static distance(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}static distanceByPoints(t,e){const{lng:n,lat:s}=t,{lng:r,lat:i}=e;let o=Math.cos(s*Math.PI/180)*Math.cos(i*Math.PI/180)*Math.cos((n-r)*Math.PI/180)+Math.sin(s*Math.PI/180)*Math.sin(i*Math.PI/180);o>1&&(o=1),o<-1&&(o=-1);return 6371e3*Math.acos(o)}static formatLnglat(t,e){let n="";function s(t){const e=Math.floor(t),n=Math.floor(60*(t-e));return`${e}°${n}′${(3600*(t-e)-60*n).toFixed(2)}″`}return this.isLnglat(t,e)?n=s(t)+","+s(e):isNaN(t)?isNaN(e)||(n=s(e)):n=s(t),n}static transformLnglat(t,e){function n(t){let e=/[sw]/i.test(t)?-1:1;const n=t.match(/[\d.]+/g)||[];let s=0;for(let r=0;r<n.length;r++)s+=parseFloat(n[r])/e,e*=60;return s}if(t&&e)return{lng:n(t),lat:n(e)}}static rayCasting(t,e){for(var n=t.x,s=t.y,r=!1,i=0,o=e.length,a=o-1;i<o;a=i,i++){var l=e[i].x,c=e[i].y,h=e[a].x,u=e[a].y;if(l===n&&c===s||h===n&&u===s)return"on";if(c<s&&u>=s||c>=s&&u<s){var d=l+(s-c)*(h-l)/(u-c);if(d===n)return"on";d>n&&(r=!r)}}return r?"in":"out"}static rotatePoint(t,e,n){return{x:(t.x-e.x)*Math.cos(Math.PI/180*-n)-(t.y-e.y)*Math.sin(Math.PI/180*-n)+e.x,y:(t.x-e.x)*Math.sin(Math.PI/180*-n)+(t.y-e.y)*Math.cos(Math.PI/180*-n)+e.y}}static calcBearAndDis(t,e){const{x:n,y:s}=t,{x:r,y:i}=e,o=r-n,a=i-s,l=Math.sqrt(o*o+a*a);return{angle:(Math.atan2(a,o)*(180/Math.PI)+360+90)%360,distance:l}}static calcBearAndDisByPoints(t,e){var n=1*t.lat,s=1*t.lng,r=1*e.lat,i=1*e.lng,o=Math.sin((i-s)*this.toRadian)*Math.cos(r*this.toRadian),a=Math.cos(n*this.toRadian)*Math.sin(r*this.toRadian)-Math.sin(n*this.toRadian)*Math.cos(r*this.toRadian)*Math.cos((i-s)*this.toRadian),l=Math.atan2(o,a)*(180/Math.PI),c=(r-n)*this.toRadian,h=(i-s)*this.toRadian,u=Math.sin(c/2)*Math.sin(c/2)+Math.cos(n*this.toRadian)*Math.cos(r*this.toRadian)*Math.sin(h/2)*Math.sin(h/2),d=2*Math.atan2(Math.sqrt(u),Math.sqrt(1-u));return{angle:l,distance:this.R*d}}static distanceToSegment(t,e,n){const s=t.x,r=t.y,i=e.x,o=e.y,a=n.x,l=n.y,c=(a-i)*(s-i)+(l-o)*(r-o);if(c<=0)return Math.sqrt((s-i)*(s-i)+(r-o)*(r-o));const h=(a-i)*(a-i)+(l-o)*(l-o);if(c>=h)return Math.sqrt((s-a)*(s-a)+(r-l)*(r-l));const u=c/h,d=i+(a-i)*u,g=o+(l-o)*u;return Math.sqrt((s-d)*(s-d)+(r-g)*(r-g))}static calcPointByBearAndDis(t,e,n){const s=d.deg2Rad(1*t.lat),r=d.deg2Rad(1*t.lng),i=n/this.R;e=d.deg2Rad(e);const o=Math.asin(Math.sin(s)*Math.cos(i)+Math.cos(s)*Math.sin(i)*Math.cos(e)),a=r+Math.atan2(Math.sin(e)*Math.sin(i)*Math.cos(s),Math.cos(i)-Math.sin(s)*Math.sin(o));return{lat:d.rad2Deg(o),lng:d.rad2Deg(a)}}static mercatorTolonlat(t,e){var n=e/20037508.34*180;return{lng:t/20037508.34*180,lat:180/Math.PI*(2*Math.atan(Math.exp(n*Math.PI/180))-Math.PI/2)}}static lonlatToMercator(t,e){var n=6378137;const s=t*Math.PI/180*n;var r=e*Math.PI/180;return{x:s,y:3189068.5*Math.log((1+Math.sin(r))/(1-Math.sin(r)))}}static interpolate({x:t,y:e,z:n=0},{x:s,y:r,z:i=0},o){return{x:t+(s-t)*o,y:e+(r-e)*o,z:n+(i-n)*o}}}i(R,"toRadian",Math.PI/180),i(R,"R",6371393);const b={checkStr(t,e){switch(e){case"phone":return/^1[3|4|5|6|7|8|9][0-9]{9}$/.test(t);case"tel":return/^(0\d{2,3}-\d{7,8})(-\d{1,4})?$/.test(t);case"card":return/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(t);case"pwd":return/^[a-zA-Z]\w{5,17}$/.test(t);case"postal":return/[1-9]\d{5}(?!\d)/.test(t);case"QQ":return/^[1-9][0-9]{4,9}$/.test(t);case"email":return/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/.test(t);case"money":return/^\d*(?:\.\d{0,2})?$/.test(t);case"URL":return/(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/.test(t);case"IP":return/((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))/.test(t);case"date":return/^(\d{4})\-(\d{2})\-(\d{2}) (\d{2})(?:\:\d{2}|:(\d{2}):(\d{2}))$/.test(t)||/^(\d{4})\-(\d{2})\-(\d{2})$/.test(t);case"number":return/^[0-9]$/.test(t);case"english":return/^[a-zA-Z]+$/.test(t);case"chinese":return/^[\u4E00-\u9FA5]+$/.test(t);case"lower":return/^[a-z]+$/.test(t);case"upper":return/^[A-Z]+$/.test(t);case"HTML":return/<("[^"]*"|'[^']*'|[^'">])*>/.test(t);default:return!0}},changeCase(t,e){switch(e=e||4){case 1:return t.replace(/\b\w+\b/g,(function(t){return t.substring(0,1).toUpperCase()+t.substring(1).toLowerCase()}));case 2:return t.replace(/\b\w+\b/g,(function(t){return t.substring(0,1).toLowerCase()+t.substring(1).toUpperCase()}));case 3:return t.split("").map((function(t){return/[a-z]/.test(t)?t.toUpperCase():t.toLowerCase()})).join("");case 4:return t.toUpperCase();case 5:return t.toLowerCase();default:return t}},getByteLength:t=>t.replace(/[\u0391-\uFFE5]/g,"aa").length,subStringByte(t,e,n){var s=/[^\x00-\xff]/g;if(t.replace(s,"mm").length<=n)return t;for(var r=Math.floor(n/2);r<t.length;r++){let i=t.substring(e,r);if(i.replace(s,"mm").length>=n)return i}return t},string2Bytes(t){const e=[];let n;const s=t.length;for(let r=0;r<s;r++)n=t.charCodeAt(r),n>=65536&&n<=1114111?(e.push(n>>18&7|240),e.push(n>>12&63|128),e.push(n>>6&63|128),e.push(63&n|128)):n>=2048&&n<=65535?(e.push(n>>12&15|224),e.push(n>>6&63|128),e.push(63&n|128)):n>=128&&n<=2047?(e.push(n>>6&31|192),e.push(63&n|128)):e.push(255&n);return new Uint8Array(e)},bytes2String(t){if("string"==typeof t)return t;let e="";const n=t;for(let s=0;s<n.length;s++){const t=n[s].toString(2),r=t.match(/^1+?(?=0)/);if(r&&8==t.length){const t=r[0].length;let i=n[s].toString(2).slice(7-t);for(let e=1;e<t;e++)i+=n[e+s].toString(2).slice(2);e+=String.fromCharCode(parseInt(i,2)),s+=t-1}else e+=String.fromCharCode(n[s])}return e}},A=["Point","MultiPoint","LineString","MultiLineString","Polygon","MultiPolygon"],v={getGeoJsonType:t=>t.geometry?t.geometry.type:null,isGeoJson(t){const e=this.getGeoJsonType(t);if(e)for(let n=0,s=A.length;n<s;n++)if(A[n]===e)return!0;return!1},isGeoJsonPolygon(t){const e=this.getGeoJsonType(t);return!(!e||e!==A[4]&&e!==A[5])},isGeoJsonLine(t){const e=this.getGeoJsonType(t);return!(!e||e!==A[2]&&e!==A[3])},isGeoJsonPoint(t){const e=this.getGeoJsonType(t);return!(!e||e!==A[0]&&e!==A[1])},isGeoJsonMulti(t){const e=this.getGeoJsonType(t);return!!(e&&e.indexOf("Multi")>-1)},getGeoJsonCoordinates:t=>t.geometry?t.geometry.coordinates:[],getGeoJsonCenter(t,e){const n=this.getGeoJsonType(t);if(!n||!t.geometry)return null;const s=t.geometry.coordinates;if(!s)return null;let r=0,i=0,o=0;switch(n){case"Point":r=s[0],i=s[1],o++;break;case"MultiPoint":case"LineString":for(let t=0,e=s.length;t<e;t++)r+=s[t][0],i+=s[t][1],o++;break;case"MultiLineString":case"Polygon":for(let t=0,e=s.length;t<e;t++)for(let n=0,a=s[t].length;n<a;n++)r+=s[t][n][0],i+=s[t][n][1],o++;break;case"MultiPolygon":for(let t=0,e=s.length;t<e;t++)for(let n=0,a=s[t].length;n<a;n++)for(let e=0,l=s[t][n].length;e<l;e++)r+=s[t][n][e][0],i+=s[t][n][e][1],o++}const a=r/o,l=i/o;return e?(e.x=a,e.y=l,e):{x:a,y:l}},spliteGeoJsonMulti(t){const e=this.getGeoJsonType(t);if(!e||!t.geometry)return null;const n=t.geometry,s=t.properties||{},r=n.coordinates;if(!r)return null;const i=[];let o;switch(e){case"MultiPoint":o="Point";break;case"MultiLineString":o="LineString";break;case"MultiPolygon":o="Polygon"}if(o)for(let a=0,l=r.length;a<l;a++)i.push({type:"Feature",geometry:{type:o,coordinates:r[a]},properties:s});else i.push(t);return i},getGeoJsonByCoordinates(t){if(!Array.isArray(t))throw Error("coordinates 参数格式错误");let e;if(2===t.length&&"number"==typeof t[0]&&"number"==typeof t[1])e="Point";else if(Array.isArray(t[0])&&2===t[0].length)e="LineString";else{if(!Array.isArray(t[0])||!Array.isArray(t[0][0]))throw Error("coordinates 参数格式错误");{const n=t[0];if(n[0].join(",")===n[n.length-1].join(","))e="Polygon";else{if(!(t.length>1))throw Error("coordinates 参数格式错误");e="MultiPolygon"}}}return{type:"Feature",geometry:{type:e,coordinates:t}}}},_={assertEmpty(...t){t.forEach((t=>{if(m.isEmpty(t))throw Error(a.PARAMETER_ERROR_LACK+" -> "+t)}))},assertInteger(...t){t.forEach((t=>{if(!m.isInteger(t))throw Error(a.PARAMETER_ERROR_INTEGER+" -> "+t)}))},assertNumber(...t){t.forEach((t=>{if(!m.isNumber(t))throw Error(a.PARAMETER_ERROR_NUMBER+" -> "+t)}))},assertArray(...t){t.forEach((t=>{if(!m.isArray(t))throw Error(a.PARAMETER_ERROR_ARRAY+" -> "+t)}))},assertFunction(...t){t.forEach((t=>{if(!m.isFunction(t))throw Error(a.PARAMETER_ERROR_FUNCTION+" -> "+t)}))},assertObject(...t){t.forEach((t=>{if(!m.isObject(t))throw Error(a.PARAMETER_ERROR_OBJECT+" -> "+t)}))},assertColor(...t){t.forEach((t=>{if(!p.isColor(t))throw Error(a.DATA_ERROR_COLOR+" -> "+t)}))},assertLnglat(...t){t.forEach((t=>{if(!R.isLnglat(t.lng,t.lat))throw Error(a.DATA_ERROR_COORDINATE+" -> "+t)}))},assertGeoJson(...t){t.forEach((t=>{if(!v.isGeoJson(t))throw Error(a.DATA_ERROR_GEOJSON+" -> "+t)}))},assertContain(t,...e){let n=!1;for(let s=0,r=e.length||0;s<r;s++)n=t.indexOf(e[s])>=0;if(n)throw Error(a.STRING_CHECK_LOSS+" -> "+t)},assertStartWith(t,e){if(!t.startsWith(e))throw Error("字符串"+t+"开头不是 -> "+e)},assertEndWith(t,e){if(!t.endsWith(e))throw Error("字符串"+t+"结尾不是 -> "+e)},assertLegal(t,e){const n=b.checkStr(t,e);let s="";switch(e){case"phone":s="电话";break;case"tel":s="座机";break;case"card":s="身份证";break;case"pwd":s="密码";break;case"postal":s="邮政编码";break;case"QQ":s="QQ";break;case"email":s="邮箱";break;case"money":s="金额";break;case"URL":s="网址";break;case"IP":s="IP";break;case"date":s="日期时间";break;case"number":s="数字";break;case"english":s="英文";break;case"chinese":s="中文";break;case"lower":s="小写";break;case"upper":s="大写";break;case"HTML":s="HTML标记"}if(!n)throw Error(a.DATA_ERROR+" -> 不是"+s)}},S=Object.create(Array);S.groupBy=function(t){var e={};return this.forEach((function(n){var s=JSON.stringify(t(n));e[s]=e[s]||[],e[s].push(n)})),Object.keys(e).map((t=>e[t]))},S.distinct=function(t=t=>t){const e=[],n={};return this.forEach((s=>{const r=t(s),i=String(r);n[i]||(n[i]=!0,e.push(s))})),e},S.prototype.max=function(){return Math.max.apply({},this)},S.prototype.min=function(){return Math.min.apply({},this)},S.prototype.sum=function(){return this.length>0?this.reduce(((t=0,e=0)=>t+e)):0},S.prototype.avg=function(){return this.length?this.sum()/this.length:0},S.prototype.desc=function(t=t=>t){return this.sort(((e,n)=>t(n)-t(e)))},S.prototype.asc=function(t=t=>t){return this.sort(((e,n)=>t(e)-t(n)))},S.prototype.random=function(){return this[Math.floor(Math.random()*this.length)]},S.prototype.remove=function(t){const e=this.indexOf(t);return e>-1&&this.splice(e,1),this};const C={create:t=>[...new Array(t).keys()],union(...t){let e=[];return t.forEach((t=>{Array.isArray(t)&&(e=e.concat(t.filter((t=>!e.includes(t)))))})),e},intersection(...t){let e=t[0]||[];return t.forEach((t=>{Array.isArray(t)&&(e=e.filter((e=>t.includes(e))))})),e},unionAll:(...t)=>[...t].flat().filter((t=>!!t)),difference(...t){return 0===t.length?[]:this.union(...t).filter((e=>!this.intersection(...t).includes(e)))},zhSort:(t,e=t=>t,n)=>(t.sort((function(t,s){return n?e(t).localeCompare(e(s),"zh"):e(s).localeCompare(e(t),"zh")})),t)};class x{static getSystem(){var t,e,n,s,r,i,o,a,l;const c=this.userAgent||(null==(t=this.navigator)?void 0:t.userAgent);let h="",u="";if(c.includes("Android")||c.includes("Adr"))h="Android",u=(null==(e=c.match(/Android ([\d.]+);/))?void 0:e[1])||"";else if(c.includes("CrOS"))h="Chromium OS",u=(null==(n=c.match(/MSIE ([\d.]+)/))?void 0:n[1])||(null==(s=c.match(/rv:([\d.]+)/))?void 0:s[1])||"";else if(c.includes("Linux")||c.includes("X11"))h="Linux",u=(null==(r=c.match(/Linux ([\d.]+)/))?void 0:r[1])||"";else if(c.includes("Ubuntu"))h="Ubuntu",u=(null==(i=c.match(/Ubuntu ([\d.]+)/))?void 0:i[1])||"";else if(c.includes("Windows")){let t=(null==(o=c.match(/^Mozilla\/\d.0 \(Windows NT ([\d.]+)[;)].*$/))?void 0:o[1])||"",e={"10.0":"10",6.4:"10 Technical Preview",6.3:"8.1",6.2:"8",6.1:"7","6.0":"Vista",5.2:"XP 64-bit",5.1:"XP",5.01:"2000 SP1","5.0":"2000","4.0":"NT","4.90":"ME"};h="Windows",u=t in e?e[t]:t}else c.includes("like Mac OS X")?(h="IOS",u=(null==(a=c.match(/OS ([\d_]+) like/))?void 0:a[1].replace(/_/g,"."))||""):c.includes("Macintosh")&&(h="macOS",u=(null==(l=c.match(/Mac OS X -?([\d_]+)/))?void 0:l[1].replace(/_/g,"."))||"");return{type:h,version:u}}static getExplorer(){var t;const e=this.userAgent||(null==(t=this.navigator)?void 0:t.userAgent);let n="",s="";if(/MSIE|Trident/.test(e)){let t=/MSIE\s(\d+\.\d+)/.exec(e)||/rv:(\d+\.\d+)/.exec(e);t&&(n="IE",s=t[1])}else if(/Edge/.test(e)){let t=/Edge\/(\d+\.\d+)/.exec(e);t&&(n="Edge",s=t[1])}else if(/Chrome/.test(e)&&/Google Inc/.test(this.navigator.vendor)){let t=/Chrome\/(\d+\.\d+)/.exec(e);t&&(n="Chrome",s=t[1])}else if(/Firefox/.test(e)){let t=/Firefox\/(\d+\.\d+)/.exec(e);t&&(n="Firefox",s=t[1])}else if(/Safari/.test(e)&&/Apple Computer/.test(this.navigator.vendor)){let t=/Version\/(\d+\.\d+)([^S]*)(Safari)/.exec(e);t&&(n="Safari",s=t[1])}return{type:n,version:s}}static switchFullScreen(t){if(t){const t=document.documentElement;t.requestFullscreen?t.requestFullscreen():"msRequestFullscreen"in t?t.msRequestFullscreen():"mozRequestFullScreen"in t?t.mozRequestFullScreen():"webkitRequestFullscreen"in t&&t.webkitRequestFullscreen()}else document.exitFullscreen?document.exitFullscreen():"msExitFullscreen"in document?document.msExitFullscreen():"mozCancelFullScreen"in document?document.mozCancelFullScreen():"webkitExitFullscreen"in document&&document.webkitExitFullscreen()}static isSupportWebGL(){if(!(null==this?void 0:this.document))return!1;const t=this.document.createElement("canvas"),e=t.getContext("webgl")||t.getContext("experimental-webgl");return e&&e instanceof WebGLRenderingContext}static getGPU(){let t="",e="";if(null==this?void 0:this.document){let n=this.document.createElement("canvas"),s=n.getContext("webgl")||n.getContext("experimental-webgl");if(s instanceof WebGLRenderingContext){let n=s.getExtension("WEBGL_debug_renderer_info");if(n){let r=s.getParameter(n.UNMASKED_RENDERER_WEBGL);t=(r.match(/ANGLE \((.+?),/)||[])[1]||"",e=(r.match(/, (.+?) (\(|vs_)/)||[])[1]||""}}}return{type:t,model:e}}static getLanguage(){var t,e;let n=(null==(t=this.navigator)?void 0:t.language)||(null==(e=this.navigator)?void 0:e.userLanguage);if("string"!=typeof n)return"";let s=n.split("-");return s[1]&&(s[1]=s[1].toUpperCase()),s.join("_")}static getTimeZone(){var t,e;return null==(e=null==(t=null==Intl?void 0:Intl.DateTimeFormat())?void 0:t.resolvedOptions())?void 0:e.timeZone}static async getScreenFPS(){return new Promise((function(t){let e=0,n=1,s=[],r=function(i){if(e>0)if(n<12)s.push(i-e),e=i,n++,requestAnimationFrame(r);else{s.sort(),s=s.slice(1,11);let e=s.reduce(((t,e)=>t+e));const n=10*Math.round(1e4/e/10);t(n)}else e=i,requestAnimationFrame(r)};requestAnimationFrame(r)}))}static async getIPAddress(){const t=/\b((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/,e=/\b(?:[A-F0-9]{1,4}:){7}[A-F0-9]{1,4}\b/i;let n=window.RTCPeerConnection||window.mozRTCPeerConnection||window.webkitRTCPeerConnection;const s=new Set,r=n=>{var r;const i=null==(r=null==n?void 0:n.candidate)?void 0:r.candidate;if(i)for(const o of[t,e]){const t=i.match(o);t&&s.add(t[0])}};return new Promise((function(t,e){const i=new n({iceServers:[{urls:"stun:stun.l.google.com:19302"},{urls:"stun:stun.services.mozilla.com"}]});i.addEventListener("icecandidate",r),i.createDataChannel(""),i.createOffer().then((t=>i.setLocalDescription(t)),e);let o,a=20,l=function(){try{i.removeEventListener("icecandidate",r),i.close()}catch{}o&&clearInterval(o)};o=window.setInterval((function(){let e=[...s];e.length?(l(),t(e[0])):a?a--:(l(),t(""))}),100)}))}static async getNetwork(){var t,e;let n="unknown",s=null==(t=this.navigator)?void 0:t.connection;return s&&(n=s.type||s.effectiveType,"2"!=n&&"unknown"!=n||(n="wifi")),{network:n,isOnline:(null==(e=this.navigator)?void 0:e.onLine)||!1,ip:await this.getIPAddress()}}}i(x,"document",null==window?void 0:window.document),i(x,"navigator",null==window?void 0:window.navigator),i(x,"userAgent",null==(s=null==window?void 0:window.navigator)?void 0:s.userAgent),i(x,"screen",null==window?void 0:window.screen);class T{static delta(t,e){const n=6378245,s=.006693421622965943;let r=this.transformLat(e-105,t-35),i=this.transformLon(e-105,t-35);const o=t/180*this.PI;let a=Math.sin(o);a=1-s*a*a;const l=Math.sqrt(a);return r=180*r/(n*(1-s)/(a*l)*this.PI),i=180*i/(n/l*Math.cos(o)*this.PI),{lat:r,lng:i}}static outOfChina(t,e){return t<72.004||t>137.8347||(e<.8293||e>55.8271)}static gcjEncrypt(t,e){if(this.outOfChina(t,e))return{lat:t,lng:e};const n=this.delta(t,e);return{lat:t+n.lat,lng:e+n.lng}}static gcjDecrypt(t,e){if(this.outOfChina(t,e))return{lat:t,lng:e};const n=this.delta(t,e);return{lat:t-n.lat,lng:e-n.lng}}static gcjDecryptExact(t,e){let n=.01,s=.01,r=t-n,i=e-s,o=t+n,a=e+s,l=0,c=0,h=0;for(;;){l=(r+o)/2,c=(i+a)/2;const u=this.gcjEncrypt(l,c);if(n=u.lat-t,s=u.lng-e,Math.abs(n)<1e-9&&Math.abs(s)<1e-9)break;if(n>0?o=l:r=l,s>0?a=c:i=c,++h>1e4)break}return{lat:l,lng:c}}static bdEncrypt(t,e){const n=e,s=t,r=Math.sqrt(n*n+s*s)+2e-5*Math.sin(s*this.XPI),i=Math.atan2(s,n)+3e-6*Math.cos(n*this.XPI),o=r*Math.cos(i)+.0065;return{lat:r*Math.sin(i)+.006,lng:o}}static bdDecrypt(t,e){const n=e-.0065,s=t-.006,r=Math.sqrt(n*n+s*s)-2e-5*Math.sin(s*this.XPI),i=Math.atan2(s,n)-3e-6*Math.cos(n*this.XPI),o=r*Math.cos(i);return{lat:r*Math.sin(i),lng:o}}static mercatorEncrypt(t,e){const n=20037508.34*e/180;let s=Math.log(Math.tan((90+t)*this.PI/360))/(this.PI/180);return s=20037508.34*s/180,{lat:s,lng:n}}static mercatorDecrypt(t,e){const n=e/20037508.34*180;let s=t/20037508.34*180;return s=180/this.PI*(2*Math.atan(Math.exp(s*this.PI/180))-this.PI/2),{lat:s,lng:n}}static transformLat(t,e){let n=2*t-100+3*e+.2*e*e+.1*t*e+.2*Math.sqrt(Math.abs(t));return n+=2*(20*Math.sin(6*t*this.PI)+20*Math.sin(2*t*this.PI))/3,n+=2*(20*Math.sin(e*this.PI)+40*Math.sin(e/3*this.PI))/3,n+=2*(160*Math.sin(e/12*this.PI)+320*Math.sin(e*this.PI/30))/3,n}static transformLon(t,e){let n=300+t+2*e+.1*t*t+.1*t*e+.1*Math.sqrt(Math.abs(t));return n+=2*(20*Math.sin(6*t*this.PI)+20*Math.sin(2*t*this.PI))/3,n+=2*(20*Math.sin(t*this.PI)+40*Math.sin(t/3*this.PI))/3,n+=2*(150*Math.sin(t/12*this.PI)+300*Math.sin(t/30*this.PI))/3,n}static random({x:t,y:e},{x:n,y:s}){return{x:Math.random()*(n-t)+t,y:Math.random()*(s-e)+e}}static deCompose(t,e,n){if(!Array.isArray(t))return n?e.call(n,t):e(t);const s=[];let r,i;for(let o=0,a=t.length;o<a;o++)r=t[o],m.isNil(r)?s.push(null):Array.isArray(r)?s.push(this.deCompose(r,e,n)):(i=n?e.call(n,r):e(r),s.push(i));return s}}i(T,"PI",3.141592653589793),i(T,"XPI",52.35987755982988);const O=Object.create(Date);O.prototype.format=function(t="yyyy-MM-dd hh:mm:ss"){const e={"M+":this.getMonth()+1,"d+":this.getDate(),"h+":this.getHours(),"H+":this.getHours(),"m+":this.getMinutes(),"s+":this.getSeconds(),"q+":Math.floor((this.getMonth()+3)/3),S:this.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(this.getFullYear()+"").substr(4-RegExp.$1.length)));for(const n in e){const s=new RegExp("("+n+")","g");s.test(t)&&(t=t.replace(s,(t=>(1===t.length?e[n]:("00"+e[n]).substr((""+e[n]).length)).toString())))}return t},O.prototype.addDate=function(t,e){const n=new Date(this);switch(t){case"y":n.setFullYear(this.getFullYear()+e);break;case"q":n.setMonth(this.getMonth()+3*e);break;case"M":n.setMonth(this.getMonth()+e);break;case"w":n.setDate(this.getDate()+7*e);break;case"d":default:n.setDate(this.getDate()+e);break;case"h":n.setHours(this.getHours()+e);break;case"m":n.setMinutes(this.getMinutes()+e);break;case"s":n.setSeconds(this.getSeconds()+e)}return n};class I{static parseDate(t){if("string"==typeof t){var e=t.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) *$/);if(e&&e.length>3)return new Date(parseInt(e[1]),parseInt(e[2])-1,parseInt(e[3]));if((e=t.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2}) *$/))&&e.length>6)return new Date(parseInt(e[1]),parseInt(e[2])-1,parseInt(e[3]),parseInt(e[4]),parseInt(e[5]),parseInt(e[6]));if((e=t.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2})\.(\d{1,9}) *$/))&&e.length>7)return new Date(parseInt(e[1]),parseInt(e[2])-1,parseInt(e[3]),parseInt(e[4]),parseInt(e[5]),parseInt(e[6]),parseInt(e[7]))}return null}static formatDateInterval(t,e){const n=new Date(t),s=new Date(e).getTime()-n.getTime(),r=Math.floor(s/864e5),i=s%864e5,o=Math.floor(i/36e5),a=i%36e5,l=Math.floor(a/6e4),c=a%6e4,h=Math.round(c/1e3);let u="";return r>0&&(u+=r+"天"),o>0&&(u+=o+"时"),l>0&&(u+=l+"分"),h>0&&(u+=h+"秒"),0===r&&0===o&&0===l&&0===h&&(u="少于1秒"),u}static formatterCounter(t){const e=function(t){return(t>10?"":"0")+(t||0)},n=t%3600,s=n%60;return`${e(Math.floor(t/3600))}:${e(Math.floor(n/60))}:${e(Math.round(s))}`}static sleep(t){}}function D(t){return function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}(t).split(/\s+/)}i(I,"lastMonthDate",new Date((new Date).getFullYear(),(new Date).getMonth()-1,1)),i(I,"thisMonthDate",new Date((new Date).getFullYear(),(new Date).getMonth(),1)),i(I,"nextMonthDate",new Date((new Date).getFullYear(),(new Date).getMonth()+1,1)),i(I,"lastWeekDate",new Date((new Date).getFullYear(),(new Date).getMonth(),(new Date).getDate()+1-7-(new Date).getDay())),i(I,"thisWeekDate",new Date((new Date).getFullYear(),(new Date).getMonth(),(new Date).getDate()+1-(new Date).getDay())),i(I,"nextWeekDate",new Date((new Date).getFullYear(),(new Date).getMonth(),(new Date).getDate()+1+7-(new Date).getDay())),i(I,"lastDayDate",new Date((new Date).getFullYear(),(new Date).getMonth(),(new Date).getDate()-1)),i(I,"thisDayDate",new Date((new Date).setHours(0,0,0,0))),i(I,"nextDayDate",new Date((new Date).getFullYear(),(new Date).getMonth(),(new Date).getDate()+1));const P={getStyle(t,e){var n;let s=t.style[e];if(!s||"auto"===s){const r=null==(n=document.defaultView)?void 0:n.getComputedStyle(t,null);s=r?r[e]:null,"auto"===s&&(s=null)}return s},create(t,e,n){const s=document.createElement(t);return s.className=e||"",n&&n.appendChild(s),s},remove(t){const e=t.parentNode;e&&e.removeChild(t)},empty(t){for(;t.firstChild;)t.removeChild(t.firstChild)},toFront(t){const e=t.parentNode;e&&e.lastChild!==t&&e.appendChild(t)},toBack(t){const e=t.parentNode;e&&e.firstChild!==t&&e.insertBefore(t,e.firstChild)},getClass:t=>((null==t?void 0:t.host)||t).className.toString(),hasClass(t,e){var n;if(null==(n=t.classList)?void 0:n.contains(e))return!0;const s=this.getClass(t);return s.length>0&&new RegExp(`(^|\\s)${e}(\\s|$)`).test(s)},addClass(t,e){if(void 0!==t.classList){const n=D(e);for(let e=0,s=n.length;e<s;e++)t.classList.add(n[e])}else if(!this.hasClass(t,e)){const n=this.getClass(t);this.setClass(t,(n?n+" ":"")+e)}},removeClass(t,e){if(void 0!==t.classList){D(e).forEach((e=>t.classList.remove(e)))}else this.setClass(t,(" "+this.getClass(t)+" ").replace(" "+e+" "," ").trim())},setClass(t,e){"classList"in t&&(t.classList.value="",e.split(" ").forEach((e=>t.classList.add(e))))},parseFromString:t=>(new DOMParser).parseFromString(t,"text/xml").children[0]},k={convertBase64ToBlob(t){const e=t.split(",")[0].split(":")[1].split(";")[0],n=atob(t.split(",")[1]),s=new Array(n.length);for(let i=0;i<n.length;i++)s[i]=n.charCodeAt(i);const r=new Uint8Array(s);return new Blob([r],{type:e})},convertBase64ToFile(t,e){const n=t.split(","),s=n[0].match(/:(.*?);/),r=s?s[1]:"image/png",i=atob(n[1]),o=new Uint8Array(i.length);for(let a=0;a<i.length;a++)o[a]=i.charCodeAt(a);return new File([o],e,{type:r})},downloadFromFile(t,e){if("object"==typeof t)if(t instanceof Blob)t=URL.createObjectURL(t);else{const e=JSON.stringify(t),n=new Blob([e],{type:"text/json"});t=window.URL.createObjectURL(n)}else if("string"==typeof t&&-1===t.indexOf("http")){const e=new Blob([t],{type:"text/json"});t=window.URL.createObjectURL(e)}var n=document.createElement("a");n.href=t,n.download=e||"",n.click(),window.URL.revokeObjectURL(n.href)}};class L{static resetWarned(){this.warned={}}static changeVoice(){this.isMute=!!Number(!this.isMute),localStorage.setItem("mute",Number(this.isMute).toString())}static _call(t,e,n){this.warned[e]||(t(e,n),this.warned[e]=!0)}static msg(t,n,s={}){if(e.Message({type:t,message:n}),this.isMute)return;const r=m.decodeDict(t,"success","恭喜","error","发生错误","warning","警告","info","友情提示")+":";this.speechSynthesisUtterance.text=r+n,this.speechSynthesisUtterance.lang=s.lang||"zh-CN",this.speechSynthesisUtterance.volume=s.volume||1,this.speechSynthesisUtterance.rate=s.rate||1,this.speechSynthesisUtterance.pitch=s.pitch||1,this.speechSynthesis.speak(this.speechSynthesisUtterance)}static stop(t){this.speechSynthesisUtterance.text=t,this.speechSynthesis.cancel()}static warning(t,e){"development"===process.env.NODE_ENV&&void 0!==console&&console.warn(`Warning: %c${t}`,"color:#E6A23C;font-weight: bold;"),this.msg("warning",t,e)}static warningOnce(t,e){this._call(this.warning.bind(this),t,e)}static info(t,e){"development"===process.env.NODE_ENV&&void 0!==console&&console.info(`Info: %c${t}`,"color:#909399;font-weight: bold;"),this.msg("info",t,e)}static infoOnce(t,e){this._call(this.info.bind(this),t,e)}static error(t,e){"development"===process.env.NODE_ENV&&void 0!==console&&console.error(`Error: %c${t}`,"color:#F56C6C;font-weight: bold;"),this.msg("error",t,e)}static errorOnce(t,e){this._call(this.error.bind(this),t,e)}static success(t,e){"development"===process.env.NODE_ENV&&void 0!==console&&console.log(`Success: %c${t}`,"color:#67C23A;font-weight: bold;"),this.msg("success",t,e)}static successOnce(t,e){this._call(this.success.bind(this),t,e)}}i(L,"warned",{}),i(L,"isMute",!!Number(localStorage.getItem("mute"))||!1),i(L,"speechSynthesis",window.speechSynthesis),i(L,"speechSynthesisUtterance",new SpeechSynthesisUtterance);const N={debounce(t,e,n=!0){let s,r,i=null;const o=()=>{const a=Date.now()-s;a<e&&a>0?i=setTimeout(o,e-a):(i=null,n||(r=t.apply(this,undefined)))};return(...a)=>{s=Date.now();const l=n&&!i;return i||(i=setTimeout(o,e)),l&&(r=t.apply(this,a),i||(a=null)),r}},throttle(t,e,n=1){let s=0,r=null;return(...i)=>{if(1===n){const n=Date.now();n-s>=e&&(t.apply(this,i),s=n)}else 2===n&&(r||(r=setTimeout((()=>{r=null,t.apply(this,i)}),e)))}},memoize(t){const e=new Map;return(...n)=>{const s=JSON.stringify(n);if(e.has(s))return e.get(s);{const r=t.apply(this,n);return e.set(s,r),r}}},recurve(t,e=500,n=5e3){let s=0;setTimeout((()=>{s++,s<Math.floor(n/e)&&(t.call(this),setTimeout(this.recurve.bind(this,t,e,n),e))}),e)},once(t){let e=!1;return function(...n){if(!e)return e=!0,t(...n)}}},U={json2Query(t){var e=[];for(var n in t)if(t.hasOwnProperty(n)){var s=n,r=t[n];e.push(encodeURIComponent(s)+"="+encodeURIComponent(r))}return e.join("&")},query2Json(t=window.location.href,e=!0){const n=/([^&=]+)=([\w\W]*?)(&|$|#)/g,{search:s,hash:r}=new URL(t),i=[s,r];let o={};for(let a=0;a<i.length;a++){const t=i[a];if(t){const s=t.replace(/#|\//g,"").split("?");if(s.length>1)for(let t=1;t<s.length;t++){let r;for(;r=n.exec(s[t]);)o[r[1]]=e?decodeURIComponent(r[2]):r[2]}}}return o}},F=class t extends f{constructor(e=`ws://${window.document.domain}:20007/mqtt`,s={}){super(),i(this,"state"),i(this,"url"),i(this,"context"),i(this,"options"),i(this,"client"),i(this,"topics"),this.context=m.extend(t.defaultContext,s),this.options={connectTimeout:this.context.MQTT_TIMEOUTM,clientId:m.guid(),username:this.context.MQTT_USERNAME,password:this.context.MQTT_PASSWORD,clean:!0},this.url=e,this.client=n.connect(this.url,this.options),this._onConnect(),this._onMessage(),this.state=0,this.topics=[]}_onConnect(){this.client.on("connect",(()=>{this.state=1,console.log("链接mqtt成功==>"+this.url),this.dispatchEvent({type:o.MQTT_CONNECT,message:this})})),this.client.on("error",(t=>{console.log("链接mqtt报错",t),this.state=-1,this.dispatchEvent({type:o.MQTT_ERROR,message:this}),this.client.end(),this.client.reconnect()}))}_onMessage(){this.client.on("message",((t,e)=>{let n=e,s="";e instanceof Uint8Array&&(n=e.toString());try{s=y.parse(n)}catch(r){throw new Error(a.JSON_PARSE_ERROR)}this.dispatchEvent({type:o.MQTT_MESSAGE,message:{topic:t,data:s}})}))}sendMsg(t,e){if(this.client.connected)return this.client.publish(t,e,{qos:1,retain:!0}),this;console.error("客户端未连接")}subscribe(t){return 1===this.state?this.client.subscribe(t,{qos:1},((e,n)=>{e instanceof Error?console.error("订阅失败==>"+t,e):(this.topics=C.union(this.topics,t),console.log("订阅成功==>"+t))})):this.addEventListener(o.MQTT_CONNECT,(e=>{this.client.subscribe(t,{qos:1},((e,n)=>{e instanceof Error?console.error("订阅失败==>"+t,e):(this.topics=C.union(this.topics,t),console.log("订阅成功==>"+t))}))})),this}unsubscribe(t){return this.client.unsubscribe(t,{qos:1},((e,n)=>{e instanceof Error?console.error(`取消订阅失败==>${t}`,e):(this.topics=C.difference(this.topics,t),console.log(`取消订阅成功==>${t}`))})),this}unsubscribeAll(){return this.unsubscribe(this.topics),this}unconnect(){this.client.end(),this.client=null,this.dispatchEvent({type:o.MQTT_CLOSE,message:null}),console.log("断开mqtt成功==>"+this.url)}};i(F,"defaultContext",{MQTT_USERNAME:"iRVMS-WEB",MQTT_PASSWORD:"novasky888",MQTT_TIMEOUTM:2e4});let G=F;const $=class t{static useLocal(){this.store=window.localStorage}static useSession(){this.store=window.sessionStorage}static set(t,e=null,n={}){var s=this._getPrefixedKey(t,n);try{const{expires:t}=n,r={data:e};t&&(r.expires=t),this.store.setItem(s,JSON.stringify(r))}catch(r){console&&console.warn(`Storage didn't successfully save the '{"${t}": "${e}"}' pair, because the Storage is full.`)}}static get(t,e,n){var s,r=this._getPrefixedKey(t,n);try{s=JSON.parse(this.store.getItem(r)||"")}catch(i){s=this.store[r]?{data:this.store.getItem(r)}:null}if(!s)return e;if("object"==typeof s&&void 0!==s.data){const t=s.expires;return t&&Date.now()>t?e:s.data}}static keys(){const e=[];var n=Object.keys(this.store);return 0===t.prefix.length?n:(n.forEach((function(n){-1!==n.indexOf(t.prefix)&&e.push(n.replace(t.prefix,""))})),e)}static getAll(e){var n=t.keys();if(e){const s=[];return n.forEach((n=>{if(e.includes(n)){const e={};e[n]=t.get(n,null,null),s.push(e)}})),s}return n.map((e=>t.get(e,null,null)))}static remove(t,e){var n=this._getPrefixedKey(t,e);this.store.removeItem(n)}static clear(e){t.prefix.length?this.keys().forEach((t=>{this.store.removeItem(this._getPrefixedKey(t,e))})):this.store.clear()}};i($,"store",window.sessionStorage),i($,"prefix",""),i($,"_getPrefixedKey",(function(t,e){return(e=e||{}).noPrefix?t:$.prefix+t}));let B=$;t.AjaxUtil=M,t.ArrayUtil=C,t.AssertUtil=_,t.AudioPlayer=class{constructor(t){i(this,"audio"),this.audio=new Audio,this.audio.src=t}play(){!this.muted&&this.audio.play()}pause(){this.audio.pause()}get muted(){return this.audio.muted}set muted(t){this.audio.muted=t}},t.BrowserUtil=x,t.CanvasDrawer=class{constructor(t){if(i(this,"context",null),"string"==typeof t&&!(t=document.querySelector("#"+t)))throw new Error("Element not found");if(!(t instanceof HTMLElement))throw new Error("Element is not an HTMLElement");{const e=t;if(!e.getContext)throw new Error("getContext is not available on this element");this.context=e.getContext("2d")}}drawLine({x:t,y:e},{x:n,y:s},r={}){if(!this.context)throw new Error("Canvas context is null or undefined");this.context.beginPath();const i=r.width||1,o=r.color||"#000";this.context.lineWidth=i,this.context.strokeStyle=o,this.context.moveTo(t,e),this.context.lineTo(n,s),this.context.stroke()}drawArc({x:t,y:e},n,s,r,i,o,a){if(!this.context)throw new Error("Canvas context is null or undefined");o?(this.context.fillStyle=a,this.context.beginPath(),this.context.arc(t,e,n,d.deg2Rad(s),d.deg2Rad(r),i),this.context.fill()):(this.context.strokeStyle=a,this.context.beginPath(),this.context.arc(t,e,n,d.deg2Rad(s),d.deg2Rad(r),i),this.context.stroke())}drawImage(t,{x:e,y:n}){const s=new Image;s.src=t,s.onload=()=>{const t=s.width,r=s.height;if(!this.context)throw new Error("Canvas context is null");this.context.drawImage(s,e,n,-t/2,-r/2)}}static createCanvas(t=1,e=1){const n=document.createElement("canvas");return t&&(n.width=t),e&&(n.height=e),n}},t.Color=p,t.Cookie=class{static set(t,e,n=30){if("string"!=typeof t||"string"!=typeof e||"number"!=typeof n)throw new Error("Invalid arguments");const s=new Date;s.setTime(s.getTime()+24*n*60*60*1e3),document.cookie=`${t}=${encodeURIComponent(e)};expires=${s.toUTCString()}`}static remove(t){var e=new Date;e.setTime(e.getTime()-1);var n=this.get(t);null!=n&&(document.cookie=t+"="+n+";expires="+e.toUTCString())}static get(t){var e=document.cookie.match(new RegExp("(^| )"+t+"=([^;]*)(;|$)"));return null!=e?e[2]:""}},t.CoordsUtil=T,t.DateUtil=I,t.DomUtil=P,t.ErrorType=a,t.EventDispatcher=f,t.EventType=o,t.FileUtil=k,t.GeoJsonUtil=v,t.GeoUtil=R,t.GraphicType=c,t.HashMap=w,t.ImageUtil=E,t.LayerType=l,t.LineSymbol=h,t.MathUtil=d,t.MeasureMode=u,t.MessageUtil=L,t.MqttClient=G,t.ObjectUtil=y,t.OptimizeUtil=N,t.Storage=B,t.StringUtil=b,t.UrlUtil=U,t.Util=m,t.WebSocketClient=class extends f{constructor(t="ws://127.0.0.1:10088"){super(),i(this,"maxCheckTimes",10),i(this,"url"),i(this,"checkTimes",0),i(this,"connectStatus",!1),i(this,"client",null),this.maxCheckTimes=10,this.url=t,this.checkTimes=0,this.connect(),this.connCheckStatus(this.maxCheckTimes)}connect(){if(this.disconnect(),this.url)try{if(console.info("创建ws连接>>>"+this.url),this.client=new WebSocket(this.url),this.client){const t=this;this.client.onopen=function(e){t.dispatchEvent({type:o.WEB_SOCKET_CONNECT,message:e})},this.client.onmessage=function(e){t.connectStatus=!0,t.dispatchEvent({type:o.WEB_SOCKET_MESSAGE,message:e})},this.client.onclose=function(e){t.dispatchEvent({type:o.WEB_SOCKET_CLOSE,message:e})},this.checkTimes===this.maxCheckTimes&&(this.client.onerror=function(e){t.dispatchEvent({type:o.WEB_SOCKET_ERROR,message:e})})}}catch(t){console.error("创建ws连接失败"+this.url+":"+t)}}disconnect(){if(this.client)try{console.log("ws断开连接"+this.url),this.client.close(),this.client=null}catch(t){this.client=null}}connCheckStatus(t){this.checkTimes>t||setTimeout((()=>{this.checkTimes++,this.client&&0!==this.client.readyState&&1!==this.client.readyState&&this.connect(),this.connCheckStatus(t)}),2e3)}send(t){return this.client&&1===this.client.readyState?(this.client.send(t),!0):(console.error(this.url+"消息发送失败:"+t),this)}heartbeat(){setTimeout((()=>{this.client&&1===this.client.readyState&&this.send("HeartBeat"),console.log("HeartBeat,"+this.url),setTimeout(this.heartbeat,3e4)}),1e3)}},Object.defineProperty(t,Symbol.toStringTag,{value:"Module"})}));
|
package/dist/utils/GeoUtil.d.ts
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import { MessageType } from 'element-ui/types/message';
|
|
2
|
+
interface VoiceOptions {
|
|
3
|
+
lang?: string;
|
|
4
|
+
volume?: number;
|
|
5
|
+
rate?: number;
|
|
6
|
+
pitch?: number;
|
|
7
|
+
}
|
|
2
8
|
export default class MessageUtil {
|
|
3
9
|
private static warned;
|
|
4
10
|
private static isMute;
|
|
@@ -8,26 +14,22 @@ export default class MessageUtil {
|
|
|
8
14
|
static changeVoice(): void;
|
|
9
15
|
private static _call;
|
|
10
16
|
/**
|
|
11
|
-
*
|
|
17
|
+
* 播放消息提示音和文字朗读(语音需要有交互)
|
|
12
18
|
*
|
|
13
19
|
* @param type 消息类型
|
|
14
20
|
* @param message 消息内容
|
|
15
21
|
* @param options 配置选项,可选参数,包括语言、音量、语速和音高
|
|
16
22
|
* @returns 无返回值
|
|
17
23
|
*/
|
|
18
|
-
static msg(type: MessageType, message: string, options?:
|
|
19
|
-
lang?: string;
|
|
20
|
-
volume?: number;
|
|
21
|
-
rate?: number;
|
|
22
|
-
pitch?: number;
|
|
23
|
-
}): void;
|
|
24
|
+
static msg(type: MessageType, message: string, options?: VoiceOptions): void;
|
|
24
25
|
static stop(e: string): void;
|
|
25
|
-
static warning(message: string): void;
|
|
26
|
-
static warningOnce(message: string): void;
|
|
27
|
-
static info(message: string): void;
|
|
28
|
-
static infoOnce(message: string): void;
|
|
29
|
-
static error(message: string): void;
|
|
30
|
-
static errorOnce(message: string): void;
|
|
31
|
-
static success(message: string): void;
|
|
32
|
-
static successOnce(message: string): void;
|
|
26
|
+
static warning(message: string, options: VoiceOptions): void;
|
|
27
|
+
static warningOnce(message: string, options: VoiceOptions): void;
|
|
28
|
+
static info(message: string, options: VoiceOptions): void;
|
|
29
|
+
static infoOnce(message: string, options: VoiceOptions): void;
|
|
30
|
+
static error(message: string, options: VoiceOptions): void;
|
|
31
|
+
static errorOnce(message: string, options: VoiceOptions): void;
|
|
32
|
+
static success(message: string, options: VoiceOptions): void;
|
|
33
|
+
static successOnce(message: string, options: VoiceOptions): void;
|
|
33
34
|
}
|
|
35
|
+
export {};
|
|
@@ -23,7 +23,7 @@ declare const _default: {
|
|
|
23
23
|
* - 'HTML': HTML标记
|
|
24
24
|
* @returns 校验结果,符合返回true,否则返回false
|
|
25
25
|
*/
|
|
26
|
-
checkStr(str: string, type:
|
|
26
|
+
checkStr(str: string, type: string): boolean;
|
|
27
27
|
/**
|
|
28
28
|
* 转换字符串大小写
|
|
29
29
|
*
|
|
@@ -43,13 +43,7 @@ declare const _default: {
|
|
|
43
43
|
* @param str 需要计算字节长度的字符串
|
|
44
44
|
* @returns 返回字符串的字节长度
|
|
45
45
|
*/
|
|
46
|
-
getByteLength(str:
|
|
47
|
-
replace: (arg0: RegExp, arg1: string) => {
|
|
48
|
-
(): any;
|
|
49
|
-
new (): any;
|
|
50
|
-
length: any;
|
|
51
|
-
};
|
|
52
|
-
}): any;
|
|
46
|
+
getByteLength(str: string): number;
|
|
53
47
|
/**
|
|
54
48
|
* 截取字符串中指定字节长度的子串
|
|
55
49
|
*
|
|
@@ -58,15 +52,7 @@ declare const _default: {
|
|
|
58
52
|
* @param n 截取字节长度
|
|
59
53
|
* @returns 返回截取后的子串
|
|
60
54
|
*/
|
|
61
|
-
subStringByte(str:
|
|
62
|
-
replace: (arg0: RegExp, arg1: string) => {
|
|
63
|
-
(): any;
|
|
64
|
-
new (): any;
|
|
65
|
-
length: number;
|
|
66
|
-
};
|
|
67
|
-
length: number;
|
|
68
|
-
substring: (arg0: any, arg1: number) => any;
|
|
69
|
-
}, start: any, n: number): any;
|
|
55
|
+
subStringByte(str: string, start: number, n: number): string;
|
|
70
56
|
string2Bytes(str: string): Uint8Array;
|
|
71
57
|
bytes2String(uint8arr: Uint8Array): string;
|
|
72
58
|
};
|
package/package.json
CHANGED
|
File without changes
|