mirror of
https://github.com/akveo/ngx-admin.git
synced 2025-12-18 00:10:14 +01:00
36 lines
969 B
TypeScript
36 lines
969 B
TypeScript
import {Component, Input, Self} from '@angular/core';
|
|
import {ControlValueAccessor, NgModel} from '@angular/forms';
|
|
|
|
@Component({
|
|
selector: 'ba-checkbox[ngModel]',
|
|
styles: [require('./baCheckbox.scss')],
|
|
template: require('./baCheckbox.html')
|
|
})
|
|
export class BaCheckbox implements ControlValueAccessor {
|
|
@Input() disabled:boolean;
|
|
@Input() label:string;
|
|
@Input() value:string;
|
|
@Input() baCheckboxClass:string;
|
|
|
|
public model: NgModel;
|
|
public state: boolean;
|
|
|
|
public constructor(@Self() state:NgModel) {
|
|
this.model = state;
|
|
state.valueAccessor = this;
|
|
}
|
|
|
|
public onChange(value: any): void {}
|
|
public onTouch(value: any): void {}
|
|
public writeValue(state: any): void {
|
|
this.state = state;
|
|
}
|
|
|
|
public registerOnChange(fn: any): void {
|
|
this.onChange = function(state: boolean) {
|
|
this.writeValue(state);
|
|
this.model.viewToModelUpdate(state);
|
|
}
|
|
}
|
|
public registerOnTouched(fn: any): void { this.onTouch = fn; }
|
|
}
|