mirror of
https://github.com/richard-loafle/fuse-angular.git
synced 2025-04-26 01:53:11 +00:00
43 lines
1.1 KiB
TypeScript
Executable File
43 lines
1.1 KiB
TypeScript
Executable File
import {FocusMonitor, FocusOrigin} from '@angular/cdk/a11y';
|
|
import {
|
|
AfterViewInit,
|
|
ChangeDetectorRef,
|
|
Component,
|
|
ElementRef,
|
|
NgZone,
|
|
OnDestroy,
|
|
ViewChild
|
|
} from '@angular/core';
|
|
|
|
/** @title Focusing with a specific FocusOrigin */
|
|
@Component({
|
|
selector: 'focus-monitor-focus-via-example',
|
|
templateUrl: 'focus-monitor-focus-via-example.html',
|
|
styleUrls: ['focus-monitor-focus-via-example.css']
|
|
})
|
|
export class FocusMonitorFocusViaExample implements OnDestroy, AfterViewInit {
|
|
@ViewChild('monitored', {static: false}) monitoredEl: ElementRef<HTMLElement>;
|
|
|
|
origin = this.formatOrigin(null);
|
|
|
|
constructor(public focusMonitor: FocusMonitor,
|
|
private _cdr: ChangeDetectorRef,
|
|
private _ngZone: NgZone) {}
|
|
|
|
ngAfterViewInit() {
|
|
this.focusMonitor.monitor(this.monitoredEl)
|
|
.subscribe(origin => this._ngZone.run(() => {
|
|
this.origin = this.formatOrigin(origin);
|
|
this._cdr.markForCheck();
|
|
}));
|
|
}
|
|
|
|
ngOnDestroy() {
|
|
this.focusMonitor.stopMonitoring(this.monitoredEl);
|
|
}
|
|
|
|
formatOrigin(origin: FocusOrigin): string {
|
|
return origin ? origin + ' focused' : 'blurred';
|
|
}
|
|
}
|