import { Component, OnInit, Input, Output, EventEmitter  } from '@angular/core';

@Component({
  selector: 'app-remove-button',
  templateUrl: './remove-button.component.html',
  styleUrls: ['./remove-button.component.css']
})
export class RemoveButtonComponent implements OnInit {
  @Input()
  public nullableAttribute: any;

  @Output()
  public nullableAttributeChange: EventEmitter<any> = new EventEmitter<any>();

  constructor() { }

  ngOnInit() {
  }

  public clear() {
    this.nullableAttribute = null;
    this.nullableAttributeChange.emit(this.nullableAttribute);
  }

}
