UNPKG

angular2-json-schema-form

Version:
56 lines (50 loc) 1.75 kB
import { Component, Input, OnInit } from '@angular/core'; import { AbstractControl } from '@angular/forms'; import { JsonSchemaFormService } from '../../library/json-schema-form.service'; @Component({ selector: 'material-button-widget', template: ` <section [class]="options?.htmlClass"> <button md-raised-button [attr.readonly]="options?.readonly ? 'readonly' : null" [attr.aria-describedby]="'control' + layoutNode?._id + 'Status'" [class]="options?.fieldHtmlClass" [color]="options?.color || 'primary'" [disabled]="controlDisabled" [id]="'control' + layoutNode?._id" [name]="controlName" [type]="layoutNode?.type" [value]="controlValue" (click)="updateValue($event)"> <md-icon *ngIf="options?.icon" class="md-24">{{options?.icon}}</md-icon> <span *ngIf="options?.title" [innerHTML]="options?.title"></span> </button> </section>`, styles: [`button { margin-top: 4px; }`], }) export class MaterialButtonComponent implements OnInit { private formControl: AbstractControl; private controlName: string; private controlValue: any; private controlDisabled: boolean = false; private boundControl: boolean = false; private options: any; @Input() formID: number; @Input() layoutNode: any; @Input() layoutIndex: number[]; @Input() dataIndex: number[]; constructor( private jsf: JsonSchemaFormService ) { } ngOnInit() { this.options = this.layoutNode.options; this.jsf.initializeControl(this); } private updateValue(event) { if (typeof this.options.onClick === 'function') { this.options.onClick(event); } else { this.jsf.updateValue(this, event.target.value); } } }