@tethys/cdk 14.2.5 → 14.2.7
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/esm2020/event/event-dispatcher.mjs +1 -1
- package/esm2020/hotkey/hotkey-dispatcher.mjs +8 -7
- package/esm2020/hotkey/hotkey.directive.mjs +2 -1
- package/esm2020/is/utils.mjs +4 -1
- package/event/event-dispatcher.d.ts +1 -1
- package/fesm2015/tethys-cdk-event.mjs.map +1 -1
- package/fesm2015/tethys-cdk-hotkey.mjs +7 -6
- package/fesm2015/tethys-cdk-hotkey.mjs.map +1 -1
- package/fesm2015/tethys-cdk-is.mjs +4 -1
- package/fesm2015/tethys-cdk-is.mjs.map +1 -1
- package/fesm2020/tethys-cdk-event.mjs.map +1 -1
- package/fesm2020/tethys-cdk-hotkey.mjs +7 -5
- package/fesm2020/tethys-cdk-hotkey.mjs.map +1 -1
- package/fesm2020/tethys-cdk-is.mjs +4 -1
- package/fesm2020/tethys-cdk-is.mjs.map +1 -1
- package/hotkey/hotkey-dispatcher.d.ts +0 -1
- package/is/utils.d.ts +1 -0
- package/package.json +1 -1
|
@@ -56,4 +56,4 @@ ThyEventDispatcher.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", ver
|
|
|
56
56
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ThyEventDispatcher, decorators: [{
|
|
57
57
|
type: Directive
|
|
58
58
|
}], ctorParameters: function () { return [{ type: Document }, { type: i0.NgZone }, { type: undefined }]; } });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtZGlzcGF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2Nkay9ldmVudC9ldmVudC1kaXNwYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDOztBQUU3RCxNQUFNLGtCQUFrQixHQUFHLEdBQUcsQ0FBQztBQUcvQixNQUFNLE9BQWdCLGtCQUFrQjtJQTBCcEMsWUFBc0IsUUFBa0IsRUFBWSxNQUFjLEVBQVUsU0FBaUI7UUFBdkUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFZLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFRO1FBekJyRix3QkFBbUIsR0FBaUIsSUFBSSxDQUFDO1FBRXpDLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBSyxDQUFDO1FBRTNCLHVCQUFrQixHQUFHLENBQUMsQ0FBQztJQXFCaUUsQ0FBQztJQW5CekYsa0JBQWtCO1FBQ3RCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUMxRCxPQUFPLFNBQVMsQ0FBSSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFRLEVBQUUsRUFBRTtnQkFDdEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0IsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxxQkFBcUI7UUFDekIsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDMUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7U0FDbkM7SUFDTCxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDcEMsQ0FBQztJQUlTLFNBQVMsQ0FBQyxnQkFBd0Isa0JBQWtCO1FBQzFELE9BQU8sSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtnQkFDM0IsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7YUFDN0I7WUFDRCxrRUFBa0U7WUFDbEUsZ0VBQWdFO1lBQ2hFLE1BQU0sWUFBWSxHQUNkLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFM0gsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDMUIsT0FBTyxHQUFHLEVBQUU7Z0JBQ1IsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztnQkFFMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtvQkFDMUIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7aUJBQ2hDO1lBQ0wsQ0FBQyxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQzs7K0dBckRpQixrQkFBa0I7bUdBQWxCLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQUR2QyxTQUFTOzBEQTJCMEIsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZyb21FdmVudCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBhdWRpdFRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IERpcmVjdGl2ZSwgTmdab25lLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuY29uc3QgREVGQVVMVF9FVkVOVF9USU1FID0gMTAwO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUaHlFdmVudERpc3BhdGNoZXI8VCA9IEV2ZW50PiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSBfZ2xvYmFsU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBudWxsO1xuXG4gICAgcHJpdmF0ZSBfZXZlbnQkID0gbmV3IFN1YmplY3Q8VD4oKTtcblxuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbkNvdW50ID0gMDtcblxuICAgIHByaXZhdGUgX2FkZEdsb2JhbExpc3RlbmVyKCkge1xuICAgICAgICB0aGlzLl9nbG9iYWxTdWJzY3JpcHRpb24gPSB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZnJvbUV2ZW50PFQ+KHRoaXMuZG9jdW1lbnQsIHRoaXMuZXZlbnROYW1lKS5zdWJzY3JpYmUoKGV2ZW50OiBUKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXZlbnQkLm5leHQoZXZlbnQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3JlbW92ZUdsb2JhbExpc3RlbmVyKCkge1xuICAgICAgICBpZiAodGhpcy5fZ2xvYmFsU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLl9nbG9iYWxTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMuX2dsb2JhbFN1YnNjcmlwdGlvbiA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgZ2xvYmFsU3Vic2NyaXB0aW9uKCk6IFN1YnNjcmlwdGlvbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nbG9iYWxTdWJzY3JpcHRpb247XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGRvY3VtZW50OiBEb2N1bWVudCwgcHJvdGVjdGVkIG5nWm9uZTogTmdab25lLCBwcml2YXRlIGV2ZW50TmFtZTogc3RyaW5nKSB7fVxuXG4gICAgcHJvdGVjdGVkIHN1YnNjcmliZShhdWRpdFRpbWVJbk1zOiBudW1iZXIgPSBERUZBVUxUX0VWRU5UX1RJTUUpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmVyID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5fZ2xvYmFsU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYWRkR2xvYmFsTGlzdGVuZXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEluIHRoZSBjYXNlIG9mIGEgMG1zIGRlbGF5LCB1c2UgYW4gb2JzZXJ2YWJsZSB3aXRob3V0IGF1ZGl0VGltZVxuICAgICAgICAgICAgLy8gc2luY2UgaXQgZG9lcyBhZGQgYSBwZXJjZXB0aWJsZSBkZWxheSBpbiBwcm9jZXNzaW5nIG92ZXJoZWFkLlxuICAgICAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID1cbiAgICAgICAgICAgICAgICBhdWRpdFRpbWVJbk1zID4gMCA/IHRoaXMuX2V2ZW50JC5waXBlKGF1ZGl0VGltZShhdWRpdFRpbWVJbk1zKSkuc3Vic2NyaWJlKG9ic2VydmVyKSA6IHRoaXMuX2V2ZW50JC5zdWJzY3JpYmUob2JzZXJ2ZXIpO1xuXG4gICAgICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25Db3VudCsrO1xuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25Db3VudC0tO1xuXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9zdWJzY3JpcHRpb25Db3VudCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZW1vdmVHbG9iYWxMaXN0ZW5lcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLl9yZW1vdmVHbG9iYWxMaXN0ZW5lcigpO1xuICAgICAgICB0aGlzLl9ldmVudCQuY29tcGxldGUoKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -4,7 +4,7 @@ import { Inject, Injectable, NgZone } from '@angular/core';
|
|
|
4
4
|
import { ThyEventDispatcher } from '@tethys/cdk/event';
|
|
5
5
|
import { fromEvent, Observable } from 'rxjs';
|
|
6
6
|
import { filter } from 'rxjs/operators';
|
|
7
|
-
import { isString, isUndefinedOrNull } from '@tethys/cdk/is';
|
|
7
|
+
import { isFormElement, isString, isUndefinedOrNull } from '@tethys/cdk/is';
|
|
8
8
|
import { isHotkey } from './hotkey';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
export class ThyHotkeyDispatcher extends ThyEventDispatcher {
|
|
@@ -30,11 +30,12 @@ export class ThyHotkeyDispatcher extends ThyEventDispatcher {
|
|
|
30
30
|
const subscription = keydown
|
|
31
31
|
.pipe(filter((event) => hotkeys.some(key => isHotkey(event, key))))
|
|
32
32
|
.subscribe((event) => {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
33
|
+
// 如果当前焦点的元素是表单元素并且焦点原色不是Hotkey绑定元素则忽略快捷键
|
|
34
|
+
if (isFormElement(this.document.activeElement) && this.document.activeElement !== scope) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
this.ngZone.run(() => {
|
|
38
|
+
subscriber.next(event);
|
|
38
39
|
});
|
|
39
40
|
});
|
|
40
41
|
return () => {
|
|
@@ -52,4 +53,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
|
|
|
52
53
|
type: Inject,
|
|
53
54
|
args: [DOCUMENT]
|
|
54
55
|
}] }, { type: i0.NgZone }]; } });
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90a2V5LWRpc3BhdGNoZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jZGsvaG90a2V5L2hvdGtleS1kaXNwYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBR3BDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxrQkFBa0I7SUFDdkQsWUFBOEIsUUFBYSxFQUFFLE1BQWM7UUFDdkQsS0FBSyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLHVCQUF1QixDQUFDLEtBQXlCO1FBQ3JELElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDekIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQy9CO2FBQU07WUFDSCxPQUFPLFNBQVMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDdEM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxPQUFPLENBQUMsTUFBeUIsRUFBRSxLQUFnRDtRQUMvRSxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUM5RCxNQUFNLFlBQVksR0FBRyxhQUFhLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JGLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMzRCxPQUFPLElBQUksVUFBVSxDQUFnQixVQUFVLENBQUMsRUFBRTtZQUM5QyxNQUFNLFlBQVksR0FBRyxPQUFPO2lCQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBb0IsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNqRixTQUFTLENBQUMsQ0FBQyxLQUFvQixFQUFFLEVBQUU7Z0JBQ2hDLHlDQUF5QztnQkFDekMsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsS0FBSyxLQUFLLEVBQUU7b0JBQ3JGLE9BQU87aUJBQ1Y7Z0JBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO29CQUNqQixVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMzQixDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFDO1lBQ1AsT0FBTyxHQUFHLEVBQUU7Z0JBQ1IsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQy9CLENBQUMsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7Z0hBcENRLG1CQUFtQixrQkFDUixRQUFRO29IQURuQixtQkFBbUIsY0FETixNQUFNOzJGQUNuQixtQkFBbUI7a0JBRC9CLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFFakIsTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlRWxlbWVudCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE5nWm9uZSwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGh5RXZlbnREaXNwYXRjaGVyIH0gZnJvbSAnQHRldGh5cy9jZGsvZXZlbnQnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBPYnNlcnZhYmxlLCBTdWJzY3JpYmVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBpc0Zvcm1FbGVtZW50LCBpc1N0cmluZywgaXNVbmRlZmluZWRPck51bGwgfSBmcm9tICdAdGV0aHlzL2Nkay9pcyc7XG5pbXBvcnQgeyBpc0hvdGtleSB9IGZyb20gJy4vaG90a2V5JztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBUaHlIb3RrZXlEaXNwYXRjaGVyIGV4dGVuZHMgVGh5RXZlbnREaXNwYXRjaGVyIHtcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KERPQ1VNRU5UKSBkb2N1bWVudDogYW55LCBuZ1pvbmU6IE5nWm9uZSkge1xuICAgICAgICBzdXBlcihkb2N1bWVudCwgbmdab25lLCAna2V5ZG93bicpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlS2V5ZG93bk9ic2VydmFibGUoc2NvcGU6IEVsZW1lbnQgfCBEb2N1bWVudCkge1xuICAgICAgICBpZiAoc2NvcGUgPT09IHRoaXMuZG9jdW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnN1YnNjcmliZShudWxsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmcm9tRXZlbnQoc2NvcGUsICdrZXlkb3duJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAg54Ot6ZSu5LqL5Lu26K6i6ZiFXG4gICAgICovXG4gICAga2V5ZG93bihob3RrZXk6IHN0cmluZyB8IHN0cmluZ1tdLCBzY29wZT86IEVsZW1lbnRSZWY8RWxlbWVudD4gfCBFbGVtZW50IHwgRG9jdW1lbnQpOiBPYnNlcnZhYmxlPEtleWJvYXJkRXZlbnQ+IHtcbiAgICAgICAgY29uc3QgaG90a2V5cyA9IGlzU3RyaW5nKGhvdGtleSkgPyBob3RrZXkuc3BsaXQoJywnKSA6IGhvdGtleTtcbiAgICAgICAgY29uc3Qgc2NvcGVFbGVtZW50ID0gY29lcmNlRWxlbWVudChpc1VuZGVmaW5lZE9yTnVsbChzY29wZSkgPyB0aGlzLmRvY3VtZW50IDogc2NvcGUpO1xuICAgICAgICBjb25zdCBrZXlkb3duID0gdGhpcy5jcmVhdGVLZXlkb3duT2JzZXJ2YWJsZShzY29wZUVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8S2V5Ym9hcmRFdmVudD4oc3Vic2NyaWJlciA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSBrZXlkb3duXG4gICAgICAgICAgICAgICAgLnBpcGUoZmlsdGVyKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4gaG90a2V5cy5zb21lKGtleSA9PiBpc0hvdGtleShldmVudCwga2V5KSkpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIOWmguaenOW9k+WJjeeEpueCueeahOWFg+e0oOaYr+ihqOWNleWFg+e0oOW5tuS4lOeEpueCueWOn+iJsuS4jeaYr0hvdGtleee7keWumuWFg+e0oOWImeW/veeVpeW/q+aNt+mUrlxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNGb3JtRWxlbWVudCh0aGlzLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpICYmIHRoaXMuZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAhPT0gc2NvcGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
@@ -22,6 +22,7 @@ export class ThyHotkeyDirective {
|
|
|
22
22
|
const scope = isString(this.thyHotkeyScope) ? this.document.querySelector(this.thyHotkeyScope) : this.thyHotkeyScope;
|
|
23
23
|
this.subscription = this.hotkeyDispatcher.keydown(this.thyHotkey, scope).subscribe(event => {
|
|
24
24
|
event.preventDefault();
|
|
25
|
+
event.stopPropagation();
|
|
25
26
|
if (isFormElement(this.elementRef)) {
|
|
26
27
|
this.elementRef.nativeElement.focus();
|
|
27
28
|
}
|
|
@@ -52,4 +53,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
|
|
|
52
53
|
}], thyHotkeyListener: [{
|
|
53
54
|
type: Output
|
|
54
55
|
}] } });
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90a2V5LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2Nkay9ob3RrZXkvaG90a2V5LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRTlHLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQUUxRDs7R0FFRztBQUVILE1BQU0sT0FBTyxrQkFBa0I7SUFrQjNCLFlBQzhCLFFBQWtCLEVBQ3BDLGdCQUFxQyxFQUNyQyxVQUFtQztRQUZqQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ3BDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBcUI7UUFDckMsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFWL0M7O1dBRUc7UUFDTyxzQkFBaUIsR0FBZ0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV0RSxpQkFBWSxHQUFpQixJQUFJLENBQUM7SUFNdkMsQ0FBQztJQUVKLFFBQVE7UUFDSixNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDckgsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3ZGLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEIsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUNoQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUN6QztpQkFBTTtnQkFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUN6QztZQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ25DO0lBQ0wsQ0FBQzs7K0dBMUNRLGtCQUFrQixrQkFtQmYsUUFBUTttR0FuQlgsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBRDlCLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFOzBEQW9CTSxRQUFROzBCQUEzQyxNQUFNOzJCQUFDLFFBQVE7dUdBZlgsU0FBUztzQkFBakIsS0FBSztnQkFLRyxjQUFjO3NCQUF0QixLQUFLO2dCQUtJLGlCQUFpQjtzQkFBMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkluaXQsIE91dHB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGlzRm9ybUVsZW1lbnQsIGlzU3RyaW5nIH0gZnJvbSAnQHRldGh5cy9jZGsvaXMnO1xuaW1wb3J0IHsgVGh5SG90a2V5RGlzcGF0Y2hlciB9IGZyb20gJy4vaG90a2V5LWRpc3BhdGNoZXInO1xuXG4vKipcbiAqIEBuYW1lIHRoeUhvdGtleVxuICovXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbdGh5SG90a2V5XScgfSlcbmV4cG9ydCBjbGFzcyBUaHlIb3RrZXlEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogIOeDremUruWvueW6lCBDb2Rl77yM5aSa5Liq54Ot6ZSu57uE5ZCI5pSv5oyB6YCa6L+H5pWw57uE5oiW6YCX5Y+35YiG5Ymy55qE5b2i5byP5Lyg5YWlXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5SG90a2V5OiBzdHJpbmcgfCBzdHJpbmdbXTtcblxuICAgIC8qKlxuICAgICAqICDphY3nva7ng63plK7op6blj5HojIPlm7TvvIzpu5jorqTnu5HlrprlnKggZG9jdW1lbnQg5LiKXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5SG90a2V5U2NvcGU/OiBzdHJpbmcgfCBFbGVtZW50IHwgRWxlbWVudFJlZjxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqICDng63plK7op6blj5HlkI7nmoTkuovku7ZcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGh5SG90a2V5TGlzdGVuZXI6IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgICAgICBwcml2YXRlIGhvdGtleURpc3BhdGNoZXI6IFRoeUhvdGtleURpc3BhdGNoZXIsXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD5cbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2NvcGUgPSBpc1N0cmluZyh0aGlzLnRoeUhvdGtleVNjb3BlKSA/IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLnRoeUhvdGtleVNjb3BlKSA6IHRoaXMudGh5SG90a2V5U2NvcGU7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5ob3RrZXlEaXNwYXRjaGVyLmtleWRvd24odGhpcy50aHlIb3RrZXksIHNjb3BlKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgaWYgKGlzRm9ybUVsZW1lbnQodGhpcy5lbGVtZW50UmVmKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnRoeUhvdGtleUxpc3RlbmVyLmVtaXQoZXZlbnQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
package/esm2020/is/utils.mjs
CHANGED
|
@@ -107,4 +107,7 @@ export function isFormElement(elementOrRef) {
|
|
|
107
107
|
(name === 'input' && type !== 'submit' && type !== 'reset' && type !== 'checkbox' && type !== 'radio' && type !== 'file') ||
|
|
108
108
|
element.isContentEditable);
|
|
109
109
|
}
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jZGsvaXMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhELE1BQU0sVUFBVSxXQUFXLENBQUMsS0FBVTtJQUNsQyxPQUFPLEtBQUssS0FBSyxTQUFTLENBQUM7QUFDL0IsQ0FBQztBQUVELE1BQU0sVUFBVSxNQUFNLENBQUMsS0FBVTtJQUM3QixPQUFPLEtBQUssS0FBSyxJQUFJLENBQUM7QUFDMUIsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxLQUFVO0lBQ3hDLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMvQyxDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBVSxLQUFVO0lBQ3ZDLE9BQU8sS0FBSyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxnQkFBZ0IsQ0FBQztBQUMzRCxDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBQyxLQUFXO0lBQy9CLElBQUksaUJBQWlCLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDMUIsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUNELElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ2hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0tBQ3hCO0lBQ0QsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLElBQUksR0FBRyxJQUFJLGNBQWMsSUFBSSxHQUFHLElBQUksY0FBYyxFQUFFO1FBQ2hELE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO0tBQ3RCO0lBQ0QsS0FBSyxNQUFNLEdBQUcsSUFBSSxLQUFLLEVBQUU7UUFD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QUFDLElBQUksS0FBSyxPQUFPLElBQUksSUFBSSxLQUFLLFFBQVEsSUFBSSxJQUFJLEtBQUssT0FBTyxJQUFJLElBQUksS0FBSyxVQUFVLElBQUksSUFBSSxLQUFLLE9BQU8sSUFBSSxJQUFJLEtBQUssTUFBTSxDQUFDO1FBQ3pILE9BQU8sQ0FBQyxpQkFBaUIsQ0FDNUIsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VFbGVtZW50IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEVsZW1lbnRSZWYsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1VuZGVmaW5lZCh2YWx1ZTogYW55KTogdmFsdWUgaXMgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdmFsdWUgPT09IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTnVsbCh2YWx1ZTogYW55KTogdmFsdWUgaXMgbnVsbCB7XG4gICAgcmV0dXJuIHZhbHVlID09PSBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNVbmRlZmluZWRPck51bGwodmFsdWU6IGFueSk6IHZhbHVlIGlzIHVuZGVmaW5lZCB8IG51bGwge1xuICAgIHJldHVybiBpc1VuZGVmaW5lZCh2YWx1ZSkgfHwgaXNOdWxsKHZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQXJyYXk8VCA9IGFueT4odmFsdWU6IGFueSk6IHZhbHVlIGlzIEFycmF5PFQ+IHtcbiAgICByZXR1cm4gdmFsdWUgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT09ICdbb2JqZWN0IEFycmF5XSc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0VtcHR5KHZhbHVlPzogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKGlzVW5kZWZpbmVkT3JOdWxsKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKGlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiAhdmFsdWUubGVuZ3RoO1xuICAgIH1cbiAgICBjb25zdCB0YWcgPSBiYXNlR2V0VGFnKHZhbHVlKTtcbiAgICBpZiAodGFnID09ICdbb2JqZWN0IE1hcF0nIHx8IHRhZyA9PSAnW29iamVjdCBTZXRdJykge1xuICAgICAgICByZXR1cm4gIXZhbHVlLnNpemU7XG4gICAgfVxuICAgIGZvciAoY29uc3Qga2V5IGluIHZhbHVlKSB7XG4gICAgICAgIGlmIChPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwga2V5KSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTdHJpbmcodmFsdWU/OiBhbnkpOiB2YWx1ZSBpcyBzdHJpbmcge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycgfHwgKCFpc0FycmF5KHZhbHVlKSAmJiBpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09PSAnW29iamVjdCBTdHJpbmddJyk7XG59XG5cbmZ1bmN0aW9uIGlzT2JqZWN0TGlrZSh2YWx1ZTogYW55KTogdmFsdWUgaXMgb2JqZWN0IHtcbiAgICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jztcbn1cblxuZnVuY3Rpb24gYmFzZUdldFRhZyh2YWx1ZTogYW55KSB7XG4gICAgY29uc3Qgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuICAgIGNvbnN0IGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG4gICAgY29uc3QgdG9TdHJpbmcgPSBvYmplY3RQcm90by50b1N0cmluZztcbiAgICBjb25zdCBzeW1Ub1N0cmluZ1RhZyA9IHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnID8gU3ltYm9sLnRvU3RyaW5nVGFnIDogdW5kZWZpbmVkO1xuXG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgPyAnW29iamVjdCBVbmRlZmluZWRdJyA6ICdbb2JqZWN0IE51bGxdJztcbiAgICB9XG4gICAgaWYgKCEoc3ltVG9TdHJpbmdUYWcgJiYgc3ltVG9TdHJpbmdUYWcgaW4gT2JqZWN0KHZhbHVlKSkpIHtcbiAgICAgICAgcmV0dXJuIHRvU3RyaW5nLmNhbGwodmFsdWUpO1xuICAgIH1cbiAgICBjb25zdCBpc093biA9IGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsIHN5bVRvU3RyaW5nVGFnKTtcbiAgICBjb25zdCB0YWcgPSB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ107XG4gICAgbGV0IHVubWFza2VkID0gZmFsc2U7XG4gICAgdHJ5IHtcbiAgICAgICAgdmFsdWVbc3ltVG9TdHJpbmdUYWddID0gdW5kZWZpbmVkO1xuICAgICAgICB1bm1hc2tlZCA9IHRydWU7XG4gICAgfSBjYXRjaCAoZSkge31cblxuICAgIGNvbnN0IHJlc3VsdCA9IHRvU3RyaW5nLmNhbGwodmFsdWUpO1xuICAgIGlmICh1bm1hc2tlZCkge1xuICAgICAgICBpZiAoaXNPd24pIHtcbiAgICAgICAgICAgIHZhbHVlW3N5bVRvU3RyaW5nVGFnXSA9IHRhZztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRlbGV0ZSB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ107XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTnVtYmVyKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBudW1iZXIge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInIHx8IChpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09PSAnW29iamVjdCBOdW1iZXJdJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc09iamVjdCh2YWx1ZTogYW55KTogdmFsdWUgaXMgb2JqZWN0IHtcbiAgICAvLyBBdm9pZCBhIFY4IEpJVCBidWcgaW4gQ2hyb21lIDE5LTIwLlxuICAgIC8vIFNlZSBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MjI5MSBmb3IgbW9yZSBkZXRhaWxzLlxuICAgIGNvbnN0IHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gICAgcmV0dXJuICEhdmFsdWUgJiYgKHR5cGUgPT09ICdvYmplY3QnIHx8IHR5cGUgPT09ICdmdW5jdGlvbicpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNGdW5jdGlvbih2YWx1ZTogYW55KTogdmFsdWUgaXMgRnVuY3Rpb24ge1xuICAgIGNvbnN0IHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gICAgcmV0dXJuICEhdmFsdWUgJiYgdHlwZSA9PT0gJ2Z1bmN0aW9uJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGF0ZSh2YWx1ZTogYW55KTogdmFsdWUgaXMgRGF0ZSB7XG4gICAgY29uc3QgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgICByZXR1cm4gISF2YWx1ZSAmJiB0eXBlID09PSAnb2JqZWN0JyAmJiAhIXZhbHVlLmdldFRpbWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Jvb2xlYW4odmFsdWU6IGFueSk6IHZhbHVlIGlzIGJvb2xlYW4ge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gZmFsc2UgfHwgKGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT09ICdbb2JqZWN0IEJvb2xlYW5dJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1RlbXBsYXRlUmVmPEMgPSBhbnk+KHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBUZW1wbGF0ZVJlZjxDPiB7XG4gICAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgVGVtcGxhdGVSZWY7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0hUTUxFbGVtZW50KHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0VsZW1lbnRSZWYodmFsdWU6IGFueSk6IHZhbHVlIGlzIEVsZW1lbnRSZWYge1xuICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIEVsZW1lbnRSZWY7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Zvcm1FbGVtZW50PFQgPSBFbGVtZW50PihlbGVtZW50T3JSZWY6IEVsZW1lbnRSZWY8VD4gfCBUKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZWxlbWVudCA9IGNvZXJjZUVsZW1lbnQoZWxlbWVudE9yUmVmKTtcbiAgICBpZiAoIShlbGVtZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgbmFtZSA9IGVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCB0eXBlID0gKGVsZW1lbnQuZ2V0QXR0cmlidXRlKCd0eXBlJykgfHwgJycpLnRvTG93ZXJDYXNlKCk7XG4gICAgcmV0dXJuIChcbiAgICAgICAgbmFtZSA9PT0gJ3NlbGVjdCcgfHxcbiAgICAgICAgbmFtZSA9PT0gJ3RleHRhcmVhJyB8fFxuICAgICAgICAobmFtZSA9PT0gJ2lucHV0JyAmJiB0eXBlICE9PSAnc3VibWl0JyAmJiB0eXBlICE9PSAncmVzZXQnICYmIHR5cGUgIT09ICdjaGVja2JveCcgJiYgdHlwZSAhPT0gJ3JhZGlvJyAmJiB0eXBlICE9PSAnZmlsZScpIHx8XG4gICAgICAgIGVsZW1lbnQuaXNDb250ZW50RWRpdGFibGVcbiAgICApO1xufVxuIl19
|
|
110
|
+
export function isMacPlatform(userAgent = navigator.userAgent) {
|
|
111
|
+
return /macintosh|mac os x/i.test(userAgent);
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jZGsvaXMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhELE1BQU0sVUFBVSxXQUFXLENBQUMsS0FBVTtJQUNsQyxPQUFPLEtBQUssS0FBSyxTQUFTLENBQUM7QUFDL0IsQ0FBQztBQUVELE1BQU0sVUFBVSxNQUFNLENBQUMsS0FBVTtJQUM3QixPQUFPLEtBQUssS0FBSyxJQUFJLENBQUM7QUFDMUIsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxLQUFVO0lBQ3hDLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMvQyxDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBVSxLQUFVO0lBQ3ZDLE9BQU8sS0FBSyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxnQkFBZ0IsQ0FBQztBQUMzRCxDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBQyxLQUFXO0lBQy9CLElBQUksaUJBQWlCLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDMUIsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUNELElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ2hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0tBQ3hCO0lBQ0QsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLElBQUksR0FBRyxJQUFJLGNBQWMsSUFBSSxHQUFHLElBQUksY0FBYyxFQUFFO1FBQ2hELE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO0tBQ3RCO0lBQ0QsS0FBSyxNQUFNLEdBQUcsSUFBSSxLQUFLLEVBQUU7UUFD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QUFDLElBQUksS0FBSyxPQUFPLElBQUksSUFBSSxLQUFLLFFBQVEsSUFBSSxJQUFJLEtBQUssT0FBTyxJQUFJLElBQUksS0FBSyxVQUFVLElBQUksSUFBSSxLQUFLLE9BQU8sSUFBSSxJQUFJLEtBQUssTUFBTSxDQUFDO1FBQ3pILE9BQU8sQ0FBQyxpQkFBaUIsQ0FDNUIsQ0FBQztBQUNOLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUztJQUN6RCxPQUFPLHFCQUFxQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNqRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlRWxlbWVudCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBFbGVtZW50UmVmLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNVbmRlZmluZWQodmFsdWU6IGFueSk6IHZhbHVlIGlzIHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc051bGwodmFsdWU6IGFueSk6IHZhbHVlIGlzIG51bGwge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVW5kZWZpbmVkT3JOdWxsKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyB1bmRlZmluZWQgfCBudWxsIHtcbiAgICByZXR1cm4gaXNVbmRlZmluZWQodmFsdWUpIHx8IGlzTnVsbCh2YWx1ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0FycmF5PFQgPSBhbnk+KHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBBcnJheTxUPiB7XG4gICAgcmV0dXJuIHZhbHVlICYmIGJhc2VHZXRUYWcodmFsdWUpID09PSAnW29iamVjdCBBcnJheV0nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNFbXB0eSh2YWx1ZT86IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmIChpc1VuZGVmaW5lZE9yTnVsbCh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gIXZhbHVlLmxlbmd0aDtcbiAgICB9XG4gICAgY29uc3QgdGFnID0gYmFzZUdldFRhZyh2YWx1ZSk7XG4gICAgaWYgKHRhZyA9PSAnW29iamVjdCBNYXBdJyB8fCB0YWcgPT0gJ1tvYmplY3QgU2V0XScpIHtcbiAgICAgICAgcmV0dXJuICF2YWx1ZS5zaXplO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGtleSBpbiB2YWx1ZSkge1xuICAgICAgICBpZiAoT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwodmFsdWUsIGtleSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU3RyaW5nKHZhbHVlPzogYW55KTogdmFsdWUgaXMgc3RyaW5nIHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdzdHJpbmcnIHx8ICghaXNBcnJheSh2YWx1ZSkgJiYgaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PT0gJ1tvYmplY3QgU3RyaW5nXScpO1xufVxuXG5mdW5jdGlvbiBpc09iamVjdExpa2UodmFsdWU6IGFueSk6IHZhbHVlIGlzIG9iamVjdCB7XG4gICAgcmV0dXJuIHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCc7XG59XG5cbmZ1bmN0aW9uIGJhc2VHZXRUYWcodmFsdWU6IGFueSkge1xuICAgIGNvbnN0IG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcbiAgICBjb25zdCBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuICAgIGNvbnN0IHRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XG4gICAgY29uc3Qgc3ltVG9TdHJpbmdUYWcgPSB0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyA/IFN5bWJvbC50b1N0cmluZ1RhZyA6IHVuZGVmaW5lZDtcblxuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gJ1tvYmplY3QgVW5kZWZpbmVkXScgOiAnW29iamVjdCBOdWxsXSc7XG4gICAgfVxuICAgIGlmICghKHN5bVRvU3RyaW5nVGFnICYmIHN5bVRvU3RyaW5nVGFnIGluIE9iamVjdCh2YWx1ZSkpKSB7XG4gICAgICAgIHJldHVybiB0b1N0cmluZy5jYWxsKHZhbHVlKTtcbiAgICB9XG4gICAgY29uc3QgaXNPd24gPSBoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCBzeW1Ub1N0cmluZ1RhZyk7XG4gICAgY29uc3QgdGFnID0gdmFsdWVbc3ltVG9TdHJpbmdUYWddO1xuICAgIGxldCB1bm1hc2tlZCA9IGZhbHNlO1xuICAgIHRyeSB7XG4gICAgICAgIHZhbHVlW3N5bVRvU3RyaW5nVGFnXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdW5tYXNrZWQgPSB0cnVlO1xuICAgIH0gY2F0Y2ggKGUpIHt9XG5cbiAgICBjb25zdCByZXN1bHQgPSB0b1N0cmluZy5jYWxsKHZhbHVlKTtcbiAgICBpZiAodW5tYXNrZWQpIHtcbiAgICAgICAgaWYgKGlzT3duKSB7XG4gICAgICAgICAgICB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ10gPSB0YWc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkZWxldGUgdmFsdWVbc3ltVG9TdHJpbmdUYWddO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc051bWJlcih2YWx1ZTogYW55KTogdmFsdWUgaXMgbnVtYmVyIHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyB8fCAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PT0gJ1tvYmplY3QgTnVtYmVyXScpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3QodmFsdWU6IGFueSk6IHZhbHVlIGlzIG9iamVjdCB7XG4gICAgLy8gQXZvaWQgYSBWOCBKSVQgYnVnIGluIENocm9tZSAxOS0yMC5cbiAgICAvLyBTZWUgaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTIyOTEgZm9yIG1vcmUgZGV0YWlscy5cbiAgICBjb25zdCB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICAgIHJldHVybiAhIXZhbHVlICYmICh0eXBlID09PSAnb2JqZWN0JyB8fCB0eXBlID09PSAnZnVuY3Rpb24nKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRnVuY3Rpb24odmFsdWU6IGFueSk6IHZhbHVlIGlzIEZ1bmN0aW9uIHtcbiAgICBjb25zdCB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICAgIHJldHVybiAhIXZhbHVlICYmIHR5cGUgPT09ICdmdW5jdGlvbic7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGUodmFsdWU6IGFueSk6IHZhbHVlIGlzIERhdGUge1xuICAgIGNvbnN0IHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gICAgcmV0dXJuICEhdmFsdWUgJiYgdHlwZSA9PT0gJ29iamVjdCcgJiYgISF2YWx1ZS5nZXRUaW1lO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNCb29sZWFuKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBib29sZWFuIHtcbiAgICByZXR1cm4gdmFsdWUgPT09IHRydWUgfHwgdmFsdWUgPT09IGZhbHNlIHx8IChpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09PSAnW29iamVjdCBCb29sZWFuXScpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNUZW1wbGF0ZVJlZjxDID0gYW55Pih2YWx1ZTogYW55KTogdmFsdWUgaXMgVGVtcGxhdGVSZWY8Qz4ge1xuICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNIVE1MRWxlbWVudCh2YWx1ZTogYW55KTogdmFsdWUgaXMgSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNFbGVtZW50UmVmKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBFbGVtZW50UmVmIHtcbiAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBFbGVtZW50UmVmO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNGb3JtRWxlbWVudDxUID0gRWxlbWVudD4oZWxlbWVudE9yUmVmOiBFbGVtZW50UmVmPFQ+IHwgVCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBjb2VyY2VFbGVtZW50KGVsZW1lbnRPclJlZik7XG4gICAgaWYgKCEoZWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IG5hbWUgPSBlbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgdHlwZSA9IChlbGVtZW50LmdldEF0dHJpYnV0ZSgndHlwZScpIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xuICAgIHJldHVybiAoXG4gICAgICAgIG5hbWUgPT09ICdzZWxlY3QnIHx8XG4gICAgICAgIG5hbWUgPT09ICd0ZXh0YXJlYScgfHxcbiAgICAgICAgKG5hbWUgPT09ICdpbnB1dCcgJiYgdHlwZSAhPT0gJ3N1Ym1pdCcgJiYgdHlwZSAhPT0gJ3Jlc2V0JyAmJiB0eXBlICE9PSAnY2hlY2tib3gnICYmIHR5cGUgIT09ICdyYWRpbycgJiYgdHlwZSAhPT0gJ2ZpbGUnKSB8fFxuICAgICAgICBlbGVtZW50LmlzQ29udGVudEVkaXRhYmxlXG4gICAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTWFjUGxhdGZvcm0odXNlckFnZW50ID0gbmF2aWdhdG9yLnVzZXJBZ2VudCkge1xuICAgIHJldHVybiAvbWFjaW50b3NofG1hYyBvcyB4L2kudGVzdCh1c2VyQWdlbnQpO1xufVxuIl19
|
|
@@ -3,7 +3,7 @@ import { NgZone, OnDestroy } from '@angular/core';
|
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export declare abstract class ThyEventDispatcher<T = Event> implements OnDestroy {
|
|
5
5
|
protected document: Document;
|
|
6
|
-
|
|
6
|
+
protected ngZone: NgZone;
|
|
7
7
|
private eventName;
|
|
8
8
|
private _globalSubscription;
|
|
9
9
|
private _event$;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tethys-cdk-event.mjs","sources":["../../../cdk/event/event-dispatcher.ts","../../../cdk/event/click-dispatcher.ts","../../../cdk/event/keyboard-dispatcher.ts","../../../cdk/event/tethys-cdk-event.ts"],"sourcesContent":["import { fromEvent, Observable, Subject, Subscription } from 'rxjs';\nimport { auditTime } from 'rxjs/operators';\n\nimport { Directive, NgZone, OnDestroy } from '@angular/core';\n\nconst DEFAULT_EVENT_TIME = 100;\n\n@Directive()\nexport abstract class ThyEventDispatcher<T = Event> implements OnDestroy {\n private _globalSubscription: Subscription = null;\n\n private _event$ = new Subject<T>();\n\n private _subscriptionCount = 0;\n\n private _addGlobalListener() {\n this._globalSubscription = this.ngZone.runOutsideAngular(() => {\n return fromEvent<T>(this.document, this.eventName).subscribe((event: T) => {\n this._event$.next(event);\n });\n });\n }\n\n private _removeGlobalListener() {\n if (this._globalSubscription) {\n this._globalSubscription.unsubscribe();\n this._globalSubscription = null;\n }\n }\n\n get globalSubscription(): Subscription {\n return this._globalSubscription;\n }\n\n constructor(protected document: Document,
|
|
1
|
+
{"version":3,"file":"tethys-cdk-event.mjs","sources":["../../../cdk/event/event-dispatcher.ts","../../../cdk/event/click-dispatcher.ts","../../../cdk/event/keyboard-dispatcher.ts","../../../cdk/event/tethys-cdk-event.ts"],"sourcesContent":["import { fromEvent, Observable, Subject, Subscription } from 'rxjs';\nimport { auditTime } from 'rxjs/operators';\n\nimport { Directive, NgZone, OnDestroy } from '@angular/core';\n\nconst DEFAULT_EVENT_TIME = 100;\n\n@Directive()\nexport abstract class ThyEventDispatcher<T = Event> implements OnDestroy {\n private _globalSubscription: Subscription = null;\n\n private _event$ = new Subject<T>();\n\n private _subscriptionCount = 0;\n\n private _addGlobalListener() {\n this._globalSubscription = this.ngZone.runOutsideAngular(() => {\n return fromEvent<T>(this.document, this.eventName).subscribe((event: T) => {\n this._event$.next(event);\n });\n });\n }\n\n private _removeGlobalListener() {\n if (this._globalSubscription) {\n this._globalSubscription.unsubscribe();\n this._globalSubscription = null;\n }\n }\n\n get globalSubscription(): Subscription {\n return this._globalSubscription;\n }\n\n constructor(protected document: Document, protected ngZone: NgZone, private eventName: string) {}\n\n protected subscribe(auditTimeInMs: number = DEFAULT_EVENT_TIME): Observable<T> {\n return new Observable(observer => {\n if (!this._globalSubscription) {\n this._addGlobalListener();\n }\n // In the case of a 0ms delay, use an observable without auditTime\n // since it does add a perceptible delay in processing overhead.\n const subscription =\n auditTimeInMs > 0 ? this._event$.pipe(auditTime(auditTimeInMs)).subscribe(observer) : this._event$.subscribe(observer);\n\n this._subscriptionCount++;\n return () => {\n subscription.unsubscribe();\n this._subscriptionCount--;\n\n if (!this._subscriptionCount) {\n this._removeGlobalListener();\n }\n };\n });\n }\n\n ngOnDestroy() {\n this._removeGlobalListener();\n this._event$.complete();\n }\n}\n","import { Injectable, Inject, NgZone, OnDestroy } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { Observable } from 'rxjs';\nimport { ThyEventDispatcher } from './event-dispatcher';\n\nconst DEFAULT_CLICKED_TIME = 100;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyClickDispatcher extends ThyEventDispatcher {\n constructor(@Inject(DOCUMENT) document: any, ngZone: NgZone) {\n super(document, ngZone, 'click');\n }\n\n clicked(auditTimeInMs: number = DEFAULT_CLICKED_TIME): Observable<Event> {\n return this.subscribe(auditTimeInMs);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, NgZone } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ThyEventDispatcher } from './event-dispatcher';\n\nconst DEFAULT_KEYDOWN_TIME = 100;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyKeyboardDispatcher extends ThyEventDispatcher {\n constructor(@Inject(DOCUMENT) document: any, ngZone: NgZone) {\n super(document, ngZone, 'keydown');\n }\n\n keydown(auditTimeInMs: number = DEFAULT_KEYDOWN_TIME): Observable<Event> {\n return this.subscribe(auditTimeInMs);\n }\n}\n\n// @Injectable({ providedIn: 'root' })\n// export class ThyKeyboardDispatcher implements OnDestroy {\n// /** Currently attached keydown refs in the order they were attached. */\n// _attachedKeydownSubjects: Subject<KeyboardEvent>[] = [];\n\n// private _document: Document;\n\n// private _isAttached: boolean;\n\n// /** Keyboard event listener that will be attached to the body. */\n// private _keydownListener = (event: KeyboardEvent) => {\n// const keydownRefs = this._attachedKeydownSubjects;\n\n// for (let i = keydownRefs.length - 1; i > -1; i--) {\n// keydownRefs[i].next(event);\n// break;\n// }\n// }\n\n// /** Detaches the global keyboard event listener. */\n// private _detach() {\n// if (this._isAttached) {\n// this._document.body.removeEventListener(\n// 'keydown',\n// this._keydownListener,\n// true\n// );\n// this._isAttached = false;\n// }\n// }\n\n// constructor(@Inject(DOCUMENT) document: any) {\n// this._document = document;\n// }\n\n// ngOnDestroy() {\n// this._detach();\n// }\n\n// /** Add a new overlay to the list of attached overlay refs. */\n// add(keydownSubject: Subject<KeyboardEvent>): void {\n// // Ensure that we don't get the same overlay multiple times.\n// this.remove(keydownSubject);\n\n// // Lazily start dispatcher once first overlay is added\n// if (!this._isAttached) {\n// this._document.body.addEventListener(\n// 'keydown',\n// this._keydownListener,\n// true\n// );\n// this._isAttached = true;\n// }\n\n// this._attachedKeydownSubjects.push(keydownSubject);\n// }\n\n// /** Remove an keydown ref from the list of attached keydown refs. */\n// remove(keydownRef: Subject<KeyboardEvent>): void {\n// const index = this._attachedKeydownSubjects.indexOf(keydownRef);\n\n// if (index > -1) {\n// this._attachedKeydownSubjects.splice(index, 1);\n// }\n\n// // Remove the global listener once there are no more refs.\n// if (this._attachedKeydownSubjects.length === 0) {\n// this._detach();\n// }\n// }\n// }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -53,12 +53,12 @@ class ThyHotkeyDispatcher extends ThyEventDispatcher {
|
|
|
53
53
|
const subscription = keydown
|
|
54
54
|
.pipe(filter((event) => hotkeys.some(key => isHotkey(event, key))))
|
|
55
55
|
.subscribe((event) => {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
56
|
+
// 如果当前焦点的元素是表单元素并且焦点原色不是Hotkey绑定元素则忽略快捷键
|
|
57
|
+
if (isFormElement(this.document.activeElement) && this.document.activeElement !== scope) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
this.ngZone.run(() => {
|
|
61
|
+
subscriber.next(event);
|
|
62
62
|
});
|
|
63
63
|
});
|
|
64
64
|
return () => {
|
|
@@ -97,6 +97,7 @@ class ThyHotkeyDirective {
|
|
|
97
97
|
const scope = isString(this.thyHotkeyScope) ? this.document.querySelector(this.thyHotkeyScope) : this.thyHotkeyScope;
|
|
98
98
|
this.subscription = this.hotkeyDispatcher.keydown(this.thyHotkey, scope).subscribe(event => {
|
|
99
99
|
event.preventDefault();
|
|
100
|
+
event.stopPropagation();
|
|
100
101
|
if (isFormElement(this.elementRef)) {
|
|
101
102
|
this.elementRef.nativeElement.focus();
|
|
102
103
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tethys-cdk-hotkey.mjs","sources":["../../../cdk/hotkey/hotkey.ts","../../../cdk/hotkey/hotkey-dispatcher.ts","../../../cdk/hotkey/hotkey.directive.ts","../../../cdk/hotkey/module.ts","../../../cdk/hotkey/tethys-cdk-hotkey.ts"],"sourcesContent":["const modifierKeyNames: string[] = [`Control`, 'Alt', 'Meta', 'Shift'];\n\n// We don't want to show `Shift` when `event.key` is capital\nfunction showShift(event: KeyboardEvent): boolean {\n const { shiftKey, code, key } = event;\n return shiftKey && !(code.startsWith('Key') && key.toUpperCase() === key);\n}\n\nexport function hotkey(event: KeyboardEvent): string {\n const { ctrlKey, altKey, metaKey, key } = event;\n const hotkeyString: string[] = [];\n const modifiers: boolean[] = [ctrlKey, altKey, metaKey, showShift(event)];\n for (const [i, mod] of modifiers.entries()) {\n if (mod) hotkeyString.push(modifierKeyNames[i]);\n }\n\n if (!modifierKeyNames.includes(key)) {\n hotkeyString.push(key);\n }\n\n return hotkeyString.join('+');\n}\n\nexport function isHotkey(event: KeyboardEvent, key: string) {\n return key.toUpperCase() === hotkey(event).toUpperCase();\n}\n","import { coerceElement } from '@angular/cdk/coercion';\nimport { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, NgZone, ElementRef } from '@angular/core';\nimport { ThyEventDispatcher } from '@tethys/cdk/event';\nimport { fromEvent, Observable, Subscriber } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { isString, isUndefinedOrNull } from '@tethys/cdk/is';\nimport { isHotkey } from './hotkey';\n\n@Injectable({ providedIn: 'root' })\nexport class ThyHotkeyDispatcher extends ThyEventDispatcher {\n private keydownSubscriber: Subscriber<KeyboardEvent>;\n\n constructor(@Inject(DOCUMENT) document: any, ngZone: NgZone) {\n super(document, ngZone, 'keydown');\n }\n\n private createKeydownObservable(scope: Element | Document) {\n if (scope === this.document) {\n return this.subscribe(null);\n } else {\n return fromEvent(scope, 'keydown');\n }\n }\n\n /**\n * 热键事件订阅\n */\n keydown(hotkey: string | string[], scope?: ElementRef<Element> | Element | Document): Observable<KeyboardEvent> {\n const hotkeys = isString(hotkey) ? hotkey.split(',') : hotkey;\n const scopeElement = coerceElement(isUndefinedOrNull(scope) ? this.document : scope);\n const keydown = this.createKeydownObservable(scopeElement);\n return new Observable<KeyboardEvent>(subscriber => {\n const subscription = keydown\n .pipe(filter((event: KeyboardEvent) => hotkeys.some(key => isHotkey(event, key))))\n .subscribe((event: KeyboardEvent) => {\n this.keydownSubscriber = subscriber;\n // setTimeout 是为了解决 Hotkey 冲突时仅执行最后订阅的事件\n setTimeout(() => {\n this.keydownSubscriber?.next(event);\n this.keydownSubscriber = null;\n });\n });\n return () => {\n subscription.unsubscribe();\n };\n });\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Directive, ElementRef, EventEmitter, Inject, Input, OnInit, Output, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { isFormElement, isString } from '@tethys/cdk/is';\nimport { ThyHotkeyDispatcher } from './hotkey-dispatcher';\n\n/**\n * @name thyHotkey\n */\n@Directive({ selector: '[thyHotkey]' })\nexport class ThyHotkeyDirective implements OnInit, OnDestroy {\n /**\n * 热键对应 Code,多个热键组合支持通过数组或逗号分割的形式传入\n */\n @Input() thyHotkey: string | string[];\n\n /**\n * 配置热键触发范围,默认绑定在 document 上\n */\n @Input() thyHotkeyScope?: string | Element | ElementRef<Element>;\n\n /**\n * 热键触发后的事件\n */\n @Output() thyHotkeyListener: EventEmitter<KeyboardEvent> = new EventEmitter();\n\n private subscription: Subscription = null;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n private hotkeyDispatcher: ThyHotkeyDispatcher,\n private elementRef: ElementRef<HTMLElement>\n ) {}\n\n ngOnInit(): void {\n const scope = isString(this.thyHotkeyScope) ? this.document.querySelector(this.thyHotkeyScope) : this.thyHotkeyScope;\n this.subscription = this.hotkeyDispatcher.keydown(this.thyHotkey, scope).subscribe(event => {\n event.preventDefault();\n if (isFormElement(this.elementRef)) {\n this.elementRef.nativeElement.focus();\n } else {\n this.elementRef.nativeElement.click();\n }\n this.thyHotkeyListener.emit(event);\n });\n }\n\n ngOnDestroy(): void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ThyHotkeyDirective } from './hotkey.directive';\n\n@NgModule({\n imports: [],\n exports: [ThyHotkeyDirective],\n declarations: [ThyHotkeyDirective],\n providers: []\n})\nexport class ThyHotkeyModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ThyHotkeyDispatcher"],"mappings":";;;;;;;;;AAAA,MAAM,gBAAgB,GAAa,CAAC,CAAS,OAAA,CAAA,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAEvE;AACA,SAAS,SAAS,CAAC,KAAoB,EAAA;IACnC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;AACtC,IAAA,OAAO,QAAQ,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC;AAC9E,CAAC;AAEK,SAAU,MAAM,CAAC,KAAoB,EAAA;IACvC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IAChD,MAAM,YAAY,GAAa,EAAE,CAAC;AAClC,IAAA,MAAM,SAAS,GAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1E,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE;AACxC,QAAA,IAAI,GAAG;YAAE,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,KAAA;AAED,IAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACjC,QAAA,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,KAAA;AAED,IAAA,OAAO,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC;AAEe,SAAA,QAAQ,CAAC,KAAoB,EAAE,GAAW,EAAA;AACtD,IAAA,OAAO,GAAG,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AAC7D;;ACfM,MAAO,mBAAoB,SAAQ,kBAAkB,CAAA;IAGvD,WAA8B,CAAA,QAAa,EAAE,MAAc,EAAA;AACvD,QAAA,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;KACtC;AAEO,IAAA,uBAAuB,CAAC,KAAyB,EAAA;AACrD,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,QAAQ,EAAE;AACzB,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC/B,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACtC,SAAA;KACJ;AAED;;AAEG;IACH,OAAO,CAAC,MAAyB,EAAE,KAAgD,EAAA;AAC/E,QAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;AAC9D,QAAA,MAAM,YAAY,GAAG,aAAa,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;QACrF,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC;AAC3D,QAAA,OAAO,IAAI,UAAU,CAAgB,UAAU,IAAG;YAC9C,MAAM,YAAY,GAAG,OAAO;iBACvB,IAAI,CAAC,MAAM,CAAC,CAAC,KAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACjF,iBAAA,SAAS,CAAC,CAAC,KAAoB,KAAI;AAChC,gBAAA,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC;;gBAEpC,UAAU,CAAC,MAAK;;oBACZ,CAAA,EAAA,GAAA,IAAI,CAAC,iBAAiB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACpC,oBAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAClC,iBAAC,CAAC,CAAC;AACP,aAAC,CAAC,CAAC;AACP,YAAA,OAAO,MAAK;gBACR,YAAY,CAAC,WAAW,EAAE,CAAC;AAC/B,aAAC,CAAC;AACN,SAAC,CAAC,CAAC;KACN;;AArCQ,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,kBAGR,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAHnB,mBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cADN,MAAM,EAAA,CAAA,CAAA;2FACnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;8BAIjB,MAAM;+BAAC,QAAQ,CAAA;;;;ACPhC;;AAEG;MAEU,kBAAkB,CAAA;AAkB3B,IAAA,WAAA,CAC8B,QAAkB,EACpC,gBAAqC,EACrC,UAAmC,EAAA;AAFjB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;AACpC,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAqB;AACrC,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;AAV/C;;AAEG;AACO,QAAA,IAAA,CAAA,iBAAiB,GAAgC,IAAI,YAAY,EAAE,CAAC;AAEtE,QAAA,IAAY,CAAA,YAAA,GAAiB,IAAI,CAAC;KAMtC;IAEJ,QAAQ,GAAA;QACJ,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;QACrH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;YACvF,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,YAAA,IAAI,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AAChC,gBAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACzC,aAAA;AAAM,iBAAA;AACH,gBAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACzC,aAAA;AACD,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,SAAC,CAAC,CAAC;KACN;IAED,WAAW,GAAA;QACP,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;AACnC,SAAA;KACJ;;AAzCQ,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,kBAmBf,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAnBX,kBAAkB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,SAAS;mBAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAA;;wBAoBM,QAAQ,EAAA,UAAA,EAAA,CAAA;8BAA3C,MAAM;+BAAC,QAAQ,CAAA;;yBAfX,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAKG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAKI,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;;;MCfE,eAAe,CAAA;;4GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;6GAAf,eAAe,EAAA,YAAA,EAAA,CAHT,kBAAkB,CAAA,EAAA,OAAA,EAAA,CADvB,kBAAkB,CAAA,EAAA,CAAA,CAAA;6GAInB,eAAe,EAAA,CAAA,CAAA;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,EAAE;oBACX,OAAO,EAAE,CAAC,kBAAkB,CAAC;oBAC7B,YAAY,EAAE,CAAC,kBAAkB,CAAC;AAClC,oBAAA,SAAS,EAAE,EAAE;iBAChB,CAAA;;;ACRD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"tethys-cdk-hotkey.mjs","sources":["../../../cdk/hotkey/hotkey.ts","../../../cdk/hotkey/hotkey-dispatcher.ts","../../../cdk/hotkey/hotkey.directive.ts","../../../cdk/hotkey/module.ts","../../../cdk/hotkey/tethys-cdk-hotkey.ts"],"sourcesContent":["const modifierKeyNames: string[] = [`Control`, 'Alt', 'Meta', 'Shift'];\n\n// We don't want to show `Shift` when `event.key` is capital\nfunction showShift(event: KeyboardEvent): boolean {\n const { shiftKey, code, key } = event;\n return shiftKey && !(code.startsWith('Key') && key.toUpperCase() === key);\n}\n\nexport function hotkey(event: KeyboardEvent): string {\n const { ctrlKey, altKey, metaKey, key } = event;\n const hotkeyString: string[] = [];\n const modifiers: boolean[] = [ctrlKey, altKey, metaKey, showShift(event)];\n for (const [i, mod] of modifiers.entries()) {\n if (mod) hotkeyString.push(modifierKeyNames[i]);\n }\n\n if (!modifierKeyNames.includes(key)) {\n hotkeyString.push(key);\n }\n\n return hotkeyString.join('+');\n}\n\nexport function isHotkey(event: KeyboardEvent, key: string) {\n return key.toUpperCase() === hotkey(event).toUpperCase();\n}\n","import { coerceElement } from '@angular/cdk/coercion';\nimport { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, NgZone, ElementRef } from '@angular/core';\nimport { ThyEventDispatcher } from '@tethys/cdk/event';\nimport { fromEvent, Observable, Subscriber } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { isFormElement, isString, isUndefinedOrNull } from '@tethys/cdk/is';\nimport { isHotkey } from './hotkey';\n\n@Injectable({ providedIn: 'root' })\nexport class ThyHotkeyDispatcher extends ThyEventDispatcher {\n constructor(@Inject(DOCUMENT) document: any, ngZone: NgZone) {\n super(document, ngZone, 'keydown');\n }\n\n private createKeydownObservable(scope: Element | Document) {\n if (scope === this.document) {\n return this.subscribe(null);\n } else {\n return fromEvent(scope, 'keydown');\n }\n }\n\n /**\n * 热键事件订阅\n */\n keydown(hotkey: string | string[], scope?: ElementRef<Element> | Element | Document): Observable<KeyboardEvent> {\n const hotkeys = isString(hotkey) ? hotkey.split(',') : hotkey;\n const scopeElement = coerceElement(isUndefinedOrNull(scope) ? this.document : scope);\n const keydown = this.createKeydownObservable(scopeElement);\n return new Observable<KeyboardEvent>(subscriber => {\n const subscription = keydown\n .pipe(filter((event: KeyboardEvent) => hotkeys.some(key => isHotkey(event, key))))\n .subscribe((event: KeyboardEvent) => {\n // 如果当前焦点的元素是表单元素并且焦点原色不是Hotkey绑定元素则忽略快捷键\n if (isFormElement(this.document.activeElement) && this.document.activeElement !== scope) {\n return;\n }\n this.ngZone.run(() => {\n subscriber.next(event);\n });\n });\n return () => {\n subscription.unsubscribe();\n };\n });\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Directive, ElementRef, EventEmitter, Inject, Input, OnInit, Output, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { isFormElement, isString } from '@tethys/cdk/is';\nimport { ThyHotkeyDispatcher } from './hotkey-dispatcher';\n\n/**\n * @name thyHotkey\n */\n@Directive({ selector: '[thyHotkey]' })\nexport class ThyHotkeyDirective implements OnInit, OnDestroy {\n /**\n * 热键对应 Code,多个热键组合支持通过数组或逗号分割的形式传入\n */\n @Input() thyHotkey: string | string[];\n\n /**\n * 配置热键触发范围,默认绑定在 document 上\n */\n @Input() thyHotkeyScope?: string | Element | ElementRef<Element>;\n\n /**\n * 热键触发后的事件\n */\n @Output() thyHotkeyListener: EventEmitter<KeyboardEvent> = new EventEmitter();\n\n private subscription: Subscription = null;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n private hotkeyDispatcher: ThyHotkeyDispatcher,\n private elementRef: ElementRef<HTMLElement>\n ) {}\n\n ngOnInit(): void {\n const scope = isString(this.thyHotkeyScope) ? this.document.querySelector(this.thyHotkeyScope) : this.thyHotkeyScope;\n this.subscription = this.hotkeyDispatcher.keydown(this.thyHotkey, scope).subscribe(event => {\n event.preventDefault();\n event.stopPropagation();\n if (isFormElement(this.elementRef)) {\n this.elementRef.nativeElement.focus();\n } else {\n this.elementRef.nativeElement.click();\n }\n this.thyHotkeyListener.emit(event);\n });\n }\n\n ngOnDestroy(): void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ThyHotkeyDirective } from './hotkey.directive';\n\n@NgModule({\n imports: [],\n exports: [ThyHotkeyDirective],\n declarations: [ThyHotkeyDirective],\n providers: []\n})\nexport class ThyHotkeyModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ThyHotkeyDispatcher"],"mappings":";;;;;;;;;AAAA,MAAM,gBAAgB,GAAa,CAAC,CAAS,OAAA,CAAA,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAEvE;AACA,SAAS,SAAS,CAAC,KAAoB,EAAA;IACnC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;AACtC,IAAA,OAAO,QAAQ,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC;AAC9E,CAAC;AAEK,SAAU,MAAM,CAAC,KAAoB,EAAA;IACvC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IAChD,MAAM,YAAY,GAAa,EAAE,CAAC;AAClC,IAAA,MAAM,SAAS,GAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1E,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE;AACxC,QAAA,IAAI,GAAG;YAAE,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,KAAA;AAED,IAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACjC,QAAA,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,KAAA;AAED,IAAA,OAAO,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC;AAEe,SAAA,QAAQ,CAAC,KAAoB,EAAE,GAAW,EAAA;AACtD,IAAA,OAAO,GAAG,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AAC7D;;ACfM,MAAO,mBAAoB,SAAQ,kBAAkB,CAAA;IACvD,WAA8B,CAAA,QAAa,EAAE,MAAc,EAAA;AACvD,QAAA,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;KACtC;AAEO,IAAA,uBAAuB,CAAC,KAAyB,EAAA;AACrD,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,QAAQ,EAAE;AACzB,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC/B,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACtC,SAAA;KACJ;AAED;;AAEG;IACH,OAAO,CAAC,MAAyB,EAAE,KAAgD,EAAA;AAC/E,QAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;AAC9D,QAAA,MAAM,YAAY,GAAG,aAAa,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;QACrF,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC;AAC3D,QAAA,OAAO,IAAI,UAAU,CAAgB,UAAU,IAAG;YAC9C,MAAM,YAAY,GAAG,OAAO;iBACvB,IAAI,CAAC,MAAM,CAAC,CAAC,KAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACjF,iBAAA,SAAS,CAAC,CAAC,KAAoB,KAAI;;AAEhC,gBAAA,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,KAAK,KAAK,EAAE;oBACrF,OAAO;AACV,iBAAA;AACD,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;AACjB,oBAAA,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,iBAAC,CAAC,CAAC;AACP,aAAC,CAAC,CAAC;AACP,YAAA,OAAO,MAAK;gBACR,YAAY,CAAC,WAAW,EAAE,CAAC;AAC/B,aAAC,CAAC;AACN,SAAC,CAAC,CAAC;KACN;;AApCQ,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,kBACR,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AADnB,mBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cADN,MAAM,EAAA,CAAA,CAAA;2FACnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;8BAEjB,MAAM;+BAAC,QAAQ,CAAA;;;;ACLhC;;AAEG;MAEU,kBAAkB,CAAA;AAkB3B,IAAA,WAAA,CAC8B,QAAkB,EACpC,gBAAqC,EACrC,UAAmC,EAAA;AAFjB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;AACpC,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAqB;AACrC,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;AAV/C;;AAEG;AACO,QAAA,IAAA,CAAA,iBAAiB,GAAgC,IAAI,YAAY,EAAE,CAAC;AAEtE,QAAA,IAAY,CAAA,YAAA,GAAiB,IAAI,CAAC;KAMtC;IAEJ,QAAQ,GAAA;QACJ,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;QACrH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;YACvF,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,YAAA,IAAI,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AAChC,gBAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACzC,aAAA;AAAM,iBAAA;AACH,gBAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACzC,aAAA;AACD,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,SAAC,CAAC,CAAC;KACN;IAED,WAAW,GAAA;QACP,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;AACnC,SAAA;KACJ;;AA1CQ,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,kBAmBf,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAnBX,kBAAkB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,SAAS;mBAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAA;;wBAoBM,QAAQ,EAAA,UAAA,EAAA,CAAA;8BAA3C,MAAM;+BAAC,QAAQ,CAAA;;yBAfX,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAKG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAKI,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;;;MCfE,eAAe,CAAA;;4GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;6GAAf,eAAe,EAAA,YAAA,EAAA,CAHT,kBAAkB,CAAA,EAAA,OAAA,EAAA,CADvB,kBAAkB,CAAA,EAAA,CAAA,CAAA;6GAInB,eAAe,EAAA,CAAA,CAAA;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,EAAE;oBACX,OAAO,EAAE,CAAC,kBAAkB,CAAC;oBAC7B,YAAY,EAAE,CAAC,kBAAkB,CAAC;AAClC,oBAAA,SAAS,EAAE,EAAE;iBAChB,CAAA;;;ACRD;;AAEG;;;;"}
|
|
@@ -108,10 +108,13 @@ function isFormElement(elementOrRef) {
|
|
|
108
108
|
(name === 'input' && type !== 'submit' && type !== 'reset' && type !== 'checkbox' && type !== 'radio' && type !== 'file') ||
|
|
109
109
|
element.isContentEditable);
|
|
110
110
|
}
|
|
111
|
+
function isMacPlatform(userAgent = navigator.userAgent) {
|
|
112
|
+
return /macintosh|mac os x/i.test(userAgent);
|
|
113
|
+
}
|
|
111
114
|
|
|
112
115
|
/**
|
|
113
116
|
* Generated bundle index. Do not edit.
|
|
114
117
|
*/
|
|
115
118
|
|
|
116
|
-
export { isArray, isBoolean, isDate, isElementRef, isEmpty, isFormElement, isFunction, isHTMLElement, isNull, isNumber, isObject, isString, isTemplateRef, isUndefined, isUndefinedOrNull };
|
|
119
|
+
export { isArray, isBoolean, isDate, isElementRef, isEmpty, isFormElement, isFunction, isHTMLElement, isMacPlatform, isNull, isNumber, isObject, isString, isTemplateRef, isUndefined, isUndefinedOrNull };
|
|
117
120
|
//# sourceMappingURL=tethys-cdk-is.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tethys-cdk-is.mjs","sources":["../../../cdk/is/utils.ts","../../../cdk/is/tethys-cdk-is.ts"],"sourcesContent":["import { coerceElement } from '@angular/cdk/coercion';\nimport { ElementRef, TemplateRef } from '@angular/core';\n\nexport function isUndefined(value: any): value is undefined {\n return value === undefined;\n}\n\nexport function isNull(value: any): value is null {\n return value === null;\n}\n\nexport function isUndefinedOrNull(value: any): value is undefined | null {\n return isUndefined(value) || isNull(value);\n}\n\nexport function isArray<T = any>(value: any): value is Array<T> {\n return value && baseGetTag(value) === '[object Array]';\n}\n\nexport function isEmpty(value?: any): boolean {\n if (isUndefinedOrNull(value)) {\n return true;\n }\n if (isArray(value)) {\n return !value.length;\n }\n const tag = baseGetTag(value);\n if (tag == '[object Map]' || tag == '[object Set]') {\n return !value.size;\n }\n for (const key in value) {\n if (Object.hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport function isString(value?: any): value is string {\n return typeof value == 'string' || (!isArray(value) && isObjectLike(value) && baseGetTag(value) === '[object String]');\n}\n\nfunction isObjectLike(value: any): value is object {\n return value !== null && typeof value === 'object';\n}\n\nfunction baseGetTag(value: any) {\n const objectProto = Object.prototype;\n const hasOwnProperty = objectProto.hasOwnProperty;\n const toString = objectProto.toString;\n const symToStringTag = typeof Symbol !== 'undefined' ? Symbol.toStringTag : undefined;\n\n if (value == null) {\n return value === undefined ? '[object Undefined]' : '[object Null]';\n }\n if (!(symToStringTag && symToStringTag in Object(value))) {\n return toString.call(value);\n }\n const isOwn = hasOwnProperty.call(value, symToStringTag);\n const tag = value[symToStringTag];\n let unmasked = false;\n try {\n value[symToStringTag] = undefined;\n unmasked = true;\n } catch (e) {}\n\n const result = toString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport function isNumber(value: any): value is number {\n return typeof value === 'number' || (isObjectLike(value) && baseGetTag(value) === '[object Number]');\n}\n\nexport function isObject(value: any): value is object {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n const type = typeof value;\n return !!value && (type === 'object' || type === 'function');\n}\n\nexport function isFunction(value: any): value is Function {\n const type = typeof value;\n return !!value && type === 'function';\n}\n\nexport function isDate(value: any): value is Date {\n const type = typeof value;\n return !!value && type === 'object' && !!value.getTime;\n}\n\nexport function isBoolean(value: any): value is boolean {\n return value === true || value === false || (isObjectLike(value) && baseGetTag(value) === '[object Boolean]');\n}\n\nexport function isTemplateRef<C = any>(value: any): value is TemplateRef<C> {\n return value instanceof TemplateRef;\n}\n\nexport function isHTMLElement(value: any): value is HTMLElement {\n return value instanceof HTMLElement;\n}\n\nexport function isElementRef(value: any): value is ElementRef {\n return value instanceof ElementRef;\n}\n\nexport function isFormElement<T = Element>(elementOrRef: ElementRef<T> | T): boolean {\n const element = coerceElement(elementOrRef);\n if (!(element instanceof HTMLElement)) {\n return false;\n }\n const name = element.nodeName.toLowerCase();\n const type = (element.getAttribute('type') || '').toLowerCase();\n return (\n name === 'select' ||\n name === 'textarea' ||\n (name === 'input' && type !== 'submit' && type !== 'reset' && type !== 'checkbox' && type !== 'radio' && type !== 'file') ||\n element.isContentEditable\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tethys-cdk-is.mjs","sources":["../../../cdk/is/utils.ts","../../../cdk/is/tethys-cdk-is.ts"],"sourcesContent":["import { coerceElement } from '@angular/cdk/coercion';\nimport { ElementRef, TemplateRef } from '@angular/core';\n\nexport function isUndefined(value: any): value is undefined {\n return value === undefined;\n}\n\nexport function isNull(value: any): value is null {\n return value === null;\n}\n\nexport function isUndefinedOrNull(value: any): value is undefined | null {\n return isUndefined(value) || isNull(value);\n}\n\nexport function isArray<T = any>(value: any): value is Array<T> {\n return value && baseGetTag(value) === '[object Array]';\n}\n\nexport function isEmpty(value?: any): boolean {\n if (isUndefinedOrNull(value)) {\n return true;\n }\n if (isArray(value)) {\n return !value.length;\n }\n const tag = baseGetTag(value);\n if (tag == '[object Map]' || tag == '[object Set]') {\n return !value.size;\n }\n for (const key in value) {\n if (Object.hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport function isString(value?: any): value is string {\n return typeof value == 'string' || (!isArray(value) && isObjectLike(value) && baseGetTag(value) === '[object String]');\n}\n\nfunction isObjectLike(value: any): value is object {\n return value !== null && typeof value === 'object';\n}\n\nfunction baseGetTag(value: any) {\n const objectProto = Object.prototype;\n const hasOwnProperty = objectProto.hasOwnProperty;\n const toString = objectProto.toString;\n const symToStringTag = typeof Symbol !== 'undefined' ? Symbol.toStringTag : undefined;\n\n if (value == null) {\n return value === undefined ? '[object Undefined]' : '[object Null]';\n }\n if (!(symToStringTag && symToStringTag in Object(value))) {\n return toString.call(value);\n }\n const isOwn = hasOwnProperty.call(value, symToStringTag);\n const tag = value[symToStringTag];\n let unmasked = false;\n try {\n value[symToStringTag] = undefined;\n unmasked = true;\n } catch (e) {}\n\n const result = toString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport function isNumber(value: any): value is number {\n return typeof value === 'number' || (isObjectLike(value) && baseGetTag(value) === '[object Number]');\n}\n\nexport function isObject(value: any): value is object {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n const type = typeof value;\n return !!value && (type === 'object' || type === 'function');\n}\n\nexport function isFunction(value: any): value is Function {\n const type = typeof value;\n return !!value && type === 'function';\n}\n\nexport function isDate(value: any): value is Date {\n const type = typeof value;\n return !!value && type === 'object' && !!value.getTime;\n}\n\nexport function isBoolean(value: any): value is boolean {\n return value === true || value === false || (isObjectLike(value) && baseGetTag(value) === '[object Boolean]');\n}\n\nexport function isTemplateRef<C = any>(value: any): value is TemplateRef<C> {\n return value instanceof TemplateRef;\n}\n\nexport function isHTMLElement(value: any): value is HTMLElement {\n return value instanceof HTMLElement;\n}\n\nexport function isElementRef(value: any): value is ElementRef {\n return value instanceof ElementRef;\n}\n\nexport function isFormElement<T = Element>(elementOrRef: ElementRef<T> | T): boolean {\n const element = coerceElement(elementOrRef);\n if (!(element instanceof HTMLElement)) {\n return false;\n }\n const name = element.nodeName.toLowerCase();\n const type = (element.getAttribute('type') || '').toLowerCase();\n return (\n name === 'select' ||\n name === 'textarea' ||\n (name === 'input' && type !== 'submit' && type !== 'reset' && type !== 'checkbox' && type !== 'radio' && type !== 'file') ||\n element.isContentEditable\n );\n}\n\nexport function isMacPlatform(userAgent = navigator.userAgent) {\n return /macintosh|mac os x/i.test(userAgent);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tethys-cdk-event.mjs","sources":["../../../cdk/event/event-dispatcher.ts","../../../cdk/event/click-dispatcher.ts","../../../cdk/event/keyboard-dispatcher.ts","../../../cdk/event/tethys-cdk-event.ts"],"sourcesContent":["import { fromEvent, Observable, Subject, Subscription } from 'rxjs';\nimport { auditTime } from 'rxjs/operators';\n\nimport { Directive, NgZone, OnDestroy } from '@angular/core';\n\nconst DEFAULT_EVENT_TIME = 100;\n\n@Directive()\nexport abstract class ThyEventDispatcher<T = Event> implements OnDestroy {\n private _globalSubscription: Subscription = null;\n\n private _event$ = new Subject<T>();\n\n private _subscriptionCount = 0;\n\n private _addGlobalListener() {\n this._globalSubscription = this.ngZone.runOutsideAngular(() => {\n return fromEvent<T>(this.document, this.eventName).subscribe((event: T) => {\n this._event$.next(event);\n });\n });\n }\n\n private _removeGlobalListener() {\n if (this._globalSubscription) {\n this._globalSubscription.unsubscribe();\n this._globalSubscription = null;\n }\n }\n\n get globalSubscription(): Subscription {\n return this._globalSubscription;\n }\n\n constructor(protected document: Document,
|
|
1
|
+
{"version":3,"file":"tethys-cdk-event.mjs","sources":["../../../cdk/event/event-dispatcher.ts","../../../cdk/event/click-dispatcher.ts","../../../cdk/event/keyboard-dispatcher.ts","../../../cdk/event/tethys-cdk-event.ts"],"sourcesContent":["import { fromEvent, Observable, Subject, Subscription } from 'rxjs';\nimport { auditTime } from 'rxjs/operators';\n\nimport { Directive, NgZone, OnDestroy } from '@angular/core';\n\nconst DEFAULT_EVENT_TIME = 100;\n\n@Directive()\nexport abstract class ThyEventDispatcher<T = Event> implements OnDestroy {\n private _globalSubscription: Subscription = null;\n\n private _event$ = new Subject<T>();\n\n private _subscriptionCount = 0;\n\n private _addGlobalListener() {\n this._globalSubscription = this.ngZone.runOutsideAngular(() => {\n return fromEvent<T>(this.document, this.eventName).subscribe((event: T) => {\n this._event$.next(event);\n });\n });\n }\n\n private _removeGlobalListener() {\n if (this._globalSubscription) {\n this._globalSubscription.unsubscribe();\n this._globalSubscription = null;\n }\n }\n\n get globalSubscription(): Subscription {\n return this._globalSubscription;\n }\n\n constructor(protected document: Document, protected ngZone: NgZone, private eventName: string) {}\n\n protected subscribe(auditTimeInMs: number = DEFAULT_EVENT_TIME): Observable<T> {\n return new Observable(observer => {\n if (!this._globalSubscription) {\n this._addGlobalListener();\n }\n // In the case of a 0ms delay, use an observable without auditTime\n // since it does add a perceptible delay in processing overhead.\n const subscription =\n auditTimeInMs > 0 ? this._event$.pipe(auditTime(auditTimeInMs)).subscribe(observer) : this._event$.subscribe(observer);\n\n this._subscriptionCount++;\n return () => {\n subscription.unsubscribe();\n this._subscriptionCount--;\n\n if (!this._subscriptionCount) {\n this._removeGlobalListener();\n }\n };\n });\n }\n\n ngOnDestroy() {\n this._removeGlobalListener();\n this._event$.complete();\n }\n}\n","import { Injectable, Inject, NgZone, OnDestroy } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { Observable } from 'rxjs';\nimport { ThyEventDispatcher } from './event-dispatcher';\n\nconst DEFAULT_CLICKED_TIME = 100;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyClickDispatcher extends ThyEventDispatcher {\n constructor(@Inject(DOCUMENT) document: any, ngZone: NgZone) {\n super(document, ngZone, 'click');\n }\n\n clicked(auditTimeInMs: number = DEFAULT_CLICKED_TIME): Observable<Event> {\n return this.subscribe(auditTimeInMs);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, NgZone } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ThyEventDispatcher } from './event-dispatcher';\n\nconst DEFAULT_KEYDOWN_TIME = 100;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyKeyboardDispatcher extends ThyEventDispatcher {\n constructor(@Inject(DOCUMENT) document: any, ngZone: NgZone) {\n super(document, ngZone, 'keydown');\n }\n\n keydown(auditTimeInMs: number = DEFAULT_KEYDOWN_TIME): Observable<Event> {\n return this.subscribe(auditTimeInMs);\n }\n}\n\n// @Injectable({ providedIn: 'root' })\n// export class ThyKeyboardDispatcher implements OnDestroy {\n// /** Currently attached keydown refs in the order they were attached. */\n// _attachedKeydownSubjects: Subject<KeyboardEvent>[] = [];\n\n// private _document: Document;\n\n// private _isAttached: boolean;\n\n// /** Keyboard event listener that will be attached to the body. */\n// private _keydownListener = (event: KeyboardEvent) => {\n// const keydownRefs = this._attachedKeydownSubjects;\n\n// for (let i = keydownRefs.length - 1; i > -1; i--) {\n// keydownRefs[i].next(event);\n// break;\n// }\n// }\n\n// /** Detaches the global keyboard event listener. */\n// private _detach() {\n// if (this._isAttached) {\n// this._document.body.removeEventListener(\n// 'keydown',\n// this._keydownListener,\n// true\n// );\n// this._isAttached = false;\n// }\n// }\n\n// constructor(@Inject(DOCUMENT) document: any) {\n// this._document = document;\n// }\n\n// ngOnDestroy() {\n// this._detach();\n// }\n\n// /** Add a new overlay to the list of attached overlay refs. */\n// add(keydownSubject: Subject<KeyboardEvent>): void {\n// // Ensure that we don't get the same overlay multiple times.\n// this.remove(keydownSubject);\n\n// // Lazily start dispatcher once first overlay is added\n// if (!this._isAttached) {\n// this._document.body.addEventListener(\n// 'keydown',\n// this._keydownListener,\n// true\n// );\n// this._isAttached = true;\n// }\n\n// this._attachedKeydownSubjects.push(keydownSubject);\n// }\n\n// /** Remove an keydown ref from the list of attached keydown refs. */\n// remove(keydownRef: Subject<KeyboardEvent>): void {\n// const index = this._attachedKeydownSubjects.indexOf(keydownRef);\n\n// if (index > -1) {\n// this._attachedKeydownSubjects.splice(index, 1);\n// }\n\n// // Remove the global listener once there are no more refs.\n// if (this._attachedKeydownSubjects.length === 0) {\n// this._detach();\n// }\n// }\n// }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -53,11 +53,12 @@ class ThyHotkeyDispatcher extends ThyEventDispatcher {
|
|
|
53
53
|
const subscription = keydown
|
|
54
54
|
.pipe(filter((event) => hotkeys.some(key => isHotkey(event, key))))
|
|
55
55
|
.subscribe((event) => {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
56
|
+
// 如果当前焦点的元素是表单元素并且焦点原色不是Hotkey绑定元素则忽略快捷键
|
|
57
|
+
if (isFormElement(this.document.activeElement) && this.document.activeElement !== scope) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
this.ngZone.run(() => {
|
|
61
|
+
subscriber.next(event);
|
|
61
62
|
});
|
|
62
63
|
});
|
|
63
64
|
return () => {
|
|
@@ -94,6 +95,7 @@ class ThyHotkeyDirective {
|
|
|
94
95
|
const scope = isString(this.thyHotkeyScope) ? this.document.querySelector(this.thyHotkeyScope) : this.thyHotkeyScope;
|
|
95
96
|
this.subscription = this.hotkeyDispatcher.keydown(this.thyHotkey, scope).subscribe(event => {
|
|
96
97
|
event.preventDefault();
|
|
98
|
+
event.stopPropagation();
|
|
97
99
|
if (isFormElement(this.elementRef)) {
|
|
98
100
|
this.elementRef.nativeElement.focus();
|
|
99
101
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tethys-cdk-hotkey.mjs","sources":["../../../cdk/hotkey/hotkey.ts","../../../cdk/hotkey/hotkey-dispatcher.ts","../../../cdk/hotkey/hotkey.directive.ts","../../../cdk/hotkey/module.ts","../../../cdk/hotkey/tethys-cdk-hotkey.ts"],"sourcesContent":["const modifierKeyNames: string[] = [`Control`, 'Alt', 'Meta', 'Shift'];\n\n// We don't want to show `Shift` when `event.key` is capital\nfunction showShift(event: KeyboardEvent): boolean {\n const { shiftKey, code, key } = event;\n return shiftKey && !(code.startsWith('Key') && key.toUpperCase() === key);\n}\n\nexport function hotkey(event: KeyboardEvent): string {\n const { ctrlKey, altKey, metaKey, key } = event;\n const hotkeyString: string[] = [];\n const modifiers: boolean[] = [ctrlKey, altKey, metaKey, showShift(event)];\n for (const [i, mod] of modifiers.entries()) {\n if (mod) hotkeyString.push(modifierKeyNames[i]);\n }\n\n if (!modifierKeyNames.includes(key)) {\n hotkeyString.push(key);\n }\n\n return hotkeyString.join('+');\n}\n\nexport function isHotkey(event: KeyboardEvent, key: string) {\n return key.toUpperCase() === hotkey(event).toUpperCase();\n}\n","import { coerceElement } from '@angular/cdk/coercion';\nimport { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, NgZone, ElementRef } from '@angular/core';\nimport { ThyEventDispatcher } from '@tethys/cdk/event';\nimport { fromEvent, Observable, Subscriber } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { isString, isUndefinedOrNull } from '@tethys/cdk/is';\nimport { isHotkey } from './hotkey';\n\n@Injectable({ providedIn: 'root' })\nexport class ThyHotkeyDispatcher extends ThyEventDispatcher {\n private keydownSubscriber: Subscriber<KeyboardEvent>;\n\n constructor(@Inject(DOCUMENT) document: any, ngZone: NgZone) {\n super(document, ngZone, 'keydown');\n }\n\n private createKeydownObservable(scope: Element | Document) {\n if (scope === this.document) {\n return this.subscribe(null);\n } else {\n return fromEvent(scope, 'keydown');\n }\n }\n\n /**\n * 热键事件订阅\n */\n keydown(hotkey: string | string[], scope?: ElementRef<Element> | Element | Document): Observable<KeyboardEvent> {\n const hotkeys = isString(hotkey) ? hotkey.split(',') : hotkey;\n const scopeElement = coerceElement(isUndefinedOrNull(scope) ? this.document : scope);\n const keydown = this.createKeydownObservable(scopeElement);\n return new Observable<KeyboardEvent>(subscriber => {\n const subscription = keydown\n .pipe(filter((event: KeyboardEvent) => hotkeys.some(key => isHotkey(event, key))))\n .subscribe((event: KeyboardEvent) => {\n this.keydownSubscriber = subscriber;\n // setTimeout 是为了解决 Hotkey 冲突时仅执行最后订阅的事件\n setTimeout(() => {\n this.keydownSubscriber?.next(event);\n this.keydownSubscriber = null;\n });\n });\n return () => {\n subscription.unsubscribe();\n };\n });\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Directive, ElementRef, EventEmitter, Inject, Input, OnInit, Output, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { isFormElement, isString } from '@tethys/cdk/is';\nimport { ThyHotkeyDispatcher } from './hotkey-dispatcher';\n\n/**\n * @name thyHotkey\n */\n@Directive({ selector: '[thyHotkey]' })\nexport class ThyHotkeyDirective implements OnInit, OnDestroy {\n /**\n * 热键对应 Code,多个热键组合支持通过数组或逗号分割的形式传入\n */\n @Input() thyHotkey: string | string[];\n\n /**\n * 配置热键触发范围,默认绑定在 document 上\n */\n @Input() thyHotkeyScope?: string | Element | ElementRef<Element>;\n\n /**\n * 热键触发后的事件\n */\n @Output() thyHotkeyListener: EventEmitter<KeyboardEvent> = new EventEmitter();\n\n private subscription: Subscription = null;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n private hotkeyDispatcher: ThyHotkeyDispatcher,\n private elementRef: ElementRef<HTMLElement>\n ) {}\n\n ngOnInit(): void {\n const scope = isString(this.thyHotkeyScope) ? this.document.querySelector(this.thyHotkeyScope) : this.thyHotkeyScope;\n this.subscription = this.hotkeyDispatcher.keydown(this.thyHotkey, scope).subscribe(event => {\n event.preventDefault();\n if (isFormElement(this.elementRef)) {\n this.elementRef.nativeElement.focus();\n } else {\n this.elementRef.nativeElement.click();\n }\n this.thyHotkeyListener.emit(event);\n });\n }\n\n ngOnDestroy(): void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ThyHotkeyDirective } from './hotkey.directive';\n\n@NgModule({\n imports: [],\n exports: [ThyHotkeyDirective],\n declarations: [ThyHotkeyDirective],\n providers: []\n})\nexport class ThyHotkeyModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ThyHotkeyDispatcher"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tethys-cdk-hotkey.mjs","sources":["../../../cdk/hotkey/hotkey.ts","../../../cdk/hotkey/hotkey-dispatcher.ts","../../../cdk/hotkey/hotkey.directive.ts","../../../cdk/hotkey/module.ts","../../../cdk/hotkey/tethys-cdk-hotkey.ts"],"sourcesContent":["const modifierKeyNames: string[] = [`Control`, 'Alt', 'Meta', 'Shift'];\n\n// We don't want to show `Shift` when `event.key` is capital\nfunction showShift(event: KeyboardEvent): boolean {\n const { shiftKey, code, key } = event;\n return shiftKey && !(code.startsWith('Key') && key.toUpperCase() === key);\n}\n\nexport function hotkey(event: KeyboardEvent): string {\n const { ctrlKey, altKey, metaKey, key } = event;\n const hotkeyString: string[] = [];\n const modifiers: boolean[] = [ctrlKey, altKey, metaKey, showShift(event)];\n for (const [i, mod] of modifiers.entries()) {\n if (mod) hotkeyString.push(modifierKeyNames[i]);\n }\n\n if (!modifierKeyNames.includes(key)) {\n hotkeyString.push(key);\n }\n\n return hotkeyString.join('+');\n}\n\nexport function isHotkey(event: KeyboardEvent, key: string) {\n return key.toUpperCase() === hotkey(event).toUpperCase();\n}\n","import { coerceElement } from '@angular/cdk/coercion';\nimport { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, NgZone, ElementRef } from '@angular/core';\nimport { ThyEventDispatcher } from '@tethys/cdk/event';\nimport { fromEvent, Observable, Subscriber } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { isFormElement, isString, isUndefinedOrNull } from '@tethys/cdk/is';\nimport { isHotkey } from './hotkey';\n\n@Injectable({ providedIn: 'root' })\nexport class ThyHotkeyDispatcher extends ThyEventDispatcher {\n constructor(@Inject(DOCUMENT) document: any, ngZone: NgZone) {\n super(document, ngZone, 'keydown');\n }\n\n private createKeydownObservable(scope: Element | Document) {\n if (scope === this.document) {\n return this.subscribe(null);\n } else {\n return fromEvent(scope, 'keydown');\n }\n }\n\n /**\n * 热键事件订阅\n */\n keydown(hotkey: string | string[], scope?: ElementRef<Element> | Element | Document): Observable<KeyboardEvent> {\n const hotkeys = isString(hotkey) ? hotkey.split(',') : hotkey;\n const scopeElement = coerceElement(isUndefinedOrNull(scope) ? this.document : scope);\n const keydown = this.createKeydownObservable(scopeElement);\n return new Observable<KeyboardEvent>(subscriber => {\n const subscription = keydown\n .pipe(filter((event: KeyboardEvent) => hotkeys.some(key => isHotkey(event, key))))\n .subscribe((event: KeyboardEvent) => {\n // 如果当前焦点的元素是表单元素并且焦点原色不是Hotkey绑定元素则忽略快捷键\n if (isFormElement(this.document.activeElement) && this.document.activeElement !== scope) {\n return;\n }\n this.ngZone.run(() => {\n subscriber.next(event);\n });\n });\n return () => {\n subscription.unsubscribe();\n };\n });\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Directive, ElementRef, EventEmitter, Inject, Input, OnInit, Output, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { isFormElement, isString } from '@tethys/cdk/is';\nimport { ThyHotkeyDispatcher } from './hotkey-dispatcher';\n\n/**\n * @name thyHotkey\n */\n@Directive({ selector: '[thyHotkey]' })\nexport class ThyHotkeyDirective implements OnInit, OnDestroy {\n /**\n * 热键对应 Code,多个热键组合支持通过数组或逗号分割的形式传入\n */\n @Input() thyHotkey: string | string[];\n\n /**\n * 配置热键触发范围,默认绑定在 document 上\n */\n @Input() thyHotkeyScope?: string | Element | ElementRef<Element>;\n\n /**\n * 热键触发后的事件\n */\n @Output() thyHotkeyListener: EventEmitter<KeyboardEvent> = new EventEmitter();\n\n private subscription: Subscription = null;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n private hotkeyDispatcher: ThyHotkeyDispatcher,\n private elementRef: ElementRef<HTMLElement>\n ) {}\n\n ngOnInit(): void {\n const scope = isString(this.thyHotkeyScope) ? this.document.querySelector(this.thyHotkeyScope) : this.thyHotkeyScope;\n this.subscription = this.hotkeyDispatcher.keydown(this.thyHotkey, scope).subscribe(event => {\n event.preventDefault();\n event.stopPropagation();\n if (isFormElement(this.elementRef)) {\n this.elementRef.nativeElement.focus();\n } else {\n this.elementRef.nativeElement.click();\n }\n this.thyHotkeyListener.emit(event);\n });\n }\n\n ngOnDestroy(): void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ThyHotkeyDirective } from './hotkey.directive';\n\n@NgModule({\n imports: [],\n exports: [ThyHotkeyDirective],\n declarations: [ThyHotkeyDirective],\n providers: []\n})\nexport class ThyHotkeyModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ThyHotkeyDispatcher"],"mappings":"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"}
|
|
@@ -108,10 +108,13 @@ function isFormElement(elementOrRef) {
|
|
|
108
108
|
(name === 'input' && type !== 'submit' && type !== 'reset' && type !== 'checkbox' && type !== 'radio' && type !== 'file') ||
|
|
109
109
|
element.isContentEditable);
|
|
110
110
|
}
|
|
111
|
+
function isMacPlatform(userAgent = navigator.userAgent) {
|
|
112
|
+
return /macintosh|mac os x/i.test(userAgent);
|
|
113
|
+
}
|
|
111
114
|
|
|
112
115
|
/**
|
|
113
116
|
* Generated bundle index. Do not edit.
|
|
114
117
|
*/
|
|
115
118
|
|
|
116
|
-
export { isArray, isBoolean, isDate, isElementRef, isEmpty, isFormElement, isFunction, isHTMLElement, isNull, isNumber, isObject, isString, isTemplateRef, isUndefined, isUndefinedOrNull };
|
|
119
|
+
export { isArray, isBoolean, isDate, isElementRef, isEmpty, isFormElement, isFunction, isHTMLElement, isMacPlatform, isNull, isNumber, isObject, isString, isTemplateRef, isUndefined, isUndefinedOrNull };
|
|
117
120
|
//# sourceMappingURL=tethys-cdk-is.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tethys-cdk-is.mjs","sources":["../../../cdk/is/utils.ts","../../../cdk/is/tethys-cdk-is.ts"],"sourcesContent":["import { coerceElement } from '@angular/cdk/coercion';\nimport { ElementRef, TemplateRef } from '@angular/core';\n\nexport function isUndefined(value: any): value is undefined {\n return value === undefined;\n}\n\nexport function isNull(value: any): value is null {\n return value === null;\n}\n\nexport function isUndefinedOrNull(value: any): value is undefined | null {\n return isUndefined(value) || isNull(value);\n}\n\nexport function isArray<T = any>(value: any): value is Array<T> {\n return value && baseGetTag(value) === '[object Array]';\n}\n\nexport function isEmpty(value?: any): boolean {\n if (isUndefinedOrNull(value)) {\n return true;\n }\n if (isArray(value)) {\n return !value.length;\n }\n const tag = baseGetTag(value);\n if (tag == '[object Map]' || tag == '[object Set]') {\n return !value.size;\n }\n for (const key in value) {\n if (Object.hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport function isString(value?: any): value is string {\n return typeof value == 'string' || (!isArray(value) && isObjectLike(value) && baseGetTag(value) === '[object String]');\n}\n\nfunction isObjectLike(value: any): value is object {\n return value !== null && typeof value === 'object';\n}\n\nfunction baseGetTag(value: any) {\n const objectProto = Object.prototype;\n const hasOwnProperty = objectProto.hasOwnProperty;\n const toString = objectProto.toString;\n const symToStringTag = typeof Symbol !== 'undefined' ? Symbol.toStringTag : undefined;\n\n if (value == null) {\n return value === undefined ? '[object Undefined]' : '[object Null]';\n }\n if (!(symToStringTag && symToStringTag in Object(value))) {\n return toString.call(value);\n }\n const isOwn = hasOwnProperty.call(value, symToStringTag);\n const tag = value[symToStringTag];\n let unmasked = false;\n try {\n value[symToStringTag] = undefined;\n unmasked = true;\n } catch (e) {}\n\n const result = toString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport function isNumber(value: any): value is number {\n return typeof value === 'number' || (isObjectLike(value) && baseGetTag(value) === '[object Number]');\n}\n\nexport function isObject(value: any): value is object {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n const type = typeof value;\n return !!value && (type === 'object' || type === 'function');\n}\n\nexport function isFunction(value: any): value is Function {\n const type = typeof value;\n return !!value && type === 'function';\n}\n\nexport function isDate(value: any): value is Date {\n const type = typeof value;\n return !!value && type === 'object' && !!value.getTime;\n}\n\nexport function isBoolean(value: any): value is boolean {\n return value === true || value === false || (isObjectLike(value) && baseGetTag(value) === '[object Boolean]');\n}\n\nexport function isTemplateRef<C = any>(value: any): value is TemplateRef<C> {\n return value instanceof TemplateRef;\n}\n\nexport function isHTMLElement(value: any): value is HTMLElement {\n return value instanceof HTMLElement;\n}\n\nexport function isElementRef(value: any): value is ElementRef {\n return value instanceof ElementRef;\n}\n\nexport function isFormElement<T = Element>(elementOrRef: ElementRef<T> | T): boolean {\n const element = coerceElement(elementOrRef);\n if (!(element instanceof HTMLElement)) {\n return false;\n }\n const name = element.nodeName.toLowerCase();\n const type = (element.getAttribute('type') || '').toLowerCase();\n return (\n name === 'select' ||\n name === 'textarea' ||\n (name === 'input' && type !== 'submit' && type !== 'reset' && type !== 'checkbox' && type !== 'radio' && type !== 'file') ||\n element.isContentEditable\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tethys-cdk-is.mjs","sources":["../../../cdk/is/utils.ts","../../../cdk/is/tethys-cdk-is.ts"],"sourcesContent":["import { coerceElement } from '@angular/cdk/coercion';\nimport { ElementRef, TemplateRef } from '@angular/core';\n\nexport function isUndefined(value: any): value is undefined {\n return value === undefined;\n}\n\nexport function isNull(value: any): value is null {\n return value === null;\n}\n\nexport function isUndefinedOrNull(value: any): value is undefined | null {\n return isUndefined(value) || isNull(value);\n}\n\nexport function isArray<T = any>(value: any): value is Array<T> {\n return value && baseGetTag(value) === '[object Array]';\n}\n\nexport function isEmpty(value?: any): boolean {\n if (isUndefinedOrNull(value)) {\n return true;\n }\n if (isArray(value)) {\n return !value.length;\n }\n const tag = baseGetTag(value);\n if (tag == '[object Map]' || tag == '[object Set]') {\n return !value.size;\n }\n for (const key in value) {\n if (Object.hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport function isString(value?: any): value is string {\n return typeof value == 'string' || (!isArray(value) && isObjectLike(value) && baseGetTag(value) === '[object String]');\n}\n\nfunction isObjectLike(value: any): value is object {\n return value !== null && typeof value === 'object';\n}\n\nfunction baseGetTag(value: any) {\n const objectProto = Object.prototype;\n const hasOwnProperty = objectProto.hasOwnProperty;\n const toString = objectProto.toString;\n const symToStringTag = typeof Symbol !== 'undefined' ? Symbol.toStringTag : undefined;\n\n if (value == null) {\n return value === undefined ? '[object Undefined]' : '[object Null]';\n }\n if (!(symToStringTag && symToStringTag in Object(value))) {\n return toString.call(value);\n }\n const isOwn = hasOwnProperty.call(value, symToStringTag);\n const tag = value[symToStringTag];\n let unmasked = false;\n try {\n value[symToStringTag] = undefined;\n unmasked = true;\n } catch (e) {}\n\n const result = toString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport function isNumber(value: any): value is number {\n return typeof value === 'number' || (isObjectLike(value) && baseGetTag(value) === '[object Number]');\n}\n\nexport function isObject(value: any): value is object {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n const type = typeof value;\n return !!value && (type === 'object' || type === 'function');\n}\n\nexport function isFunction(value: any): value is Function {\n const type = typeof value;\n return !!value && type === 'function';\n}\n\nexport function isDate(value: any): value is Date {\n const type = typeof value;\n return !!value && type === 'object' && !!value.getTime;\n}\n\nexport function isBoolean(value: any): value is boolean {\n return value === true || value === false || (isObjectLike(value) && baseGetTag(value) === '[object Boolean]');\n}\n\nexport function isTemplateRef<C = any>(value: any): value is TemplateRef<C> {\n return value instanceof TemplateRef;\n}\n\nexport function isHTMLElement(value: any): value is HTMLElement {\n return value instanceof HTMLElement;\n}\n\nexport function isElementRef(value: any): value is ElementRef {\n return value instanceof ElementRef;\n}\n\nexport function isFormElement<T = Element>(elementOrRef: ElementRef<T> | T): boolean {\n const element = coerceElement(elementOrRef);\n if (!(element instanceof HTMLElement)) {\n return false;\n }\n const name = element.nodeName.toLowerCase();\n const type = (element.getAttribute('type') || '').toLowerCase();\n return (\n name === 'select' ||\n name === 'textarea' ||\n (name === 'input' && type !== 'submit' && type !== 'reset' && type !== 'checkbox' && type !== 'radio' && type !== 'file') ||\n element.isContentEditable\n );\n}\n\nexport function isMacPlatform(userAgent = navigator.userAgent) {\n return /macintosh|mac os x/i.test(userAgent);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,6 @@ import { ThyEventDispatcher } from '@tethys/cdk/event';
|
|
|
3
3
|
import { Observable } from 'rxjs';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class ThyHotkeyDispatcher extends ThyEventDispatcher {
|
|
6
|
-
private keydownSubscriber;
|
|
7
6
|
constructor(document: any, ngZone: NgZone);
|
|
8
7
|
private createKeydownObservable;
|
|
9
8
|
/**
|
package/is/utils.d.ts
CHANGED
|
@@ -14,3 +14,4 @@ export declare function isTemplateRef<C = any>(value: any): value is TemplateRef
|
|
|
14
14
|
export declare function isHTMLElement(value: any): value is HTMLElement;
|
|
15
15
|
export declare function isElementRef(value: any): value is ElementRef;
|
|
16
16
|
export declare function isFormElement<T = Element>(elementOrRef: ElementRef<T> | T): boolean;
|
|
17
|
+
export declare function isMacPlatform(userAgent?: string): boolean;
|