web-launch-kit 0.0.2 → 0.0.4
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/LICENSE +21 -0
- package/README.ko.md +294 -0
- package/README.md +63 -17
- package/dist/index.d.ts +0 -57
- package/dist/launch-kit.cjs +1295 -304
- package/dist/launch-kit.cjs.map +1 -1
- package/dist/launch-kit.min.cjs +1 -1
- package/dist/launch-kit.min.cjs.map +1 -1
- package/dist/launch-kit.min.mjs +1 -1
- package/dist/launch-kit.min.mjs.map +1 -1
- package/dist/launch-kit.mjs +1295 -304
- package/dist/launch-kit.mjs.map +1 -1
- package/dist/launch-kit.umd.js +1295 -304
- package/dist/launch-kit.umd.js.map +1 -1
- package/dist/launch-kit.umd.min.js +1 -1
- package/dist/launch-kit.umd.min.js.map +1 -1
- package/dist/utils/get-global.d.ts +37 -0
- package/dist/utils/get-id.d.ts +0 -12
- package/package.json +8 -4
- package/dist/utils/event-listener-utils.d.ts +0 -8
package/dist/launch-kit.umd.js
CHANGED
|
@@ -4,24 +4,37 @@
|
|
|
4
4
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.LaunchKit = {}));
|
|
5
5
|
})(this, (function (exports) { 'use strict';
|
|
6
6
|
|
|
7
|
-
var version$
|
|
8
|
-
var packageJSON$
|
|
9
|
-
version: version$
|
|
7
|
+
var version$3 = "0.0.4";
|
|
8
|
+
var packageJSON$3 = {
|
|
9
|
+
version: version$3};
|
|
10
10
|
|
|
11
|
-
var version = "0.0.
|
|
12
|
-
var packageJSON = {
|
|
13
|
-
version: version};
|
|
11
|
+
var version$2 = "0.0.5";
|
|
12
|
+
var packageJSON$2 = {
|
|
13
|
+
version: version$2};
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
function getGlobal$3() {
|
|
16
|
+
if (typeof globalThis !== 'undefined')
|
|
17
|
+
return globalThis;
|
|
18
|
+
if (typeof self !== 'undefined')
|
|
19
|
+
return self;
|
|
20
|
+
if (typeof window !== 'undefined')
|
|
21
|
+
return window;
|
|
22
|
+
if (typeof global !== 'undefined')
|
|
23
|
+
return global;
|
|
24
|
+
return {};
|
|
25
|
+
}
|
|
26
|
+
var GLOBAL$5 = getGlobal$3();
|
|
27
|
+
var NAVIGATOR$1 = GLOBAL$5.navigator;
|
|
28
|
+
var USER_AGENT = typeof NAVIGATOR$1 !== 'undefined' && NAVIGATOR$1 !== null && typeof NAVIGATOR$1.userAgent === 'string' ? NAVIGATOR$1.userAgent : '';
|
|
29
|
+
var USER_AGENT_DATA = typeof NAVIGATOR$1 !== 'undefined' && NAVIGATOR$1 !== null ? NAVIGATOR$1.userAgentData : undefined;
|
|
18
30
|
var OS_RESOLVER_MAP = [
|
|
19
|
-
[/windows nt (6\.[23]); arm/i, 'windows',
|
|
20
|
-
[/windows (?:phone|mobile|iot)(?: os)?[\/ ]?([\d.]*( se)?)/i, 'windows'
|
|
21
|
-
[/
|
|
31
|
+
[/windows nt (6\.[23]); arm/i, 'windows', 'RT'],
|
|
32
|
+
[/windows (?:phone|mobile|iot)(?: os)?[\/ ]?([\d.]*( se)?)/i, 'windows'],
|
|
33
|
+
[/win 9x 4\.90/i, 'windows', 'ME'],
|
|
34
|
+
[/windows[\/ ](1[01]|2000|3\.1|7|8(\.1)?|9[58]|me|server 20\d\d( r2)?|vista|xp)/i, 'windows'],
|
|
22
35
|
[/windows nt ?([\d.)]*)(?!.+xbox)/i, 'windows', resolveWindowsVersion],
|
|
23
36
|
[/\bwin(?=3| ?9|n)(?:nt| 9x )?([\d.;]*)/i, 'windows', resolveWindowsVersion],
|
|
24
|
-
[/windows ce\/?([\d.]*)/i, 'windows'
|
|
37
|
+
[/windows ce\/?([\d.]*)/i, 'windows'],
|
|
25
38
|
[/[adehimnop]{4,7}\b(?:.*os (\w+) like mac|; opera)/i, 'ios', resolveUnderscoreVersion],
|
|
26
39
|
[/(?:ios;fbsv|ios(?=.+ip(?:ad|hone))|ip(?:ad|hone)(?: |.+i(?:pad)?)os)[\/ ]([\w.]+)/i, 'ios', resolveUnderscoreVersion],
|
|
27
40
|
[/cfnetwork\/.+darwin/i, 'ios', resolveUnderscoreVersion],
|
|
@@ -50,13 +63,14 @@
|
|
|
50
63
|
[/samsungbrowser\/([\w.]+)/i, 'samsung'],
|
|
51
64
|
[/headlesschrome(?:\/([\w.]+)| )/i, 'chrome'],
|
|
52
65
|
[/wv\).+chrome\/([\w.]+).+edgw\//i, 'edge'],
|
|
53
|
-
[/ wv\).+
|
|
66
|
+
[/ wv\).+chrome\/([\w.]+)/i, 'chrome'],
|
|
54
67
|
[/chrome\/([\w.]+) mobile/i, 'chrome'],
|
|
55
68
|
[/chrome\/v?([\w.]+)/i, 'chrome'],
|
|
56
69
|
[/version\/([\w.,]+) .*mobile(?:\/\w+ | ?)safari/i, 'safari'],
|
|
57
70
|
[/iphone .*mobile(?:\/\w+ | ?)safari/i, 'safari'],
|
|
58
71
|
[/version\/([\w.,]+) .*safari/i, 'safari'],
|
|
59
72
|
[/webkit.+?(?:mobile ?safari|safari)(\/[\w.]+)/i, 'safari', '1'],
|
|
73
|
+
[/(?:iphone|ipad|ipod).+applewebkit(?!.*safari)/i, 'safari'],
|
|
60
74
|
[/(?:mobile|tablet);.*firefox\/([\w.-]+)/i, 'firefox'],
|
|
61
75
|
[/mobile vr; rv:([\w.]+)\).+firefox/i, 'firefox'],
|
|
62
76
|
[/firefox\/([\w.]+)/i, 'firefox'],
|
|
@@ -73,6 +87,18 @@
|
|
|
73
87
|
[/tasman[\/ ]\(?([\w.]+)/i, 'tasman'],
|
|
74
88
|
[/rv:([\w.]{1,9})\b.+gecko/i, 'gecko']
|
|
75
89
|
];
|
|
90
|
+
var IN_APP_BROWSER_RESOLVER_MAP = [
|
|
91
|
+
[/kakaotalk/i, 'kakaotalk'],
|
|
92
|
+
[/\bline\/[\d.]/i, 'line'],
|
|
93
|
+
[/instagram/i, 'instagram'],
|
|
94
|
+
[/\bfban\/|\bfbav\/|fb_iab/i, 'facebook'],
|
|
95
|
+
[/naver\(inapp/i, 'naver'],
|
|
96
|
+
[/daumapps/i, 'daum'],
|
|
97
|
+
[/\bband\/[\d.]/i, 'band'],
|
|
98
|
+
[/micromessenger/i, 'wechat'],
|
|
99
|
+
[/twitter for|twitterandroid/i, 'twitter'],
|
|
100
|
+
[/musical_ly|bytedancewebview|\btiktok/i, 'tiktok'],
|
|
101
|
+
];
|
|
76
102
|
var HIGH_ENTROPY_BRAND_NAME_MAP = {
|
|
77
103
|
'Google Chrome': 'Chrome',
|
|
78
104
|
'Microsoft Edge': 'Edge',
|
|
@@ -95,19 +121,18 @@
|
|
|
95
121
|
return '';
|
|
96
122
|
var mapped = {
|
|
97
123
|
'4.90': 'ME',
|
|
98
|
-
'
|
|
99
|
-
'
|
|
100
|
-
'
|
|
101
|
-
'
|
|
102
|
-
'
|
|
103
|
-
'
|
|
104
|
-
'
|
|
105
|
-
'
|
|
106
|
-
'
|
|
107
|
-
'
|
|
108
|
-
'
|
|
109
|
-
|
|
110
|
-
}[string];
|
|
124
|
+
'3.51': 'NT 3.51',
|
|
125
|
+
'4.0': 'NT 4.0',
|
|
126
|
+
'5.0': '2000',
|
|
127
|
+
'5.1': 'XP',
|
|
128
|
+
'5.2': 'XP',
|
|
129
|
+
'6.0': 'Vista',
|
|
130
|
+
'6.1': '7',
|
|
131
|
+
'6.2': '8',
|
|
132
|
+
'6.3': '8.1',
|
|
133
|
+
'6.4': '10',
|
|
134
|
+
'10.0': '10'
|
|
135
|
+
}[string.replace(/[^\d.]/g, '')];
|
|
111
136
|
if (typeof mapped !== 'undefined')
|
|
112
137
|
return mapped;
|
|
113
138
|
return string;
|
|
@@ -126,6 +151,28 @@
|
|
|
126
151
|
return '';
|
|
127
152
|
return string;
|
|
128
153
|
}
|
|
154
|
+
function compareVersion(lhs, rhs) {
|
|
155
|
+
var pa = lhs.split('.');
|
|
156
|
+
var pb = rhs.split('.');
|
|
157
|
+
var length = Math.max(pa.length, pb.length);
|
|
158
|
+
for (var i = 0; i < length; i++) {
|
|
159
|
+
var a = void 0;
|
|
160
|
+
var b = void 0;
|
|
161
|
+
if (i < pa.length)
|
|
162
|
+
a = parseInt(pa[i], 10);
|
|
163
|
+
else
|
|
164
|
+
a = 0;
|
|
165
|
+
if (i < pb.length)
|
|
166
|
+
b = parseInt(pb[i], 10);
|
|
167
|
+
else
|
|
168
|
+
b = 0;
|
|
169
|
+
if (a > b)
|
|
170
|
+
return 1;
|
|
171
|
+
if (a < b)
|
|
172
|
+
return -1;
|
|
173
|
+
}
|
|
174
|
+
return 0;
|
|
175
|
+
}
|
|
129
176
|
function parseOS() {
|
|
130
177
|
var name = 'unknown';
|
|
131
178
|
var version = '';
|
|
@@ -138,7 +185,7 @@
|
|
|
138
185
|
break;
|
|
139
186
|
}
|
|
140
187
|
}
|
|
141
|
-
if (name === 'ios' &&
|
|
188
|
+
if (name === 'ios' && compareVersion(version, '18.6') === 0) {
|
|
142
189
|
var execs = /\) Version\/([\d.]+)/.exec(currentUserAgent);
|
|
143
190
|
if (execs !== null) {
|
|
144
191
|
var major = parseInt(execs[1].split('.')[0], 10);
|
|
@@ -151,7 +198,7 @@
|
|
|
151
198
|
name = parsedFromHighEntropyValuesOSName;
|
|
152
199
|
if (typeof parsedFromHighEntropyValuesOSVersion !== 'undefined')
|
|
153
200
|
version = parsedFromHighEntropyValuesOSVersion;
|
|
154
|
-
if (name === 'macos' && typeof
|
|
201
|
+
if (name === 'macos' && typeof NAVIGATOR$1 !== 'undefined' && NAVIGATOR$1 !== null && typeof NAVIGATOR$1.standalone !== 'undefined' && typeof NAVIGATOR$1.maxTouchPoints === 'number' && NAVIGATOR$1.maxTouchPoints > 2)
|
|
155
202
|
name = 'ios';
|
|
156
203
|
}
|
|
157
204
|
return {
|
|
@@ -203,6 +250,39 @@
|
|
|
203
250
|
version: version
|
|
204
251
|
};
|
|
205
252
|
}
|
|
253
|
+
function parseInAppBrowser() {
|
|
254
|
+
for (var i = 0; i < IN_APP_BROWSER_RESOLVER_MAP.length; i++) {
|
|
255
|
+
if (IN_APP_BROWSER_RESOLVER_MAP[i][0].test(currentUserAgent))
|
|
256
|
+
return IN_APP_BROWSER_RESOLVER_MAP[i][1];
|
|
257
|
+
}
|
|
258
|
+
return null;
|
|
259
|
+
}
|
|
260
|
+
function parseWebview() {
|
|
261
|
+
if (/; ?wv\)/i.test(currentUserAgent))
|
|
262
|
+
return true;
|
|
263
|
+
if (/\bversion\/[\d.]+ chrome\//i.test(currentUserAgent))
|
|
264
|
+
return true;
|
|
265
|
+
if (/\belectron\//i.test(currentUserAgent))
|
|
266
|
+
return true;
|
|
267
|
+
if (/(?:iphone|ipad|ipod)/i.test(currentUserAgent) && /applewebkit/i.test(currentUserAgent) && /safari/i.test(currentUserAgent) === false)
|
|
268
|
+
return true;
|
|
269
|
+
return parseInAppBrowser() !== null;
|
|
270
|
+
}
|
|
271
|
+
function parseDevice() {
|
|
272
|
+
if (currentUserAgent === USER_AGENT && parsedFromHighEntropyValuesDevice !== null)
|
|
273
|
+
return parsedFromHighEntropyValuesDevice;
|
|
274
|
+
var osName = getParsedCache().os.name;
|
|
275
|
+
if (osName === 'ios') {
|
|
276
|
+
if (/ipad/i.test(currentUserAgent) || /macintosh/i.test(currentUserAgent))
|
|
277
|
+
return 'tablet';
|
|
278
|
+
return 'mobile';
|
|
279
|
+
}
|
|
280
|
+
if (osName === 'android')
|
|
281
|
+
return /\bmobile\b/i.test(currentUserAgent) ? 'mobile' : 'tablet';
|
|
282
|
+
if (osName === 'windows' || osName === 'macos')
|
|
283
|
+
return 'desktop';
|
|
284
|
+
return 'unknown';
|
|
285
|
+
}
|
|
206
286
|
function getParsedCache() {
|
|
207
287
|
if (parsedCache !== null && parsedCache.userAgent === currentUserAgent)
|
|
208
288
|
return parsedCache;
|
|
@@ -230,11 +310,31 @@
|
|
|
230
310
|
return { brand: entry, version: '' };
|
|
231
311
|
return { brand: entry.brand, version: entry.version };
|
|
232
312
|
}
|
|
313
|
+
function resolvedThenable() {
|
|
314
|
+
if (typeof Promise === 'function')
|
|
315
|
+
return Promise.resolve();
|
|
316
|
+
var thenable = {
|
|
317
|
+
then: function (onFulfilled) {
|
|
318
|
+
if (typeof onFulfilled === 'function')
|
|
319
|
+
onFulfilled(undefined);
|
|
320
|
+
return thenable;
|
|
321
|
+
},
|
|
322
|
+
catch: function () {
|
|
323
|
+
return thenable;
|
|
324
|
+
},
|
|
325
|
+
finally: function (onFinally) {
|
|
326
|
+
if (typeof onFinally === 'function')
|
|
327
|
+
onFinally();
|
|
328
|
+
return thenable;
|
|
329
|
+
},
|
|
330
|
+
};
|
|
331
|
+
return thenable;
|
|
332
|
+
}
|
|
233
333
|
function parseFromHighEntropyValues() {
|
|
234
334
|
if (typeof USER_AGENT_DATA === 'undefined' || typeof USER_AGENT_DATA.getHighEntropyValues === 'undefined')
|
|
235
|
-
return
|
|
335
|
+
return resolvedThenable();
|
|
236
336
|
return USER_AGENT_DATA
|
|
237
|
-
.getHighEntropyValues(['brands', 'fullVersionList', 'mobile', '
|
|
337
|
+
.getHighEntropyValues(['brands', 'fullVersionList', 'mobile', 'platform', 'platformVersion', 'formFactors'])
|
|
238
338
|
.then(function (result) {
|
|
239
339
|
try {
|
|
240
340
|
var brands = result.fullVersionList || result.brands || [];
|
|
@@ -287,12 +387,26 @@
|
|
|
287
387
|
else if (/macos|macintel/i.test(platform))
|
|
288
388
|
parsedFromHighEntropyValuesOSName = 'macos';
|
|
289
389
|
}
|
|
290
|
-
|
|
390
|
+
var formFactors = result.formFactors;
|
|
391
|
+
if (typeof formFactors !== 'undefined' && formFactors !== null && typeof formFactors.length === 'number') {
|
|
392
|
+
for (var i = 0; i < formFactors.length; i++) {
|
|
393
|
+
var formFactor = String(formFactors[i]).toLowerCase();
|
|
394
|
+
if (formFactor === 'tablet')
|
|
395
|
+
parsedFromHighEntropyValuesDevice = 'tablet';
|
|
396
|
+
else if (formFactor === 'mobile')
|
|
397
|
+
parsedFromHighEntropyValuesDevice = 'mobile';
|
|
398
|
+
else if (formFactor === 'desktop')
|
|
399
|
+
parsedFromHighEntropyValuesDevice = 'desktop';
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
if (parsedFromHighEntropyValuesDevice === null && result.mobile === true)
|
|
291
403
|
parsedFromHighEntropyValuesDevice = 'mobile';
|
|
292
|
-
parsedCache = null;
|
|
293
404
|
}
|
|
294
405
|
catch (_) {
|
|
295
406
|
}
|
|
407
|
+
finally {
|
|
408
|
+
parsedCache = null;
|
|
409
|
+
}
|
|
296
410
|
})
|
|
297
411
|
.catch(function () {
|
|
298
412
|
parsedCache = null;
|
|
@@ -300,15 +414,29 @@
|
|
|
300
414
|
}
|
|
301
415
|
ready = parseFromHighEntropyValues();
|
|
302
416
|
var PlatformKit = {
|
|
303
|
-
version: packageJSON.version,
|
|
417
|
+
version: packageJSON$2.version,
|
|
304
418
|
get ready() {
|
|
305
419
|
return ready;
|
|
306
420
|
},
|
|
421
|
+
whenReady: function (callback) {
|
|
422
|
+
if (typeof callback !== 'function')
|
|
423
|
+
return;
|
|
424
|
+
ready.then(function () {
|
|
425
|
+
callback();
|
|
426
|
+
});
|
|
427
|
+
},
|
|
307
428
|
set userAgent(userAgent) {
|
|
308
429
|
if (currentUserAgent === userAgent)
|
|
309
430
|
return;
|
|
310
431
|
currentUserAgent = userAgent;
|
|
311
432
|
invalidateCache();
|
|
433
|
+
ready = userAgent === USER_AGENT ? parseFromHighEntropyValues() : resolvedThenable();
|
|
434
|
+
},
|
|
435
|
+
reset: function () {
|
|
436
|
+
if (currentUserAgent === USER_AGENT)
|
|
437
|
+
return;
|
|
438
|
+
currentUserAgent = USER_AGENT;
|
|
439
|
+
invalidateCache();
|
|
312
440
|
ready = parseFromHighEntropyValues();
|
|
313
441
|
},
|
|
314
442
|
get userAgent() {
|
|
@@ -324,56 +452,799 @@
|
|
|
324
452
|
return getParsedCache().engine;
|
|
325
453
|
},
|
|
326
454
|
get device() {
|
|
327
|
-
|
|
328
|
-
return parsedFromHighEntropyValuesDevice;
|
|
329
|
-
var osName = getParsedCache().os.name;
|
|
330
|
-
if (osName === 'ios' || osName === 'android')
|
|
331
|
-
return 'mobile';
|
|
332
|
-
if (osName === 'windows' || osName === 'macos')
|
|
333
|
-
return 'desktop';
|
|
334
|
-
return 'unknown';
|
|
455
|
+
return parseDevice();
|
|
335
456
|
},
|
|
336
457
|
get webview() {
|
|
337
|
-
return
|
|
458
|
+
return parseWebview();
|
|
459
|
+
},
|
|
460
|
+
get inAppBrowser() {
|
|
461
|
+
return parseInAppBrowser();
|
|
338
462
|
},
|
|
339
463
|
get node() {
|
|
340
|
-
|
|
464
|
+
var nodeProcess = GLOBAL$5.process;
|
|
465
|
+
return typeof nodeProcess !== 'undefined' && nodeProcess !== null && typeof nodeProcess.versions !== 'undefined' && nodeProcess.versions !== null && typeof nodeProcess.versions.node !== 'undefined';
|
|
341
466
|
},
|
|
342
467
|
get standalone() {
|
|
343
468
|
var osName = getParsedCache().os.name;
|
|
344
469
|
if (osName === 'ios')
|
|
345
|
-
return
|
|
346
|
-
if (typeof
|
|
470
|
+
return typeof NAVIGATOR$1 !== 'undefined' && NAVIGATOR$1 !== null && NAVIGATOR$1.standalone === true;
|
|
471
|
+
if (typeof GLOBAL$5.matchMedia !== 'function')
|
|
347
472
|
return false;
|
|
348
|
-
|
|
473
|
+
try {
|
|
474
|
+
return GLOBAL$5.matchMedia('(display-mode: standalone)').matches === true;
|
|
475
|
+
}
|
|
476
|
+
catch (_) {
|
|
477
|
+
return false;
|
|
478
|
+
}
|
|
349
479
|
},
|
|
350
480
|
compareVersion: function (lhs, rhs) {
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
481
|
+
return compareVersion(lhs, rhs);
|
|
482
|
+
}
|
|
483
|
+
};
|
|
484
|
+
|
|
485
|
+
function getGlobal$2() {
|
|
486
|
+
if (typeof globalThis !== 'undefined')
|
|
487
|
+
return globalThis;
|
|
488
|
+
if (typeof self !== 'undefined')
|
|
489
|
+
return self;
|
|
490
|
+
if (typeof window !== 'undefined')
|
|
491
|
+
return window;
|
|
492
|
+
if (typeof global !== 'undefined')
|
|
493
|
+
return global;
|
|
494
|
+
return {};
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
var version$1 = "0.0.1";
|
|
498
|
+
var packageJSON$1 = {
|
|
499
|
+
version: version$1};
|
|
500
|
+
|
|
501
|
+
var GLOBAL$3 = getGlobal$2();
|
|
502
|
+
var VENDORS = ['', 'webkit', 'moz', 'ms', 'MS', 'o', 'O'];
|
|
503
|
+
// https://cordova.apache.org/docs/en/latest/cordova/events/events.html
|
|
504
|
+
var CORDOVA_DOCUMENT_EVENTS = ['deviceready', 'pause', 'resume', 'backbutton', 'menubutton', 'searchbutton', 'startcallbutton', 'endcallbutton', 'volumedownbutton', 'volumeupbutton', 'activated', 'cordovacallbackerror'];
|
|
505
|
+
// iOS `<video>` fullscreen events have no `on` attribute but are valid on any element exposing `webkitEnterFullscreen` — they must pass through untouched.
|
|
506
|
+
var IOS_VIDEO_FULLSCREEN_EVENTS = ['webkitbeginfullscreen', 'webkitendfullscreen', 'webkitpresentationmodechanged'];
|
|
507
|
+
var TYPE_ALIAS_MAP = {
|
|
508
|
+
'wheel': ['wheel', 'mousewheel', 'DOMMouseScroll'],
|
|
509
|
+
'fullscreenchange': ['fullscreenchange', 'webkitfullscreenchange', 'mozfullscreenchange', 'MSFullscreenChange', 'msfullscreenchange'],
|
|
510
|
+
'fullscreenerror': ['fullscreenerror', 'webkitfullscreenerror', 'mozfullscreenerror', 'MSFullscreenError', 'msfullscreenerror'],
|
|
511
|
+
'pointerdown': ['pointerdown', 'MSPointerDown'],
|
|
512
|
+
'pointermove': ['pointermove', 'MSPointerMove'],
|
|
513
|
+
'pointerup': ['pointerup', 'MSPointerUp'],
|
|
514
|
+
'pointercancel': ['pointercancel', 'MSPointerCancel'],
|
|
515
|
+
'pointerover': ['pointerover', 'MSPointerOver'],
|
|
516
|
+
'pointerout': ['pointerout', 'MSPointerOut'],
|
|
517
|
+
'pointerenter': ['pointerenter', 'MSPointerEnter', 'mouseenter'],
|
|
518
|
+
'pointerleave': ['pointerleave', 'MSPointerLeave', 'mouseleave'],
|
|
519
|
+
'gotpointercapture': ['gotpointercapture', 'MSGotPointerCapture'],
|
|
520
|
+
'lostpointercapture': ['lostpointercapture', 'MSLostPointerCapture'],
|
|
521
|
+
'pointerlockchange': ['pointerlockchange', 'webkitpointerlockchange', 'mozpointerlockchange', 'mspointerlockchange'],
|
|
522
|
+
'pointerlockerror': ['pointerlockerror', 'webkitpointerlockerror', 'mozpointerlockerror', 'mspointerlockerror'],
|
|
523
|
+
'touchstart': ['touchstart', 'pointerdown', 'MSPointerDown'],
|
|
524
|
+
'touchmove': ['touchmove', 'pointermove', 'MSPointerMove'],
|
|
525
|
+
'touchend': ['touchend', 'pointerup', 'MSPointerUp'],
|
|
526
|
+
'touchcancel': ['touchcancel', 'pointercancel', 'MSPointerCancel'],
|
|
527
|
+
'transitionrun': ['transitionrun', 'webkitTransitionRun'],
|
|
528
|
+
'transitionstart': ['transitionstart', 'webkitTransitionStart'],
|
|
529
|
+
'transitionend': ['transitionend', 'webkitTransitionEnd', 'oTransitionEnd', 'otransitionend', 'MSTransitionEnd'],
|
|
530
|
+
'animationstart': ['animationstart', 'webkitAnimationStart', 'oanimationstart', 'MSAnimationStart'],
|
|
531
|
+
'animationiteration': ['animationiteration', 'webkitAnimationIteration', 'oanimationiteration', 'MSAnimationIteration'],
|
|
532
|
+
'animationend': ['animationend', 'webkitAnimationEnd', 'oanimationend', 'MSAnimationEnd'],
|
|
533
|
+
'visibilitychange': ['visibilitychange', 'webkitvisibilitychange', 'mozvisibilitychange', 'msvisibilitychange'],
|
|
534
|
+
};
|
|
535
|
+
var FULLSCREEN_REQUEST_MAP = {
|
|
536
|
+
'': ['requestFullscreen'],
|
|
537
|
+
'webkit': ['webkitRequestFullscreen', 'webkitRequestFullScreen'],
|
|
538
|
+
'moz': ['mozRequestFullScreen', 'mozRequestFullscreen'],
|
|
539
|
+
'ms': ['msRequestFullscreen'],
|
|
540
|
+
'MS': ['msRequestFullscreen'],
|
|
541
|
+
};
|
|
542
|
+
function asRecord(value) {
|
|
543
|
+
return value;
|
|
544
|
+
}
|
|
545
|
+
function hasOnProperty(host, name) {
|
|
546
|
+
if (typeof host === 'undefined' || host === null)
|
|
547
|
+
return false;
|
|
548
|
+
if (typeof asRecord(host)['on' + name] !== 'undefined')
|
|
549
|
+
return true;
|
|
550
|
+
var lower = name.toLowerCase();
|
|
551
|
+
return lower !== name && typeof asRecord(host)['on' + lower] !== 'undefined';
|
|
552
|
+
}
|
|
553
|
+
function probeHosts(target) {
|
|
554
|
+
var hosts = [target];
|
|
555
|
+
if (typeof GLOBAL$3.document !== 'undefined' && target !== GLOBAL$3.document)
|
|
556
|
+
hosts.push(GLOBAL$3.document);
|
|
557
|
+
if (target !== GLOBAL$3)
|
|
558
|
+
hosts.push(GLOBAL$3);
|
|
559
|
+
return hosts;
|
|
560
|
+
}
|
|
561
|
+
function extractVendorPrefix(name) {
|
|
562
|
+
for (var i = 1; i < VENDORS.length; i++) {
|
|
563
|
+
if (name.indexOf(VENDORS[i]) === 0)
|
|
564
|
+
return VENDORS[i];
|
|
565
|
+
}
|
|
566
|
+
return '';
|
|
567
|
+
}
|
|
568
|
+
function testStyleSupport(name, styleProperty) {
|
|
569
|
+
if (typeof GLOBAL$3.document === 'undefined' || typeof GLOBAL$3.document.documentElement === 'undefined')
|
|
570
|
+
return false;
|
|
571
|
+
var style = GLOBAL$3.document.documentElement.style;
|
|
572
|
+
if (typeof style === 'undefined' || style === null)
|
|
573
|
+
return false;
|
|
574
|
+
var prefix = extractVendorPrefix(name);
|
|
575
|
+
var property;
|
|
576
|
+
if (prefix === '')
|
|
577
|
+
property = styleProperty;
|
|
578
|
+
else
|
|
579
|
+
property = prefix + styleProperty.charAt(0).toUpperCase() + styleProperty.slice(1);
|
|
580
|
+
return typeof asRecord(style)[property] !== 'undefined';
|
|
581
|
+
}
|
|
582
|
+
function testFullscreenSupport(name) {
|
|
583
|
+
if (typeof GLOBAL$3.document === 'undefined' || typeof GLOBAL$3.document.documentElement === 'undefined')
|
|
584
|
+
return false;
|
|
585
|
+
var element = GLOBAL$3.document.documentElement;
|
|
586
|
+
var methods = FULLSCREEN_REQUEST_MAP[extractVendorPrefix(name)];
|
|
587
|
+
if (typeof methods === 'undefined')
|
|
588
|
+
return false;
|
|
589
|
+
for (var i = 0; i < methods.length; i++) {
|
|
590
|
+
if (typeof asRecord(element)[methods[i]] === 'function')
|
|
591
|
+
return true;
|
|
592
|
+
}
|
|
593
|
+
return false;
|
|
594
|
+
}
|
|
595
|
+
function isEventTypeSupported(target, name) {
|
|
596
|
+
var hosts = probeHosts(target);
|
|
597
|
+
for (var i = 0; i < hosts.length; i++) {
|
|
598
|
+
if (hasOnProperty(hosts[i], name))
|
|
599
|
+
return true;
|
|
600
|
+
}
|
|
601
|
+
var lower = name.toLowerCase();
|
|
602
|
+
if (lower.indexOf('transition') > -1)
|
|
603
|
+
return testStyleSupport(name, 'transition');
|
|
604
|
+
if (lower.indexOf('animation') > -1)
|
|
605
|
+
return testStyleSupport(name, 'animation');
|
|
606
|
+
if (lower.indexOf('fullscreen') > -1)
|
|
607
|
+
return testFullscreenSupport(name);
|
|
608
|
+
return false;
|
|
609
|
+
}
|
|
610
|
+
function resolveEventType(target, type) {
|
|
611
|
+
if (target === GLOBAL$3.document && CORDOVA_DOCUMENT_EVENTS.indexOf(type) > -1)
|
|
612
|
+
return type;
|
|
613
|
+
if (typeof asRecord(target)['webkitEnterFullscreen'] === 'function' && IOS_VIDEO_FULLSCREEN_EVENTS.indexOf(type) > -1)
|
|
614
|
+
return type;
|
|
615
|
+
var candidates = typeof TYPE_ALIAS_MAP[type] !== 'undefined' ? TYPE_ALIAS_MAP[type] : [type];
|
|
616
|
+
for (var i = 0; i < candidates.length; i++) {
|
|
617
|
+
if (isEventTypeSupported(target, candidates[i]))
|
|
618
|
+
return candidates[i];
|
|
619
|
+
}
|
|
620
|
+
var hosts = probeHosts(target);
|
|
621
|
+
for (var i = 1; i < VENDORS.length; i++) {
|
|
622
|
+
for (var j = 0; j < candidates.length; j++) {
|
|
623
|
+
var name_1 = VENDORS[i] + candidates[j];
|
|
624
|
+
for (var k = 0; k < hosts.length; k++) {
|
|
625
|
+
if (hasOnProperty(hosts[k], name_1))
|
|
626
|
+
return name_1;
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
}
|
|
630
|
+
return type;
|
|
631
|
+
}
|
|
632
|
+
|
|
633
|
+
var GLOBAL$2 = getGlobal$2();
|
|
634
|
+
var SUPPORTED = {
|
|
635
|
+
once: false,
|
|
636
|
+
passive: false,
|
|
637
|
+
capture: false,
|
|
638
|
+
some: false,
|
|
639
|
+
all: false,
|
|
640
|
+
};
|
|
641
|
+
var NOOP$1 = function () {
|
|
642
|
+
};
|
|
643
|
+
function resolveProbeTarget() {
|
|
644
|
+
if (typeof GLOBAL$2.document !== 'undefined' && typeof GLOBAL$2.document.createDocumentFragment === 'function') {
|
|
645
|
+
try {
|
|
646
|
+
return GLOBAL$2.document.createDocumentFragment();
|
|
647
|
+
}
|
|
648
|
+
catch (_) {
|
|
649
|
+
}
|
|
650
|
+
}
|
|
651
|
+
if (typeof GLOBAL$2.EventTarget === 'function') {
|
|
652
|
+
try {
|
|
653
|
+
return new GLOBAL$2.EventTarget();
|
|
654
|
+
}
|
|
655
|
+
catch (_) {
|
|
656
|
+
}
|
|
657
|
+
}
|
|
658
|
+
return undefined;
|
|
659
|
+
}
|
|
660
|
+
(function detectSupportedListenerOptions() {
|
|
661
|
+
var probe = resolveProbeTarget();
|
|
662
|
+
if (typeof probe === 'undefined' || typeof probe.addEventListener !== 'function')
|
|
663
|
+
return;
|
|
664
|
+
var options = {};
|
|
665
|
+
try {
|
|
666
|
+
Object.defineProperty(options, 'once', {
|
|
667
|
+
get: function () {
|
|
668
|
+
SUPPORTED.once = true;
|
|
669
|
+
return false;
|
|
670
|
+
},
|
|
671
|
+
});
|
|
672
|
+
Object.defineProperty(options, 'passive', {
|
|
673
|
+
get: function () {
|
|
674
|
+
SUPPORTED.passive = true;
|
|
675
|
+
return false;
|
|
676
|
+
},
|
|
677
|
+
});
|
|
678
|
+
Object.defineProperty(options, 'capture', {
|
|
679
|
+
get: function () {
|
|
680
|
+
SUPPORTED.capture = true;
|
|
681
|
+
return false;
|
|
682
|
+
},
|
|
683
|
+
});
|
|
684
|
+
probe.addEventListener('test', NOOP$1, options);
|
|
685
|
+
probe.removeEventListener('test', NOOP$1, options);
|
|
686
|
+
}
|
|
687
|
+
catch (_) {
|
|
688
|
+
}
|
|
689
|
+
SUPPORTED.some = SUPPORTED.once || SUPPORTED.passive || SUPPORTED.capture;
|
|
690
|
+
SUPPORTED.all = SUPPORTED.once && SUPPORTED.passive && SUPPORTED.capture;
|
|
691
|
+
})();
|
|
692
|
+
var SUPPORTED_LISTENER_OPTIONS = SUPPORTED;
|
|
693
|
+
function normalizeListenerOptions(options) {
|
|
694
|
+
if (typeof options === 'boolean')
|
|
695
|
+
return { capture: options, once: false, passive: false, signal: undefined };
|
|
696
|
+
if (typeof options === 'object' && options !== null) {
|
|
697
|
+
return {
|
|
698
|
+
capture: options.capture === true,
|
|
699
|
+
once: options.once === true,
|
|
700
|
+
passive: options.passive === true,
|
|
701
|
+
signal: options.signal,
|
|
702
|
+
};
|
|
703
|
+
}
|
|
704
|
+
return {
|
|
705
|
+
capture: Boolean(options),
|
|
706
|
+
once: false,
|
|
707
|
+
passive: false,
|
|
708
|
+
signal: undefined
|
|
709
|
+
};
|
|
710
|
+
}
|
|
711
|
+
function toNativeListenerOptions(normalized) {
|
|
712
|
+
if (SUPPORTED.passive)
|
|
713
|
+
return {
|
|
714
|
+
capture: normalized.capture,
|
|
715
|
+
passive: normalized.passive
|
|
716
|
+
};
|
|
717
|
+
if (SUPPORTED.capture)
|
|
718
|
+
return {
|
|
719
|
+
capture: normalized.capture
|
|
720
|
+
};
|
|
721
|
+
return normalized.capture;
|
|
722
|
+
}
|
|
723
|
+
|
|
724
|
+
var GLOBAL$1$1 = getGlobal$2();
|
|
725
|
+
var TOUCH_TYPES = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];
|
|
726
|
+
var POINTER_PHASE_MAP = {
|
|
727
|
+
'pointerdown': 'start',
|
|
728
|
+
'MSPointerDown': 'start',
|
|
729
|
+
'pointermove': 'move',
|
|
730
|
+
'MSPointerMove': 'move',
|
|
731
|
+
'pointerup': 'end',
|
|
732
|
+
'MSPointerUp': 'end',
|
|
733
|
+
'pointercancel': 'cancel',
|
|
734
|
+
'MSPointerCancel': 'cancel',
|
|
735
|
+
};
|
|
736
|
+
var ACTIVE_TOUCHES = [];
|
|
737
|
+
function isTouchEventType(type) {
|
|
738
|
+
return TOUCH_TYPES.indexOf(type) > -1;
|
|
739
|
+
}
|
|
740
|
+
function isPointerEventType(type) {
|
|
741
|
+
return typeof POINTER_PHASE_MAP[type] !== 'undefined';
|
|
742
|
+
}
|
|
743
|
+
function createTouchList(touches) {
|
|
744
|
+
var list = touches.slice();
|
|
745
|
+
list.item = function (index) {
|
|
746
|
+
if (index >= 0 && index < list.length)
|
|
747
|
+
return list[index];
|
|
748
|
+
return null;
|
|
749
|
+
};
|
|
750
|
+
return list;
|
|
751
|
+
}
|
|
752
|
+
function findTouchIndex(identifier) {
|
|
753
|
+
for (var i = 0; i < ACTIVE_TOUCHES.length; i++) {
|
|
754
|
+
if (ACTIVE_TOUCHES[i].identifier === identifier)
|
|
755
|
+
return i;
|
|
756
|
+
}
|
|
757
|
+
return -1;
|
|
758
|
+
}
|
|
759
|
+
function scrollOffsetX() {
|
|
760
|
+
if (typeof GLOBAL$1$1.pageXOffset === 'number')
|
|
761
|
+
return GLOBAL$1$1.pageXOffset;
|
|
762
|
+
if (typeof GLOBAL$1$1.document !== 'undefined' && typeof GLOBAL$1$1.document.documentElement !== 'undefined')
|
|
763
|
+
return GLOBAL$1$1.document.documentElement.scrollLeft;
|
|
764
|
+
return 0;
|
|
765
|
+
}
|
|
766
|
+
function scrollOffsetY() {
|
|
767
|
+
if (typeof GLOBAL$1$1.pageYOffset === 'number')
|
|
768
|
+
return GLOBAL$1$1.pageYOffset;
|
|
769
|
+
if (typeof GLOBAL$1$1.document !== 'undefined' && typeof GLOBAL$1$1.document.documentElement !== 'undefined')
|
|
770
|
+
return GLOBAL$1$1.document.documentElement.scrollTop;
|
|
771
|
+
return 0;
|
|
772
|
+
}
|
|
773
|
+
function createSyntheticTouch(event, target) {
|
|
774
|
+
var clientX = typeof event.clientX === 'number' ? event.clientX : 0;
|
|
775
|
+
var clientY = typeof event.clientY === 'number' ? event.clientY : 0;
|
|
776
|
+
return {
|
|
777
|
+
identifier: typeof event.pointerId === 'number' ? event.pointerId : 0,
|
|
778
|
+
target: target,
|
|
779
|
+
screenX: typeof event.screenX === 'number' ? event.screenX : 0,
|
|
780
|
+
screenY: typeof event.screenY === 'number' ? event.screenY : 0,
|
|
781
|
+
clientX: clientX,
|
|
782
|
+
clientY: clientY,
|
|
783
|
+
pageX: typeof event.pageX === 'number' ? event.pageX : clientX + scrollOffsetX(),
|
|
784
|
+
pageY: typeof event.pageY === 'number' ? event.pageY : clientY + scrollOffsetY(),
|
|
785
|
+
radiusX: typeof event.width === 'number' ? event.width / 2 : 0,
|
|
786
|
+
radiusY: typeof event.height === 'number' ? event.height / 2 : 0,
|
|
787
|
+
rotationAngle: typeof event.rotation === 'number' ? event.rotation : 0,
|
|
788
|
+
force: typeof event.pressure === 'number' ? event.pressure : 0,
|
|
789
|
+
};
|
|
790
|
+
}
|
|
791
|
+
function defineTouchList(event, property, list, patches) {
|
|
792
|
+
var holder = event;
|
|
793
|
+
var had = false;
|
|
794
|
+
try {
|
|
795
|
+
had = Object.prototype.hasOwnProperty.call(event, property);
|
|
796
|
+
}
|
|
797
|
+
catch (_) {
|
|
798
|
+
}
|
|
799
|
+
patches.push({ property: property, had: had, previous: had ? holder[property] : undefined });
|
|
800
|
+
try {
|
|
801
|
+
Object.defineProperty(event, property, { value: list, configurable: true });
|
|
802
|
+
}
|
|
803
|
+
catch (_) {
|
|
804
|
+
holder[property] = list;
|
|
805
|
+
}
|
|
806
|
+
}
|
|
807
|
+
function filterByTarget(touches, target) {
|
|
808
|
+
var filtered = [];
|
|
809
|
+
for (var i = 0; i < touches.length; i++) {
|
|
810
|
+
if (touches[i].target === target)
|
|
811
|
+
filtered.push(touches[i]);
|
|
812
|
+
}
|
|
813
|
+
return filtered;
|
|
814
|
+
}
|
|
815
|
+
function synthesizeTouchEvent(event, resolvedType, patches) {
|
|
816
|
+
var phase = POINTER_PHASE_MAP[resolvedType];
|
|
817
|
+
if (typeof phase === 'undefined')
|
|
818
|
+
return;
|
|
819
|
+
var pointerEvent = event;
|
|
820
|
+
var eventTarget = event.target;
|
|
821
|
+
var index = findTouchIndex(typeof pointerEvent.pointerId === 'number' ? pointerEvent.pointerId : 0);
|
|
822
|
+
var originTarget = index > -1 ? ACTIVE_TOUCHES[index].target : eventTarget;
|
|
823
|
+
var touch = createSyntheticTouch(pointerEvent, originTarget);
|
|
824
|
+
if (phase === 'start' || phase === 'move') {
|
|
825
|
+
if (index > -1)
|
|
826
|
+
ACTIVE_TOUCHES[index] = touch;
|
|
827
|
+
else
|
|
828
|
+
ACTIVE_TOUCHES.push(touch);
|
|
829
|
+
}
|
|
830
|
+
else {
|
|
831
|
+
if (index > -1)
|
|
832
|
+
ACTIVE_TOUCHES.splice(index, 1);
|
|
833
|
+
}
|
|
834
|
+
defineTouchList(event, 'touches', createTouchList(ACTIVE_TOUCHES), patches);
|
|
835
|
+
defineTouchList(event, 'targetTouches', createTouchList(filterByTarget(ACTIVE_TOUCHES, originTarget)), patches);
|
|
836
|
+
defineTouchList(event, 'changedTouches', createTouchList([touch]), patches);
|
|
837
|
+
}
|
|
838
|
+
|
|
839
|
+
var KEY_CODE_MAP = {
|
|
840
|
+
8: 'Backspace',
|
|
841
|
+
9: 'Tab',
|
|
842
|
+
12: 'Numpad5',
|
|
843
|
+
13: 'Enter',
|
|
844
|
+
16: 'ShiftLeft',
|
|
845
|
+
17: 'ControlLeft',
|
|
846
|
+
18: 'AltLeft',
|
|
847
|
+
19: 'Pause',
|
|
848
|
+
20: 'CapsLock',
|
|
849
|
+
27: 'Escape',
|
|
850
|
+
32: 'Space',
|
|
851
|
+
33: 'PageUp',
|
|
852
|
+
34: 'PageDown',
|
|
853
|
+
35: 'End',
|
|
854
|
+
36: 'Home',
|
|
855
|
+
37: 'ArrowLeft',
|
|
856
|
+
38: 'ArrowUp',
|
|
857
|
+
39: 'ArrowRight',
|
|
858
|
+
40: 'ArrowDown',
|
|
859
|
+
45: 'Insert',
|
|
860
|
+
46: 'Delete',
|
|
861
|
+
48: 'Digit0',
|
|
862
|
+
49: 'Digit1',
|
|
863
|
+
50: 'Digit2',
|
|
864
|
+
51: 'Digit3',
|
|
865
|
+
52: 'Digit4',
|
|
866
|
+
53: 'Digit5',
|
|
867
|
+
54: 'Digit6',
|
|
868
|
+
55: 'Digit7',
|
|
869
|
+
56: 'Digit8',
|
|
870
|
+
57: 'Digit9',
|
|
871
|
+
65: 'KeyA',
|
|
872
|
+
66: 'KeyB',
|
|
873
|
+
67: 'KeyC',
|
|
874
|
+
68: 'KeyD',
|
|
875
|
+
69: 'KeyE',
|
|
876
|
+
70: 'KeyF',
|
|
877
|
+
71: 'KeyG',
|
|
878
|
+
72: 'KeyH',
|
|
879
|
+
73: 'KeyI',
|
|
880
|
+
74: 'KeyJ',
|
|
881
|
+
75: 'KeyK',
|
|
882
|
+
76: 'KeyL',
|
|
883
|
+
77: 'KeyM',
|
|
884
|
+
78: 'KeyN',
|
|
885
|
+
79: 'KeyO',
|
|
886
|
+
80: 'KeyP',
|
|
887
|
+
81: 'KeyQ',
|
|
888
|
+
82: 'KeyR',
|
|
889
|
+
83: 'KeyS',
|
|
890
|
+
84: 'KeyT',
|
|
891
|
+
85: 'KeyU',
|
|
892
|
+
86: 'KeyV',
|
|
893
|
+
87: 'KeyW',
|
|
894
|
+
88: 'KeyX',
|
|
895
|
+
89: 'KeyY',
|
|
896
|
+
90: 'KeyZ',
|
|
897
|
+
91: 'MetaLeft',
|
|
898
|
+
92: 'MetaRight',
|
|
899
|
+
93: 'ContextMenu',
|
|
900
|
+
96: 'Numpad0',
|
|
901
|
+
97: 'Numpad1',
|
|
902
|
+
98: 'Numpad2',
|
|
903
|
+
99: 'Numpad3',
|
|
904
|
+
100: 'Numpad4',
|
|
905
|
+
101: 'Numpad5',
|
|
906
|
+
102: 'Numpad6',
|
|
907
|
+
103: 'Numpad7',
|
|
908
|
+
104: 'Numpad8',
|
|
909
|
+
105: 'Numpad9',
|
|
910
|
+
106: 'NumpadMultiply',
|
|
911
|
+
107: 'NumpadAdd',
|
|
912
|
+
109: 'NumpadSubtract',
|
|
913
|
+
110: 'NumpadDecimal',
|
|
914
|
+
111: 'NumpadDivide',
|
|
915
|
+
112: 'F1',
|
|
916
|
+
113: 'F2',
|
|
917
|
+
114: 'F3',
|
|
918
|
+
115: 'F4',
|
|
919
|
+
116: 'F5',
|
|
920
|
+
117: 'F6',
|
|
921
|
+
118: 'F7',
|
|
922
|
+
119: 'F8',
|
|
923
|
+
120: 'F9',
|
|
924
|
+
121: 'F10',
|
|
925
|
+
122: 'F11',
|
|
926
|
+
123: 'F12',
|
|
927
|
+
144: 'NumLock',
|
|
928
|
+
145: 'ScrollLock',
|
|
929
|
+
186: 'Semicolon',
|
|
930
|
+
187: 'Equal',
|
|
931
|
+
188: 'Comma',
|
|
932
|
+
189: 'Minus',
|
|
933
|
+
190: 'Period',
|
|
934
|
+
191: 'Slash',
|
|
935
|
+
192: 'Backquote',
|
|
936
|
+
219: 'BracketLeft',
|
|
937
|
+
220: 'Backslash',
|
|
938
|
+
221: 'BracketRight',
|
|
939
|
+
222: 'Quote',
|
|
940
|
+
226: 'IntlBackslash',
|
|
941
|
+
};
|
|
942
|
+
|
|
943
|
+
var GLOBAL$4 = getGlobal$2();
|
|
944
|
+
var LISTENER_STORE = [];
|
|
945
|
+
var NOOP = function () {
|
|
946
|
+
};
|
|
947
|
+
// Records live on the target itself, so they are collected with it and lookups only scan
|
|
948
|
+
// that target's own listeners. Targets that reject the expando fall back to LISTENER_STORE.
|
|
949
|
+
var STORE_KEY = '__webEventKitListeners__';
|
|
950
|
+
function resolveBucket(target, create) {
|
|
951
|
+
var holder = target;
|
|
952
|
+
try {
|
|
953
|
+
var existing = holder[STORE_KEY];
|
|
954
|
+
if (typeof existing !== 'undefined' && existing !== null)
|
|
955
|
+
return existing;
|
|
956
|
+
if (!create)
|
|
957
|
+
return LISTENER_STORE;
|
|
958
|
+
var bucket = [];
|
|
959
|
+
try {
|
|
960
|
+
Object.defineProperty(target, STORE_KEY, { value: bucket, configurable: true, enumerable: false, writable: true });
|
|
961
|
+
}
|
|
962
|
+
catch (_) {
|
|
963
|
+
holder[STORE_KEY] = bucket;
|
|
964
|
+
}
|
|
965
|
+
if (holder[STORE_KEY] !== bucket)
|
|
966
|
+
return LISTENER_STORE;
|
|
967
|
+
return bucket;
|
|
968
|
+
}
|
|
969
|
+
catch (_) {
|
|
970
|
+
return LISTENER_STORE;
|
|
971
|
+
}
|
|
972
|
+
}
|
|
973
|
+
function findListenerRecord(target, type, callback, capture) {
|
|
974
|
+
var bucket = resolveBucket(target, false);
|
|
975
|
+
for (var i = 0; i < bucket.length; i++) {
|
|
976
|
+
var record = bucket[i];
|
|
977
|
+
if (record.target === target && record.type === type && record.callback === callback && record.capture === capture)
|
|
978
|
+
return record;
|
|
979
|
+
}
|
|
980
|
+
return undefined;
|
|
981
|
+
}
|
|
982
|
+
function removeListenerRecord(record) {
|
|
983
|
+
var bucket = record.bucket;
|
|
984
|
+
for (var i = 0; i < bucket.length; i++) {
|
|
985
|
+
if (bucket[i] === record) {
|
|
986
|
+
bucket.splice(i, 1);
|
|
987
|
+
return;
|
|
988
|
+
}
|
|
989
|
+
}
|
|
990
|
+
}
|
|
991
|
+
function preventDefaultPolyfill() {
|
|
992
|
+
this.returnValue = false;
|
|
993
|
+
}
|
|
994
|
+
function stopPropagationPolyfill() {
|
|
995
|
+
this.cancelBubble = true;
|
|
996
|
+
}
|
|
997
|
+
function passivePreventDefault() {
|
|
998
|
+
// Per spec, preventDefault() inside a passive listener does nothing.
|
|
999
|
+
}
|
|
1000
|
+
function invokeCallback(callback, target, event) {
|
|
1001
|
+
if (typeof callback === 'function')
|
|
1002
|
+
return callback.call(target, event);
|
|
1003
|
+
if (typeof callback === 'object' && callback !== null && typeof callback.handleEvent === 'function')
|
|
1004
|
+
return callback.handleEvent(event);
|
|
1005
|
+
}
|
|
1006
|
+
// The same Event object is handed to every listener, so any property this kit overrides has
|
|
1007
|
+
// to be put back before the next one runs — otherwise a `pointerdown` listener would observe
|
|
1008
|
+
// the `touchstart` type and synthetic touches written by a listener registered before it.
|
|
1009
|
+
function patchEventProperty(event, property, value, patches) {
|
|
1010
|
+
var holder = event;
|
|
1011
|
+
var had = false;
|
|
1012
|
+
try {
|
|
1013
|
+
had = Object.prototype.hasOwnProperty.call(event, property);
|
|
1014
|
+
}
|
|
1015
|
+
catch (_) {
|
|
1016
|
+
}
|
|
1017
|
+
patches.push({ property: property, had: had, previous: had ? holder[property] : undefined });
|
|
1018
|
+
defineEventProperty(event, property, value);
|
|
1019
|
+
}
|
|
1020
|
+
function restoreEventProperties(event, patches) {
|
|
1021
|
+
var holder = event;
|
|
1022
|
+
for (var i = patches.length - 1; i >= 0; i--) {
|
|
1023
|
+
var patch = patches[i];
|
|
1024
|
+
try {
|
|
1025
|
+
if (patch.had)
|
|
1026
|
+
defineEventProperty(event, patch.property, patch.previous);
|
|
363
1027
|
else
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
if (a < b)
|
|
368
|
-
return -1;
|
|
1028
|
+
delete holder[patch.property];
|
|
1029
|
+
}
|
|
1030
|
+
catch (_) {
|
|
369
1031
|
}
|
|
370
|
-
return 0;
|
|
371
1032
|
}
|
|
1033
|
+
patches.length = 0;
|
|
1034
|
+
}
|
|
1035
|
+
function defineEventProperty(event, property, value) {
|
|
1036
|
+
try {
|
|
1037
|
+
Object.defineProperty(event, property, { value: value, configurable: true });
|
|
1038
|
+
}
|
|
1039
|
+
catch (_) {
|
|
1040
|
+
try {
|
|
1041
|
+
event[property] = value;
|
|
1042
|
+
}
|
|
1043
|
+
catch (__) {
|
|
1044
|
+
}
|
|
1045
|
+
}
|
|
1046
|
+
}
|
|
1047
|
+
function fixLegacyEvent(event, target) {
|
|
1048
|
+
if (typeof event.currentTarget === 'undefined' || event.currentTarget === null)
|
|
1049
|
+
defineEventProperty(event, 'currentTarget', target);
|
|
1050
|
+
if ((typeof event.target === 'undefined' || event.target === null) && typeof event.srcElement !== 'undefined')
|
|
1051
|
+
defineEventProperty(event, 'target', event.srcElement);
|
|
1052
|
+
if (typeof event.preventDefault !== 'function')
|
|
1053
|
+
event.preventDefault = preventDefaultPolyfill.bind(event);
|
|
1054
|
+
if (typeof event.stopPropagation !== 'function')
|
|
1055
|
+
event.stopPropagation = stopPropagationPolyfill.bind(event);
|
|
1056
|
+
}
|
|
1057
|
+
function fixKeyboardEvent(event) {
|
|
1058
|
+
if (typeof event.keyCode === 'number' && typeof event.code === 'undefined') {
|
|
1059
|
+
var code = KEY_CODE_MAP[event.keyCode];
|
|
1060
|
+
if (typeof code === 'string')
|
|
1061
|
+
defineEventProperty(event, 'code', code);
|
|
1062
|
+
}
|
|
1063
|
+
}
|
|
1064
|
+
function createDispatcher(record) {
|
|
1065
|
+
return function (event) {
|
|
1066
|
+
if (typeof event === 'undefined')
|
|
1067
|
+
event = GLOBAL$4.event; // IE: implicit global event object
|
|
1068
|
+
if (typeof event === 'undefined' || event === null)
|
|
1069
|
+
return;
|
|
1070
|
+
if (record.released)
|
|
1071
|
+
return;
|
|
1072
|
+
fixLegacyEvent(event, record.target);
|
|
1073
|
+
if (record.once)
|
|
1074
|
+
releaseListenerRecord(record);
|
|
1075
|
+
var patches = [];
|
|
1076
|
+
if (record.passive && !SUPPORTED_LISTENER_OPTIONS.passive)
|
|
1077
|
+
patchEventProperty(event, 'preventDefault', passivePreventDefault.bind(event), patches);
|
|
1078
|
+
if (record.resolvedType !== record.type)
|
|
1079
|
+
patchEventProperty(event, 'type', record.type, patches);
|
|
1080
|
+
if (record.touch)
|
|
1081
|
+
synthesizeTouchEvent(event, record.resolvedType, patches);
|
|
1082
|
+
fixKeyboardEvent(event);
|
|
1083
|
+
try {
|
|
1084
|
+
invokeCallback(record.callback, record.target, event);
|
|
1085
|
+
}
|
|
1086
|
+
finally {
|
|
1087
|
+
restoreEventProperties(event, patches);
|
|
1088
|
+
}
|
|
1089
|
+
};
|
|
1090
|
+
}
|
|
1091
|
+
function attachNativeListener(record) {
|
|
1092
|
+
var target = record.target;
|
|
1093
|
+
if (typeof target.addEventListener === 'function') {
|
|
1094
|
+
target.addEventListener(record.resolvedType, record.wrapper, toNativeListenerOptions(record));
|
|
1095
|
+
return true;
|
|
1096
|
+
}
|
|
1097
|
+
if (typeof target.attachEvent === 'function') {
|
|
1098
|
+
target.attachEvent('on' + record.resolvedType, record.wrapper);
|
|
1099
|
+
return true;
|
|
1100
|
+
}
|
|
1101
|
+
return false;
|
|
1102
|
+
}
|
|
1103
|
+
function detachNativeListener(record) {
|
|
1104
|
+
var target = record.target;
|
|
1105
|
+
if (typeof target.removeEventListener === 'function')
|
|
1106
|
+
return target.removeEventListener(record.resolvedType, record.wrapper, toNativeListenerOptions(record));
|
|
1107
|
+
if (typeof target.detachEvent === 'function')
|
|
1108
|
+
return target.detachEvent('on' + record.resolvedType, record.wrapper);
|
|
1109
|
+
}
|
|
1110
|
+
function releaseListenerRecord(record) {
|
|
1111
|
+
if (record.released)
|
|
1112
|
+
return;
|
|
1113
|
+
record.released = true;
|
|
1114
|
+
removeListenerRecord(record);
|
|
1115
|
+
try {
|
|
1116
|
+
detachNativeListener(record);
|
|
1117
|
+
}
|
|
1118
|
+
catch (_) {
|
|
1119
|
+
}
|
|
1120
|
+
if (typeof record.signal !== 'undefined' && typeof record.onAbort === 'function' && typeof record.signal.removeEventListener === 'function') {
|
|
1121
|
+
try {
|
|
1122
|
+
record.signal.removeEventListener('abort', record.onAbort, false);
|
|
1123
|
+
}
|
|
1124
|
+
catch (_) {
|
|
1125
|
+
}
|
|
1126
|
+
}
|
|
1127
|
+
record.onAbort = undefined;
|
|
1128
|
+
}
|
|
1129
|
+
function createEventPolyfill(type, init) {
|
|
1130
|
+
try {
|
|
1131
|
+
return new Event(type, init);
|
|
1132
|
+
}
|
|
1133
|
+
catch (_) {
|
|
1134
|
+
}
|
|
1135
|
+
var event = GLOBAL$4.document.createEvent('Event');
|
|
1136
|
+
event.initEvent(type, typeof init !== 'undefined' && init.bubbles === true, typeof init !== 'undefined' && init.cancelable === true);
|
|
1137
|
+
return event;
|
|
1138
|
+
}
|
|
1139
|
+
function createCustomEventPolyfill(type, init) {
|
|
1140
|
+
try {
|
|
1141
|
+
return new CustomEvent(type, init);
|
|
1142
|
+
}
|
|
1143
|
+
catch (_) {
|
|
1144
|
+
}
|
|
1145
|
+
var event = GLOBAL$4.document.createEvent('CustomEvent');
|
|
1146
|
+
event.initCustomEvent(type, typeof init !== 'undefined' && init.bubbles === true, typeof init !== 'undefined' && init.cancelable === true, typeof init !== 'undefined' && typeof init.detail !== 'undefined' ? init.detail : null);
|
|
1147
|
+
return event;
|
|
1148
|
+
}
|
|
1149
|
+
var EventKit = {
|
|
1150
|
+
version: packageJSON$1.version,
|
|
1151
|
+
utils: {
|
|
1152
|
+
get supportedOptions() {
|
|
1153
|
+
return {
|
|
1154
|
+
once: SUPPORTED_LISTENER_OPTIONS.once,
|
|
1155
|
+
passive: SUPPORTED_LISTENER_OPTIONS.passive,
|
|
1156
|
+
capture: SUPPORTED_LISTENER_OPTIONS.capture,
|
|
1157
|
+
some: SUPPORTED_LISTENER_OPTIONS.some,
|
|
1158
|
+
all: SUPPORTED_LISTENER_OPTIONS.all,
|
|
1159
|
+
};
|
|
1160
|
+
},
|
|
1161
|
+
resolveType: resolveEventType,
|
|
1162
|
+
createEvent: createEventPolyfill,
|
|
1163
|
+
createCustomEvent: createCustomEventPolyfill,
|
|
1164
|
+
},
|
|
1165
|
+
add: function (target, type, callback, options) {
|
|
1166
|
+
if (typeof target === 'undefined' || target === null)
|
|
1167
|
+
return NOOP;
|
|
1168
|
+
if (typeof type !== 'string' || type.length === 0)
|
|
1169
|
+
return NOOP;
|
|
1170
|
+
if (typeof callback !== 'function' && (typeof callback !== 'object' || callback === null))
|
|
1171
|
+
return NOOP;
|
|
1172
|
+
var normalized = normalizeListenerOptions(options);
|
|
1173
|
+
var existing = findListenerRecord(target, type, callback, normalized.capture);
|
|
1174
|
+
// Native `addEventListener` ignores a duplicate registration, so hand back a releaser
|
|
1175
|
+
// that does nothing rather than one that would detach the first caller's listener.
|
|
1176
|
+
if (typeof existing !== 'undefined')
|
|
1177
|
+
return NOOP;
|
|
1178
|
+
if (typeof normalized.signal !== 'undefined' && normalized.signal.aborted)
|
|
1179
|
+
return NOOP;
|
|
1180
|
+
var resolvedType = resolveEventType(target, type);
|
|
1181
|
+
var bucket = resolveBucket(target, true);
|
|
1182
|
+
var record = {
|
|
1183
|
+
bucket: bucket,
|
|
1184
|
+
target: target,
|
|
1185
|
+
type: type,
|
|
1186
|
+
callback: callback,
|
|
1187
|
+
wrapper: NOOP,
|
|
1188
|
+
resolvedType: resolvedType,
|
|
1189
|
+
capture: normalized.capture,
|
|
1190
|
+
once: normalized.once,
|
|
1191
|
+
passive: normalized.passive,
|
|
1192
|
+
signal: normalized.signal,
|
|
1193
|
+
onAbort: undefined,
|
|
1194
|
+
touch: isTouchEventType(type) && isPointerEventType(resolvedType),
|
|
1195
|
+
released: false,
|
|
1196
|
+
};
|
|
1197
|
+
record.wrapper = createDispatcher(record);
|
|
1198
|
+
if (!attachNativeListener(record))
|
|
1199
|
+
return NOOP;
|
|
1200
|
+
bucket.push(record);
|
|
1201
|
+
if (typeof record.signal !== 'undefined' && typeof record.signal.addEventListener === 'function') {
|
|
1202
|
+
record.onAbort = function () {
|
|
1203
|
+
releaseListenerRecord(record);
|
|
1204
|
+
};
|
|
1205
|
+
// Engines without listener-options coerce `{once: true}` to capture, which would then
|
|
1206
|
+
// fail to match on removal; releaseListenerRecord detaches this anyway.
|
|
1207
|
+
record.signal.addEventListener('abort', record.onAbort, false);
|
|
1208
|
+
}
|
|
1209
|
+
return function () {
|
|
1210
|
+
releaseListenerRecord(record);
|
|
1211
|
+
};
|
|
1212
|
+
},
|
|
1213
|
+
remove: function (target, type, callback, options) {
|
|
1214
|
+
if (typeof target === 'undefined' || target === null)
|
|
1215
|
+
return;
|
|
1216
|
+
if (typeof type !== 'string' || type.length === 0)
|
|
1217
|
+
return;
|
|
1218
|
+
if (typeof callback !== 'function' && (typeof callback !== 'object' || callback === null))
|
|
1219
|
+
return;
|
|
1220
|
+
var normalized = normalizeListenerOptions(options);
|
|
1221
|
+
var record = findListenerRecord(target, type, callback, normalized.capture);
|
|
1222
|
+
if (typeof record !== 'undefined')
|
|
1223
|
+
return releaseListenerRecord(record);
|
|
1224
|
+
var resolvedType = resolveEventType(target, type);
|
|
1225
|
+
if (typeof target.removeEventListener === 'function')
|
|
1226
|
+
return target.removeEventListener(resolvedType, callback, toNativeListenerOptions(normalized));
|
|
1227
|
+
if (typeof target.detachEvent === 'function' && typeof callback === 'function')
|
|
1228
|
+
return target.detachEvent('on' + resolvedType, callback);
|
|
1229
|
+
},
|
|
372
1230
|
};
|
|
373
1231
|
|
|
1232
|
+
function getGlobal$1() {
|
|
1233
|
+
if (typeof globalThis !== 'undefined')
|
|
1234
|
+
return globalThis;
|
|
1235
|
+
if (typeof self !== 'undefined')
|
|
1236
|
+
return self;
|
|
1237
|
+
if (typeof window !== 'undefined')
|
|
1238
|
+
return window;
|
|
1239
|
+
if (typeof global !== 'undefined')
|
|
1240
|
+
return global;
|
|
1241
|
+
return {};
|
|
1242
|
+
}
|
|
1243
|
+
|
|
374
1244
|
function createHiddenElement(tagName, focusable) {
|
|
375
1245
|
if (focusable === void 0) { focusable = true; }
|
|
376
|
-
var
|
|
1246
|
+
var document = getGlobal$1().document;
|
|
1247
|
+
var element = document.createElement(tagName);
|
|
377
1248
|
if (typeof element.width !== 'undefined')
|
|
378
1249
|
element.width = '0';
|
|
379
1250
|
if (typeof element.height !== 'undefined')
|
|
@@ -424,116 +1295,301 @@
|
|
|
424
1295
|
return element;
|
|
425
1296
|
}
|
|
426
1297
|
|
|
427
|
-
var
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
1298
|
+
var version = "0.0.5";
|
|
1299
|
+
var packageJSON = {
|
|
1300
|
+
version: version};
|
|
1301
|
+
|
|
1302
|
+
var RTL_LANGUAGES = ['ae', 'ar', 'arc', 'bcc', 'bqi', 'ckb', 'dv', 'fa', 'glk', 'he', 'iw', 'ji', 'ku', 'mzn', 'nqo', 'pnb', 'ps', 'sd', 'ug', 'ur', 'yi'];
|
|
1303
|
+
var RTL_SCRIPTS = ['Adlm', 'Arab', 'Aran', 'Hebr', 'Mand', 'Mend', 'Nkoo', 'Rohg', 'Samr', 'Syrc', 'Thaa', 'Yezi'];
|
|
1304
|
+
var LANGUAGE_PATTERN = /^[A-Za-z]{2,8}$/;
|
|
1305
|
+
var SCRIPT_PATTERN = /^[A-Za-z]{4}$/;
|
|
1306
|
+
var REGION_PATTERN = /^(?:[A-Za-z]{2}|[0-9]{3})$/;
|
|
1307
|
+
var VARIANT_PATTERN = /^(?:[A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3})$/;
|
|
1308
|
+
var SINGLETON_PATTERN = /^[A-Za-z0-9]$/;
|
|
1309
|
+
var EXTENSION_PATTERN = /^[A-Za-z0-9]{1,8}$/;
|
|
1310
|
+
function getGlobal() {
|
|
1311
|
+
if (typeof globalThis !== 'undefined')
|
|
1312
|
+
return globalThis;
|
|
1313
|
+
if (typeof self !== 'undefined')
|
|
1314
|
+
return self;
|
|
1315
|
+
if (typeof window !== 'undefined')
|
|
1316
|
+
return window;
|
|
1317
|
+
if (typeof global !== 'undefined')
|
|
1318
|
+
return global;
|
|
1319
|
+
return {};
|
|
1320
|
+
}
|
|
1321
|
+
function freeze(values) {
|
|
1322
|
+
return typeof Object.freeze === 'function' ? Object.freeze(values) : values;
|
|
1323
|
+
}
|
|
1324
|
+
function contains(values, value) {
|
|
1325
|
+
for (var i = 0; i < values.length; i++) {
|
|
1326
|
+
if (values[i] === value)
|
|
1327
|
+
return true;
|
|
1328
|
+
}
|
|
1329
|
+
return false;
|
|
1330
|
+
}
|
|
1331
|
+
function getIntlLocaleConstructor() {
|
|
1332
|
+
if (typeof Intl === 'undefined')
|
|
1333
|
+
return undefined;
|
|
1334
|
+
var constructor = Intl.Locale;
|
|
1335
|
+
return typeof constructor === 'function' ? constructor : undefined;
|
|
1336
|
+
}
|
|
1337
|
+
function parseTag(raw) {
|
|
1338
|
+
if (raw === null || typeof raw !== 'string')
|
|
1339
|
+
return null;
|
|
1340
|
+
var value = raw.replace(/_/g, '-');
|
|
1341
|
+
if (value.length === 0)
|
|
432
1342
|
return null;
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
if (
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
if (
|
|
1343
|
+
if (value === 'C' || value.toLowerCase() === 'posix')
|
|
1344
|
+
value = 'en-US';
|
|
1345
|
+
var dot = value.indexOf('.');
|
|
1346
|
+
if (dot !== -1)
|
|
1347
|
+
value = value.slice(0, dot);
|
|
1348
|
+
var at = value.indexOf('@');
|
|
1349
|
+
if (at !== -1)
|
|
1350
|
+
value = value.slice(0, at);
|
|
1351
|
+
if (value.length === 0)
|
|
442
1352
|
return null;
|
|
443
|
-
|
|
444
|
-
if (
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
1353
|
+
var segments = value.split('-');
|
|
1354
|
+
if (LANGUAGE_PATTERN.test(segments[0]) === false)
|
|
1355
|
+
return null;
|
|
1356
|
+
var language = segments[0].toLowerCase();
|
|
1357
|
+
var index = 1;
|
|
1358
|
+
var script = null;
|
|
1359
|
+
if (index < segments.length && SCRIPT_PATTERN.test(segments[index])) {
|
|
1360
|
+
script = segments[index].charAt(0).toUpperCase() + segments[index].slice(1).toLowerCase();
|
|
1361
|
+
index++;
|
|
1362
|
+
}
|
|
1363
|
+
var region = null;
|
|
1364
|
+
if (index < segments.length && REGION_PATTERN.test(segments[index])) {
|
|
1365
|
+
region = segments[index].toUpperCase();
|
|
1366
|
+
index++;
|
|
1367
|
+
}
|
|
1368
|
+
var variants = [];
|
|
1369
|
+
while (index < segments.length && VARIANT_PATTERN.test(segments[index])) {
|
|
1370
|
+
variants.push(segments[index].toLowerCase());
|
|
1371
|
+
index++;
|
|
1372
|
+
}
|
|
1373
|
+
var extensions = [];
|
|
1374
|
+
while (index < segments.length) {
|
|
1375
|
+
var singleton = segments[index];
|
|
1376
|
+
if (SINGLETON_PATTERN.test(singleton) === false)
|
|
1377
|
+
return null;
|
|
1378
|
+
var isPrivateUse = singleton.toLowerCase() === 'x';
|
|
1379
|
+
var parts = [singleton.toLowerCase()];
|
|
1380
|
+
index++;
|
|
1381
|
+
while (index < segments.length) {
|
|
1382
|
+
var segment = segments[index];
|
|
1383
|
+
if (EXTENSION_PATTERN.test(segment) === false)
|
|
1384
|
+
return null;
|
|
1385
|
+
if (segment.length === 1 && isPrivateUse === false)
|
|
1386
|
+
break;
|
|
1387
|
+
parts.push(segment.toLowerCase());
|
|
1388
|
+
index++;
|
|
1389
|
+
}
|
|
1390
|
+
if (parts.length < 2)
|
|
1391
|
+
return null;
|
|
1392
|
+
extensions.push(parts.join('-'));
|
|
1393
|
+
}
|
|
1394
|
+
var base = [language];
|
|
1395
|
+
if (script !== null)
|
|
1396
|
+
base.push(script);
|
|
1397
|
+
if (region !== null)
|
|
1398
|
+
base.push(region);
|
|
1399
|
+
for (var i = 0; i < variants.length; i++)
|
|
1400
|
+
base.push(variants[i]);
|
|
1401
|
+
var baseName = base.join('-');
|
|
1402
|
+
return {
|
|
1403
|
+
tag: extensions.length === 0 ? baseName : baseName + '-' + extensions.join('-'),
|
|
1404
|
+
baseName: baseName,
|
|
1405
|
+
language: language,
|
|
1406
|
+
script: script,
|
|
1407
|
+
region: region,
|
|
1408
|
+
variants: freeze(variants),
|
|
1409
|
+
extensions: freeze(extensions),
|
|
1410
|
+
};
|
|
1411
|
+
}
|
|
1412
|
+
function isRTL(subtags) {
|
|
1413
|
+
if (subtags.script !== null)
|
|
1414
|
+
return contains(RTL_SCRIPTS, subtags.script);
|
|
1415
|
+
return contains(RTL_LANGUAGES, subtags.language);
|
|
1416
|
+
}
|
|
1417
|
+
function expandTag(tag) {
|
|
1418
|
+
var parsed = parseTag(tag);
|
|
1419
|
+
if (parsed === null)
|
|
1420
|
+
return freeze([]);
|
|
1421
|
+
var segments = parsed.baseName.split('-');
|
|
1422
|
+
var chain = [];
|
|
1423
|
+
for (var i = segments.length; i > 0; i--)
|
|
1424
|
+
chain.push(segments.slice(0, i).join('-'));
|
|
1425
|
+
return freeze(chain);
|
|
1426
|
+
}
|
|
1427
|
+
function toLookupKey(tag) {
|
|
1428
|
+
var parsed = parseTag(tag);
|
|
1429
|
+
return (parsed === null ? tag : parsed.baseName).toLowerCase();
|
|
1430
|
+
}
|
|
1431
|
+
function lookupTag(supported, preferred, fallback) {
|
|
1432
|
+
if (supported === null || typeof supported === 'undefined' || typeof supported.length !== 'number')
|
|
1433
|
+
return fallback;
|
|
1434
|
+
var keys = [];
|
|
1435
|
+
for (var i = 0; i < supported.length; i++)
|
|
1436
|
+
keys.push(toLookupKey(supported[i]));
|
|
1437
|
+
for (var i = 0; i < preferred.length; i++) {
|
|
1438
|
+
var chain = expandTag(preferred[i]);
|
|
1439
|
+
for (var j = 0; j < chain.length; j++) {
|
|
1440
|
+
var candidate = chain[j].toLowerCase();
|
|
1441
|
+
var prefix = candidate + '-';
|
|
1442
|
+
for (var k = 0; k < keys.length; k++) {
|
|
1443
|
+
if (keys[k] === candidate)
|
|
1444
|
+
return supported[k];
|
|
1445
|
+
}
|
|
1446
|
+
for (var k = 0; k < keys.length; k++) {
|
|
1447
|
+
if (keys[k].indexOf(prefix) === 0)
|
|
1448
|
+
return supported[k];
|
|
1449
|
+
}
|
|
1450
|
+
}
|
|
1451
|
+
}
|
|
1452
|
+
return fallback;
|
|
1453
|
+
}
|
|
1454
|
+
function resolveDirection(primary) {
|
|
1455
|
+
if (primary === null)
|
|
1456
|
+
return false;
|
|
1457
|
+
var IntlLocale = getIntlLocaleConstructor();
|
|
1458
|
+
if (typeof IntlLocale !== 'undefined') {
|
|
1459
|
+
try {
|
|
1460
|
+
var intlLocale = new IntlLocale(primary.tag);
|
|
1461
|
+
if (typeof intlLocale.getTextInfo === 'function')
|
|
1462
|
+
return intlLocale.getTextInfo().direction === 'rtl';
|
|
1463
|
+
if (typeof intlLocale.textInfo !== 'undefined')
|
|
1464
|
+
return intlLocale.textInfo.direction === 'rtl';
|
|
1465
|
+
}
|
|
1466
|
+
catch (_) {
|
|
1467
|
+
}
|
|
1468
|
+
}
|
|
1469
|
+
return isRTL(primary);
|
|
449
1470
|
}
|
|
1471
|
+
var subtags = null;
|
|
450
1472
|
var language = null;
|
|
451
|
-
var languages = [];
|
|
1473
|
+
var languages = freeze([]);
|
|
1474
|
+
var fallbacks = freeze([]);
|
|
452
1475
|
var timezone = null;
|
|
453
1476
|
var offset = 0;
|
|
454
|
-
var
|
|
455
|
-
function
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
if (
|
|
463
|
-
|
|
464
|
-
|
|
1477
|
+
var rtl = false;
|
|
1478
|
+
function resolveLanguages(candidates) {
|
|
1479
|
+
var resolved = [];
|
|
1480
|
+
var primary = null;
|
|
1481
|
+
for (var i = 0; i < candidates.length; i++) {
|
|
1482
|
+
var parsed = parseTag(candidates[i]);
|
|
1483
|
+
if (parsed === null)
|
|
1484
|
+
continue;
|
|
1485
|
+
if (contains(resolved, parsed.baseName))
|
|
1486
|
+
continue;
|
|
1487
|
+
if (primary === null)
|
|
1488
|
+
primary = parsed;
|
|
1489
|
+
resolved.push(parsed.baseName);
|
|
1490
|
+
}
|
|
1491
|
+
subtags = primary;
|
|
1492
|
+
language = primary === null ? null : primary.baseName;
|
|
1493
|
+
languages = freeze(resolved);
|
|
1494
|
+
fallbacks = primary === null ? freeze([]) : expandTag(primary.baseName);
|
|
1495
|
+
rtl = resolveDirection(primary);
|
|
1496
|
+
}
|
|
1497
|
+
function collectEnvironmentLanguages() {
|
|
1498
|
+
var candidates = [];
|
|
1499
|
+
var navigatorLike = getGlobal().navigator;
|
|
1500
|
+
if (typeof navigatorLike !== 'undefined' && navigatorLike !== null) {
|
|
1501
|
+
if (typeof navigatorLike.languages !== 'undefined' && navigatorLike.languages !== null) {
|
|
1502
|
+
for (var i = 0; i < navigatorLike.languages.length; i++)
|
|
1503
|
+
candidates.push(navigatorLike.languages[i]);
|
|
1504
|
+
}
|
|
1505
|
+
candidates.push(navigatorLike.language);
|
|
1506
|
+
candidates.push(navigatorLike.userLanguage);
|
|
1507
|
+
candidates.push(navigatorLike.browserLanguage);
|
|
1508
|
+
candidates.push(navigatorLike.systemLanguage);
|
|
1509
|
+
}
|
|
1510
|
+
if (typeof Intl !== 'undefined') {
|
|
1511
|
+
try {
|
|
1512
|
+
candidates.push(Intl.DateTimeFormat().resolvedOptions().locale);
|
|
1513
|
+
}
|
|
1514
|
+
catch (_) {
|
|
1515
|
+
}
|
|
465
1516
|
}
|
|
1517
|
+
return candidates;
|
|
466
1518
|
}
|
|
1519
|
+
var ENVIRONMENT_LANGUAGES = collectEnvironmentLanguages();
|
|
1520
|
+
resolveLanguages(ENVIRONMENT_LANGUAGES);
|
|
467
1521
|
if (typeof Intl !== 'undefined') {
|
|
468
|
-
try {
|
|
469
|
-
addLanguage(Intl.DateTimeFormat().resolvedOptions().locale);
|
|
470
|
-
}
|
|
471
|
-
catch (_) {
|
|
472
|
-
}
|
|
473
1522
|
try {
|
|
474
1523
|
timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
475
1524
|
}
|
|
476
1525
|
catch (_) {
|
|
477
1526
|
}
|
|
478
1527
|
}
|
|
479
|
-
if (typeof globalThis.navigator !== 'undefined') {
|
|
480
|
-
if (typeof globalThis.navigator.languages !== 'undefined')
|
|
481
|
-
addLanguages(globalThis.navigator.languages);
|
|
482
|
-
if (typeof globalThis.navigator.language !== 'undefined')
|
|
483
|
-
addLanguage(globalThis.navigator.language);
|
|
484
|
-
if (typeof globalThis.navigator.userLanguage !== 'undefined')
|
|
485
|
-
addLanguage(globalThis.navigator.userLanguage);
|
|
486
|
-
if (typeof globalThis.navigator.browserLanguage !== 'undefined')
|
|
487
|
-
addLanguage(globalThis.navigator.browserLanguage);
|
|
488
|
-
if (typeof globalThis.navigator.systemLanguage !== 'undefined')
|
|
489
|
-
addLanguage(globalThis.navigator.systemLanguage);
|
|
490
|
-
}
|
|
491
1528
|
try {
|
|
492
1529
|
offset = new Date().getTimezoneOffset() * -1;
|
|
493
1530
|
}
|
|
494
1531
|
catch (_) {
|
|
495
1532
|
}
|
|
496
|
-
if (typeof language === 'string') {
|
|
497
|
-
if (typeof Intl !== 'undefined' && typeof Intl.Locale !== 'undefined') {
|
|
498
|
-
try {
|
|
499
|
-
var intlLocale = new Intl.Locale(language);
|
|
500
|
-
if (typeof intlLocale.getTextInfo === 'function')
|
|
501
|
-
isRTLResolved = intlLocale.getTextInfo().direction === 'rtl';
|
|
502
|
-
else if (typeof intlLocale.textInfo !== 'undefined')
|
|
503
|
-
isRTLResolved = intlLocale.textInfo.direction === 'rtl';
|
|
504
|
-
}
|
|
505
|
-
catch (_) {
|
|
506
|
-
}
|
|
507
|
-
}
|
|
508
|
-
if (typeof isRTLResolved !== 'boolean') {
|
|
509
|
-
var matched = /^([A-Za-z]{1,8})(?:[-_][A-Za-z0-9]{1,8})*$/.exec(language);
|
|
510
|
-
if (matched !== null) {
|
|
511
|
-
var lang = matched[1].toLowerCase();
|
|
512
|
-
for (var i = 0; i < RTL_LANGUAGES.length; i++) {
|
|
513
|
-
if (RTL_LANGUAGES[i] === lang) {
|
|
514
|
-
isRTLResolved = true;
|
|
515
|
-
break;
|
|
516
|
-
}
|
|
517
|
-
}
|
|
518
|
-
}
|
|
519
|
-
}
|
|
520
|
-
}
|
|
521
1533
|
var LocaleKit = {
|
|
522
|
-
|
|
1534
|
+
version: packageJSON.version,
|
|
1535
|
+
get language() {
|
|
1536
|
+
return language;
|
|
1537
|
+
},
|
|
1538
|
+
get languages() {
|
|
1539
|
+
return languages;
|
|
1540
|
+
},
|
|
1541
|
+
set languages(value) {
|
|
1542
|
+
resolveLanguages(typeof value === 'string' ? [value] : value);
|
|
1543
|
+
},
|
|
1544
|
+
get subtags() {
|
|
1545
|
+
return subtags;
|
|
1546
|
+
},
|
|
1547
|
+
get fallbacks() {
|
|
1548
|
+
return fallbacks;
|
|
1549
|
+
},
|
|
1550
|
+
get timezone() {
|
|
1551
|
+
return timezone;
|
|
1552
|
+
},
|
|
1553
|
+
get offset() {
|
|
1554
|
+
return offset;
|
|
1555
|
+
},
|
|
1556
|
+
get rtl() {
|
|
1557
|
+
return rtl;
|
|
1558
|
+
},
|
|
1559
|
+
reset: function () {
|
|
1560
|
+
resolveLanguages(ENVIRONMENT_LANGUAGES);
|
|
1561
|
+
},
|
|
1562
|
+
parse: function (tag) {
|
|
1563
|
+
return parseTag(tag);
|
|
1564
|
+
},
|
|
1565
|
+
expand: function (tag) {
|
|
1566
|
+
return expandTag(tag);
|
|
1567
|
+
},
|
|
1568
|
+
lookup: function (supported, fallback) {
|
|
1569
|
+
return lookupTag(supported, languages, typeof fallback === 'undefined' ? null : fallback);
|
|
1570
|
+
},
|
|
1571
|
+
};
|
|
1572
|
+
if (typeof Object.freeze === 'function')
|
|
1573
|
+
Object.freeze(LocaleKit);
|
|
523
1574
|
|
|
1575
|
+
var GLOBAL$1 = getGlobal$1();
|
|
1576
|
+
var CACHE_PREFIX = 'web-launch-kit:';
|
|
524
1577
|
var TRACK_ID = 'track-id';
|
|
525
|
-
var
|
|
1578
|
+
var PRODUCT_ID = 'product-id';
|
|
526
1579
|
var TRACK_ID_CACHE_TTL = 1000 * 60 * 60;
|
|
1580
|
+
function toCacheKey(mode, query) {
|
|
1581
|
+
return CACHE_PREFIX + mode + ':' + query;
|
|
1582
|
+
}
|
|
527
1583
|
var idCache = (function () {
|
|
528
1584
|
var supportsLocalStorage;
|
|
529
1585
|
try {
|
|
530
|
-
if (typeof
|
|
1586
|
+
if (typeof GLOBAL$1.localStorage === 'undefined' || GLOBAL$1.localStorage === null) {
|
|
531
1587
|
supportsLocalStorage = false;
|
|
532
1588
|
}
|
|
533
1589
|
else {
|
|
534
1590
|
var key = '__id_cache_test__';
|
|
535
|
-
|
|
536
|
-
|
|
1591
|
+
GLOBAL$1.localStorage.setItem(key, '');
|
|
1592
|
+
GLOBAL$1.localStorage.removeItem(key);
|
|
537
1593
|
supportsLocalStorage = true;
|
|
538
1594
|
}
|
|
539
1595
|
}
|
|
@@ -544,7 +1600,7 @@
|
|
|
544
1600
|
return {
|
|
545
1601
|
get: function (mode, query) {
|
|
546
1602
|
try {
|
|
547
|
-
var item =
|
|
1603
|
+
var item = GLOBAL$1.localStorage.getItem(toCacheKey(mode, query));
|
|
548
1604
|
if (item == null)
|
|
549
1605
|
return undefined;
|
|
550
1606
|
var split = item.split('|');
|
|
@@ -552,7 +1608,7 @@
|
|
|
552
1608
|
return undefined;
|
|
553
1609
|
var expiry = +split[0];
|
|
554
1610
|
if (isNotANumber(expiry) || expiry < getNow()) {
|
|
555
|
-
|
|
1611
|
+
GLOBAL$1.localStorage.removeItem(toCacheKey(mode, query));
|
|
556
1612
|
return undefined;
|
|
557
1613
|
}
|
|
558
1614
|
return split[1];
|
|
@@ -563,7 +1619,7 @@
|
|
|
563
1619
|
},
|
|
564
1620
|
set: function (mode, query, id) {
|
|
565
1621
|
try {
|
|
566
|
-
|
|
1622
|
+
GLOBAL$1.localStorage.setItem(toCacheKey(mode, query), getNow() + TRACK_ID_CACHE_TTL + '|' + id);
|
|
567
1623
|
}
|
|
568
1624
|
catch (_) {
|
|
569
1625
|
return;
|
|
@@ -571,11 +1627,11 @@
|
|
|
571
1627
|
}
|
|
572
1628
|
};
|
|
573
1629
|
}
|
|
574
|
-
if (typeof
|
|
575
|
-
var cache_1 = new Map();
|
|
1630
|
+
if (typeof GLOBAL$1.Map !== 'undefined') {
|
|
1631
|
+
var cache_1 = new GLOBAL$1.Map();
|
|
576
1632
|
return {
|
|
577
1633
|
get: function (mode, query) {
|
|
578
|
-
var item = cache_1.get(mode
|
|
1634
|
+
var item = cache_1.get(toCacheKey(mode, query));
|
|
579
1635
|
if (typeof item === 'undefined')
|
|
580
1636
|
return undefined;
|
|
581
1637
|
var split = item.split('|');
|
|
@@ -583,20 +1639,20 @@
|
|
|
583
1639
|
return undefined;
|
|
584
1640
|
var expiry = +split[0];
|
|
585
1641
|
if (isNotANumber(expiry) || expiry < getNow()) {
|
|
586
|
-
cache_1.delete(mode
|
|
1642
|
+
cache_1.delete(toCacheKey(mode, query));
|
|
587
1643
|
return undefined;
|
|
588
1644
|
}
|
|
589
1645
|
return split[1];
|
|
590
1646
|
},
|
|
591
1647
|
set: function (mode, query, id) {
|
|
592
|
-
cache_1.set(mode
|
|
1648
|
+
cache_1.set(toCacheKey(mode, query), getNow() + TRACK_ID_CACHE_TTL + '|' + id);
|
|
593
1649
|
},
|
|
594
1650
|
};
|
|
595
1651
|
}
|
|
596
1652
|
var cache = Object.create(null);
|
|
597
1653
|
return {
|
|
598
1654
|
get: function (mode, query) {
|
|
599
|
-
var item = cache[mode
|
|
1655
|
+
var item = cache[toCacheKey(mode, query)];
|
|
600
1656
|
if (typeof item === 'undefined')
|
|
601
1657
|
return undefined;
|
|
602
1658
|
var split = item.split('|');
|
|
@@ -605,17 +1661,17 @@
|
|
|
605
1661
|
var expiry = +split[0];
|
|
606
1662
|
if (isNotANumber(expiry) || expiry < getNow()) {
|
|
607
1663
|
try {
|
|
608
|
-
delete cache[mode
|
|
1664
|
+
delete cache[toCacheKey(mode, query)];
|
|
609
1665
|
}
|
|
610
1666
|
catch (_) {
|
|
611
|
-
cache[mode
|
|
1667
|
+
cache[toCacheKey(mode, query)] = undefined;
|
|
612
1668
|
}
|
|
613
1669
|
return undefined;
|
|
614
1670
|
}
|
|
615
1671
|
return split[1];
|
|
616
1672
|
},
|
|
617
1673
|
set: function (mode, query, id) {
|
|
618
|
-
cache[mode
|
|
1674
|
+
cache[toCacheKey(mode, query)] = getNow() + TRACK_ID_CACHE_TTL + '|' + id;
|
|
619
1675
|
}
|
|
620
1676
|
};
|
|
621
1677
|
})();
|
|
@@ -629,8 +1685,8 @@
|
|
|
629
1685
|
}
|
|
630
1686
|
function requestGet(url, async) {
|
|
631
1687
|
if (async === void 0) { async = false; }
|
|
632
|
-
if (typeof
|
|
633
|
-
return
|
|
1688
|
+
if (typeof GLOBAL$1.fetch === 'function' && async) {
|
|
1689
|
+
return GLOBAL$1.fetch(url)
|
|
634
1690
|
.then(function (response) {
|
|
635
1691
|
return response.json();
|
|
636
1692
|
})
|
|
@@ -673,10 +1729,10 @@
|
|
|
673
1729
|
if (locale === candidate)
|
|
674
1730
|
break;
|
|
675
1731
|
}
|
|
676
|
-
return 'https://displaycatalog.md.mp.microsoft.com/v7.0/products/lookup?value=' +
|
|
1732
|
+
return 'https://displaycatalog.md.mp.microsoft.com/v7.0/products/lookup?value=' + encodeURIComponent(packageFamilyName) + '&market=' + encodeURIComponent(country) + '&languages=' + encodeURIComponent(locale) + '&alternateId=PackageFamilyName';
|
|
677
1733
|
}
|
|
678
1734
|
function resolveGetTrackIdURL(bundleId) {
|
|
679
|
-
return 'https://itunes.apple.com/lookup?bundleId=' +
|
|
1735
|
+
return 'https://itunes.apple.com/lookup?bundleId=' + encodeURIComponent(bundleId);
|
|
680
1736
|
}
|
|
681
1737
|
function parseGetProductIdResponse(response) {
|
|
682
1738
|
if (typeof response === 'undefined')
|
|
@@ -702,14 +1758,14 @@
|
|
|
702
1758
|
return '' + result.trackId;
|
|
703
1759
|
}
|
|
704
1760
|
function getProductId(packageFamilyName) {
|
|
705
|
-
var cache = idCache.get(
|
|
1761
|
+
var cache = idCache.get(PRODUCT_ID, packageFamilyName);
|
|
706
1762
|
if (typeof cache !== 'undefined')
|
|
707
1763
|
return cache;
|
|
708
1764
|
try {
|
|
709
1765
|
var productId = parseGetProductIdResponse(requestGet(resolveGetProductIdURL(packageFamilyName)));
|
|
710
1766
|
if (typeof productId === 'undefined')
|
|
711
1767
|
return undefined;
|
|
712
|
-
idCache.set(
|
|
1768
|
+
idCache.set(PRODUCT_ID, packageFamilyName, productId);
|
|
713
1769
|
return productId;
|
|
714
1770
|
}
|
|
715
1771
|
catch (_) {
|
|
@@ -732,7 +1788,7 @@
|
|
|
732
1788
|
}
|
|
733
1789
|
}
|
|
734
1790
|
function getProductIdAsync(packageFamilyName) {
|
|
735
|
-
var cache = idCache.get(
|
|
1791
|
+
var cache = idCache.get(PRODUCT_ID, packageFamilyName);
|
|
736
1792
|
if (typeof cache !== 'undefined')
|
|
737
1793
|
return Promise.resolve(cache);
|
|
738
1794
|
try {
|
|
@@ -741,7 +1797,7 @@
|
|
|
741
1797
|
.then(function (productId) {
|
|
742
1798
|
if (typeof productId === 'undefined')
|
|
743
1799
|
return undefined;
|
|
744
|
-
idCache.set(
|
|
1800
|
+
idCache.set(PRODUCT_ID, packageFamilyName, productId);
|
|
745
1801
|
return productId;
|
|
746
1802
|
});
|
|
747
1803
|
}
|
|
@@ -769,110 +1825,16 @@
|
|
|
769
1825
|
}
|
|
770
1826
|
|
|
771
1827
|
function getTopmostWindow() {
|
|
1828
|
+
var globalLike = getGlobal$1();
|
|
772
1829
|
try {
|
|
773
|
-
if (
|
|
774
|
-
void
|
|
775
|
-
return
|
|
1830
|
+
if (typeof globalLike.top !== 'undefined' && globalLike.top !== null && globalLike.top !== globalLike.window) {
|
|
1831
|
+
void globalLike.top.location.href;
|
|
1832
|
+
return globalLike.top;
|
|
776
1833
|
}
|
|
777
1834
|
}
|
|
778
1835
|
catch (_) {
|
|
779
1836
|
}
|
|
780
|
-
return
|
|
781
|
-
}
|
|
782
|
-
|
|
783
|
-
var IE_WRAPPER_STORE = [];
|
|
784
|
-
var VENDORS = ['', 'webkit', 'moz', 'ms', 'MS', 'o', 'O'];
|
|
785
|
-
var LEGACY_TYPE_MAP = {
|
|
786
|
-
'focus': ['focus', 'focusin'],
|
|
787
|
-
'blur': ['blur', 'focusout'],
|
|
788
|
-
};
|
|
789
|
-
function resolveVendor(target, type) {
|
|
790
|
-
var types;
|
|
791
|
-
var legacy = LEGACY_TYPE_MAP[type];
|
|
792
|
-
if (typeof legacy !== 'undefined')
|
|
793
|
-
types = legacy;
|
|
794
|
-
else
|
|
795
|
-
types = [type];
|
|
796
|
-
for (var i = 0; i < VENDORS.length; i++) {
|
|
797
|
-
for (var j = 0; j < types.length; j++) {
|
|
798
|
-
var name_1 = VENDORS[i] + types[j];
|
|
799
|
-
if (typeof target['on' + name_1] !== 'undefined')
|
|
800
|
-
return name_1;
|
|
801
|
-
}
|
|
802
|
-
}
|
|
803
|
-
return type;
|
|
804
|
-
}
|
|
805
|
-
function findIEWrapper(target, type, callback) {
|
|
806
|
-
for (var i = 0; i < IE_WRAPPER_STORE.length; i++) {
|
|
807
|
-
var wrapper = IE_WRAPPER_STORE[i];
|
|
808
|
-
if (wrapper.target === target && wrapper.type === type && wrapper.callback === callback)
|
|
809
|
-
return wrapper.wrapper;
|
|
810
|
-
}
|
|
811
|
-
return undefined;
|
|
812
|
-
}
|
|
813
|
-
function setIEWrapper(target, type, callback, wrapper) {
|
|
814
|
-
IE_WRAPPER_STORE.push({ target: target, type: type, callback: callback, wrapper: wrapper });
|
|
815
|
-
}
|
|
816
|
-
function removeIEWrapper(target, type, callback) {
|
|
817
|
-
for (var i = 0; i < IE_WRAPPER_STORE.length; i++) {
|
|
818
|
-
var wrapper = IE_WRAPPER_STORE[i];
|
|
819
|
-
if (wrapper.target === target && wrapper.type === type && wrapper.callback === callback) {
|
|
820
|
-
IE_WRAPPER_STORE.splice(i, 1);
|
|
821
|
-
return wrapper.wrapper;
|
|
822
|
-
}
|
|
823
|
-
}
|
|
824
|
-
return undefined;
|
|
825
|
-
}
|
|
826
|
-
function preventDefaultPolyfill() {
|
|
827
|
-
this.returnValue = false;
|
|
828
|
-
}
|
|
829
|
-
function stopPropagationPolyfill() {
|
|
830
|
-
this.cancelBubble = true;
|
|
831
|
-
}
|
|
832
|
-
function addEvent(target, type, callback) {
|
|
833
|
-
if (typeof target === 'undefined' || typeof type === 'undefined')
|
|
834
|
-
return;
|
|
835
|
-
type = resolveVendor(target, type);
|
|
836
|
-
if (typeof target.addEventListener === 'function') {
|
|
837
|
-
return target.addEventListener(type, callback);
|
|
838
|
-
}
|
|
839
|
-
if (typeof target.attachEvent === 'function') {
|
|
840
|
-
var existing = findIEWrapper(target, type, callback);
|
|
841
|
-
if (typeof existing === 'function')
|
|
842
|
-
return;
|
|
843
|
-
var wrapper = function (event) {
|
|
844
|
-
if (typeof event === 'undefined')
|
|
845
|
-
event = globalThis.event;
|
|
846
|
-
if (typeof event === 'undefined')
|
|
847
|
-
return;
|
|
848
|
-
try {
|
|
849
|
-
Object.defineProperty(event, 'currentTarget', { value: target, configurable: true });
|
|
850
|
-
}
|
|
851
|
-
catch (_) {
|
|
852
|
-
}
|
|
853
|
-
if (typeof event.preventDefault !== 'function')
|
|
854
|
-
event.preventDefault = preventDefaultPolyfill.bind(event);
|
|
855
|
-
if (typeof event.stopPropagation !== 'function')
|
|
856
|
-
event.stopPropagation = stopPropagationPolyfill.bind(event);
|
|
857
|
-
callback.call(target, event);
|
|
858
|
-
};
|
|
859
|
-
setIEWrapper(target, type, callback, wrapper);
|
|
860
|
-
return target.attachEvent('on' + type, wrapper);
|
|
861
|
-
}
|
|
862
|
-
}
|
|
863
|
-
function removeEvent(target, type, callback) {
|
|
864
|
-
if (typeof target === 'undefined' || typeof type === 'undefined')
|
|
865
|
-
return;
|
|
866
|
-
type = resolveVendor(target, type);
|
|
867
|
-
if (typeof target.removeEventListener === 'function') {
|
|
868
|
-
return target.removeEventListener(type, callback);
|
|
869
|
-
}
|
|
870
|
-
if (typeof target.detachEvent === 'function') {
|
|
871
|
-
var wrapper = removeIEWrapper(target, type, callback);
|
|
872
|
-
if (typeof wrapper === 'function')
|
|
873
|
-
target.detachEvent('on' + type, wrapper);
|
|
874
|
-
return;
|
|
875
|
-
}
|
|
1837
|
+
return globalLike;
|
|
876
1838
|
}
|
|
877
1839
|
|
|
878
1840
|
exports.SettingType = void 0;
|
|
@@ -943,7 +1905,8 @@
|
|
|
943
1905
|
var WINDOWS_DEFAULT_TIMEOUT = 750;
|
|
944
1906
|
var MACOS_DEFAULT_TIMEOUT = 750;
|
|
945
1907
|
var DEFAULT_TIMEOUT = 750;
|
|
946
|
-
var
|
|
1908
|
+
var GLOBAL = getGlobal$1();
|
|
1909
|
+
var NAVIGATOR = GLOBAL.navigator;
|
|
947
1910
|
var CLEANUP_INPUT_ELEMENT = null;
|
|
948
1911
|
function createTypeGuard(tag) {
|
|
949
1912
|
return function (value) {
|
|
@@ -1003,7 +1966,7 @@
|
|
|
1003
1966
|
return true;
|
|
1004
1967
|
}
|
|
1005
1968
|
function dispatchClickEvent(element, view) {
|
|
1006
|
-
if (view === void 0) { view =
|
|
1969
|
+
if (view === void 0) { view = GLOBAL; }
|
|
1007
1970
|
var fake;
|
|
1008
1971
|
try {
|
|
1009
1972
|
fake = new MouseEvent('click', {
|
|
@@ -1013,7 +1976,7 @@
|
|
|
1013
1976
|
});
|
|
1014
1977
|
}
|
|
1015
1978
|
catch (_) {
|
|
1016
|
-
fake =
|
|
1979
|
+
fake = GLOBAL.document.createEvent('MouseEvents');
|
|
1017
1980
|
fake.initMouseEvent('click', true, true, view, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
|
|
1018
1981
|
}
|
|
1019
1982
|
element.dispatchEvent(fake);
|
|
@@ -1041,11 +2004,14 @@
|
|
|
1041
2004
|
focus(top);
|
|
1042
2005
|
if (hasFocus(topDocument))
|
|
1043
2006
|
return true;
|
|
1044
|
-
|
|
1045
|
-
|
|
2007
|
+
var hadBodyTabIndex = topDocument.body.hasAttribute('tabindex');
|
|
2008
|
+
if (!hadBodyTabIndex)
|
|
2009
|
+
topDocument.body.setAttribute('tabindex', '-1');
|
|
1046
2010
|
focus(topDocument.body);
|
|
1047
2011
|
if (hasFocus(topDocument))
|
|
1048
2012
|
return true;
|
|
2013
|
+
if (!hadBodyTabIndex)
|
|
2014
|
+
topDocument.body.removeAttribute('tabindex');
|
|
1049
2015
|
var input = undefined;
|
|
1050
2016
|
try {
|
|
1051
2017
|
input = createHiddenElement('input');
|
|
@@ -1087,7 +2053,7 @@
|
|
|
1087
2053
|
function resolveFocusEventConfig() {
|
|
1088
2054
|
var top = getTopmostWindow();
|
|
1089
2055
|
var topDocument = top.document;
|
|
1090
|
-
if (typeof
|
|
2056
|
+
if (typeof GLOBAL.cordova !== 'undefined') {
|
|
1091
2057
|
return {
|
|
1092
2058
|
focus: {
|
|
1093
2059
|
target: topDocument,
|
|
@@ -1125,7 +2091,7 @@
|
|
|
1125
2091
|
};
|
|
1126
2092
|
}
|
|
1127
2093
|
}
|
|
1128
|
-
else if (typeof
|
|
2094
|
+
else if (typeof GLOBAL.document.addEventListener === 'function') {
|
|
1129
2095
|
return {
|
|
1130
2096
|
focus: {
|
|
1131
2097
|
target: top,
|
|
@@ -1165,12 +2131,12 @@
|
|
|
1165
2131
|
var anchor = undefined;
|
|
1166
2132
|
var iframe = undefined;
|
|
1167
2133
|
function open() {
|
|
1168
|
-
if (typeof
|
|
1169
|
-
if (typeof
|
|
1170
|
-
|
|
2134
|
+
if (typeof GLOBAL.cordova !== 'undefined' && GLOBAL.cordova !== null) {
|
|
2135
|
+
if (typeof GLOBAL.cordova.InAppBrowser !== 'undefined') {
|
|
2136
|
+
GLOBAL.cordova.InAppBrowser.open(url, '_system');
|
|
1171
2137
|
}
|
|
1172
|
-
else {
|
|
1173
|
-
|
|
2138
|
+
else if (typeof GLOBAL.open === 'function') {
|
|
2139
|
+
GLOBAL.open(url, '_system');
|
|
1174
2140
|
}
|
|
1175
2141
|
return;
|
|
1176
2142
|
}
|
|
@@ -1200,7 +2166,7 @@
|
|
|
1200
2166
|
iframe = createHiddenElement('iframe');
|
|
1201
2167
|
iframe.src = url;
|
|
1202
2168
|
topDocument.body.appendChild(iframe);
|
|
1203
|
-
|
|
2169
|
+
setTimeout(function () {
|
|
1204
2170
|
if (typeof iframe !== 'undefined') {
|
|
1205
2171
|
try {
|
|
1206
2172
|
topDocument.body.removeChild(iframe);
|
|
@@ -1224,9 +2190,12 @@
|
|
|
1224
2190
|
timeoutId = undefined;
|
|
1225
2191
|
}
|
|
1226
2192
|
try {
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
2193
|
+
if (typeof config.blur.target !== 'undefined' && typeof config.blur.type !== 'undefined')
|
|
2194
|
+
EventKit.remove(config.blur.target, config.blur.type, onblur);
|
|
2195
|
+
if (typeof config.focus.target !== 'undefined' && typeof config.focus.type !== 'undefined')
|
|
2196
|
+
EventKit.remove(config.focus.target, config.focus.type, onfocus);
|
|
2197
|
+
if (typeof config.visibilitychange.target !== 'undefined' && typeof config.visibilitychange.type !== 'undefined')
|
|
2198
|
+
EventKit.remove(config.visibilitychange.target, config.visibilitychange.type, onvisibilitychange);
|
|
1230
2199
|
}
|
|
1231
2200
|
catch (_) {
|
|
1232
2201
|
}
|
|
@@ -1260,8 +2229,10 @@
|
|
|
1260
2229
|
clearTimeout(timeoutId);
|
|
1261
2230
|
timeoutId = undefined;
|
|
1262
2231
|
}
|
|
1263
|
-
|
|
1264
|
-
|
|
2232
|
+
if (typeof config.blur.target !== 'undefined' && typeof config.blur.type !== 'undefined')
|
|
2233
|
+
EventKit.remove(config.blur.target, config.blur.type, onblur);
|
|
2234
|
+
if (typeof config.focus.target !== 'undefined' && typeof config.focus.type !== 'undefined')
|
|
2235
|
+
EventKit.add(config.focus.target, config.focus.type, onfocus);
|
|
1265
2236
|
}
|
|
1266
2237
|
function onfocus() {
|
|
1267
2238
|
done(true);
|
|
@@ -1272,11 +2243,13 @@
|
|
|
1272
2243
|
else
|
|
1273
2244
|
onfocus();
|
|
1274
2245
|
}
|
|
1275
|
-
timeoutId =
|
|
2246
|
+
timeoutId = setTimeout(function () {
|
|
1276
2247
|
done(false);
|
|
1277
2248
|
}, timeout);
|
|
1278
|
-
|
|
1279
|
-
|
|
2249
|
+
if (typeof config.blur.target !== 'undefined' && typeof config.blur.type !== 'undefined')
|
|
2250
|
+
EventKit.add(config.blur.target, config.blur.type, onblur);
|
|
2251
|
+
if (typeof config.visibilitychange.target !== 'undefined' && typeof config.visibilitychange.type !== 'undefined')
|
|
2252
|
+
EventKit.add(config.visibilitychange.target, config.visibilitychange.type, onvisibilitychange);
|
|
1280
2253
|
if (!hasFocus(topDocument))
|
|
1281
2254
|
restoreFocus();
|
|
1282
2255
|
try {
|
|
@@ -1478,13 +2451,22 @@
|
|
|
1478
2451
|
function isPartnerAppOnly() {
|
|
1479
2452
|
return /weibo.*weibo__[\d.]+/i.test(PlatformKit.userAgent);
|
|
1480
2453
|
}
|
|
2454
|
+
function canOpenWindowsSetting(version) {
|
|
2455
|
+
if (version.length === 0)
|
|
2456
|
+
return false;
|
|
2457
|
+
if (/^\d/.test(version) === false)
|
|
2458
|
+
return false;
|
|
2459
|
+
if (version === '95' || version === '98' || version === '2000')
|
|
2460
|
+
return false;
|
|
2461
|
+
return PlatformKit.compareVersion(version, '10') >= 0;
|
|
2462
|
+
}
|
|
1481
2463
|
function canOpenSetting() {
|
|
1482
2464
|
var os = PlatformKit.os.name;
|
|
1483
2465
|
var version = PlatformKit.os.version;
|
|
1484
2466
|
return !(os === 'unknown'
|
|
1485
2467
|
|| (os === 'android' && !canOpenIntent())
|
|
1486
2468
|
|| os === 'ios'
|
|
1487
|
-
|| (os === 'windows' && (version
|
|
2469
|
+
|| (os === 'windows' && !canOpenWindowsSetting(version))
|
|
1488
2470
|
|| (os === 'macos' && PlatformKit.compareVersion(version, '10.10') < 0));
|
|
1489
2471
|
}
|
|
1490
2472
|
function parseIntentURL(intent) {
|
|
@@ -1513,7 +2495,7 @@
|
|
|
1513
2495
|
if (typeof extras['S.browser_fallback_url'] !== 'undefined') {
|
|
1514
2496
|
var fallback = extras['S.browser_fallback_url'];
|
|
1515
2497
|
try {
|
|
1516
|
-
fallback =
|
|
2498
|
+
fallback = decodeURIComponent(fallback);
|
|
1517
2499
|
}
|
|
1518
2500
|
catch (_) {
|
|
1519
2501
|
}
|
|
@@ -1533,9 +2515,9 @@
|
|
|
1533
2515
|
if (typeof packageName !== 'undefined')
|
|
1534
2516
|
intent += 'package=' + packageName + ';';
|
|
1535
2517
|
if (typeof fallback !== 'undefined' && typeof fallback === 'string')
|
|
1536
|
-
intent += 'S.browser_fallback_url=' +
|
|
2518
|
+
intent += 'S.browser_fallback_url=' + encodeURIComponent(fallback) + ';';
|
|
1537
2519
|
else if (typeof packageName !== 'undefined')
|
|
1538
|
-
intent += 'S.browser_fallback_url=' +
|
|
2520
|
+
intent += 'S.browser_fallback_url=' + encodeURIComponent(createAppStoreURL(packageName, 'android')) + ';';
|
|
1539
2521
|
return intent + 'end';
|
|
1540
2522
|
}
|
|
1541
2523
|
function createAppStoreURL(id, os) {
|
|
@@ -1567,7 +2549,7 @@
|
|
|
1567
2549
|
}
|
|
1568
2550
|
}
|
|
1569
2551
|
function escapeURIComponentString(value) {
|
|
1570
|
-
return
|
|
2552
|
+
return encodeURIComponent(value)
|
|
1571
2553
|
.replace(/[!'()*]/g, function (char) {
|
|
1572
2554
|
return '%' + char.charCodeAt(0).toString(16);
|
|
1573
2555
|
});
|
|
@@ -1636,10 +2618,10 @@
|
|
|
1636
2618
|
return typeof NAVIGATOR !== 'undefined' && typeof NAVIGATOR.userActivation !== 'undefined' && NAVIGATOR.userActivation.isActive;
|
|
1637
2619
|
}
|
|
1638
2620
|
function canShowDirectoryPicker() {
|
|
1639
|
-
return typeof
|
|
2621
|
+
return typeof GLOBAL.showDirectoryPicker === 'function';
|
|
1640
2622
|
}
|
|
1641
2623
|
function canShowOpenFilePicker() {
|
|
1642
|
-
return typeof
|
|
2624
|
+
return typeof GLOBAL.showOpenFilePicker === 'function';
|
|
1643
2625
|
}
|
|
1644
2626
|
function isFileSystemFileHandle(handle) {
|
|
1645
2627
|
return handle.kind === 'file';
|
|
@@ -1707,7 +2689,7 @@
|
|
|
1707
2689
|
resolve(fileListToArray(module.files));
|
|
1708
2690
|
}
|
|
1709
2691
|
function onfocus() {
|
|
1710
|
-
|
|
2692
|
+
setTimeout(function () {
|
|
1711
2693
|
if (module.value.length > 0)
|
|
1712
2694
|
done(true);
|
|
1713
2695
|
else
|
|
@@ -1733,10 +2715,12 @@
|
|
|
1733
2715
|
}
|
|
1734
2716
|
else {
|
|
1735
2717
|
module.onclick = function () {
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
2718
|
+
if (typeof config.focus.target !== 'undefined' && typeof config.focus.type !== 'undefined')
|
|
2719
|
+
EventKit.add(config.focus.target, config.focus.type, onfocus);
|
|
2720
|
+
if (typeof config.visibilitychange.target !== 'undefined' && typeof config.visibilitychange.type !== 'undefined')
|
|
2721
|
+
EventKit.add(config.visibilitychange.target, config.visibilitychange.type, onvisibilitychange);
|
|
2722
|
+
setTimeout(function () {
|
|
2723
|
+
EventKit.add(topDocument, 'click', onclick);
|
|
1740
2724
|
}, 100);
|
|
1741
2725
|
CLEANUP_INPUT_ELEMENT = function () {
|
|
1742
2726
|
done(false);
|
|
@@ -1746,9 +2730,11 @@
|
|
|
1746
2730
|
function cleanup() {
|
|
1747
2731
|
CLEANUP_INPUT_ELEMENT = null;
|
|
1748
2732
|
try {
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
|
|
2733
|
+
if (typeof config.focus.target !== 'undefined' && typeof config.focus.type !== 'undefined')
|
|
2734
|
+
EventKit.remove(config.focus.target, config.focus.type, onfocus);
|
|
2735
|
+
if (typeof config.visibilitychange.target !== 'undefined' && typeof config.visibilitychange.type !== 'undefined')
|
|
2736
|
+
EventKit.remove(config.visibilitychange.target, config.visibilitychange.type, onvisibilitychange);
|
|
2737
|
+
EventKit.remove(topDocument, 'click', onclick);
|
|
1752
2738
|
}
|
|
1753
2739
|
catch (_) {
|
|
1754
2740
|
}
|
|
@@ -1818,7 +2804,7 @@
|
|
|
1818
2804
|
}
|
|
1819
2805
|
var LaunchKit = {
|
|
1820
2806
|
SettingType: exports.SettingType,
|
|
1821
|
-
version: packageJSON$
|
|
2807
|
+
version: packageJSON$3.version,
|
|
1822
2808
|
utils: {
|
|
1823
2809
|
get canOpenIntent() {
|
|
1824
2810
|
return canOpenIntent();
|
|
@@ -1866,7 +2852,12 @@
|
|
|
1866
2852
|
}
|
|
1867
2853
|
else {
|
|
1868
2854
|
tried[index] = '[function fallback]';
|
|
1869
|
-
|
|
2855
|
+
try {
|
|
2856
|
+
url();
|
|
2857
|
+
}
|
|
2858
|
+
catch (_) {
|
|
2859
|
+
return openURLSequential(index + 1);
|
|
2860
|
+
}
|
|
1870
2861
|
resolve(by);
|
|
1871
2862
|
}
|
|
1872
2863
|
}
|
|
@@ -2039,7 +3030,7 @@
|
|
|
2039
3030
|
option.id = options.id;
|
|
2040
3031
|
if (typeof options.startIn !== 'undefined')
|
|
2041
3032
|
option.startIn = options.startIn;
|
|
2042
|
-
module =
|
|
3033
|
+
module = GLOBAL.showDirectoryPicker(option);
|
|
2043
3034
|
}
|
|
2044
3035
|
else {
|
|
2045
3036
|
var input = createHiddenElement('input');
|
|
@@ -2077,7 +3068,7 @@
|
|
|
2077
3068
|
}
|
|
2078
3069
|
}
|
|
2079
3070
|
}
|
|
2080
|
-
module =
|
|
3071
|
+
module = GLOBAL.showOpenFilePicker(option);
|
|
2081
3072
|
}
|
|
2082
3073
|
else {
|
|
2083
3074
|
var input = createHiddenElement('input');
|