@trudb/tru-common-lib 0.1.701 → 0.1.703

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.
@@ -1,18 +1,17 @@
1
- import { Directive, HostListener, Input } from '@angular/core';
1
+ import { Directive, Input } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- import * as i1 from "../../../../services/tru-util";
4
- import * as i2 from "../../services/tru-window-event-handler";
3
+ import * as i1 from "../../services/tru-window-event-handler";
5
4
  export class TruDesktopWindowStateMonitor {
6
5
  el;
7
- cdRef;
8
- util;
6
+ renderer;
9
7
  windowEventHandler;
10
8
  active = true;
9
+ tabListener;
10
+ focusListener;
11
11
  focusableElements = [];
12
- constructor(el, cdRef, util, windowEventHandler) {
12
+ constructor(el, renderer, windowEventHandler) {
13
13
  this.el = el;
14
- this.cdRef = cdRef;
15
- this.util = util;
14
+ this.renderer = renderer;
16
15
  this.windowEventHandler = windowEventHandler;
17
16
  }
18
17
  setWindowState = () => {
@@ -24,32 +23,39 @@ export class TruDesktopWindowStateMonitor {
24
23
  getFocusableChildElements = () => {
25
24
  return this.el.nativeElement.querySelectorAll('a[href],input,select,textarea,button,mat-select,mat-tab,.mdc-tab,.ag-header-cell,.ag-cell,[tabindex]:not([tabindex="-1"]');
26
25
  };
27
- onKeydown(event) {
28
- if (this.active) {
29
- let target = event.target;
30
- this.focusableElements = this.getFocusableChildElements();
31
- let firstFocusableElement = this.focusableElements[0];
32
- let lastFocusableElement = this.focusableElements[this.focusableElements.length - 1];
33
- if (target !== null && !this.el.nativeElement.contains(target)) {
34
- firstFocusableElement.focus();
35
- }
36
- else {
37
- if (event.key === 'Tab') {
38
- if (event.shiftKey) {
39
- if (document.activeElement === firstFocusableElement) {
40
- event.preventDefault();
41
- lastFocusableElement.focus();
42
- }
26
+ focusAppropriateElement = (event) => {
27
+ let target = event.target;
28
+ this.focusableElements = this.getFocusableChildElements();
29
+ let firstFocusableElement = this.focusableElements[0];
30
+ let lastFocusableElement = this.focusableElements[this.focusableElements.length - 1];
31
+ if (target !== null && !this.el.nativeElement.contains(target)) {
32
+ firstFocusableElement.focus();
33
+ }
34
+ else {
35
+ if (event.key === 'Tab') {
36
+ if (event.shiftKey) {
37
+ if (document.activeElement === firstFocusableElement) {
38
+ event.preventDefault();
39
+ lastFocusableElement.focus();
43
40
  }
44
- else {
45
- if (document.activeElement === lastFocusableElement) {
46
- event.preventDefault();
47
- firstFocusableElement.focus();
48
- }
41
+ }
42
+ else {
43
+ if (document.activeElement === lastFocusableElement) {
44
+ event.preventDefault();
45
+ firstFocusableElement.focus();
49
46
  }
50
47
  }
51
48
  }
52
49
  }
50
+ };
51
+ onKeydown(event) {
52
+ if (event.key === 'Tab')
53
+ if (this.active) {
54
+ this.focusAppropriateElement(event);
55
+ }
56
+ else {
57
+ event.preventDefault();
58
+ }
53
59
  }
54
60
  onFocusIn(event) {
55
61
  if (this.active) {
@@ -63,24 +69,30 @@ export class TruDesktopWindowStateMonitor {
63
69
  }
64
70
  ngOnChanges(changes) {
65
71
  this.setWindowState();
72
+ if (this.active) {
73
+ this.tabListener = this.renderer.listen('document', 'keydown', this.onKeydown.bind(this));
74
+ this.focusListener = this.renderer.listen('document', 'focusin', this.onFocusIn.bind(this));
75
+ }
76
+ else {
77
+ this.tabListener();
78
+ this.focusListener();
79
+ }
66
80
  this.windowEventHandler.activeStateChanged(this.active);
67
81
  }
68
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruDesktopWindowStateMonitor, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.TruUtil }, { token: i2.TruWindowEventHandler }], target: i0.ɵɵFactoryTarget.Directive });
69
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: TruDesktopWindowStateMonitor, selector: "[truDesktopWindowStateMonitor]", inputs: { active: ["truDesktopWindowStateMonitor", "active"] }, host: { listeners: { "document:keydown.tab": "onKeydown($event)", "document:focusin": "onFocusIn($event)" } }, usesOnChanges: true, ngImport: i0 });
82
+ ngOnDestroy() {
83
+ this.tabListener();
84
+ this.focusListener();
85
+ }
86
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruDesktopWindowStateMonitor, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.TruWindowEventHandler }], target: i0.ɵɵFactoryTarget.Directive });
87
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: TruDesktopWindowStateMonitor, selector: "[truDesktopWindowStateMonitor]", inputs: { active: ["truDesktopWindowStateMonitor", "active"] }, usesOnChanges: true, ngImport: i0 });
70
88
  }
71
89
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruDesktopWindowStateMonitor, decorators: [{
72
90
  type: Directive,
73
91
  args: [{
74
92
  selector: '[truDesktopWindowStateMonitor]'
75
93
  }]
76
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.TruUtil }, { type: i2.TruWindowEventHandler }], propDecorators: { active: [{
94
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.TruWindowEventHandler }], propDecorators: { active: [{
77
95
  type: Input,
78
96
  args: ['truDesktopWindowStateMonitor']
79
- }], onKeydown: [{
80
- type: HostListener,
81
- args: ['document:keydown.tab', ['$event']]
82
- }], onFocusIn: [{
83
- type: HostListener,
84
- args: ['document:focusin', ['$event']]
85
97
  }] } });
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWRlc2t0b3Atd2luZG93LXN0YXRlLW1vbml0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZGVza3RvcC9kaXJlY3RpdmVzL3dpbmRvdy1zdGF0ZS1tb25pdG9yL3RydS1kZXNrdG9wLXdpbmRvdy1zdGF0ZS1tb25pdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFDOzs7O0FBTzdHLE1BQU0sT0FBTyw0QkFBNEI7SUFNN0I7SUFDQTtJQUNBO0lBQ0E7SUFSNkIsTUFBTSxHQUFZLElBQUksQ0FBQztJQUV0RCxpQkFBaUIsR0FBdUIsRUFBRSxDQUFDO0lBRW5ELFlBQ1UsRUFBYyxFQUNkLEtBQXdCLEVBQ3hCLElBQWEsRUFDYixrQkFBeUM7UUFIekMsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQ3hCLFNBQUksR0FBSixJQUFJLENBQVM7UUFDYix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQXVCO0lBQUksQ0FBQztJQUVoRCxjQUFjLEdBQUcsR0FBRyxFQUFFO1FBQzVCLElBQUksSUFBSSxDQUFDLE1BQU07WUFDYixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7O1lBRWxFLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUNuRSxDQUFDLENBQUE7SUFFTyx5QkFBeUIsR0FBRyxHQUFHLEVBQUU7UUFDdkMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQywwSEFBMEgsQ0FBQyxDQUFDO0lBQzVLLENBQUMsQ0FBQTtJQUdELFNBQVMsQ0FBQyxLQUFvQjtRQUM1QixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQzFCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztZQUMxRCxJQUFJLHFCQUFxQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0RCxJQUFJLG9CQUFvQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3JGLElBQUksTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUMvRCxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDO29CQUN4QixJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQzt3QkFDbkIsSUFBSSxRQUFRLENBQUMsYUFBYSxLQUFLLHFCQUFxQixFQUFFLENBQUM7NEJBQ3JELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQzs0QkFDdkIsb0JBQW9CLENBQUMsS0FBSyxFQUFFLENBQUM7d0JBQy9CLENBQUM7b0JBQ0gsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLElBQUksUUFBUSxDQUFDLGFBQWEsS0FBSyxvQkFBb0IsRUFBRSxDQUFDOzRCQUNwRCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7NEJBQ3ZCLHFCQUFxQixDQUFDLEtBQUssRUFBRSxDQUFDO3dCQUNoQyxDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUdELFNBQVMsQ0FBQyxLQUFpQjtRQUN6QixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQzFCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztZQUMxRCxJQUFJLHFCQUFxQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0RCxJQUFJLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDL0QscUJBQXFCLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFELENBQUM7dUdBaEVVLDRCQUE0QjsyRkFBNUIsNEJBQTRCOzsyRkFBNUIsNEJBQTRCO2tCQUh4QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQ0FBZ0M7aUJBQzNDO3lLQUV3QyxNQUFNO3NCQUE1QyxLQUFLO3VCQUFDLDhCQUE4QjtnQkFzQnJDLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxzQkFBc0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkE0QmhELFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJ1V2luZG93RXZlbnRIYW5kbGVyIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJ1LXdpbmRvdy1ldmVudC1oYW5kbGVyJztcclxuaW1wb3J0IHsgVHJ1VXRpbCB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3RydS11dGlsJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW3RydURlc2t0b3BXaW5kb3dTdGF0ZU1vbml0b3JdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJ1RGVza3RvcFdpbmRvd1N0YXRlTW9uaXRvciB7XHJcbiAgQElucHV0KCd0cnVEZXNrdG9wV2luZG93U3RhdGVNb25pdG9yJykgYWN0aXZlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgcHJpdmF0ZSBmb2N1c2FibGVFbGVtZW50czogQXJyYXk8SFRNTEVsZW1lbnQ+ID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSB1dGlsOiBUcnVVdGlsLFxyXG4gICAgcHJpdmF0ZSB3aW5kb3dFdmVudEhhbmRsZXI6IFRydVdpbmRvd0V2ZW50SGFuZGxlcikgeyB9XHJcblxyXG4gIHByaXZhdGUgc2V0V2luZG93U3RhdGUgPSAoKSA9PiB7XHJcbiAgICBpZiAodGhpcy5hY3RpdmUpXHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdkZXNrdG9wLXdpbmRvdy1kaXNhYmxlZCcpO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnZGVza3RvcC13aW5kb3ctZGlzYWJsZWQnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Rm9jdXNhYmxlQ2hpbGRFbGVtZW50cyA9ICgpID0+IHtcclxuICAgIHJldHVybiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYVtocmVmXSxpbnB1dCxzZWxlY3QsdGV4dGFyZWEsYnV0dG9uLG1hdC1zZWxlY3QsbWF0LXRhYiwubWRjLXRhYiwuYWctaGVhZGVyLWNlbGwsLmFnLWNlbGwsW3RhYmluZGV4XTpub3QoW3RhYmluZGV4PVwiLTFcIl0nKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24udGFiJywgWyckZXZlbnQnXSlcclxuICBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLmFjdGl2ZSkge1xyXG4gICAgICBsZXQgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgICB0aGlzLmZvY3VzYWJsZUVsZW1lbnRzID0gdGhpcy5nZXRGb2N1c2FibGVDaGlsZEVsZW1lbnRzKCk7XHJcbiAgICAgIGxldCBmaXJzdEZvY3VzYWJsZUVsZW1lbnQgPSB0aGlzLmZvY3VzYWJsZUVsZW1lbnRzWzBdO1xyXG4gICAgICBsZXQgbGFzdEZvY3VzYWJsZUVsZW1lbnQgPSB0aGlzLmZvY3VzYWJsZUVsZW1lbnRzW3RoaXMuZm9jdXNhYmxlRWxlbWVudHMubGVuZ3RoIC0gMV07XHJcbiAgICAgIGlmICh0YXJnZXQgIT09IG51bGwgJiYgIXRoaXMuZWwubmF0aXZlRWxlbWVudC5jb250YWlucyh0YXJnZXQpKSB7XHJcbiAgICAgICAgZmlyc3RGb2N1c2FibGVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ1RhYicpIHtcclxuICAgICAgICAgIGlmIChldmVudC5zaGlmdEtleSkge1xyXG4gICAgICAgICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZmlyc3RGb2N1c2FibGVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgICBsYXN0Rm9jdXNhYmxlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gbGFzdEZvY3VzYWJsZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgIGZpcnN0Rm9jdXNhYmxlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpmb2N1c2luJywgWyckZXZlbnQnXSlcclxuICBvbkZvY3VzSW4oZXZlbnQ6IEZvY3VzRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLmFjdGl2ZSkge1xyXG4gICAgICBsZXQgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgICB0aGlzLmZvY3VzYWJsZUVsZW1lbnRzID0gdGhpcy5nZXRGb2N1c2FibGVDaGlsZEVsZW1lbnRzKCk7XHJcbiAgICAgIGxldCBmaXJzdEZvY3VzYWJsZUVsZW1lbnQgPSB0aGlzLmZvY3VzYWJsZUVsZW1lbnRzWzBdO1xyXG4gICAgICBpZiAodGFyZ2V0ICE9PSBudWxsICYmICF0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGFyZ2V0KSkge1xyXG4gICAgICAgIGZpcnN0Rm9jdXNhYmxlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldFdpbmRvd1N0YXRlKCk7XHJcbiAgICB0aGlzLndpbmRvd0V2ZW50SGFuZGxlci5hY3RpdmVTdGF0ZUNoYW5nZWQodGhpcy5hY3RpdmUpO1xyXG4gIH1cclxufVxyXG4iXX0=
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWRlc2t0b3Atd2luZG93LXN0YXRlLW1vbml0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZGVza3RvcC9kaXJlY3RpdmVzL3dpbmRvdy1zdGF0ZS1tb25pdG9yL3RydS1kZXNrdG9wLXdpbmRvdy1zdGF0ZS1tb25pdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUE0QixLQUFLLEVBQTRCLE1BQU0sZUFBZSxDQUFDOzs7QUFPeEgsTUFBTSxPQUFPLDRCQUE0QjtJQVE3QjtJQUNBO0lBQ0E7SUFUNkIsTUFBTSxHQUFZLElBQUksQ0FBQztJQUV0RCxXQUFXLENBQWM7SUFDekIsYUFBYSxDQUFjO0lBQzNCLGlCQUFpQixHQUF1QixFQUFFLENBQUM7SUFFbkQsWUFDVSxFQUFjLEVBQ2QsUUFBbUIsRUFDbkIsa0JBQXlDO1FBRnpDLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBdUI7SUFBSSxDQUFDO0lBRWhELGNBQWMsR0FBRyxHQUFHLEVBQUU7UUFDNUIsSUFBSSxJQUFJLENBQUMsTUFBTTtZQUNiLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQzs7WUFFbEUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQ25FLENBQUMsQ0FBQTtJQUVPLHlCQUF5QixHQUFHLEdBQUcsRUFBRTtRQUN2QyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLDBIQUEwSCxDQUFDLENBQUM7SUFDNUssQ0FBQyxDQUFBO0lBRU8s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RUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QixDQUFDO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQzt1R0FsRlUsNEJBQTRCOzJGQUE1Qiw0QkFBNEI7OzJGQUE1Qiw0QkFBNEI7a0JBSHhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdDQUFnQztpQkFDM0M7MklBRXdDLE1BQU07c0JBQTVDLEtBQUs7dUJBQUMsOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgUmVuZGVyZXIyLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRydVdpbmRvd0V2ZW50SGFuZGxlciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RydS13aW5kb3ctZXZlbnQtaGFuZGxlcic7XHJcbmltcG9ydCB7IFRydVV0aWwgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy90cnUtdXRpbCc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1t0cnVEZXNrdG9wV2luZG93U3RhdGVNb25pdG9yXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRydURlc2t0b3BXaW5kb3dTdGF0ZU1vbml0b3Ige1xyXG4gIEBJbnB1dCgndHJ1RGVza3RvcFdpbmRvd1N0YXRlTW9uaXRvcicpIGFjdGl2ZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIHByaXZhdGUgdGFiTGlzdGVuZXIhOiAoKSA9PiB2b2lkO1xyXG4gIHByaXZhdGUgZm9jdXNMaXN0ZW5lciE6ICgpID0+IHZvaWQ7XHJcbiAgcHJpdmF0ZSBmb2N1c2FibGVFbGVtZW50czogQXJyYXk8SFRNTEVsZW1lbnQ+ID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHByaXZhdGUgd2luZG93RXZlbnRIYW5kbGVyOiBUcnVXaW5kb3dFdmVudEhhbmRsZXIpIHsgfVxyXG5cclxuICBwcml2YXRlIHNldFdpbmRvd1N0YXRlID0gKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlKVxyXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnZGVza3RvcC13aW5kb3ctZGlzYWJsZWQnKTtcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2Rlc2t0b3Atd2luZG93LWRpc2FibGVkJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEZvY3VzYWJsZUNoaWxkRWxlbWVudHMgPSAoKSA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2FbaHJlZl0saW5wdXQsc2VsZWN0LHRleHRhcmVhLGJ1dHRvbixtYXQtc2VsZWN0LG1hdC10YWIsLm1kYy10YWIsLmFnLWhlYWRlci1jZWxsLC5hZy1jZWxsLFt0YWJpbmRleF06bm90KFt0YWJpbmRleD1cIi0xXCJdJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZvY3VzQXBwcm9wcmlhdGVFbGVtZW50ID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XHJcbiAgICBsZXQgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgdGhpcy5mb2N1c2FibGVFbGVtZW50cyA9IHRoaXMuZ2V0Rm9jdXNhYmxlQ2hpbGRFbGVtZW50cygpO1xyXG4gICAgbGV0IGZpcnN0Rm9jdXNhYmxlRWxlbWVudCA9IHRoaXMuZm9jdXNhYmxlRWxlbWVudHNbMF07XHJcbiAgICBsZXQgbGFzdEZvY3VzYWJsZUVsZW1lbnQgPSB0aGlzLmZvY3VzYWJsZUVsZW1lbnRzW3RoaXMuZm9jdXNhYmxlRWxlbWVudHMubGVuZ3RoIC0gMV07XHJcbiAgICBpZiAodGFyZ2V0ICE9PSBudWxsICYmICF0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGFyZ2V0KSkge1xyXG4gICAgICBmaXJzdEZvY3VzYWJsZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChldmVudC5rZXkgPT09ICdUYWInKSB7XHJcbiAgICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5KSB7XHJcbiAgICAgICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZmlyc3RGb2N1c2FibGVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIGxhc3RGb2N1c2FibGVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBsYXN0Rm9jdXNhYmxlRWxlbWVudCkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBmaXJzdEZvY3VzYWJsZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ1RhYicpXHJcbiAgICBpZiAodGhpcy5hY3RpdmUpIHtcclxuICAgICAgdGhpcy5mb2N1c0FwcHJvcHJpYXRlRWxlbWVudChldmVudCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25Gb2N1c0luKGV2ZW50OiBGb2N1c0V2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5hY3RpdmUpIHtcclxuICAgICAgbGV0IHRhcmdldCA9IGV2ZW50LnRhcmdldDtcclxuICAgICAgdGhpcy5mb2N1c2FibGVFbGVtZW50cyA9IHRoaXMuZ2V0Rm9jdXNhYmxlQ2hpbGRFbGVtZW50cygpO1xyXG4gICAgICBsZXQgZmlyc3RGb2N1c2FibGVFbGVtZW50ID0gdGhpcy5mb2N1c2FibGVFbGVtZW50c1swXTtcclxuICAgICAgaWYgKHRhcmdldCAhPT0gbnVsbCAmJiAhdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKHRhcmdldCkpIHtcclxuICAgICAgICBmaXJzdEZvY3VzYWJsZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRXaW5kb3dTdGF0ZSgpO1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlKSB7XHJcbiAgICAgIHRoaXMudGFiTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbignZG9jdW1lbnQnLCAna2V5ZG93bicsIHRoaXMub25LZXlkb3duLmJpbmQodGhpcykpO1xyXG4gICAgICB0aGlzLmZvY3VzTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbignZG9jdW1lbnQnLCAnZm9jdXNpbicsIHRoaXMub25Gb2N1c0luLmJpbmQodGhpcykpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50YWJMaXN0ZW5lcigpO1xyXG4gICAgICB0aGlzLmZvY3VzTGlzdGVuZXIoKTtcclxuICAgIH1cclxuICAgIHRoaXMud2luZG93RXZlbnRIYW5kbGVyLmFjdGl2ZVN0YXRlQ2hhbmdlZCh0aGlzLmFjdGl2ZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMudGFiTGlzdGVuZXIoKTtcclxuICAgIHRoaXMuZm9jdXNMaXN0ZW5lcigpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -8246,15 +8246,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
8246
8246
 
8247
8247
  class TruDesktopWindowStateMonitor {
8248
8248
  el;
8249
- cdRef;
8250
- util;
8249
+ renderer;
8251
8250
  windowEventHandler;
8252
8251
  active = true;
8252
+ tabListener;
8253
+ focusListener;
8253
8254
  focusableElements = [];
8254
- constructor(el, cdRef, util, windowEventHandler) {
8255
+ constructor(el, renderer, windowEventHandler) {
8255
8256
  this.el = el;
8256
- this.cdRef = cdRef;
8257
- this.util = util;
8257
+ this.renderer = renderer;
8258
8258
  this.windowEventHandler = windowEventHandler;
8259
8259
  }
8260
8260
  setWindowState = () => {
@@ -8266,32 +8266,39 @@ class TruDesktopWindowStateMonitor {
8266
8266
  getFocusableChildElements = () => {
8267
8267
  return this.el.nativeElement.querySelectorAll('a[href],input,select,textarea,button,mat-select,mat-tab,.mdc-tab,.ag-header-cell,.ag-cell,[tabindex]:not([tabindex="-1"]');
8268
8268
  };
8269
- onKeydown(event) {
8270
- if (this.active) {
8271
- let target = event.target;
8272
- this.focusableElements = this.getFocusableChildElements();
8273
- let firstFocusableElement = this.focusableElements[0];
8274
- let lastFocusableElement = this.focusableElements[this.focusableElements.length - 1];
8275
- if (target !== null && !this.el.nativeElement.contains(target)) {
8276
- firstFocusableElement.focus();
8277
- }
8278
- else {
8279
- if (event.key === 'Tab') {
8280
- if (event.shiftKey) {
8281
- if (document.activeElement === firstFocusableElement) {
8282
- event.preventDefault();
8283
- lastFocusableElement.focus();
8284
- }
8269
+ focusAppropriateElement = (event) => {
8270
+ let target = event.target;
8271
+ this.focusableElements = this.getFocusableChildElements();
8272
+ let firstFocusableElement = this.focusableElements[0];
8273
+ let lastFocusableElement = this.focusableElements[this.focusableElements.length - 1];
8274
+ if (target !== null && !this.el.nativeElement.contains(target)) {
8275
+ firstFocusableElement.focus();
8276
+ }
8277
+ else {
8278
+ if (event.key === 'Tab') {
8279
+ if (event.shiftKey) {
8280
+ if (document.activeElement === firstFocusableElement) {
8281
+ event.preventDefault();
8282
+ lastFocusableElement.focus();
8285
8283
  }
8286
- else {
8287
- if (document.activeElement === lastFocusableElement) {
8288
- event.preventDefault();
8289
- firstFocusableElement.focus();
8290
- }
8284
+ }
8285
+ else {
8286
+ if (document.activeElement === lastFocusableElement) {
8287
+ event.preventDefault();
8288
+ firstFocusableElement.focus();
8291
8289
  }
8292
8290
  }
8293
8291
  }
8294
8292
  }
8293
+ };
8294
+ onKeydown(event) {
8295
+ if (event.key === 'Tab')
8296
+ if (this.active) {
8297
+ this.focusAppropriateElement(event);
8298
+ }
8299
+ else {
8300
+ event.preventDefault();
8301
+ }
8295
8302
  }
8296
8303
  onFocusIn(event) {
8297
8304
  if (this.active) {
@@ -8305,25 +8312,31 @@ class TruDesktopWindowStateMonitor {
8305
8312
  }
8306
8313
  ngOnChanges(changes) {
8307
8314
  this.setWindowState();
8315
+ if (this.active) {
8316
+ this.tabListener = this.renderer.listen('document', 'keydown', this.onKeydown.bind(this));
8317
+ this.focusListener = this.renderer.listen('document', 'focusin', this.onFocusIn.bind(this));
8318
+ }
8319
+ else {
8320
+ this.tabListener();
8321
+ this.focusListener();
8322
+ }
8308
8323
  this.windowEventHandler.activeStateChanged(this.active);
8309
8324
  }
8310
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruDesktopWindowStateMonitor, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: TruUtil }, { token: TruWindowEventHandler }], target: i0.ɵɵFactoryTarget.Directive });
8311
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: TruDesktopWindowStateMonitor, selector: "[truDesktopWindowStateMonitor]", inputs: { active: ["truDesktopWindowStateMonitor", "active"] }, host: { listeners: { "document:keydown.tab": "onKeydown($event)", "document:focusin": "onFocusIn($event)" } }, usesOnChanges: true, ngImport: i0 });
8325
+ ngOnDestroy() {
8326
+ this.tabListener();
8327
+ this.focusListener();
8328
+ }
8329
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruDesktopWindowStateMonitor, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: TruWindowEventHandler }], target: i0.ɵɵFactoryTarget.Directive });
8330
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: TruDesktopWindowStateMonitor, selector: "[truDesktopWindowStateMonitor]", inputs: { active: ["truDesktopWindowStateMonitor", "active"] }, usesOnChanges: true, ngImport: i0 });
8312
8331
  }
8313
8332
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruDesktopWindowStateMonitor, decorators: [{
8314
8333
  type: Directive,
8315
8334
  args: [{
8316
8335
  selector: '[truDesktopWindowStateMonitor]'
8317
8336
  }]
8318
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: TruUtil }, { type: TruWindowEventHandler }], propDecorators: { active: [{
8337
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: TruWindowEventHandler }], propDecorators: { active: [{
8319
8338
  type: Input,
8320
8339
  args: ['truDesktopWindowStateMonitor']
8321
- }], onKeydown: [{
8322
- type: HostListener,
8323
- args: ['document:keydown.tab', ['$event']]
8324
- }], onFocusIn: [{
8325
- type: HostListener,
8326
- args: ['document:focusin', ['$event']]
8327
8340
  }] } });
8328
8341
 
8329
8342
  class TruDesktopWindow {