UNPKG

ws-form-builder

Version:
78 lines (58 loc) 1.93 kB
import { Component, Input, Output, EventEmitter } from '@angular/core'; import { FormBuilderProvider } from '../../providers/form-builder/form-builder'; @Component({ selector: 'ws-checkbox-grid', template: ` <strong>{{question.question}}</strong> <ion-grid> <ion-row> <ion-col col-6 *ngFor="let option of question.options; let i = index;"> <div class="checkbox-card"> <ion-checkbox class='card-checkbox-area' [(ngModel)]="option.value" (ionChange)='selectOption($event, question, i, option)'></ion-checkbox> <div class="checkbox-card__inner"> <ion-icon name="{{option.icon}}"></ion-icon> <span class="option-label">{{option.label}}</span> </div> </div> </ion-col> </ion-row> </ion-grid> `, styles: [` `] }) export class WsCheckboxGridComponent { @Input('question') question; @Output() answerGiven = new EventEmitter(); isFieldValid:boolean = false; showError:boolean = false; constructor(public formBuilder: FormBuilderProvider){ } selectOption(event,question,i,option){ let ifRequired = question.required; question.valid = true; let checkedCount = 0; for(let i=0; i < Object.keys(question.options).length; i++){ //string = string+this.fieldAnswers[i]; if(question.options[i]['value']){ checkedCount++; } } if(ifRequired){ if(typeof question.maximumChecked !== 'undefined'){ if(checkedCount > question.maximumChecked){ question.valid = false; } } if(typeof question.minimumChecked !== 'undefined'){ if(checkedCount < question.minimumChecked){ question.valid = false; } } } this.answerGiven.emit(question); } validateAnswer(question,string){ return this.formBuilder.validateAnswer(question,string); } }