@tethys/cdk 18.1.0-next.0 → 18.1.0
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/esm2022/event/click-dispatcher.mjs +7 -8
- package/esm2022/event/keyboard-dispatcher.mjs +7 -8
- package/esm2022/hotkey/hotkey-dispatcher.mjs +7 -8
- package/esm2022/hotkey/hotkey.directive.mjs +8 -12
- package/event/click-dispatcher.d.ts +1 -2
- package/event/keyboard-dispatcher.d.ts +1 -2
- package/fesm2022/tethys-cdk-event.mjs +11 -13
- package/fesm2022/tethys-cdk-event.mjs.map +1 -1
- package/fesm2022/tethys-cdk-hotkey.mjs +12 -16
- package/fesm2022/tethys-cdk-hotkey.mjs.map +1 -1
- package/hotkey/hotkey-dispatcher.d.ts +2 -2
- package/hotkey/hotkey.directive.d.ts +0 -2
- package/package.json +1 -1
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
import { Injectable,
|
|
1
|
+
import { Injectable, NgZone, inject } from '@angular/core';
|
|
2
2
|
import { DOCUMENT } from '@angular/common';
|
|
3
3
|
import { ThyEventDispatcher } from './event-dispatcher';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
const DEFAULT_CLICKED_TIME = 100;
|
|
6
6
|
export class ThyClickDispatcher extends ThyEventDispatcher {
|
|
7
|
-
constructor(
|
|
7
|
+
constructor() {
|
|
8
|
+
const document = inject(DOCUMENT);
|
|
9
|
+
const ngZone = inject(NgZone);
|
|
8
10
|
super(document, ngZone, 'click');
|
|
9
11
|
}
|
|
10
12
|
clicked(auditTimeInMs = DEFAULT_CLICKED_TIME) {
|
|
11
13
|
return this.subscribe(auditTimeInMs);
|
|
12
14
|
}
|
|
13
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyClickDispatcher, deps: [
|
|
15
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyClickDispatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
14
16
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyClickDispatcher, providedIn: 'root' }); }
|
|
15
17
|
}
|
|
16
18
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyClickDispatcher, decorators: [{
|
|
@@ -18,8 +20,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
18
20
|
args: [{
|
|
19
21
|
providedIn: 'root'
|
|
20
22
|
}]
|
|
21
|
-
}], ctorParameters: () => [
|
|
22
|
-
|
|
23
|
-
args: [DOCUMENT]
|
|
24
|
-
}] }, { type: i0.NgZone }] });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stZGlzcGF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2Nkay9ldmVudC9jbGljay1kaXNwYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRXhELE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxDQUFDO0FBS2pDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxrQkFBa0I7SUFDdEQsWUFBOEIsUUFBYSxFQUFFLE1BQWM7UUFDdkQsS0FBSyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELE9BQU8sQ0FBQyxnQkFBd0Isb0JBQW9CO1FBQ2hELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN6QyxDQUFDOzhHQVBRLGtCQUFrQixrQkFDUCxRQUFRO2tIQURuQixrQkFBa0IsY0FGZixNQUFNOzsyRkFFVCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFFZ0IsTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBOZ1pvbmUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGh5RXZlbnREaXNwYXRjaGVyIH0gZnJvbSAnLi9ldmVudC1kaXNwYXRjaGVyJztcblxuY29uc3QgREVGQVVMVF9DTElDS0VEX1RJTUUgPSAxMDA7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVGh5Q2xpY2tEaXNwYXRjaGVyIGV4dGVuZHMgVGh5RXZlbnREaXNwYXRjaGVyIHtcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KERPQ1VNRU5UKSBkb2N1bWVudDogYW55LCBuZ1pvbmU6IE5nWm9uZSkge1xuICAgICAgICBzdXBlcihkb2N1bWVudCwgbmdab25lLCAnY2xpY2snKTtcbiAgICB9XG5cbiAgICBjbGlja2VkKGF1ZGl0VGltZUluTXM6IG51bWJlciA9IERFRkFVTFRfQ0xJQ0tFRF9USU1FKTogT2JzZXJ2YWJsZTxFdmVudD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zdWJzY3JpYmUoYXVkaXRUaW1lSW5Ncyk7XG4gICAgfVxufVxuIl19
|
|
23
|
+
}], ctorParameters: () => [] });
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stZGlzcGF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2Nkay9ldmVudC9jbGljay1kaXNwYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRXhELE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxDQUFDO0FBS2pDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxrQkFBa0I7SUFDdEQ7UUFDSSxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTlCLEtBQUssQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxPQUFPLENBQUMsZ0JBQXdCLG9CQUFvQjtRQUNoRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDekMsQ0FBQzs4R0FWUSxrQkFBa0I7a0hBQWxCLGtCQUFrQixjQUZmLE1BQU07OzJGQUVULGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUsIE9uRGVzdHJveSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUaHlFdmVudERpc3BhdGNoZXIgfSBmcm9tICcuL2V2ZW50LWRpc3BhdGNoZXInO1xuXG5jb25zdCBERUZBVUxUX0NMSUNLRURfVElNRSA9IDEwMDtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBUaHlDbGlja0Rpc3BhdGNoZXIgZXh0ZW5kcyBUaHlFdmVudERpc3BhdGNoZXIge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBjb25zdCBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gICAgICAgIGNvbnN0IG5nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xuXG4gICAgICAgIHN1cGVyKGRvY3VtZW50LCBuZ1pvbmUsICdjbGljaycpO1xuICAgIH1cblxuICAgIGNsaWNrZWQoYXVkaXRUaW1lSW5NczogbnVtYmVyID0gREVGQVVMVF9DTElDS0VEX1RJTUUpOiBPYnNlcnZhYmxlPEV2ZW50PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnN1YnNjcmliZShhdWRpdFRpbWVJbk1zKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -6,18 +6,20 @@
|
|
|
6
6
|
* found in the LICENSE file at https://angular.io/license
|
|
7
7
|
*/
|
|
8
8
|
import { DOCUMENT } from '@angular/common';
|
|
9
|
-
import {
|
|
9
|
+
import { Injectable, NgZone, inject } from '@angular/core';
|
|
10
10
|
import { ThyEventDispatcher } from './event-dispatcher';
|
|
11
11
|
import * as i0 from "@angular/core";
|
|
12
12
|
const DEFAULT_KEYDOWN_TIME = 100;
|
|
13
13
|
export class ThyKeyboardDispatcher extends ThyEventDispatcher {
|
|
14
|
-
constructor(
|
|
14
|
+
constructor() {
|
|
15
|
+
const document = inject(DOCUMENT);
|
|
16
|
+
const ngZone = inject(NgZone);
|
|
15
17
|
super(document, ngZone, 'keydown');
|
|
16
18
|
}
|
|
17
19
|
keydown(auditTimeInMs = DEFAULT_KEYDOWN_TIME) {
|
|
18
20
|
return this.subscribe(auditTimeInMs);
|
|
19
21
|
}
|
|
20
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyKeyboardDispatcher, deps: [
|
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyKeyboardDispatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
21
23
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyKeyboardDispatcher, providedIn: 'root' }); }
|
|
22
24
|
}
|
|
23
25
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyKeyboardDispatcher, decorators: [{
|
|
@@ -25,8 +27,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
25
27
|
args: [{
|
|
26
28
|
providedIn: 'root'
|
|
27
29
|
}]
|
|
28
|
-
}], ctorParameters: () => [
|
|
29
|
-
|
|
30
|
-
args: [DOCUMENT]
|
|
31
|
-
}] }, { type: i0.NgZone }] });
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Ym9hcmQtZGlzcGF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2Nkay9ldmVudC9rZXlib2FyZC1kaXNwYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRXhELE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxDQUFDO0FBS2pDLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxrQkFBa0I7SUFDekQsWUFBOEIsUUFBYSxFQUFFLE1BQWM7UUFDdkQsS0FBSyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELE9BQU8sQ0FBQyxnQkFBd0Isb0JBQW9CO1FBQ2hELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN6QyxDQUFDOzhHQVBRLHFCQUFxQixrQkFDVixRQUFRO2tIQURuQixxQkFBcUIsY0FGbEIsTUFBTTs7MkZBRVQscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBRWdCLE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGh5RXZlbnREaXNwYXRjaGVyIH0gZnJvbSAnLi9ldmVudC1kaXNwYXRjaGVyJztcblxuY29uc3QgREVGQVVMVF9LRVlET1dOX1RJTUUgPSAxMDA7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVGh5S2V5Ym9hcmREaXNwYXRjaGVyIGV4dGVuZHMgVGh5RXZlbnREaXNwYXRjaGVyIHtcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KERPQ1VNRU5UKSBkb2N1bWVudDogYW55LCBuZ1pvbmU6IE5nWm9uZSkge1xuICAgICAgICBzdXBlcihkb2N1bWVudCwgbmdab25lLCAna2V5ZG93bicpO1xuICAgIH1cblxuICAgIGtleWRvd24oYXVkaXRUaW1lSW5NczogbnVtYmVyID0gREVGQVVMVF9LRVlET1dOX1RJTUUpOiBPYnNlcnZhYmxlPEV2ZW50PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnN1YnNjcmliZShhdWRpdFRpbWVJbk1zKTtcbiAgICB9XG59XG5cbi8vIEBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG4vLyBleHBvcnQgY2xhc3MgVGh5S2V5Ym9hcmREaXNwYXRjaGVyIGltcGxlbWVudHMgT25EZXN0cm95IHtcbi8vICAgICAvKiogQ3VycmVudGx5IGF0dGFjaGVkIGtleWRvd24gcmVmcyBpbiB0aGUgb3JkZXIgdGhleSB3ZXJlIGF0dGFjaGVkLiAqL1xuLy8gICAgIF9hdHRhY2hlZEtleWRvd25TdWJqZWN0czogU3ViamVjdDxLZXlib2FyZEV2ZW50PltdID0gW107XG5cbi8vICAgICBwcml2YXRlIF9kb2N1bWVudDogRG9jdW1lbnQ7XG5cbi8vICAgICBwcml2YXRlIF9pc0F0dGFjaGVkOiBib29sZWFuO1xuXG4vLyAgICAgLyoqIEtleWJvYXJkIGV2ZW50IGxpc3RlbmVyIHRoYXQgd2lsbCBiZSBhdHRhY2hlZCB0byB0aGUgYm9keS4gKi9cbi8vICAgICBwcml2YXRlIF9rZXlkb3duTGlzdGVuZXIgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbi8vICAgICAgICAgY29uc3Qga2V5ZG93blJlZnMgPSB0aGlzLl9hdHRhY2hlZEtleWRvd25TdWJqZWN0cztcblxuLy8gICAgICAgICBmb3IgKGxldCBpID0ga2V5ZG93blJlZnMubGVuZ3RoIC0gMTsgaSA+IC0xOyBpLS0pIHtcbi8vICAgICAgICAgICAgIGtleWRvd25SZWZzW2ldLm5leHQoZXZlbnQpO1xuLy8gICAgICAgICAgICAgYnJlYWs7XG4vLyAgICAgICAgIH1cbi8vICAgICB9XG5cbi8vICAgICAvKiogRGV0YWNoZXMgdGhlIGdsb2JhbCBrZXlib2FyZCBldmVudCBsaXN0ZW5lci4gKi9cbi8vICAgICBwcml2YXRlIF9kZXRhY2goKSB7XG4vLyAgICAgICAgIGlmICh0aGlzLl9pc0F0dGFjaGVkKSB7XG4vLyAgICAgICAgICAgICB0aGlzLl9kb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoXG4vLyAgICAgICAgICAgICAgICAgJ2tleWRvd24nLFxuLy8gICAgICAgICAgICAgICAgIHRoaXMuX2tleWRvd25MaXN0ZW5lcixcbi8vICAgICAgICAgICAgICAgICB0cnVlXG4vLyAgICAgICAgICAgICApO1xuLy8gICAgICAgICAgICAgdGhpcy5faXNBdHRhY2hlZCA9IGZhbHNlO1xuLy8gICAgICAgICB9XG4vLyAgICAgfVxuXG4vLyAgICAgY29uc3RydWN0b3IoQEluamVjdChET0NVTUVOVCkgZG9jdW1lbnQ6IGFueSkge1xuLy8gICAgICAgICB0aGlzLl9kb2N1bWVudCA9IGRvY3VtZW50O1xuLy8gICAgIH1cblxuLy8gICAgIG5nT25EZXN0cm95KCkge1xuLy8gICAgICAgICB0aGlzLl9kZXRhY2goKTtcbi8vICAgICB9XG5cbi8vICAgICAvKiogQWRkIGEgbmV3IG92ZXJsYXkgdG8gdGhlIGxpc3Qgb2YgYXR0YWNoZWQgb3ZlcmxheSByZWZzLiAqL1xuLy8gICAgIGFkZChrZXlkb3duU3ViamVjdDogU3ViamVjdDxLZXlib2FyZEV2ZW50Pik6IHZvaWQge1xuLy8gICAgICAgICAvLyBFbnN1cmUgdGhhdCB3ZSBkb24ndCBnZXQgdGhlIHNhbWUgb3ZlcmxheSBtdWx0aXBsZSB0aW1lcy5cbi8vICAgICAgICAgdGhpcy5yZW1vdmUoa2V5ZG93blN1YmplY3QpO1xuXG4vLyAgICAgICAgIC8vIExhemlseSBzdGFydCBkaXNwYXRjaGVyIG9uY2UgZmlyc3Qgb3ZlcmxheSBpcyBhZGRlZFxuLy8gICAgICAgICBpZiAoIXRoaXMuX2lzQXR0YWNoZWQpIHtcbi8vICAgICAgICAgICAgIHRoaXMuX2RvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcihcbi8vICAgICAgICAgICAgICAgICAna2V5ZG93bicsXG4vLyAgICAgICAgICAgICAgICAgdGhpcy5fa2V5ZG93bkxpc3RlbmVyLFxuLy8gICAgICAgICAgICAgICAgIHRydWVcbi8vICAgICAgICAgICAgICk7XG4vLyAgICAgICAgICAgICB0aGlzLl9pc0F0dGFjaGVkID0gdHJ1ZTtcbi8vICAgICAgICAgfVxuXG4vLyAgICAgICAgIHRoaXMuX2F0dGFjaGVkS2V5ZG93blN1YmplY3RzLnB1c2goa2V5ZG93blN1YmplY3QpO1xuLy8gICAgIH1cblxuLy8gICAgIC8qKiBSZW1vdmUgYW4ga2V5ZG93biByZWYgZnJvbSB0aGUgbGlzdCBvZiBhdHRhY2hlZCBrZXlkb3duIHJlZnMuICovXG4vLyAgICAgcmVtb3ZlKGtleWRvd25SZWY6IFN1YmplY3Q8S2V5Ym9hcmRFdmVudD4pOiB2b2lkIHtcbi8vICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLl9hdHRhY2hlZEtleWRvd25TdWJqZWN0cy5pbmRleE9mKGtleWRvd25SZWYpO1xuXG4vLyAgICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4vLyAgICAgICAgICAgICB0aGlzLl9hdHRhY2hlZEtleWRvd25TdWJqZWN0cy5zcGxpY2UoaW5kZXgsIDEpO1xuLy8gICAgICAgICB9XG5cbi8vICAgICAgICAgLy8gUmVtb3ZlIHRoZSBnbG9iYWwgbGlzdGVuZXIgb25jZSB0aGVyZSBhcmUgbm8gbW9yZSByZWZzLlxuLy8gICAgICAgICBpZiAodGhpcy5fYXR0YWNoZWRLZXlkb3duU3ViamVjdHMubGVuZ3RoID09PSAwKSB7XG4vLyAgICAgICAgICAgICB0aGlzLl9kZXRhY2goKTtcbi8vICAgICAgICAgfVxuLy8gICAgIH1cbi8vIH1cbiJdfQ==
|
|
30
|
+
}], ctorParameters: () => [] });
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Ym9hcmQtZGlzcGF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2Nkay9ldmVudC9rZXlib2FyZC1kaXNwYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRXhELE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxDQUFDO0FBS2pDLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxrQkFBa0I7SUFDekQ7UUFDSSxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTlCLEtBQUssQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxPQUFPLENBQUMsZ0JBQXdCLG9CQUFvQjtRQUNoRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDekMsQ0FBQzs4R0FWUSxxQkFBcUI7a0hBQXJCLHFCQUFxQixjQUZsQixNQUFNOzsyRkFFVCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUaHlFdmVudERpc3BhdGNoZXIgfSBmcm9tICcuL2V2ZW50LWRpc3BhdGNoZXInO1xuXG5jb25zdCBERUZBVUxUX0tFWURPV05fVElNRSA9IDEwMDtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBUaHlLZXlib2FyZERpc3BhdGNoZXIgZXh0ZW5kcyBUaHlFdmVudERpc3BhdGNoZXIge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBjb25zdCBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gICAgICAgIGNvbnN0IG5nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xuXG4gICAgICAgIHN1cGVyKGRvY3VtZW50LCBuZ1pvbmUsICdrZXlkb3duJyk7XG4gICAgfVxuXG4gICAga2V5ZG93bihhdWRpdFRpbWVJbk1zOiBudW1iZXIgPSBERUZBVUxUX0tFWURPV05fVElNRSk6IE9ic2VydmFibGU8RXZlbnQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3Vic2NyaWJlKGF1ZGl0VGltZUluTXMpO1xuICAgIH1cbn1cblxuLy8gQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbi8vIGV4cG9ydCBjbGFzcyBUaHlLZXlib2FyZERpc3BhdGNoZXIgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuLy8gICAgIC8qKiBDdXJyZW50bHkgYXR0YWNoZWQga2V5ZG93biByZWZzIGluIHRoZSBvcmRlciB0aGV5IHdlcmUgYXR0YWNoZWQuICovXG4vLyAgICAgX2F0dGFjaGVkS2V5ZG93blN1YmplY3RzOiBTdWJqZWN0PEtleWJvYXJkRXZlbnQ+W10gPSBbXTtcblxuLy8gICAgIHByaXZhdGUgX2RvY3VtZW50OiBEb2N1bWVudDtcblxuLy8gICAgIHByaXZhdGUgX2lzQXR0YWNoZWQ6IGJvb2xlYW47XG5cbi8vICAgICAvKiogS2V5Ym9hcmQgZXZlbnQgbGlzdGVuZXIgdGhhdCB3aWxsIGJlIGF0dGFjaGVkIHRvIHRoZSBib2R5LiAqL1xuLy8gICAgIHByaXZhdGUgX2tleWRvd25MaXN0ZW5lciA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuLy8gICAgICAgICBjb25zdCBrZXlkb3duUmVmcyA9IHRoaXMuX2F0dGFjaGVkS2V5ZG93blN1YmplY3RzO1xuXG4vLyAgICAgICAgIGZvciAobGV0IGkgPSBrZXlkb3duUmVmcy5sZW5ndGggLSAxOyBpID4gLTE7IGktLSkge1xuLy8gICAgICAgICAgICAga2V5ZG93blJlZnNbaV0ubmV4dChldmVudCk7XG4vLyAgICAgICAgICAgICBicmVhaztcbi8vICAgICAgICAgfVxuLy8gICAgIH1cblxuLy8gICAgIC8qKiBEZXRhY2hlcyB0aGUgZ2xvYmFsIGtleWJvYXJkIGV2ZW50IGxpc3RlbmVyLiAqL1xuLy8gICAgIHByaXZhdGUgX2RldGFjaCgpIHtcbi8vICAgICAgICAgaWYgKHRoaXMuX2lzQXR0YWNoZWQpIHtcbi8vICAgICAgICAgICAgIHRoaXMuX2RvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcihcbi8vICAgICAgICAgICAgICAgICAna2V5ZG93bicsXG4vLyAgICAgICAgICAgICAgICAgdGhpcy5fa2V5ZG93bkxpc3RlbmVyLFxuLy8gICAgICAgICAgICAgICAgIHRydWVcbi8vICAgICAgICAgICAgICk7XG4vLyAgICAgICAgICAgICB0aGlzLl9pc0F0dGFjaGVkID0gZmFsc2U7XG4vLyAgICAgICAgIH1cbi8vICAgICB9XG5cbi8vICAgICBjb25zdHJ1Y3RvcihASW5qZWN0KERPQ1VNRU5UKSBkb2N1bWVudDogYW55KSB7XG4vLyAgICAgICAgIHRoaXMuX2RvY3VtZW50ID0gZG9jdW1lbnQ7XG4vLyAgICAgfVxuXG4vLyAgICAgbmdPbkRlc3Ryb3koKSB7XG4vLyAgICAgICAgIHRoaXMuX2RldGFjaCgpO1xuLy8gICAgIH1cblxuLy8gICAgIC8qKiBBZGQgYSBuZXcgb3ZlcmxheSB0byB0aGUgbGlzdCBvZiBhdHRhY2hlZCBvdmVybGF5IHJlZnMuICovXG4vLyAgICAgYWRkKGtleWRvd25TdWJqZWN0OiBTdWJqZWN0PEtleWJvYXJkRXZlbnQ+KTogdm9pZCB7XG4vLyAgICAgICAgIC8vIEVuc3VyZSB0aGF0IHdlIGRvbid0IGdldCB0aGUgc2FtZSBvdmVybGF5IG11bHRpcGxlIHRpbWVzLlxuLy8gICAgICAgICB0aGlzLnJlbW92ZShrZXlkb3duU3ViamVjdCk7XG5cbi8vICAgICAgICAgLy8gTGF6aWx5IHN0YXJ0IGRpc3BhdGNoZXIgb25jZSBmaXJzdCBvdmVybGF5IGlzIGFkZGVkXG4vLyAgICAgICAgIGlmICghdGhpcy5faXNBdHRhY2hlZCkge1xuLy8gICAgICAgICAgICAgdGhpcy5fZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKFxuLy8gICAgICAgICAgICAgICAgICdrZXlkb3duJyxcbi8vICAgICAgICAgICAgICAgICB0aGlzLl9rZXlkb3duTGlzdGVuZXIsXG4vLyAgICAgICAgICAgICAgICAgdHJ1ZVxuLy8gICAgICAgICAgICAgKTtcbi8vICAgICAgICAgICAgIHRoaXMuX2lzQXR0YWNoZWQgPSB0cnVlO1xuLy8gICAgICAgICB9XG5cbi8vICAgICAgICAgdGhpcy5fYXR0YWNoZWRLZXlkb3duU3ViamVjdHMucHVzaChrZXlkb3duU3ViamVjdCk7XG4vLyAgICAgfVxuXG4vLyAgICAgLyoqIFJlbW92ZSBhbiBrZXlkb3duIHJlZiBmcm9tIHRoZSBsaXN0IG9mIGF0dGFjaGVkIGtleWRvd24gcmVmcy4gKi9cbi8vICAgICByZW1vdmUoa2V5ZG93blJlZjogU3ViamVjdDxLZXlib2FyZEV2ZW50Pik6IHZvaWQge1xuLy8gICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuX2F0dGFjaGVkS2V5ZG93blN1YmplY3RzLmluZGV4T2Yoa2V5ZG93blJlZik7XG5cbi8vICAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbi8vICAgICAgICAgICAgIHRoaXMuX2F0dGFjaGVkS2V5ZG93blN1YmplY3RzLnNwbGljZShpbmRleCwgMSk7XG4vLyAgICAgICAgIH1cblxuLy8gICAgICAgICAvLyBSZW1vdmUgdGhlIGdsb2JhbCBsaXN0ZW5lciBvbmNlIHRoZXJlIGFyZSBubyBtb3JlIHJlZnMuXG4vLyAgICAgICAgIGlmICh0aGlzLl9hdHRhY2hlZEtleWRvd25TdWJqZWN0cy5sZW5ndGggPT09IDApIHtcbi8vICAgICAgICAgICAgIHRoaXMuX2RldGFjaCgpO1xuLy8gICAgICAgICB9XG4vLyAgICAgfVxuLy8gfVxuIl19
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { coerceElement } from '@angular/cdk/coercion';
|
|
2
2
|
import { DOCUMENT } from '@angular/common';
|
|
3
|
-
import {
|
|
3
|
+
import { Injectable, NgZone, inject } 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';
|
|
@@ -18,7 +18,9 @@ function runInZone(zone) {
|
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
20
|
export class ThyHotkeyDispatcher extends ThyEventDispatcher {
|
|
21
|
-
constructor(
|
|
21
|
+
constructor() {
|
|
22
|
+
const document = inject(DOCUMENT);
|
|
23
|
+
const ngZone = inject(NgZone);
|
|
22
24
|
super(document, ngZone, 'keydown');
|
|
23
25
|
}
|
|
24
26
|
createKeydownObservable(scope) {
|
|
@@ -51,14 +53,11 @@ export class ThyHotkeyDispatcher extends ThyEventDispatcher {
|
|
|
51
53
|
};
|
|
52
54
|
}).pipe(runInZone(this.ngZone));
|
|
53
55
|
}
|
|
54
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyHotkeyDispatcher, deps: [
|
|
56
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyHotkeyDispatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
55
57
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyHotkeyDispatcher, providedIn: 'root' }); }
|
|
56
58
|
}
|
|
57
59
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyHotkeyDispatcher, decorators: [{
|
|
58
60
|
type: Injectable,
|
|
59
61
|
args: [{ providedIn: 'root' }]
|
|
60
|
-
}], ctorParameters: () => [
|
|
61
|
-
|
|
62
|
-
args: [DOCUMENT]
|
|
63
|
-
}] }, { type: i0.NgZone }] });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90a2V5LWRpc3BhdGNoZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jZGsvaG90a2V5L2hvdGtleS1kaXNwYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFnQyxNQUFNLE1BQU0sQ0FBQztBQUMzRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUVwQyxTQUFTLFNBQVMsQ0FBSSxJQUFZO0lBQzlCLE9BQU8sTUFBTSxDQUFDLEVBQUU7UUFDWixPQUFPLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzdCLE1BQU0sTUFBTSxHQUFHLENBQUMsS0FBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNsRSxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUQsTUFBTSxVQUFVLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUM3RCxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN6RCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQztBQUNOLENBQUM7QUFHRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsa0JBQWtCO0lBQ3ZELFlBQThCLFFBQWEsRUFBRSxNQUFjO1FBQ3ZELEtBQUssQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxLQUF5QjtRQUNyRCxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDMUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxTQUFTLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxPQUFPLENBQUMsTUFBeUIsRUFBRSxLQUFnRDtRQUMvRSxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUM5RCxNQUFNLFlBQVksR0FBRyxhQUFhLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JGLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMzRCxPQUFPLElBQUksVUFBVSxDQUFnQixVQUFVLENBQUMsRUFBRTtZQUM5QyxNQUFNLFlBQVksR0FBRyxPQUFPO2lCQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBb0IsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNqRixTQUFTLENBQUMsQ0FBQyxLQUFvQixFQUFFLEVBQUU7Z0JBQ2hDLHlDQUF5QztnQkFDekMsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsS0FBSyxLQUFLLEVBQUUsQ0FBQztvQkFDdEYsT0FBTztnQkFDWCxDQUFDO2dCQUNELFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQUM7WUFDUCxPQUFPLEdBQUcsRUFBRTtnQkFDUixZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDL0IsQ0FBQyxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNwQyxDQUFDOzhHQWxDUSxtQkFBbUIsa0JBQ1IsUUFBUTtrSEFEbkIsbUJBQW1CLGNBRE4sTUFBTTs7MkZBQ25CLG1CQUFtQjtrQkFEL0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQUVqQixNQUFNOzJCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VFbGVtZW50IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgTmdab25lLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlFdmVudERpc3BhdGNoZXIgfSBmcm9tICdAdGV0aHlzL2Nkay9ldmVudCc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIE9ic2VydmFibGUsIE9wZXJhdG9yRnVuY3Rpb24sIFN1YnNjcmliZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGlzRm9ybUVsZW1lbnQsIGlzU3RyaW5nLCBpc1VuZGVmaW5lZE9yTnVsbCB9IGZyb20gJ0B0ZXRoeXMvY2RrL2lzJztcbmltcG9ydCB7IGlzSG90a2V5IH0gZnJvbSAnLi9ob3RrZXknO1xuXG5mdW5jdGlvbiBydW5JblpvbmU8VD4oem9uZTogTmdab25lKTogT3BlcmF0b3JGdW5jdGlvbjxULCBUPiB7XG4gICAgcmV0dXJuIHNvdXJjZSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XG4gICAgICAgICAgICBjb25zdCBvbk5leHQgPSAodmFsdWU6IFQpID0+IHpvbmUucnVuKCgpID0+IG9ic2VydmVyLm5leHQodmFsdWUpKTtcbiAgICAgICAgICAgIGNvbnN0IG9uRXJyb3IgPSAoZTogYW55KSA9PiB6b25lLnJ1bigoKSA9PiBvYnNlcnZlci5lcnJvcihlKSk7XG4gICAgICAgICAgICBjb25zdCBvbkNvbXBsZXRlID0gKCkgPT4gem9uZS5ydW4oKCkgPT4gb2JzZXJ2ZXIuY29tcGxldGUoKSk7XG4gICAgICAgICAgICByZXR1cm4gc291cmNlLnN1YnNjcmliZShvbk5leHQsIG9uRXJyb3IsIG9uQ29tcGxldGUpO1xuICAgICAgICB9KTtcbiAgICB9O1xufVxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFRoeUhvdGtleURpc3BhdGNoZXIgZXh0ZW5kcyBUaHlFdmVudERpc3BhdGNoZXIge1xuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoRE9DVU1FTlQpIGRvY3VtZW50OiBhbnksIG5nWm9uZTogTmdab25lKSB7XG4gICAgICAgIHN1cGVyKGRvY3VtZW50LCBuZ1pvbmUsICdrZXlkb3duJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVLZXlkb3duT2JzZXJ2YWJsZShzY29wZTogRWxlbWVudCB8IERvY3VtZW50KSB7XG4gICAgICAgIGlmIChzY29wZSA9PT0gdGhpcy5kb2N1bWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3Vic2NyaWJlKG51bGwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZyb21FdmVudChzY29wZSwgJ2tleWRvd24nKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqICDng63plK7kuovku7borqLpmIVcbiAgICAgKi9cbiAgICBrZXlkb3duKGhvdGtleTogc3RyaW5nIHwgc3RyaW5nW10sIHNjb3BlPzogRWxlbWVudFJlZjxFbGVtZW50PiB8IEVsZW1lbnQgfCBEb2N1bWVudCk6IE9ic2VydmFibGU8S2V5Ym9hcmRFdmVudD4ge1xuICAgICAgICBjb25zdCBob3RrZXlzID0gaXNTdHJpbmcoaG90a2V5KSA/IGhvdGtleS5zcGxpdCgnLCcpIDogaG90a2V5O1xuICAgICAgICBjb25zdCBzY29wZUVsZW1lbnQgPSBjb2VyY2VFbGVtZW50KGlzVW5kZWZpbmVkT3JOdWxsKHNjb3BlKSA/IHRoaXMuZG9jdW1lbnQgOiBzY29wZSk7XG4gICAgICAgIGNvbnN0IGtleWRvd24gPSB0aGlzLmNyZWF0ZUtleWRvd25PYnNlcnZhYmxlKHNjb3BlRWxlbWVudCk7XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxLZXlib2FyZEV2ZW50PihzdWJzY3JpYmVyID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IGtleWRvd25cbiAgICAgICAgICAgICAgICAucGlwZShmaWx0ZXIoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiBob3RrZXlzLnNvbWUoa2V5ID0+IGlzSG90a2V5KGV2ZW50LCBrZXkpKSkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8g5aaC5p6c5b2T5YmN54Sm54K555qE5YWD57Sg5piv6KGo5Y2V5YWD57Sg5bm25LiU54Sm54K55Y6f6Imy5LiN5pivSG90a2V557uR5a6a5YWD57Sg5YiZ5b+955Wl5b+r5o236ZSuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpc0Zvcm1FbGVtZW50KHRoaXMuZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkgJiYgdGhpcy5kb2N1bWVudC5hY3RpdmVFbGVtZW50ICE9PSBzY29wZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChldmVudCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSkucGlwZShydW5JblpvbmUodGhpcy5uZ1pvbmUpKTtcbiAgICB9XG59XG4iXX0=
|
|
62
|
+
}], ctorParameters: () => [] });
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90a2V5LWRpc3BhdGNoZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jZGsvaG90a2V5L2hvdGtleS1kaXNwYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQWMsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFnQyxNQUFNLE1BQU0sQ0FBQztBQUMzRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUVwQyxTQUFTLFNBQVMsQ0FBSSxJQUFZO0lBQzlCLE9BQU8sTUFBTSxDQUFDLEVBQUU7UUFDWixPQUFPLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzdCLE1BQU0sTUFBTSxHQUFHLENBQUMsS0FBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNsRSxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUQsTUFBTSxVQUFVLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUM3RCxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN6RCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQztBQUNOLENBQUM7QUFHRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsa0JBQWtCO0lBQ3ZEO1FBQ0ksTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU5QixLQUFLLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU8sdUJBQXVCLENBQUMsS0FBeUI7UUFDckQsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzFCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sU0FBUyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN2QyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTyxDQUFDLE1BQXlCLEVBQUUsS0FBZ0Q7UUFDL0UsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDOUQsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyRixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDM0QsT0FBTyxJQUFJLFVBQVUsQ0FBZ0IsVUFBVSxDQUFDLEVBQUU7WUFDOUMsTUFBTSxZQUFZLEdBQUcsT0FBTztpQkFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQW9CLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDakYsU0FBUyxDQUFDLENBQUMsS0FBb0IsRUFBRSxFQUFFO2dCQUNoQyx5Q0FBeUM7Z0JBQ3pDLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEtBQUssS0FBSyxFQUFFLENBQUM7b0JBQ3RGLE9BQU87Z0JBQ1gsQ0FBQztnQkFDRCxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNCLENBQUMsQ0FBQyxDQUFDO1lBQ1AsT0FBTyxHQUFHLEVBQUU7Z0JBQ1IsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQy9CLENBQUMsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQzs4R0FyQ1EsbUJBQW1CO2tIQUFuQixtQkFBbUIsY0FETixNQUFNOzsyRkFDbkIsbUJBQW1CO2tCQUQvQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZUVsZW1lbnQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lLCBFbGVtZW50UmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoeUV2ZW50RGlzcGF0Y2hlciB9IGZyb20gJ0B0ZXRoeXMvY2RrL2V2ZW50JztcbmltcG9ydCB7IGZyb21FdmVudCwgT2JzZXJ2YWJsZSwgT3BlcmF0b3JGdW5jdGlvbiwgU3Vic2NyaWJlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgaXNGb3JtRWxlbWVudCwgaXNTdHJpbmcsIGlzVW5kZWZpbmVkT3JOdWxsIH0gZnJvbSAnQHRldGh5cy9jZGsvaXMnO1xuaW1wb3J0IHsgaXNIb3RrZXkgfSBmcm9tICcuL2hvdGtleSc7XG5cbmZ1bmN0aW9uIHJ1bkluWm9uZTxUPih6b25lOiBOZ1pvbmUpOiBPcGVyYXRvckZ1bmN0aW9uPFQsIFQ+IHtcbiAgICByZXR1cm4gc291cmNlID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmVyID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG9uTmV4dCA9ICh2YWx1ZTogVCkgPT4gem9uZS5ydW4oKCkgPT4gb2JzZXJ2ZXIubmV4dCh2YWx1ZSkpO1xuICAgICAgICAgICAgY29uc3Qgb25FcnJvciA9IChlOiBhbnkpID0+IHpvbmUucnVuKCgpID0+IG9ic2VydmVyLmVycm9yKGUpKTtcbiAgICAgICAgICAgIGNvbnN0IG9uQ29tcGxldGUgPSAoKSA9PiB6b25lLnJ1bigoKSA9PiBvYnNlcnZlci5jb21wbGV0ZSgpKTtcbiAgICAgICAgICAgIHJldHVybiBzb3VyY2Uuc3Vic2NyaWJlKG9uTmV4dCwgb25FcnJvciwgb25Db21wbGV0ZSk7XG4gICAgICAgIH0pO1xuICAgIH07XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgVGh5SG90a2V5RGlzcGF0Y2hlciBleHRlbmRzIFRoeUV2ZW50RGlzcGF0Y2hlciB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGNvbnN0IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgICAgICAgY29uc3Qgbmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG5cbiAgICAgICAgc3VwZXIoZG9jdW1lbnQsIG5nWm9uZSwgJ2tleWRvd24nKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUtleWRvd25PYnNlcnZhYmxlKHNjb3BlOiBFbGVtZW50IHwgRG9jdW1lbnQpIHtcbiAgICAgICAgaWYgKHNjb3BlID09PSB0aGlzLmRvY3VtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zdWJzY3JpYmUobnVsbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZnJvbUV2ZW50KHNjb3BlLCAna2V5ZG93bicpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogIOeDremUruS6i+S7tuiuoumYhVxuICAgICAqL1xuICAgIGtleWRvd24oaG90a2V5OiBzdHJpbmcgfCBzdHJpbmdbXSwgc2NvcGU/OiBFbGVtZW50UmVmPEVsZW1lbnQ+IHwgRWxlbWVudCB8IERvY3VtZW50KTogT2JzZXJ2YWJsZTxLZXlib2FyZEV2ZW50PiB7XG4gICAgICAgIGNvbnN0IGhvdGtleXMgPSBpc1N0cmluZyhob3RrZXkpID8gaG90a2V5LnNwbGl0KCcsJykgOiBob3RrZXk7XG4gICAgICAgIGNvbnN0IHNjb3BlRWxlbWVudCA9IGNvZXJjZUVsZW1lbnQoaXNVbmRlZmluZWRPck51bGwoc2NvcGUpID8gdGhpcy5kb2N1bWVudCA6IHNjb3BlKTtcbiAgICAgICAgY29uc3Qga2V5ZG93biA9IHRoaXMuY3JlYXRlS2V5ZG93bk9ic2VydmFibGUoc2NvcGVFbGVtZW50KTtcbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPEtleWJvYXJkRXZlbnQ+KHN1YnNjcmliZXIgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0ga2V5ZG93blxuICAgICAgICAgICAgICAgIC5waXBlKGZpbHRlcigoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IGhvdGtleXMuc29tZShrZXkgPT4gaXNIb3RrZXkoZXZlbnQsIGtleSkpKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyDlpoLmnpzlvZPliY3nhKbngrnnmoTlhYPntKDmmK/ooajljZXlhYPntKDlubbkuJTnhKbngrnljp/oibLkuI3mmK9Ib3RrZXnnu5HlrprlhYPntKDliJnlv73nlaXlv6vmjbfplK5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzRm9ybUVsZW1lbnQodGhpcy5kb2N1bWVudC5hY3RpdmVFbGVtZW50KSAmJiB0aGlzLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgIT09IHNjb3BlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGV2ZW50KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9KS5waXBlKHJ1bkluWm9uZSh0aGlzLm5nWm9uZSkpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import { DOCUMENT } from '@angular/common';
|
|
2
|
-
import { Directive, ElementRef, EventEmitter,
|
|
2
|
+
import { Directive, ElementRef, EventEmitter, Input, Output, inject } from '@angular/core';
|
|
3
3
|
import { isFormElement, isString } from '@tethys/cdk/is';
|
|
4
4
|
import { ThyHotkeyDispatcher } from './hotkey-dispatcher';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "./hotkey-dispatcher";
|
|
7
6
|
/**
|
|
8
7
|
* @name thyHotkey
|
|
9
8
|
*/
|
|
10
9
|
export class ThyHotkeyDirective {
|
|
11
|
-
constructor(
|
|
12
|
-
this.document =
|
|
13
|
-
this.hotkeyDispatcher =
|
|
14
|
-
this.elementRef =
|
|
10
|
+
constructor() {
|
|
11
|
+
this.document = inject(DOCUMENT);
|
|
12
|
+
this.hotkeyDispatcher = inject(ThyHotkeyDispatcher);
|
|
13
|
+
this.elementRef = inject(ElementRef);
|
|
15
14
|
/**
|
|
16
15
|
* 热键触发后的事件
|
|
17
16
|
*/
|
|
@@ -37,20 +36,17 @@ export class ThyHotkeyDirective {
|
|
|
37
36
|
this.subscription.unsubscribe();
|
|
38
37
|
}
|
|
39
38
|
}
|
|
40
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyHotkeyDirective, deps: [
|
|
39
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyHotkeyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
41
40
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0", type: ThyHotkeyDirective, selector: "[thyHotkey]", inputs: { thyHotkey: "thyHotkey", thyHotkeyScope: "thyHotkeyScope" }, outputs: { thyHotkeyListener: "thyHotkeyListener" }, ngImport: i0 }); }
|
|
42
41
|
}
|
|
43
42
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyHotkeyDirective, decorators: [{
|
|
44
43
|
type: Directive,
|
|
45
44
|
args: [{ selector: '[thyHotkey]' }]
|
|
46
|
-
}],
|
|
47
|
-
type: Inject,
|
|
48
|
-
args: [DOCUMENT]
|
|
49
|
-
}] }, { type: i1.ThyHotkeyDispatcher }, { type: i0.ElementRef }], propDecorators: { thyHotkey: [{
|
|
45
|
+
}], propDecorators: { thyHotkey: [{
|
|
50
46
|
type: Input
|
|
51
47
|
}], thyHotkeyScope: [{
|
|
52
48
|
type: Input
|
|
53
49
|
}], thyHotkeyListener: [{
|
|
54
50
|
type: Output
|
|
55
51
|
}] } });
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90a2V5LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2Nkay9ob3RrZXkvaG90a2V5LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQWEsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlHLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBRTFEOztHQUVHO0FBRUgsTUFBTSxPQUFPLGtCQUFrQjtJQUQvQjtRQUVZLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIscUJBQWdCLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDL0MsZUFBVSxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7UUFZakU7O1dBRUc7UUFDTyxzQkFBaUIsR0FBZ0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV0RSxpQkFBWSxHQUFpQixJQUFJLENBQUM7S0FxQjdDO0lBbkJHLFFBQVE7UUFDSixNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDckgsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3ZGLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEIsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzFDLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMxQyxDQUFDO1lBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQyxDQUFDO0lBQ0wsQ0FBQzs4R0F4Q1Esa0JBQWtCO2tHQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBRDlCLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFOzhCQVN6QixTQUFTO3NCQUFqQixLQUFLO2dCQUtHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBS0ksaUJBQWlCO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgT25EZXN0cm95LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgaXNGb3JtRWxlbWVudCwgaXNTdHJpbmcgfSBmcm9tICdAdGV0aHlzL2Nkay9pcyc7XG5pbXBvcnQgeyBUaHlIb3RrZXlEaXNwYXRjaGVyIH0gZnJvbSAnLi9ob3RrZXktZGlzcGF0Y2hlcic7XG5cbi8qKlxuICogQG5hbWUgdGh5SG90a2V5XG4gKi9cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1t0aHlIb3RrZXldJyB9KVxuZXhwb3J0IGNsYXNzIFRoeUhvdGtleURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgICBwcml2YXRlIGhvdGtleURpc3BhdGNoZXIgPSBpbmplY3QoVGh5SG90a2V5RGlzcGF0Y2hlcik7XG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcblxuICAgIC8qKlxuICAgICAqICDng63plK7lr7nlupQgQ29kZe+8jOWkmuS4queDremUrue7hOWQiOaUr+aMgemAmui/h+aVsOe7hOaIlumAl+WPt+WIhuWJsueahOW9ouW8j+S8oOWFpVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUhvdGtleTogc3RyaW5nIHwgc3RyaW5nW107XG5cbiAgICAvKipcbiAgICAgKiAg6YWN572u54Ot6ZSu6Kem5Y+R6IyD5Zu077yM6buY6K6k57uR5a6a5ZyoIGRvY3VtZW50IOS4ilxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUhvdGtleVNjb3BlPzogc3RyaW5nIHwgRWxlbWVudCB8IEVsZW1lbnRSZWY8RWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiAg54Ot6ZSu6Kem5Y+R5ZCO55qE5LqL5Lu2XG4gICAgICovXG4gICAgQE91dHB1dCgpIHRoeUhvdGtleUxpc3RlbmVyOiBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gbnVsbDtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzY29wZSA9IGlzU3RyaW5nKHRoaXMudGh5SG90a2V5U2NvcGUpID8gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRoaXMudGh5SG90a2V5U2NvcGUpIDogdGhpcy50aHlIb3RrZXlTY29wZTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmhvdGtleURpc3BhdGNoZXIua2V5ZG93bih0aGlzLnRoeUhvdGtleSwgc2NvcGUpLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBpZiAoaXNGb3JtRWxlbWVudCh0aGlzLmVsZW1lbnRSZWYpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMudGh5SG90a2V5TGlzdGVuZXIuZW1pdChldmVudCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { NgZone } from '@angular/core';
|
|
2
1
|
import { Observable } from 'rxjs';
|
|
3
2
|
import { ThyEventDispatcher } from './event-dispatcher';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
4
|
export declare class ThyClickDispatcher extends ThyEventDispatcher {
|
|
6
|
-
constructor(
|
|
5
|
+
constructor();
|
|
7
6
|
clicked(auditTimeInMs?: number): Observable<Event>;
|
|
8
7
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThyClickDispatcher, never>;
|
|
9
8
|
static ɵprov: i0.ɵɵInjectableDeclaration<ThyClickDispatcher>;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { NgZone } from '@angular/core';
|
|
2
1
|
import { Observable } from 'rxjs';
|
|
3
2
|
import { ThyEventDispatcher } from './event-dispatcher';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
4
|
export declare class ThyKeyboardDispatcher extends ThyEventDispatcher {
|
|
6
|
-
constructor(
|
|
5
|
+
constructor();
|
|
7
6
|
keydown(auditTimeInMs?: number): Observable<Event>;
|
|
8
7
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThyKeyboardDispatcher, never>;
|
|
9
8
|
static ɵprov: i0.ɵɵInjectableDeclaration<ThyKeyboardDispatcher>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { fromEvent, Subject, Observable } from 'rxjs';
|
|
2
2
|
import { auditTime } from 'rxjs/operators';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { Directive,
|
|
4
|
+
import { Directive, inject, NgZone, Injectable } from '@angular/core';
|
|
5
5
|
import { DOCUMENT } from '@angular/common';
|
|
6
6
|
|
|
7
7
|
const DEFAULT_EVENT_TIME = 100;
|
|
@@ -61,13 +61,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
61
61
|
|
|
62
62
|
const DEFAULT_CLICKED_TIME = 100;
|
|
63
63
|
class ThyClickDispatcher extends ThyEventDispatcher {
|
|
64
|
-
constructor(
|
|
64
|
+
constructor() {
|
|
65
|
+
const document = inject(DOCUMENT);
|
|
66
|
+
const ngZone = inject(NgZone);
|
|
65
67
|
super(document, ngZone, 'click');
|
|
66
68
|
}
|
|
67
69
|
clicked(auditTimeInMs = DEFAULT_CLICKED_TIME) {
|
|
68
70
|
return this.subscribe(auditTimeInMs);
|
|
69
71
|
}
|
|
70
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyClickDispatcher, deps: [
|
|
72
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyClickDispatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
71
73
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyClickDispatcher, providedIn: 'root' }); }
|
|
72
74
|
}
|
|
73
75
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyClickDispatcher, decorators: [{
|
|
@@ -75,10 +77,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
75
77
|
args: [{
|
|
76
78
|
providedIn: 'root'
|
|
77
79
|
}]
|
|
78
|
-
}], ctorParameters: () => [
|
|
79
|
-
type: Inject,
|
|
80
|
-
args: [DOCUMENT]
|
|
81
|
-
}] }, { type: i0.NgZone }] });
|
|
80
|
+
}], ctorParameters: () => [] });
|
|
82
81
|
|
|
83
82
|
/**
|
|
84
83
|
* @license
|
|
@@ -89,13 +88,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
89
88
|
*/
|
|
90
89
|
const DEFAULT_KEYDOWN_TIME = 100;
|
|
91
90
|
class ThyKeyboardDispatcher extends ThyEventDispatcher {
|
|
92
|
-
constructor(
|
|
91
|
+
constructor() {
|
|
92
|
+
const document = inject(DOCUMENT);
|
|
93
|
+
const ngZone = inject(NgZone);
|
|
93
94
|
super(document, ngZone, 'keydown');
|
|
94
95
|
}
|
|
95
96
|
keydown(auditTimeInMs = DEFAULT_KEYDOWN_TIME) {
|
|
96
97
|
return this.subscribe(auditTimeInMs);
|
|
97
98
|
}
|
|
98
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyKeyboardDispatcher, deps: [
|
|
99
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyKeyboardDispatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
99
100
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyKeyboardDispatcher, providedIn: 'root' }); }
|
|
100
101
|
}
|
|
101
102
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyKeyboardDispatcher, decorators: [{
|
|
@@ -103,10 +104,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
103
104
|
args: [{
|
|
104
105
|
providedIn: 'root'
|
|
105
106
|
}]
|
|
106
|
-
}], ctorParameters: () => [
|
|
107
|
-
type: Inject,
|
|
108
|
-
args: [DOCUMENT]
|
|
109
|
-
}] }, { type: i0.NgZone }] });
|
|
107
|
+
}], ctorParameters: () => [] });
|
|
110
108
|
|
|
111
109
|
/**
|
|
112
110
|
* Generated bundle index. Do not edit.
|
|
@@ -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(\n protected document: Document,\n protected ngZone: NgZone,\n private eventName: string\n ) {}\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,
|
|
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(\n protected document: Document,\n protected ngZone: NgZone,\n private eventName: string\n ) {}\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, NgZone, OnDestroy, inject } 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() {\n const document = inject(DOCUMENT);\n const ngZone = inject(NgZone);\n\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 { Injectable, NgZone, inject } 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() {\n const document = inject(DOCUMENT);\n const ngZone = inject(NgZone);\n\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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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable,
|
|
2
|
+
import { inject, NgZone, Injectable, ElementRef, EventEmitter, Directive, Input, Output, NgModule } from '@angular/core';
|
|
3
3
|
import { DOCUMENT } from '@angular/common';
|
|
4
4
|
import { isString, isUndefinedOrNull, isFormElement } from '@tethys/cdk/is';
|
|
5
5
|
import { coerceElement } from '@angular/cdk/coercion';
|
|
@@ -41,7 +41,9 @@ function runInZone(zone) {
|
|
|
41
41
|
};
|
|
42
42
|
}
|
|
43
43
|
class ThyHotkeyDispatcher extends ThyEventDispatcher {
|
|
44
|
-
constructor(
|
|
44
|
+
constructor() {
|
|
45
|
+
const document = inject(DOCUMENT);
|
|
46
|
+
const ngZone = inject(NgZone);
|
|
45
47
|
super(document, ngZone, 'keydown');
|
|
46
48
|
}
|
|
47
49
|
createKeydownObservable(scope) {
|
|
@@ -74,25 +76,22 @@ class ThyHotkeyDispatcher extends ThyEventDispatcher {
|
|
|
74
76
|
};
|
|
75
77
|
}).pipe(runInZone(this.ngZone));
|
|
76
78
|
}
|
|
77
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyHotkeyDispatcher, deps: [
|
|
79
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyHotkeyDispatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
78
80
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyHotkeyDispatcher, providedIn: 'root' }); }
|
|
79
81
|
}
|
|
80
82
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyHotkeyDispatcher, decorators: [{
|
|
81
83
|
type: Injectable,
|
|
82
84
|
args: [{ providedIn: 'root' }]
|
|
83
|
-
}], ctorParameters: () => [
|
|
84
|
-
type: Inject,
|
|
85
|
-
args: [DOCUMENT]
|
|
86
|
-
}] }, { type: i0.NgZone }] });
|
|
85
|
+
}], ctorParameters: () => [] });
|
|
87
86
|
|
|
88
87
|
/**
|
|
89
88
|
* @name thyHotkey
|
|
90
89
|
*/
|
|
91
90
|
class ThyHotkeyDirective {
|
|
92
|
-
constructor(
|
|
93
|
-
this.document =
|
|
94
|
-
this.hotkeyDispatcher =
|
|
95
|
-
this.elementRef =
|
|
91
|
+
constructor() {
|
|
92
|
+
this.document = inject(DOCUMENT);
|
|
93
|
+
this.hotkeyDispatcher = inject(ThyHotkeyDispatcher);
|
|
94
|
+
this.elementRef = inject(ElementRef);
|
|
96
95
|
/**
|
|
97
96
|
* 热键触发后的事件
|
|
98
97
|
*/
|
|
@@ -118,16 +117,13 @@ class ThyHotkeyDirective {
|
|
|
118
117
|
this.subscription.unsubscribe();
|
|
119
118
|
}
|
|
120
119
|
}
|
|
121
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyHotkeyDirective, deps: [
|
|
120
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyHotkeyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
122
121
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0", type: ThyHotkeyDirective, selector: "[thyHotkey]", inputs: { thyHotkey: "thyHotkey", thyHotkeyScope: "thyHotkeyScope" }, outputs: { thyHotkeyListener: "thyHotkeyListener" }, ngImport: i0 }); }
|
|
123
122
|
}
|
|
124
123
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyHotkeyDirective, decorators: [{
|
|
125
124
|
type: Directive,
|
|
126
125
|
args: [{ selector: '[thyHotkey]' }]
|
|
127
|
-
}],
|
|
128
|
-
type: Inject,
|
|
129
|
-
args: [DOCUMENT]
|
|
130
|
-
}] }, { type: ThyHotkeyDispatcher }, { type: i0.ElementRef }], propDecorators: { thyHotkey: [{
|
|
126
|
+
}], propDecorators: { thyHotkey: [{
|
|
131
127
|
type: Input
|
|
132
128
|
}], thyHotkeyScope: [{
|
|
133
129
|
type: Input
|
|
@@ -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, OperatorFunction, Subscriber } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { isFormElement, isString, isUndefinedOrNull } from '@tethys/cdk/is';\nimport { isHotkey } from './hotkey';\n\nfunction runInZone<T>(zone: NgZone): OperatorFunction<T, T> {\n return source => {\n return new Observable(observer => {\n const onNext = (value: T) => zone.run(() => observer.next(value));\n const onError = (e: any) => zone.run(() => observer.error(e));\n const onComplete = () => zone.run(() => observer.complete());\n return source.subscribe(onNext, onError, onComplete);\n });\n };\n}\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 subscriber.next(event);\n });\n return () => {\n subscription.unsubscribe();\n };\n }).pipe(runInZone(this.ngZone));\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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"}
|
|
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 { Injectable, NgZone, ElementRef, inject } from '@angular/core';\nimport { ThyEventDispatcher } from '@tethys/cdk/event';\nimport { fromEvent, Observable, OperatorFunction, Subscriber } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { isFormElement, isString, isUndefinedOrNull } from '@tethys/cdk/is';\nimport { isHotkey } from './hotkey';\n\nfunction runInZone<T>(zone: NgZone): OperatorFunction<T, T> {\n return source => {\n return new Observable(observer => {\n const onNext = (value: T) => zone.run(() => observer.next(value));\n const onError = (e: any) => zone.run(() => observer.error(e));\n const onComplete = () => zone.run(() => observer.complete());\n return source.subscribe(onNext, onError, onComplete);\n });\n };\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ThyHotkeyDispatcher extends ThyEventDispatcher {\n constructor() {\n const document = inject(DOCUMENT);\n const ngZone = inject(NgZone);\n\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 subscriber.next(event);\n });\n return () => {\n subscription.unsubscribe();\n };\n }).pipe(runInZone(this.ngZone));\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Directive, ElementRef, EventEmitter, Input, OnInit, Output, OnDestroy, inject } 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 private document = inject(DOCUMENT);\n private hotkeyDispatcher = inject(ThyHotkeyDispatcher);\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\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 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":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ElementRef } from '@angular/core';
|
|
2
2
|
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
|
-
constructor(
|
|
6
|
+
constructor();
|
|
7
7
|
private createKeydownObservable;
|
|
8
8
|
/**
|
|
9
9
|
* 热键事件订阅
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { ElementRef, EventEmitter, OnInit, OnDestroy } from '@angular/core';
|
|
2
|
-
import { ThyHotkeyDispatcher } from './hotkey-dispatcher';
|
|
3
2
|
import * as i0 from "@angular/core";
|
|
4
3
|
/**
|
|
5
4
|
* @name thyHotkey
|
|
@@ -21,7 +20,6 @@ export declare class ThyHotkeyDirective implements OnInit, OnDestroy {
|
|
|
21
20
|
*/
|
|
22
21
|
thyHotkeyListener: EventEmitter<KeyboardEvent>;
|
|
23
22
|
private subscription;
|
|
24
|
-
constructor(document: Document, hotkeyDispatcher: ThyHotkeyDispatcher, elementRef: ElementRef<HTMLElement>);
|
|
25
23
|
ngOnInit(): void;
|
|
26
24
|
ngOnDestroy(): void;
|
|
27
25
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThyHotkeyDirective, never>;
|