web-launch-kit 0.0.1 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +55 -43
- package/dist/index.d.ts +15 -1
- package/dist/launch-kit.cjs +858 -128
- 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 +858 -128
- package/dist/launch-kit.mjs.map +1 -1
- package/dist/launch-kit.umd.js +858 -128
- 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/package.json +9 -3
- package/dist/utils/event-listener-utils.d.ts +0 -8
package/dist/launch-kit.umd.js
CHANGED
|
@@ -4,14 +4,14 @@
|
|
|
4
4
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.LaunchKit = {}));
|
|
5
5
|
})(this, (function (exports) { 'use strict';
|
|
6
6
|
|
|
7
|
-
var version$
|
|
7
|
+
var version$2 = "0.0.3";
|
|
8
|
+
var packageJSON$2 = {
|
|
9
|
+
version: version$2};
|
|
10
|
+
|
|
11
|
+
var version$1 = "0.0.4";
|
|
8
12
|
var packageJSON$1 = {
|
|
9
13
|
version: version$1};
|
|
10
14
|
|
|
11
|
-
var version = "0.0.4";
|
|
12
|
-
var packageJSON = {
|
|
13
|
-
version: version};
|
|
14
|
-
|
|
15
15
|
var NAVIGATOR$1 = globalThis.navigator;
|
|
16
16
|
var USER_AGENT = typeof NAVIGATOR$1 !== 'undefined' ? NAVIGATOR$1.userAgent : '';
|
|
17
17
|
var USER_AGENT_DATA = typeof NAVIGATOR$1 !== 'undefined' ? NAVIGATOR$1.userAgentData : undefined;
|
|
@@ -300,7 +300,7 @@
|
|
|
300
300
|
}
|
|
301
301
|
ready = parseFromHighEntropyValues();
|
|
302
302
|
var PlatformKit = {
|
|
303
|
-
version: packageJSON.version,
|
|
303
|
+
version: packageJSON$1.version,
|
|
304
304
|
get ready() {
|
|
305
305
|
return ready;
|
|
306
306
|
},
|
|
@@ -371,6 +371,665 @@
|
|
|
371
371
|
}
|
|
372
372
|
};
|
|
373
373
|
|
|
374
|
+
var version = "0.0.1";
|
|
375
|
+
var packageJSON = {
|
|
376
|
+
version: version};
|
|
377
|
+
|
|
378
|
+
var VENDORS = ['', 'webkit', 'moz', 'ms', 'MS', 'o', 'O'];
|
|
379
|
+
// https://cordova.apache.org/docs/en/latest/cordova/events/events.html
|
|
380
|
+
var CORDOVA_DOCUMENT_EVENTS = ['deviceready', 'pause', 'resume', 'backbutton', 'menubutton', 'searchbutton', 'startcallbutton', 'endcallbutton', 'volumedownbutton', 'volumeupbutton', 'activated', 'cordovacallbackerror'];
|
|
381
|
+
// iOS `<video>` fullscreen events have no `on` attribute but are valid on any element exposing `webkitEnterFullscreen` — they must pass through untouched.
|
|
382
|
+
var IOS_VIDEO_FULLSCREEN_EVENTS = ['webkitbeginfullscreen', 'webkitendfullscreen', 'webkitpresentationmodechanged'];
|
|
383
|
+
var TYPE_ALIAS_MAP = {
|
|
384
|
+
'focus': ['focus', 'focusin'],
|
|
385
|
+
'blur': ['blur', 'focusout'],
|
|
386
|
+
'wheel': ['wheel', 'mousewheel', 'DOMMouseScroll'],
|
|
387
|
+
'fullscreenchange': ['fullscreenchange', 'webkitfullscreenchange', 'mozfullscreenchange', 'MSFullscreenChange', 'msfullscreenchange'],
|
|
388
|
+
'fullscreenerror': ['fullscreenerror', 'webkitfullscreenerror', 'mozfullscreenerror', 'MSFullscreenError', 'msfullscreenerror'],
|
|
389
|
+
'pointerdown': ['pointerdown', 'MSPointerDown'],
|
|
390
|
+
'pointermove': ['pointermove', 'MSPointerMove'],
|
|
391
|
+
'pointerup': ['pointerup', 'MSPointerUp'],
|
|
392
|
+
'pointercancel': ['pointercancel', 'MSPointerCancel'],
|
|
393
|
+
'pointerover': ['pointerover', 'MSPointerOver'],
|
|
394
|
+
'pointerout': ['pointerout', 'MSPointerOut'],
|
|
395
|
+
'pointerenter': ['pointerenter', 'MSPointerEnter', 'mouseenter'],
|
|
396
|
+
'pointerleave': ['pointerleave', 'MSPointerLeave', 'mouseleave'],
|
|
397
|
+
'gotpointercapture': ['gotpointercapture', 'MSGotPointerCapture'],
|
|
398
|
+
'lostpointercapture': ['lostpointercapture', 'MSLostPointerCapture'],
|
|
399
|
+
'pointerlockchange': ['pointerlockchange', 'webkitpointerlockchange', 'mozpointerlockchange', 'mspointerlockchange'],
|
|
400
|
+
'pointerlockerror': ['pointerlockerror', 'webkitpointerlockerror', 'mozpointerlockerror', 'mspointerlockerror'],
|
|
401
|
+
'touchstart': ['touchstart', 'pointerdown', 'MSPointerDown'],
|
|
402
|
+
'touchmove': ['touchmove', 'pointermove', 'MSPointerMove'],
|
|
403
|
+
'touchend': ['touchend', 'pointerup', 'MSPointerUp'],
|
|
404
|
+
'touchcancel': ['touchcancel', 'pointercancel', 'MSPointerCancel'],
|
|
405
|
+
'transitionrun': ['transitionrun', 'webkitTransitionRun'],
|
|
406
|
+
'transitionstart': ['transitionstart', 'webkitTransitionStart'],
|
|
407
|
+
'transitionend': ['transitionend', 'webkitTransitionEnd', 'oTransitionEnd', 'otransitionend', 'MSTransitionEnd'],
|
|
408
|
+
'animationstart': ['animationstart', 'webkitAnimationStart', 'oanimationstart', 'MSAnimationStart'],
|
|
409
|
+
'animationiteration': ['animationiteration', 'webkitAnimationIteration', 'oanimationiteration', 'MSAnimationIteration'],
|
|
410
|
+
'animationend': ['animationend', 'webkitAnimationEnd', 'oanimationend', 'MSAnimationEnd'],
|
|
411
|
+
'visibilitychange': ['visibilitychange', 'webkitvisibilitychange', 'mozvisibilitychange', 'msvisibilitychange'],
|
|
412
|
+
};
|
|
413
|
+
var FULLSCREEN_REQUEST_MAP = {
|
|
414
|
+
'': ['requestFullscreen'],
|
|
415
|
+
'webkit': ['webkitRequestFullscreen', 'webkitRequestFullScreen'],
|
|
416
|
+
'moz': ['mozRequestFullScreen', 'mozRequestFullscreen'],
|
|
417
|
+
'ms': ['msRequestFullscreen'],
|
|
418
|
+
'MS': ['msRequestFullscreen'],
|
|
419
|
+
};
|
|
420
|
+
function asRecord(value) {
|
|
421
|
+
return value;
|
|
422
|
+
}
|
|
423
|
+
function hasOnProperty(host, name) {
|
|
424
|
+
if (typeof host === 'undefined' || host === null)
|
|
425
|
+
return false;
|
|
426
|
+
if (typeof asRecord(host)['on' + name] !== 'undefined')
|
|
427
|
+
return true;
|
|
428
|
+
var lower = name.toLowerCase();
|
|
429
|
+
return lower !== name && typeof asRecord(host)['on' + lower] !== 'undefined';
|
|
430
|
+
}
|
|
431
|
+
function probeHosts(target) {
|
|
432
|
+
var hosts = [target];
|
|
433
|
+
if (typeof globalThis.document !== 'undefined' && target !== globalThis.document)
|
|
434
|
+
hosts.push(globalThis.document);
|
|
435
|
+
if (target !== globalThis)
|
|
436
|
+
hosts.push(globalThis);
|
|
437
|
+
return hosts;
|
|
438
|
+
}
|
|
439
|
+
function extractVendorPrefix(name) {
|
|
440
|
+
for (var i = 1; i < VENDORS.length; i++) {
|
|
441
|
+
if (name.indexOf(VENDORS[i]) === 0)
|
|
442
|
+
return VENDORS[i];
|
|
443
|
+
}
|
|
444
|
+
return '';
|
|
445
|
+
}
|
|
446
|
+
function testStyleSupport(name, styleProperty) {
|
|
447
|
+
if (typeof globalThis.document === 'undefined' || typeof globalThis.document.documentElement === 'undefined')
|
|
448
|
+
return false;
|
|
449
|
+
var style = globalThis.document.documentElement.style;
|
|
450
|
+
if (typeof style === 'undefined' || style === null)
|
|
451
|
+
return false;
|
|
452
|
+
var prefix = extractVendorPrefix(name);
|
|
453
|
+
var property;
|
|
454
|
+
if (prefix === '')
|
|
455
|
+
property = styleProperty;
|
|
456
|
+
else
|
|
457
|
+
property = prefix + styleProperty.charAt(0).toUpperCase() + styleProperty.slice(1);
|
|
458
|
+
return typeof asRecord(style)[property] !== 'undefined';
|
|
459
|
+
}
|
|
460
|
+
function testFullscreenSupport(name) {
|
|
461
|
+
if (typeof globalThis.document === 'undefined' || typeof globalThis.document.documentElement === 'undefined')
|
|
462
|
+
return false;
|
|
463
|
+
var element = globalThis.document.documentElement;
|
|
464
|
+
var methods = FULLSCREEN_REQUEST_MAP[extractVendorPrefix(name)];
|
|
465
|
+
if (typeof methods === 'undefined')
|
|
466
|
+
return false;
|
|
467
|
+
for (var i = 0; i < methods.length; i++) {
|
|
468
|
+
if (typeof asRecord(element)[methods[i]] === 'function')
|
|
469
|
+
return true;
|
|
470
|
+
}
|
|
471
|
+
return false;
|
|
472
|
+
}
|
|
473
|
+
function isEventTypeSupported(target, name) {
|
|
474
|
+
var hosts = probeHosts(target);
|
|
475
|
+
for (var i = 0; i < hosts.length; i++) {
|
|
476
|
+
if (hasOnProperty(hosts[i], name))
|
|
477
|
+
return true;
|
|
478
|
+
}
|
|
479
|
+
var lower = name.toLowerCase();
|
|
480
|
+
if (lower.indexOf('transition') > -1)
|
|
481
|
+
return testStyleSupport(name, 'transition');
|
|
482
|
+
if (lower.indexOf('animation') > -1)
|
|
483
|
+
return testStyleSupport(name, 'animation');
|
|
484
|
+
if (lower.indexOf('fullscreen') > -1)
|
|
485
|
+
return testFullscreenSupport(name);
|
|
486
|
+
return false;
|
|
487
|
+
}
|
|
488
|
+
function resolveEventType(target, type) {
|
|
489
|
+
if (target === globalThis.document && CORDOVA_DOCUMENT_EVENTS.indexOf(type) > -1)
|
|
490
|
+
return type;
|
|
491
|
+
if (typeof asRecord(target)['webkitEnterFullscreen'] === 'function' && IOS_VIDEO_FULLSCREEN_EVENTS.indexOf(type) > -1)
|
|
492
|
+
return type;
|
|
493
|
+
var candidates = typeof TYPE_ALIAS_MAP[type] !== 'undefined' ? TYPE_ALIAS_MAP[type] : [type];
|
|
494
|
+
for (var i = 0; i < candidates.length; i++) {
|
|
495
|
+
if (isEventTypeSupported(target, candidates[i]))
|
|
496
|
+
return candidates[i];
|
|
497
|
+
}
|
|
498
|
+
for (var i = 1; i < VENDORS.length; i++) {
|
|
499
|
+
for (var j = 0; j < candidates.length; j++) {
|
|
500
|
+
var name_1 = VENDORS[i] + candidates[j];
|
|
501
|
+
var hosts = probeHosts(target);
|
|
502
|
+
for (var k = 0; k < hosts.length; k++) {
|
|
503
|
+
if (hasOnProperty(hosts[k], name_1))
|
|
504
|
+
return name_1;
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
return type;
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
var SUPPORTED = {
|
|
512
|
+
once: false,
|
|
513
|
+
passive: false,
|
|
514
|
+
capture: false,
|
|
515
|
+
some: false,
|
|
516
|
+
all: false,
|
|
517
|
+
};
|
|
518
|
+
var NOOP$1 = function () {
|
|
519
|
+
};
|
|
520
|
+
function resolveProbeTarget() {
|
|
521
|
+
if (typeof globalThis.document !== 'undefined' && typeof globalThis.document.createDocumentFragment === 'function') {
|
|
522
|
+
try {
|
|
523
|
+
return globalThis.document.createDocumentFragment();
|
|
524
|
+
}
|
|
525
|
+
catch (_) {
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
if (typeof globalThis.EventTarget === 'function') {
|
|
529
|
+
try {
|
|
530
|
+
return new globalThis.EventTarget();
|
|
531
|
+
}
|
|
532
|
+
catch (_) {
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
return undefined;
|
|
536
|
+
}
|
|
537
|
+
(function detectSupportedListenerOptions() {
|
|
538
|
+
var probe = resolveProbeTarget();
|
|
539
|
+
if (typeof probe === 'undefined' || typeof probe.addEventListener !== 'function')
|
|
540
|
+
return;
|
|
541
|
+
var options = {};
|
|
542
|
+
try {
|
|
543
|
+
Object.defineProperty(options, 'once', {
|
|
544
|
+
get: function () {
|
|
545
|
+
SUPPORTED.once = true;
|
|
546
|
+
return false;
|
|
547
|
+
},
|
|
548
|
+
});
|
|
549
|
+
Object.defineProperty(options, 'passive', {
|
|
550
|
+
get: function () {
|
|
551
|
+
SUPPORTED.passive = true;
|
|
552
|
+
return false;
|
|
553
|
+
},
|
|
554
|
+
});
|
|
555
|
+
Object.defineProperty(options, 'capture', {
|
|
556
|
+
get: function () {
|
|
557
|
+
SUPPORTED.capture = true;
|
|
558
|
+
return false;
|
|
559
|
+
},
|
|
560
|
+
});
|
|
561
|
+
probe.addEventListener('test', NOOP$1, options);
|
|
562
|
+
probe.removeEventListener('test', NOOP$1, options);
|
|
563
|
+
}
|
|
564
|
+
catch (_) {
|
|
565
|
+
}
|
|
566
|
+
SUPPORTED.some = SUPPORTED.once || SUPPORTED.passive || SUPPORTED.capture;
|
|
567
|
+
SUPPORTED.all = SUPPORTED.once && SUPPORTED.passive && SUPPORTED.capture;
|
|
568
|
+
})();
|
|
569
|
+
var SUPPORTED_LISTENER_OPTIONS = SUPPORTED;
|
|
570
|
+
function normalizeListenerOptions(options) {
|
|
571
|
+
if (typeof options === 'boolean')
|
|
572
|
+
return { capture: options, once: false, passive: false, signal: undefined };
|
|
573
|
+
if (typeof options === 'object' && options !== null) {
|
|
574
|
+
return {
|
|
575
|
+
capture: options.capture === true,
|
|
576
|
+
once: options.once === true,
|
|
577
|
+
passive: options.passive === true,
|
|
578
|
+
signal: options.signal,
|
|
579
|
+
};
|
|
580
|
+
}
|
|
581
|
+
return {
|
|
582
|
+
capture: Boolean(options),
|
|
583
|
+
once: false,
|
|
584
|
+
passive: false,
|
|
585
|
+
signal: undefined
|
|
586
|
+
};
|
|
587
|
+
}
|
|
588
|
+
function toNativeListenerOptions(normalized) {
|
|
589
|
+
if (SUPPORTED.passive)
|
|
590
|
+
return {
|
|
591
|
+
capture: normalized.capture,
|
|
592
|
+
passive: normalized.passive
|
|
593
|
+
};
|
|
594
|
+
if (SUPPORTED.capture)
|
|
595
|
+
return {
|
|
596
|
+
capture: normalized.capture
|
|
597
|
+
};
|
|
598
|
+
return normalized.capture;
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
var TOUCH_TYPES = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];
|
|
602
|
+
var POINTER_PHASE_MAP = {
|
|
603
|
+
'pointerdown': 'start',
|
|
604
|
+
'MSPointerDown': 'start',
|
|
605
|
+
'pointermove': 'move',
|
|
606
|
+
'MSPointerMove': 'move',
|
|
607
|
+
'pointerup': 'end',
|
|
608
|
+
'MSPointerUp': 'end',
|
|
609
|
+
'pointercancel': 'cancel',
|
|
610
|
+
'MSPointerCancel': 'cancel',
|
|
611
|
+
};
|
|
612
|
+
var ACTIVE_TOUCHES = [];
|
|
613
|
+
function isTouchEventType(type) {
|
|
614
|
+
return TOUCH_TYPES.indexOf(type) > -1;
|
|
615
|
+
}
|
|
616
|
+
function isPointerEventType(type) {
|
|
617
|
+
return typeof POINTER_PHASE_MAP[type] !== 'undefined';
|
|
618
|
+
}
|
|
619
|
+
function createTouchList(touches) {
|
|
620
|
+
var list = touches.slice();
|
|
621
|
+
list.item = function (index) {
|
|
622
|
+
if (index >= 0 && index < list.length)
|
|
623
|
+
return list[index];
|
|
624
|
+
return null;
|
|
625
|
+
};
|
|
626
|
+
return list;
|
|
627
|
+
}
|
|
628
|
+
function findTouchIndex(identifier) {
|
|
629
|
+
for (var i = 0; i < ACTIVE_TOUCHES.length; i++) {
|
|
630
|
+
if (ACTIVE_TOUCHES[i].identifier === identifier)
|
|
631
|
+
return i;
|
|
632
|
+
}
|
|
633
|
+
return -1;
|
|
634
|
+
}
|
|
635
|
+
function scrollOffsetX() {
|
|
636
|
+
if (typeof globalThis.pageXOffset === 'number')
|
|
637
|
+
return globalThis.pageXOffset;
|
|
638
|
+
if (typeof globalThis.document !== 'undefined' && typeof globalThis.document.documentElement !== 'undefined')
|
|
639
|
+
return globalThis.document.documentElement.scrollLeft;
|
|
640
|
+
return 0;
|
|
641
|
+
}
|
|
642
|
+
function scrollOffsetY() {
|
|
643
|
+
if (typeof globalThis.pageYOffset === 'number')
|
|
644
|
+
return globalThis.pageYOffset;
|
|
645
|
+
if (typeof globalThis.document !== 'undefined' && typeof globalThis.document.documentElement !== 'undefined')
|
|
646
|
+
return globalThis.document.documentElement.scrollTop;
|
|
647
|
+
return 0;
|
|
648
|
+
}
|
|
649
|
+
function createSyntheticTouch(event, target) {
|
|
650
|
+
var clientX = typeof event.clientX === 'number' ? event.clientX : 0;
|
|
651
|
+
var clientY = typeof event.clientY === 'number' ? event.clientY : 0;
|
|
652
|
+
return {
|
|
653
|
+
identifier: typeof event.pointerId === 'number' ? event.pointerId : 0,
|
|
654
|
+
target: target,
|
|
655
|
+
screenX: typeof event.screenX === 'number' ? event.screenX : 0,
|
|
656
|
+
screenY: typeof event.screenY === 'number' ? event.screenY : 0,
|
|
657
|
+
clientX: clientX,
|
|
658
|
+
clientY: clientY,
|
|
659
|
+
pageX: typeof event.pageX === 'number' ? event.pageX : clientX + scrollOffsetX(),
|
|
660
|
+
pageY: typeof event.pageY === 'number' ? event.pageY : clientY + scrollOffsetY(),
|
|
661
|
+
radiusX: typeof event.width === 'number' ? event.width / 2 : 0,
|
|
662
|
+
radiusY: typeof event.height === 'number' ? event.height / 2 : 0,
|
|
663
|
+
rotationAngle: typeof event.rotation === 'number' ? event.rotation : 0,
|
|
664
|
+
force: typeof event.pressure === 'number' ? event.pressure : 0,
|
|
665
|
+
};
|
|
666
|
+
}
|
|
667
|
+
function defineTouchList(event, property, list) {
|
|
668
|
+
try {
|
|
669
|
+
Object.defineProperty(event, property, { value: list, configurable: true });
|
|
670
|
+
}
|
|
671
|
+
catch (_) {
|
|
672
|
+
event[property] = list;
|
|
673
|
+
}
|
|
674
|
+
}
|
|
675
|
+
function filterByTarget(touches, target) {
|
|
676
|
+
var filtered = [];
|
|
677
|
+
for (var i = 0; i < touches.length; i++) {
|
|
678
|
+
if (touches[i].target === target)
|
|
679
|
+
filtered.push(touches[i]);
|
|
680
|
+
}
|
|
681
|
+
return filtered;
|
|
682
|
+
}
|
|
683
|
+
function synthesizeTouchEvent(event, resolvedType) {
|
|
684
|
+
var phase = POINTER_PHASE_MAP[resolvedType];
|
|
685
|
+
if (typeof phase === 'undefined')
|
|
686
|
+
return;
|
|
687
|
+
var pointerEvent = event;
|
|
688
|
+
var eventTarget = event.target;
|
|
689
|
+
var index = findTouchIndex(typeof pointerEvent.pointerId === 'number' ? pointerEvent.pointerId : 0);
|
|
690
|
+
var originTarget = index > -1 ? ACTIVE_TOUCHES[index].target : eventTarget;
|
|
691
|
+
var touch = createSyntheticTouch(pointerEvent, originTarget);
|
|
692
|
+
if (phase === 'start' || phase === 'move') {
|
|
693
|
+
if (index > -1)
|
|
694
|
+
ACTIVE_TOUCHES[index] = touch;
|
|
695
|
+
else
|
|
696
|
+
ACTIVE_TOUCHES.push(touch);
|
|
697
|
+
}
|
|
698
|
+
else {
|
|
699
|
+
if (index > -1)
|
|
700
|
+
ACTIVE_TOUCHES.splice(index, 1);
|
|
701
|
+
}
|
|
702
|
+
defineTouchList(event, 'touches', createTouchList(ACTIVE_TOUCHES));
|
|
703
|
+
defineTouchList(event, 'targetTouches', createTouchList(filterByTarget(ACTIVE_TOUCHES, originTarget)));
|
|
704
|
+
defineTouchList(event, 'changedTouches', createTouchList([touch]));
|
|
705
|
+
}
|
|
706
|
+
|
|
707
|
+
var KEY_CODE_MAP = {
|
|
708
|
+
8: 'Backspace',
|
|
709
|
+
9: 'Tab',
|
|
710
|
+
12: 'Numpad5',
|
|
711
|
+
13: 'Enter',
|
|
712
|
+
16: 'ShiftLeft',
|
|
713
|
+
17: 'ControlLeft',
|
|
714
|
+
18: 'AltLeft',
|
|
715
|
+
19: 'Pause',
|
|
716
|
+
20: 'CapsLock',
|
|
717
|
+
27: 'Escape',
|
|
718
|
+
32: 'Space',
|
|
719
|
+
33: 'PageUp',
|
|
720
|
+
34: 'PageDown',
|
|
721
|
+
35: 'End',
|
|
722
|
+
36: 'Home',
|
|
723
|
+
37: 'ArrowLeft',
|
|
724
|
+
38: 'ArrowUp',
|
|
725
|
+
39: 'ArrowRight',
|
|
726
|
+
40: 'ArrowDown',
|
|
727
|
+
45: 'Insert',
|
|
728
|
+
46: 'Delete',
|
|
729
|
+
48: 'Digit0',
|
|
730
|
+
49: 'Digit1',
|
|
731
|
+
50: 'Digit2',
|
|
732
|
+
51: 'Digit3',
|
|
733
|
+
52: 'Digit4',
|
|
734
|
+
53: 'Digit5',
|
|
735
|
+
54: 'Digit6',
|
|
736
|
+
55: 'Digit7',
|
|
737
|
+
56: 'Digit8',
|
|
738
|
+
57: 'Digit9',
|
|
739
|
+
65: 'KeyA',
|
|
740
|
+
66: 'KeyB',
|
|
741
|
+
67: 'KeyC',
|
|
742
|
+
68: 'KeyD',
|
|
743
|
+
69: 'KeyE',
|
|
744
|
+
70: 'KeyF',
|
|
745
|
+
71: 'KeyG',
|
|
746
|
+
72: 'KeyH',
|
|
747
|
+
73: 'KeyI',
|
|
748
|
+
74: 'KeyJ',
|
|
749
|
+
75: 'KeyK',
|
|
750
|
+
76: 'KeyL',
|
|
751
|
+
77: 'KeyM',
|
|
752
|
+
78: 'KeyN',
|
|
753
|
+
79: 'KeyO',
|
|
754
|
+
80: 'KeyP',
|
|
755
|
+
81: 'KeyQ',
|
|
756
|
+
82: 'KeyR',
|
|
757
|
+
83: 'KeyS',
|
|
758
|
+
84: 'KeyT',
|
|
759
|
+
85: 'KeyU',
|
|
760
|
+
86: 'KeyV',
|
|
761
|
+
87: 'KeyW',
|
|
762
|
+
88: 'KeyX',
|
|
763
|
+
89: 'KeyY',
|
|
764
|
+
90: 'KeyZ',
|
|
765
|
+
91: 'MetaLeft',
|
|
766
|
+
92: 'MetaRight',
|
|
767
|
+
93: 'ContextMenu',
|
|
768
|
+
96: 'Numpad0',
|
|
769
|
+
97: 'Numpad1',
|
|
770
|
+
98: 'Numpad2',
|
|
771
|
+
99: 'Numpad3',
|
|
772
|
+
100: 'Numpad4',
|
|
773
|
+
101: 'Numpad5',
|
|
774
|
+
102: 'Numpad6',
|
|
775
|
+
103: 'Numpad7',
|
|
776
|
+
104: 'Numpad8',
|
|
777
|
+
105: 'Numpad9',
|
|
778
|
+
106: 'NumpadMultiply',
|
|
779
|
+
107: 'NumpadAdd',
|
|
780
|
+
109: 'NumpadSubtract',
|
|
781
|
+
110: 'NumpadDecimal',
|
|
782
|
+
111: 'NumpadDivide',
|
|
783
|
+
112: 'F1',
|
|
784
|
+
113: 'F2',
|
|
785
|
+
114: 'F3',
|
|
786
|
+
115: 'F4',
|
|
787
|
+
116: 'F5',
|
|
788
|
+
117: 'F6',
|
|
789
|
+
118: 'F7',
|
|
790
|
+
119: 'F8',
|
|
791
|
+
120: 'F9',
|
|
792
|
+
121: 'F10',
|
|
793
|
+
122: 'F11',
|
|
794
|
+
123: 'F12',
|
|
795
|
+
144: 'NumLock',
|
|
796
|
+
145: 'ScrollLock',
|
|
797
|
+
186: 'Semicolon',
|
|
798
|
+
187: 'Equal',
|
|
799
|
+
188: 'Comma',
|
|
800
|
+
189: 'Minus',
|
|
801
|
+
190: 'Period',
|
|
802
|
+
191: 'Slash',
|
|
803
|
+
192: 'Backquote',
|
|
804
|
+
219: 'BracketLeft',
|
|
805
|
+
220: 'Backslash',
|
|
806
|
+
221: 'BracketRight',
|
|
807
|
+
222: 'Quote',
|
|
808
|
+
226: 'IntlBackslash',
|
|
809
|
+
};
|
|
810
|
+
|
|
811
|
+
var LISTENER_STORE = [];
|
|
812
|
+
var NOOP = function () {
|
|
813
|
+
};
|
|
814
|
+
function findListenerRecord(target, type, callback, capture) {
|
|
815
|
+
for (var i = 0; i < LISTENER_STORE.length; i++) {
|
|
816
|
+
var record = LISTENER_STORE[i];
|
|
817
|
+
if (record.target === target && record.type === type && record.callback === callback && record.capture === capture)
|
|
818
|
+
return record;
|
|
819
|
+
}
|
|
820
|
+
return undefined;
|
|
821
|
+
}
|
|
822
|
+
function removeListenerRecord(record) {
|
|
823
|
+
for (var i = 0; i < LISTENER_STORE.length; i++) {
|
|
824
|
+
if (LISTENER_STORE[i] === record) {
|
|
825
|
+
LISTENER_STORE.splice(i, 1);
|
|
826
|
+
return;
|
|
827
|
+
}
|
|
828
|
+
}
|
|
829
|
+
}
|
|
830
|
+
function preventDefaultPolyfill() {
|
|
831
|
+
this.returnValue = false;
|
|
832
|
+
}
|
|
833
|
+
function stopPropagationPolyfill() {
|
|
834
|
+
this.cancelBubble = true;
|
|
835
|
+
}
|
|
836
|
+
function passivePreventDefault() {
|
|
837
|
+
// Per spec, preventDefault() inside a passive listener does nothing.
|
|
838
|
+
}
|
|
839
|
+
function invokeCallback(callback, target, event) {
|
|
840
|
+
if (typeof callback === 'function')
|
|
841
|
+
return callback.call(target, event);
|
|
842
|
+
if (typeof callback === 'object' && callback !== null && typeof callback.handleEvent === 'function')
|
|
843
|
+
return callback.handleEvent(event);
|
|
844
|
+
}
|
|
845
|
+
function defineEventProperty(event, property, value) {
|
|
846
|
+
try {
|
|
847
|
+
Object.defineProperty(event, property, { value: value, configurable: true });
|
|
848
|
+
}
|
|
849
|
+
catch (_) {
|
|
850
|
+
try {
|
|
851
|
+
event[property] = value;
|
|
852
|
+
}
|
|
853
|
+
catch (__) {
|
|
854
|
+
}
|
|
855
|
+
}
|
|
856
|
+
}
|
|
857
|
+
function fixLegacyEvent(event, target) {
|
|
858
|
+
if (typeof event.currentTarget === 'undefined' || event.currentTarget === null)
|
|
859
|
+
defineEventProperty(event, 'currentTarget', target);
|
|
860
|
+
if ((typeof event.target === 'undefined' || event.target === null) && typeof event.srcElement !== 'undefined')
|
|
861
|
+
defineEventProperty(event, 'target', event.srcElement);
|
|
862
|
+
if (typeof event.preventDefault !== 'function')
|
|
863
|
+
event.preventDefault = preventDefaultPolyfill.bind(event);
|
|
864
|
+
if (typeof event.stopPropagation !== 'function')
|
|
865
|
+
event.stopPropagation = stopPropagationPolyfill.bind(event);
|
|
866
|
+
}
|
|
867
|
+
function fixKeyboardEvent(event) {
|
|
868
|
+
if (typeof event.keyCode === 'number' && typeof event.code === 'undefined') {
|
|
869
|
+
var code = KEY_CODE_MAP[event.keyCode];
|
|
870
|
+
if (typeof code === 'string')
|
|
871
|
+
defineEventProperty(event, 'code', code);
|
|
872
|
+
}
|
|
873
|
+
}
|
|
874
|
+
function createDispatcher(record) {
|
|
875
|
+
return function (event) {
|
|
876
|
+
if (typeof event === 'undefined')
|
|
877
|
+
event = globalThis.event; // IE: implicit global event object
|
|
878
|
+
if (typeof event === 'undefined' || event === null)
|
|
879
|
+
return;
|
|
880
|
+
if (record.released)
|
|
881
|
+
return;
|
|
882
|
+
fixLegacyEvent(event, record.target);
|
|
883
|
+
if (record.once)
|
|
884
|
+
releaseListenerRecord(record);
|
|
885
|
+
if (record.passive && !SUPPORTED_LISTENER_OPTIONS.passive)
|
|
886
|
+
event.preventDefault = passivePreventDefault.bind(event);
|
|
887
|
+
if (record.resolvedType !== record.type)
|
|
888
|
+
defineEventProperty(event, 'type', record.type);
|
|
889
|
+
if (record.touch)
|
|
890
|
+
synthesizeTouchEvent(event, record.resolvedType);
|
|
891
|
+
fixKeyboardEvent(event);
|
|
892
|
+
invokeCallback(record.callback, record.target, event);
|
|
893
|
+
};
|
|
894
|
+
}
|
|
895
|
+
function attachNativeListener(record) {
|
|
896
|
+
var target = record.target;
|
|
897
|
+
if (typeof target.addEventListener === 'function') {
|
|
898
|
+
target.addEventListener(record.resolvedType, record.wrapper, toNativeListenerOptions(record));
|
|
899
|
+
return true;
|
|
900
|
+
}
|
|
901
|
+
if (typeof target.attachEvent === 'function') {
|
|
902
|
+
target.attachEvent('on' + record.resolvedType, record.wrapper);
|
|
903
|
+
return true;
|
|
904
|
+
}
|
|
905
|
+
return false;
|
|
906
|
+
}
|
|
907
|
+
function detachNativeListener(record) {
|
|
908
|
+
var target = record.target;
|
|
909
|
+
if (typeof target.removeEventListener === 'function')
|
|
910
|
+
return target.removeEventListener(record.resolvedType, record.wrapper, toNativeListenerOptions(record));
|
|
911
|
+
if (typeof target.detachEvent === 'function')
|
|
912
|
+
return target.detachEvent('on' + record.resolvedType, record.wrapper);
|
|
913
|
+
}
|
|
914
|
+
function releaseListenerRecord(record) {
|
|
915
|
+
if (record.released)
|
|
916
|
+
return;
|
|
917
|
+
record.released = true;
|
|
918
|
+
removeListenerRecord(record);
|
|
919
|
+
try {
|
|
920
|
+
detachNativeListener(record);
|
|
921
|
+
}
|
|
922
|
+
catch (_) {
|
|
923
|
+
}
|
|
924
|
+
if (typeof record.signal !== 'undefined' && typeof record.onAbort === 'function' && typeof record.signal.removeEventListener === 'function') {
|
|
925
|
+
try {
|
|
926
|
+
record.signal.removeEventListener('abort', record.onAbort);
|
|
927
|
+
}
|
|
928
|
+
catch (_) {
|
|
929
|
+
}
|
|
930
|
+
}
|
|
931
|
+
record.onAbort = undefined;
|
|
932
|
+
}
|
|
933
|
+
function createEventPolyfill(type, init) {
|
|
934
|
+
try {
|
|
935
|
+
return new Event(type, init);
|
|
936
|
+
}
|
|
937
|
+
catch (_) {
|
|
938
|
+
}
|
|
939
|
+
var event = globalThis.document.createEvent('Event');
|
|
940
|
+
event.initEvent(type, typeof init !== 'undefined' && init.bubbles === true, typeof init !== 'undefined' && init.cancelable === true);
|
|
941
|
+
return event;
|
|
942
|
+
}
|
|
943
|
+
function createCustomEventPolyfill(type, init) {
|
|
944
|
+
try {
|
|
945
|
+
return new CustomEvent(type, init);
|
|
946
|
+
}
|
|
947
|
+
catch (_) {
|
|
948
|
+
}
|
|
949
|
+
var event = globalThis.document.createEvent('CustomEvent');
|
|
950
|
+
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);
|
|
951
|
+
return event;
|
|
952
|
+
}
|
|
953
|
+
var EventKit = {
|
|
954
|
+
version: packageJSON.version,
|
|
955
|
+
utils: {
|
|
956
|
+
get supportedOptions() {
|
|
957
|
+
return {
|
|
958
|
+
once: SUPPORTED_LISTENER_OPTIONS.once,
|
|
959
|
+
passive: SUPPORTED_LISTENER_OPTIONS.passive,
|
|
960
|
+
capture: SUPPORTED_LISTENER_OPTIONS.capture,
|
|
961
|
+
some: SUPPORTED_LISTENER_OPTIONS.some,
|
|
962
|
+
all: SUPPORTED_LISTENER_OPTIONS.all,
|
|
963
|
+
};
|
|
964
|
+
},
|
|
965
|
+
resolveType: resolveEventType,
|
|
966
|
+
createEvent: createEventPolyfill,
|
|
967
|
+
createCustomEvent: createCustomEventPolyfill,
|
|
968
|
+
},
|
|
969
|
+
add: function (target, type, callback, options) {
|
|
970
|
+
if (typeof target === 'undefined' || target === null)
|
|
971
|
+
return NOOP;
|
|
972
|
+
if (typeof type !== 'string' || type.length === 0)
|
|
973
|
+
return NOOP;
|
|
974
|
+
if (typeof callback !== 'function' && (typeof callback !== 'object' || callback === null))
|
|
975
|
+
return NOOP;
|
|
976
|
+
var normalized = normalizeListenerOptions(options);
|
|
977
|
+
var existing = findListenerRecord(target, type, callback, normalized.capture);
|
|
978
|
+
if (typeof existing !== 'undefined') {
|
|
979
|
+
return function () {
|
|
980
|
+
releaseListenerRecord(existing);
|
|
981
|
+
};
|
|
982
|
+
}
|
|
983
|
+
if (typeof normalized.signal !== 'undefined' && normalized.signal.aborted)
|
|
984
|
+
return NOOP;
|
|
985
|
+
var resolvedType = resolveEventType(target, type);
|
|
986
|
+
var record = {
|
|
987
|
+
target: target,
|
|
988
|
+
type: type,
|
|
989
|
+
callback: callback,
|
|
990
|
+
wrapper: NOOP,
|
|
991
|
+
resolvedType: resolvedType,
|
|
992
|
+
capture: normalized.capture,
|
|
993
|
+
once: normalized.once,
|
|
994
|
+
passive: normalized.passive,
|
|
995
|
+
signal: normalized.signal,
|
|
996
|
+
onAbort: undefined,
|
|
997
|
+
touch: isTouchEventType(type) && isPointerEventType(resolvedType),
|
|
998
|
+
released: false,
|
|
999
|
+
};
|
|
1000
|
+
record.wrapper = createDispatcher(record);
|
|
1001
|
+
if (!attachNativeListener(record))
|
|
1002
|
+
return NOOP;
|
|
1003
|
+
LISTENER_STORE.push(record);
|
|
1004
|
+
if (typeof record.signal !== 'undefined' && typeof record.signal.addEventListener === 'function') {
|
|
1005
|
+
record.onAbort = function () {
|
|
1006
|
+
releaseListenerRecord(record);
|
|
1007
|
+
};
|
|
1008
|
+
record.signal.addEventListener('abort', record.onAbort, { once: true });
|
|
1009
|
+
}
|
|
1010
|
+
return function () {
|
|
1011
|
+
releaseListenerRecord(record);
|
|
1012
|
+
};
|
|
1013
|
+
},
|
|
1014
|
+
remove: function (target, type, callback, options) {
|
|
1015
|
+
if (typeof target === 'undefined' || target === null)
|
|
1016
|
+
return;
|
|
1017
|
+
if (typeof type !== 'string' || type.length === 0)
|
|
1018
|
+
return;
|
|
1019
|
+
if (typeof callback !== 'function' && (typeof callback !== 'object' || callback === null))
|
|
1020
|
+
return;
|
|
1021
|
+
var normalized = normalizeListenerOptions(options);
|
|
1022
|
+
var record = findListenerRecord(target, type, callback, normalized.capture);
|
|
1023
|
+
if (typeof record !== 'undefined')
|
|
1024
|
+
return releaseListenerRecord(record);
|
|
1025
|
+
var resolvedType = resolveEventType(target, type);
|
|
1026
|
+
if (typeof target.removeEventListener === 'function')
|
|
1027
|
+
return target.removeEventListener(resolvedType, callback, toNativeListenerOptions(normalized));
|
|
1028
|
+
if (typeof target.detachEvent === 'function' && typeof callback === 'function')
|
|
1029
|
+
return target.detachEvent('on' + resolvedType, callback);
|
|
1030
|
+
},
|
|
1031
|
+
};
|
|
1032
|
+
|
|
374
1033
|
function createHiddenElement(tagName, focusable) {
|
|
375
1034
|
if (focusable === void 0) { focusable = true; }
|
|
376
1035
|
var element = globalThis.document.createElement(tagName);
|
|
@@ -780,101 +1439,6 @@
|
|
|
780
1439
|
return globalThis;
|
|
781
1440
|
}
|
|
782
1441
|
|
|
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
|
-
}
|
|
876
|
-
}
|
|
877
|
-
|
|
878
1442
|
exports.SettingType = void 0;
|
|
879
1443
|
(function (SettingType) {
|
|
880
1444
|
SettingType["General"] = "general";
|
|
@@ -942,7 +1506,7 @@
|
|
|
942
1506
|
var IOS_DEFAULT_TIMEOUT = 2000;
|
|
943
1507
|
var WINDOWS_DEFAULT_TIMEOUT = 750;
|
|
944
1508
|
var MACOS_DEFAULT_TIMEOUT = 750;
|
|
945
|
-
var
|
|
1509
|
+
var DEFAULT_TIMEOUT = 750;
|
|
946
1510
|
var NAVIGATOR = globalThis.navigator;
|
|
947
1511
|
var CLEANUP_INPUT_ELEMENT = null;
|
|
948
1512
|
function createTypeGuard(tag) {
|
|
@@ -976,7 +1540,7 @@
|
|
|
976
1540
|
case 'macos':
|
|
977
1541
|
return MACOS_DEFAULT_TIMEOUT;
|
|
978
1542
|
default:
|
|
979
|
-
return
|
|
1543
|
+
return DEFAULT_TIMEOUT;
|
|
980
1544
|
}
|
|
981
1545
|
}
|
|
982
1546
|
function isDocumentHidden() {
|
|
@@ -1082,7 +1646,7 @@
|
|
|
1082
1646
|
return hasFocus(topDocument);
|
|
1083
1647
|
}
|
|
1084
1648
|
function stripURL(value) {
|
|
1085
|
-
return
|
|
1649
|
+
return isURL(value) ? value.toString() : value;
|
|
1086
1650
|
}
|
|
1087
1651
|
function resolveFocusEventConfig() {
|
|
1088
1652
|
var top = getTopmostWindow();
|
|
@@ -1224,9 +1788,12 @@
|
|
|
1224
1788
|
timeoutId = undefined;
|
|
1225
1789
|
}
|
|
1226
1790
|
try {
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1791
|
+
if (typeof config.blur.target !== 'undefined' && typeof config.blur.type !== 'undefined')
|
|
1792
|
+
EventKit.remove(config.blur.target, config.blur.type, onblur);
|
|
1793
|
+
if (typeof config.focus.target !== 'undefined' && typeof config.focus.type !== 'undefined')
|
|
1794
|
+
EventKit.remove(config.focus.target, config.focus.type, onfocus);
|
|
1795
|
+
if (typeof config.visibilitychange.target !== 'undefined' && typeof config.visibilitychange.type !== 'undefined')
|
|
1796
|
+
EventKit.remove(config.visibilitychange.target, config.visibilitychange.type, onvisibilitychange);
|
|
1230
1797
|
}
|
|
1231
1798
|
catch (_) {
|
|
1232
1799
|
}
|
|
@@ -1260,8 +1827,10 @@
|
|
|
1260
1827
|
clearTimeout(timeoutId);
|
|
1261
1828
|
timeoutId = undefined;
|
|
1262
1829
|
}
|
|
1263
|
-
|
|
1264
|
-
|
|
1830
|
+
if (typeof config.blur.target !== 'undefined' && typeof config.blur.type !== 'undefined')
|
|
1831
|
+
EventKit.remove(config.blur.target, config.blur.type, onfocus);
|
|
1832
|
+
if (typeof config.focus.target !== 'undefined' && typeof config.focus.type !== 'undefined')
|
|
1833
|
+
EventKit.add(config.focus.target, config.focus.type, onfocus);
|
|
1265
1834
|
}
|
|
1266
1835
|
function onfocus() {
|
|
1267
1836
|
done(true);
|
|
@@ -1275,8 +1844,10 @@
|
|
|
1275
1844
|
timeoutId = globalThis.setTimeout(function () {
|
|
1276
1845
|
done(false);
|
|
1277
1846
|
}, timeout);
|
|
1278
|
-
|
|
1279
|
-
|
|
1847
|
+
if (typeof config.blur.target !== 'undefined' && typeof config.blur.type !== 'undefined')
|
|
1848
|
+
EventKit.add(config.blur.target, config.blur.type, onblur);
|
|
1849
|
+
if (typeof config.visibilitychange.target !== 'undefined' && typeof config.visibilitychange.type !== 'undefined')
|
|
1850
|
+
EventKit.add(config.visibilitychange.target, config.visibilitychange.type, onvisibilitychange);
|
|
1280
1851
|
if (!hasFocus(topDocument))
|
|
1281
1852
|
restoreFocus();
|
|
1282
1853
|
try {
|
|
@@ -1296,6 +1867,8 @@
|
|
|
1296
1867
|
var fallback;
|
|
1297
1868
|
var allowAppStore;
|
|
1298
1869
|
var allowWebStore;
|
|
1870
|
+
var allowScheme;
|
|
1871
|
+
var assumeAllowedInApp;
|
|
1299
1872
|
var timeout;
|
|
1300
1873
|
var intent;
|
|
1301
1874
|
var packageName;
|
|
@@ -1312,8 +1885,10 @@
|
|
|
1312
1885
|
scheme = stripURL(option.android.scheme);
|
|
1313
1886
|
fallback = stripURL(option.android.fallback);
|
|
1314
1887
|
packageName = option.android.packageName;
|
|
1888
|
+
assumeAllowedInApp = option.android.assumeAllowedInApp === true;
|
|
1315
1889
|
allowAppStore = option.android.allowAppStore;
|
|
1316
1890
|
allowWebStore = option.android.allowWebStore;
|
|
1891
|
+
allowScheme = canOpenScheme(assumeAllowedInApp);
|
|
1317
1892
|
timeout = option.android.timeout;
|
|
1318
1893
|
if (typeof intent !== 'undefined' && (typeof scheme === 'undefined' || typeof packageName === 'undefined' || typeof fallback === 'undefined')) {
|
|
1319
1894
|
var parsed = parseIntentURL(intent);
|
|
@@ -1330,12 +1905,12 @@
|
|
|
1330
1905
|
timeout = ANDROID_DEFAULT_TIMEOUT;
|
|
1331
1906
|
if (typeof intent !== 'undefined' && canOpenIntent())
|
|
1332
1907
|
resolved.push(['intent', intent]);
|
|
1333
|
-
if (typeof scheme !== 'undefined')
|
|
1908
|
+
if (typeof scheme !== 'undefined' && allowScheme)
|
|
1334
1909
|
resolved.push(['scheme', scheme]);
|
|
1335
1910
|
if (typeof fallback !== 'undefined')
|
|
1336
1911
|
resolved.push(['fallback', fallback]);
|
|
1337
1912
|
if (typeof packageName !== 'undefined') {
|
|
1338
|
-
if (allowAppStore)
|
|
1913
|
+
if (allowAppStore && allowScheme)
|
|
1339
1914
|
resolved.push(['store', createAppStoreURL(packageName, os)]);
|
|
1340
1915
|
if (allowWebStore)
|
|
1341
1916
|
resolved.push(['store', createWebStoreURL(packageName, os)]);
|
|
@@ -1349,21 +1924,23 @@
|
|
|
1349
1924
|
fallback = stripURL(option.ios.fallback);
|
|
1350
1925
|
bundleId = option.ios.bundleId;
|
|
1351
1926
|
trackId = option.ios.trackId;
|
|
1927
|
+
assumeAllowedInApp = option.ios.assumeAllowedInApp === true;
|
|
1352
1928
|
allowAppStore = option.ios.allowAppStore;
|
|
1353
1929
|
allowWebStore = option.ios.allowWebStore;
|
|
1930
|
+
allowScheme = canOpenScheme(assumeAllowedInApp);
|
|
1354
1931
|
timeout = option.ios.timeout;
|
|
1355
1932
|
if (typeof bundleId !== 'undefined' && typeof trackId === 'undefined')
|
|
1356
1933
|
trackId = getTrackId(bundleId);
|
|
1357
1934
|
if (typeof timeout === 'undefined')
|
|
1358
1935
|
timeout = IOS_DEFAULT_TIMEOUT;
|
|
1359
|
-
if (typeof universal !== 'undefined' && canOpenUniversal())
|
|
1936
|
+
if (typeof universal !== 'undefined' && canOpenUniversal(assumeAllowedInApp))
|
|
1360
1937
|
resolved.push(['universal', universal]);
|
|
1361
|
-
if (typeof scheme !== 'undefined')
|
|
1938
|
+
if (typeof scheme !== 'undefined' && allowScheme)
|
|
1362
1939
|
resolved.push(['scheme', scheme]);
|
|
1363
1940
|
if (typeof fallback !== 'undefined')
|
|
1364
1941
|
resolved.push(['fallback', fallback]);
|
|
1365
1942
|
if (typeof trackId !== 'undefined') {
|
|
1366
|
-
if (allowAppStore)
|
|
1943
|
+
if (allowAppStore && allowScheme)
|
|
1367
1944
|
resolved.push(['store', createAppStoreURL(trackId, os)]);
|
|
1368
1945
|
if (allowWebStore)
|
|
1369
1946
|
resolved.push(['store', createWebStoreURL(trackId, os)]);
|
|
@@ -1436,10 +2013,41 @@
|
|
|
1436
2013
|
return false;
|
|
1437
2014
|
if (browser === 'opera' && PlatformKit.compareVersion(version, '14.0') < 0)
|
|
1438
2015
|
return false;
|
|
1439
|
-
|
|
2016
|
+
if (isFullyBlockedInAppBrowser() || isPartnerAppOnly())
|
|
2017
|
+
return false;
|
|
2018
|
+
return !(/(?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/[\w.]+;/i.test(PlatformKit.userAgent) || /instagram[\/ ][-\w.]+/i.test(PlatformKit.userAgent) || /musical_ly(?:.+app_?version\/|_)[\w.]+/i.test(PlatformKit.userAgent) || /ultralite app_version\/[\w.]+/i.test(PlatformKit.userAgent));
|
|
1440
2019
|
}
|
|
1441
|
-
function canOpenUniversal() {
|
|
1442
|
-
|
|
2020
|
+
function canOpenUniversal(assumeAllowedInApp) {
|
|
2021
|
+
if (assumeAllowedInApp === void 0) { assumeAllowedInApp = false; }
|
|
2022
|
+
if (PlatformKit.os.name !== 'ios' || PlatformKit.compareVersion(PlatformKit.os.version, '9.0') < 0)
|
|
2023
|
+
return false;
|
|
2024
|
+
if (isPartnerAppOnly() && !assumeAllowedInApp)
|
|
2025
|
+
return false;
|
|
2026
|
+
var userAgent = PlatformKit.userAgent;
|
|
2027
|
+
var wechat = userAgent.match(/micromessenger\/(\d+(?:\.\d+)*)/i);
|
|
2028
|
+
if (wechat !== null && PlatformKit.compareVersion(wechat[1], '7.0.5') < 0)
|
|
2029
|
+
return false;
|
|
2030
|
+
if (/ qq\/[\d.]+/i.test(userAgent) || /m?qqbrowser\/[\d.]+/i.test(userAgent) || /ucbrowser\/[\d.]+/i.test(userAgent))
|
|
2031
|
+
return false;
|
|
2032
|
+
return !/qzone\/.*_qz_[\d.]+/i.test(userAgent);
|
|
2033
|
+
}
|
|
2034
|
+
function canOpenScheme(assumeAllowedInApp) {
|
|
2035
|
+
if (assumeAllowedInApp === void 0) { assumeAllowedInApp = false; }
|
|
2036
|
+
var os = PlatformKit.os.name;
|
|
2037
|
+
if (os === 'android')
|
|
2038
|
+
return !isFullyBlockedInAppBrowser() && (!isPartnerAppOnly() || assumeAllowedInApp);
|
|
2039
|
+
if (os === 'ios')
|
|
2040
|
+
return !/micromessenger\/[\w.]+/i.test(PlatformKit.userAgent) && (!isPartnerAppOnly() || assumeAllowedInApp);
|
|
2041
|
+
return true;
|
|
2042
|
+
}
|
|
2043
|
+
function isFullyBlockedInAppBrowser() {
|
|
2044
|
+
if (PlatformKit.os.name !== 'android')
|
|
2045
|
+
return false;
|
|
2046
|
+
var userAgent = PlatformKit.userAgent;
|
|
2047
|
+
return /micromessenger\/[\w.]+/i.test(userAgent) || / qq\/[\d.]+/i.test(userAgent) || /qzone\/.*_qz_[\d.]+/i.test(userAgent) || /baiduboxapp\/[\d.]+/i.test(userAgent);
|
|
2048
|
+
}
|
|
2049
|
+
function isPartnerAppOnly() {
|
|
2050
|
+
return /weibo.*weibo__[\d.]+/i.test(PlatformKit.userAgent);
|
|
1443
2051
|
}
|
|
1444
2052
|
function canOpenSetting() {
|
|
1445
2053
|
var os = PlatformKit.os.name;
|
|
@@ -1546,6 +2154,18 @@
|
|
|
1546
2154
|
function encodeMailBody(value) {
|
|
1547
2155
|
return escapeURIComponentString(value.replace(/\r\n|\n|\r/g, '\r\n'));
|
|
1548
2156
|
}
|
|
2157
|
+
function encodeMapValue(value) {
|
|
2158
|
+
if (isArray(value))
|
|
2159
|
+
return value[0] + ',' + value[1];
|
|
2160
|
+
return escapeURIComponentString(value);
|
|
2161
|
+
}
|
|
2162
|
+
function encodeBingRoutePoint(value) {
|
|
2163
|
+
if (typeof value === 'undefined')
|
|
2164
|
+
return '';
|
|
2165
|
+
if (isArray(value))
|
|
2166
|
+
return 'pos.' + value[0] + '_' + value[1];
|
|
2167
|
+
return escapeURIComponentString(value);
|
|
2168
|
+
}
|
|
1549
2169
|
function toArray(value) {
|
|
1550
2170
|
return typeof value === 'undefined' ? [] : typeof value === 'string' ? [value] : value;
|
|
1551
2171
|
}
|
|
@@ -1684,10 +2304,12 @@
|
|
|
1684
2304
|
}
|
|
1685
2305
|
else {
|
|
1686
2306
|
module.onclick = function () {
|
|
1687
|
-
|
|
1688
|
-
|
|
2307
|
+
if (typeof config.focus.target !== 'undefined' && typeof config.focus.type !== 'undefined')
|
|
2308
|
+
EventKit.add(config.focus.target, config.focus.type, onfocus);
|
|
2309
|
+
if (typeof config.visibilitychange.target !== 'undefined' && typeof config.visibilitychange.type !== 'undefined')
|
|
2310
|
+
EventKit.add(config.visibilitychange.target, config.visibilitychange.type, onvisibilitychange);
|
|
1689
2311
|
globalThis.setTimeout(function () {
|
|
1690
|
-
|
|
2312
|
+
EventKit.add(topDocument, 'click', onclick);
|
|
1691
2313
|
}, 100);
|
|
1692
2314
|
CLEANUP_INPUT_ELEMENT = function () {
|
|
1693
2315
|
done(false);
|
|
@@ -1697,9 +2319,11 @@
|
|
|
1697
2319
|
function cleanup() {
|
|
1698
2320
|
CLEANUP_INPUT_ELEMENT = null;
|
|
1699
2321
|
try {
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
2322
|
+
if (typeof config.focus.target !== 'undefined' && typeof config.focus.type !== 'undefined')
|
|
2323
|
+
EventKit.remove(config.focus.target, config.focus.type, onfocus);
|
|
2324
|
+
if (typeof config.visibilitychange.target !== 'undefined' && typeof config.visibilitychange.type !== 'undefined')
|
|
2325
|
+
EventKit.remove(config.visibilitychange.target, config.visibilitychange.type, onvisibilitychange);
|
|
2326
|
+
EventKit.remove(topDocument, 'click', onclick);
|
|
1703
2327
|
}
|
|
1704
2328
|
catch (_) {
|
|
1705
2329
|
}
|
|
@@ -1769,7 +2393,7 @@
|
|
|
1769
2393
|
}
|
|
1770
2394
|
var LaunchKit = {
|
|
1771
2395
|
SettingType: exports.SettingType,
|
|
1772
|
-
version: packageJSON$
|
|
2396
|
+
version: packageJSON$2.version,
|
|
1773
2397
|
utils: {
|
|
1774
2398
|
get canOpenIntent() {
|
|
1775
2399
|
return canOpenIntent();
|
|
@@ -1792,12 +2416,12 @@
|
|
|
1792
2416
|
catch (error) {
|
|
1793
2417
|
return Promise.reject(error);
|
|
1794
2418
|
}
|
|
1795
|
-
var tried = [];
|
|
1796
2419
|
var urls = resolved[0];
|
|
1797
2420
|
var timeout = resolved[1];
|
|
1798
2421
|
if (urls.length === 0)
|
|
1799
2422
|
return Promise.reject(new Error('No openable URL candidates were resolved for the current OS ("' + PlatformKit.os.name + '"). Provide at least one of: scheme, intent, universal, fallback, or store id for this platform.'));
|
|
1800
2423
|
return new Promise(function (resolve, reject) {
|
|
2424
|
+
var tried = [];
|
|
1801
2425
|
function openURLSequential(index) {
|
|
1802
2426
|
if (index === void 0) { index = 0; }
|
|
1803
2427
|
if (index >= urls.length)
|
|
@@ -1869,6 +2493,112 @@
|
|
|
1869
2493
|
url += '?' + joining(params, undefined, '&');
|
|
1870
2494
|
return openURL(0, url, getDefaultTimeout());
|
|
1871
2495
|
},
|
|
2496
|
+
map: function (options) {
|
|
2497
|
+
if (options === void 0) { options = {}; }
|
|
2498
|
+
var params = [];
|
|
2499
|
+
var urls = [];
|
|
2500
|
+
var url = '';
|
|
2501
|
+
switch (PlatformKit.os.name) {
|
|
2502
|
+
case 'android':
|
|
2503
|
+
if (typeof options.coordinate !== 'undefined') {
|
|
2504
|
+
url = 'geo:' + options.coordinate[0] + ',' + options.coordinate[1];
|
|
2505
|
+
}
|
|
2506
|
+
else if (typeof options.query !== 'undefined') {
|
|
2507
|
+
url = 'geo:0,0';
|
|
2508
|
+
params.push('q=' + escapeURIComponentString(options.query));
|
|
2509
|
+
}
|
|
2510
|
+
else {
|
|
2511
|
+
url = 'geo:0,0';
|
|
2512
|
+
}
|
|
2513
|
+
if (typeof options.zoom !== 'undefined')
|
|
2514
|
+
params.push('z=' + options.zoom);
|
|
2515
|
+
if (params.length > 0)
|
|
2516
|
+
url = url + '?' + joining(params, undefined, '&');
|
|
2517
|
+
urls.push(url);
|
|
2518
|
+
break;
|
|
2519
|
+
case 'ios':
|
|
2520
|
+
case 'macos':
|
|
2521
|
+
if (typeof options.directions !== 'undefined') {
|
|
2522
|
+
if (typeof options.directions.destination !== 'undefined')
|
|
2523
|
+
params.push('daddr=' + encodeMapValue(options.directions.destination));
|
|
2524
|
+
if (typeof options.directions.origin !== 'undefined')
|
|
2525
|
+
params.push('saddr=' + encodeMapValue(options.directions.origin));
|
|
2526
|
+
}
|
|
2527
|
+
else if (typeof options.coordinate !== 'undefined') {
|
|
2528
|
+
params.push('ll=' + options.coordinate[0] + ',' + options.coordinate[1]);
|
|
2529
|
+
if (typeof options.label !== 'undefined')
|
|
2530
|
+
params.push('q=' + escapeURIComponentString(options.label));
|
|
2531
|
+
}
|
|
2532
|
+
else if (typeof options.query !== 'undefined') {
|
|
2533
|
+
params.push('q=' + escapeURIComponentString(options.query));
|
|
2534
|
+
}
|
|
2535
|
+
if (typeof options.zoom !== 'undefined')
|
|
2536
|
+
params.push('z=' + options.zoom);
|
|
2537
|
+
urls.push('maps://?' + joining(params, undefined, '&'));
|
|
2538
|
+
break;
|
|
2539
|
+
case 'windows':
|
|
2540
|
+
if (typeof options.directions !== 'undefined') {
|
|
2541
|
+
params.push('rtp=' + encodeBingRoutePoint(options.directions.origin) + '~' + encodeBingRoutePoint(options.directions.destination));
|
|
2542
|
+
}
|
|
2543
|
+
else if (typeof options.coordinate !== 'undefined') {
|
|
2544
|
+
params.push('cp=' + options.coordinate[0] + '~' + options.coordinate[1]);
|
|
2545
|
+
if (typeof options.label !== 'undefined')
|
|
2546
|
+
params.push('q=' + escapeURIComponentString(options.label));
|
|
2547
|
+
}
|
|
2548
|
+
else if (typeof options.query !== 'undefined') {
|
|
2549
|
+
params.push('where=' + escapeURIComponentString(options.query));
|
|
2550
|
+
}
|
|
2551
|
+
if (typeof options.zoom !== 'undefined')
|
|
2552
|
+
params.push('lvl=' + options.zoom);
|
|
2553
|
+
urls.push('bingmaps:?' + joining(params, undefined, '&'));
|
|
2554
|
+
}
|
|
2555
|
+
if (typeof options.fallback !== 'undefined') {
|
|
2556
|
+
urls.push(stripURL(options.fallback));
|
|
2557
|
+
}
|
|
2558
|
+
else {
|
|
2559
|
+
var params_1 = ['api=1'];
|
|
2560
|
+
if (typeof options.directions !== 'undefined') {
|
|
2561
|
+
params_1.push('destination=' + encodeMapValue(options.directions.destination));
|
|
2562
|
+
if (typeof options.directions.origin !== 'undefined')
|
|
2563
|
+
params_1.push('origin=' + encodeMapValue(options.directions.origin));
|
|
2564
|
+
urls.push('https://www.google.com/maps/dir/?' + joining(params_1, undefined, '&'));
|
|
2565
|
+
}
|
|
2566
|
+
else {
|
|
2567
|
+
if (typeof options.coordinate !== 'undefined')
|
|
2568
|
+
params_1.push('query=' + options.coordinate[0] + ',' + options.coordinate[1]);
|
|
2569
|
+
else if (typeof options.query !== 'undefined')
|
|
2570
|
+
params_1.push('query=' + escapeURIComponentString(options.query));
|
|
2571
|
+
if (typeof options.zoom !== 'undefined')
|
|
2572
|
+
params_1.push('zoom=' + options.zoom);
|
|
2573
|
+
urls.push('https://www.google.com/maps/search/?' + joining(params_1, undefined, '&'));
|
|
2574
|
+
}
|
|
2575
|
+
}
|
|
2576
|
+
return new Promise(function (resolve, reject) {
|
|
2577
|
+
var tried = [];
|
|
2578
|
+
function openURLSequential(index) {
|
|
2579
|
+
if (index === void 0) { index = 0; }
|
|
2580
|
+
if (index >= urls.length)
|
|
2581
|
+
return reject(new Error('Failed to open a map using all available URLs.\n\nAttempted URLs:\n' + joining(tried, undefined, '\n↓\n')));
|
|
2582
|
+
var url = urls[index];
|
|
2583
|
+
if (typeof url === 'string') {
|
|
2584
|
+
tried[index] = url;
|
|
2585
|
+
return openURL(index, url, getDefaultTimeout())
|
|
2586
|
+
.then(function () {
|
|
2587
|
+
resolve();
|
|
2588
|
+
})
|
|
2589
|
+
.catch(function () {
|
|
2590
|
+
openURLSequential(index + 1);
|
|
2591
|
+
});
|
|
2592
|
+
}
|
|
2593
|
+
else {
|
|
2594
|
+
tried[index] = '[function fallback]';
|
|
2595
|
+
url();
|
|
2596
|
+
resolve();
|
|
2597
|
+
}
|
|
2598
|
+
}
|
|
2599
|
+
return openURLSequential();
|
|
2600
|
+
});
|
|
2601
|
+
},
|
|
1872
2602
|
filepicker: function (options) {
|
|
1873
2603
|
if (options === void 0) { options = {}; }
|
|
1874
2604
|
var module;
|
|
@@ -1971,7 +2701,7 @@
|
|
|
1971
2701
|
if (index === void 0) { index = 0; }
|
|
1972
2702
|
if (index >= urls.length)
|
|
1973
2703
|
return reject(new Error('Failed to open the "' + type + '" settings pane using all available URLs.\n\nAttempted URLs:\n' + joining(urls, undefined, '\n↓\n')));
|
|
1974
|
-
return openURL(index, urls[index],
|
|
2704
|
+
return openURL(index, urls[index], DEFAULT_TIMEOUT)
|
|
1975
2705
|
.then(function () {
|
|
1976
2706
|
resolve();
|
|
1977
2707
|
})
|