ipsos-components
Version:
Material Design components for Angular
37 lines (33 loc) • 1.1 kB
text/typescript
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import {
Directive,
forwardRef,
Provider,
} from '@angular/core';
import {
CheckboxRequiredValidator,
NG_VALIDATORS,
} from '@angular/forms';
export const MAT_CHECKBOX_REQUIRED_VALIDATOR: Provider = {
provide: NG_VALIDATORS,
useExisting: forwardRef(() => MatCheckboxRequiredValidator),
multi: true
};
/**
* Validator for Material checkbox's required attribute in template-driven checkbox.
* Current CheckboxRequiredValidator only work with `input type=checkbox` and does not
* work with `mat-checkbox`.
*/
({
selector: `mat-checkbox[required][formControlName],
mat-checkbox[required][formControl], mat-checkbox[required][ngModel]`,
providers: [MAT_CHECKBOX_REQUIRED_VALIDATOR],
host: {'[attr.required]': 'required ? "" : null'}
})
export class MatCheckboxRequiredValidator extends CheckboxRequiredValidator {}