Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions src/material/checkbox/checkbox.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
* found in the LICENSE file at https://angular.io/license
*/

import {FocusableOption} from '@angular/cdk/a11y';
import {FocusableOption, FocusMonitor} from '@angular/cdk/a11y';
import {
ANIMATION_MODULE_TYPE,
AfterViewInit,
Expand All @@ -28,6 +28,7 @@ import {
booleanAttribute,
forwardRef,
numberAttribute,
OnDestroy,
} from '@angular/core';
import {
AbstractControl,
Expand Down Expand Up @@ -116,7 +117,7 @@ const defaults = MAT_CHECKBOX_DEFAULT_OPTIONS_FACTORY();
imports: [MatRipple, _MatInternalFormField],
})
export class MatCheckbox
implements AfterViewInit, OnChanges, ControlValueAccessor, Validator, FocusableOption
implements AfterViewInit, OnChanges, ControlValueAccessor, Validator, FocusableOption, OnDestroy
{
/** Focuses the checkbox. */
focus() {
Expand Down Expand Up @@ -231,6 +232,7 @@ export class MatCheckbox
public _elementRef: ElementRef<HTMLElement>,
private _changeDetectorRef: ChangeDetectorRef,
private _ngZone: NgZone,
private _focusMonitor: FocusMonitor,
@Attribute('tabindex') tabIndex: string,
@Optional() @Inject(ANIMATION_MODULE_TYPE) public _animationMode?: string,
@Optional() @Inject(MAT_CHECKBOX_DEFAULT_OPTIONS) private _options?: MatCheckboxDefaultOptions,
Expand All @@ -250,6 +252,11 @@ export class MatCheckbox

ngAfterViewInit() {
this._syncIndeterminate(this._indeterminate);
this._focusMonitor.monitor(this._elementRef, true);
}

ngOnDestroy() {
this._focusMonitor.stopMonitoring(this._elementRef);
}

/** Whether the checkbox is checked. */
Expand Down
Loading