diff --git a/src/app/pages/forms/components/inputs/components/checkboxInputs/checkboxInputs.component.ts b/src/app/pages/forms/components/inputs/components/checkboxInputs/checkboxInputs.component.ts index 0b2f4c1d..514ba808 100644 --- a/src/app/pages/forms/components/inputs/components/checkboxInputs/checkboxInputs.component.ts +++ b/src/app/pages/forms/components/inputs/components/checkboxInputs/checkboxInputs.component.ts @@ -1,14 +1,34 @@ import {Component} from '@angular/core'; -import {BaCheckbox} from '../../../../../../theme/components'; +import {BaMultiCheckbox} from '../../../../../../theme/components'; @Component({ selector: 'checkbox-inputs', template: require('./checkboxInputs.html'), - directives: [BaCheckbox] + directives: [BaMultiCheckbox] }) export class CheckboxInputs { + public checkboxModel = [{ + name: 'Check 1', + checked: false, + class: 'col-md-4' + }, { + name: 'Check 2', + checked: true, + class: 'col-md-4' + }, { + name: 'Check 3', + checked: false, + class: 'col-md-4' + }]; + public checkboxPropertiesMapping = { + model: 'checked', + value: 'name', + label: 'name', + baCheckboxClass: 'class' + }; + constructor() { } - + } diff --git a/src/app/pages/forms/components/inputs/components/checkboxInputs/checkboxInputs.html b/src/app/pages/forms/components/inputs/components/checkboxInputs/checkboxInputs.html index 5e5f3c69..e83f1c71 100644 --- a/src/app/pages/forms/components/inputs/components/checkboxInputs/checkboxInputs.html +++ b/src/app/pages/forms/components/inputs/components/checkboxInputs/checkboxInputs.html @@ -1,8 +1,6 @@
- - - +
@@ -27,10 +25,7 @@
- +
-
-
- -
-
-
-
- -
-
-
-
- -
-
- +
diff --git a/src/app/theme/components/baCheckbox/baCheckbox.component.ts b/src/app/theme/components/baCheckbox/baCheckbox.component.ts index fcdd6b66..a058fe3c 100644 --- a/src/app/theme/components/baCheckbox/baCheckbox.component.ts +++ b/src/app/theme/components/baCheckbox/baCheckbox.component.ts @@ -1,32 +1,36 @@ -import {Component, Provider, forwardRef, Input} from "@angular/core"; -import {ControlValueAccessor, NG_VALUE_ACCESSOR} from "@angular/common"; - -const BA_CHECKBOX_CONTROL_VALUE_ACCESSOR = new Provider( - NG_VALUE_ACCESSOR, { - useExisting: forwardRef(() => BaCheckbox), - multi: true - }); +import {Component, Input, Self} from '@angular/core'; +import {ControlValueAccessor, NgModel} from '@angular/forms'; @Component({ - selector: 'ba-checkbox', - template: require('./baCheckbox.html'), - providers: [BA_CHECKBOX_CONTROL_VALUE_ACCESSOR] + 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() name:string; @Input() baCheckboxClass:string; + public model: NgModel; public state: boolean; - onChange(value: any): void {} - onTouch(value: any): void {} - writeValue(value: any): void { - this.state = value; + public constructor(@Self() state:NgModel) { + this.model = state; + state.valueAccessor = this; } - registerOnChange(fn: any): void { this.onChange = fn; } - registerOnTouched(fn: any): void { this.onTouch = fn; } + 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; } } diff --git a/src/app/theme/components/baCheckbox/baCheckbox.html b/src/app/theme/components/baCheckbox/baCheckbox.html index 7ed7e5a3..b8409ea6 100644 --- a/src/app/theme/components/baCheckbox/baCheckbox.html +++ b/src/app/theme/components/baCheckbox/baCheckbox.html @@ -1,6 +1,6 @@