import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core'; import { Item, Operator } from './filtering.interface'; @Component({ selector: 'app-filter-operator', template: `
{{ operator?.name }}
`, styles: [` :host { position: relative; } `], changeDetection: ChangeDetectionStrategy.Default }) export class FilterOperatorComponent { isOpen: boolean; processedOperators = []; // ===== operators ===== _operators; @Input() set operators (val: Operator) { this._operators = val; /** * Create values array compatible with app-dropdown-list component */ this.processedOperators = []; for (const key in val) { if (val.hasOwnProperty(key)) { this.processedOperators.push({id: key, name: val[key]}); } } } get operators () { return this._operators; } // ===== operators ===== // ===== operator ===== private _operator: any; @Input() set operator (val: any) { if (typeof val === 'undefined') { return; } this._operator = {id: val, name: this.operators[val]}; } get operator () { return this._operator; } // ===== operator ===== @Output() change = new EventEmitter(); }