A Button directive which accepts an @Input() to specify a click limit until the button gets disabled. The parent component can listen to an event which will be emitted when the click limit is reached via @Output:
import { Component, Input, Output, EventEmitter } from '@angular/core';
@Component(...