import { Component, Input, Output, EventEmitter, OnInit, OnChanges } from '@angular/core'; import { RdComponent } from '../../base/rdComponent'; /** * params * { * desc: "", * title: "", * focusText: "" * } */ export interface IMegaOptionItem { desc: string; title: string; focusText: string; active?: boolean; } @Component({ selector: 'rd-mega-options', template: `
` }) export class MegaOptions extends RdComponent implements OnInit, OnChanges { @Input("rd-items") items: Array = []; @Input("rd-default") defaultItem; @Input("rd-size-class") sizeClass: string = "col-lg-6"; @Output("rd-change") changeEvent: EventEmitter = new EventEmitter(); selectedOption; ngOnInit() { this.setActivePassive(); } ngOnChanges(changes) { if (changes.defaultItem) { this.setActivePassive(); } } optionClick(item) { if (this.selectedOption) this.selectedOption.active = false; this.selectedOption = item; this.selectedOption.active = true; this.changeEvent.emit(item); } setActivePassive() { for (let item of this.items) { if (this.defaultItem && JSON.stringify(item) == JSON.stringify(this.defaultItem)) item.active = true; else item.active = false; } } }