import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core'; @Component({ selector: 'iqser-hidden-action', templateUrl: './hidden-action.component.html', styleUrls: ['./hidden-action.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, }) export class HiddenActionComponent { @Input() requiredClicks = 4; @Output() readonly action = new EventEmitter(); private _clickCount = 0; private _clickCountTimeout?: ReturnType; countActions(): void { this._clickCount += 1; if (this._clickCount === this.requiredClicks) { this._clickCount = 0; this.action.emit(); } clearTimeout(this._clickCountTimeout); this._clickCountTimeout = setTimeout(() => { this._clickCount = 0; }, 1000); } }