20 lines
587 B
TypeScript
20 lines
587 B
TypeScript
import { booleanAttribute, Directive, HostListener, inject, Input } from '@angular/core';
|
|
import { NGXLogger } from 'ngx-logger';
|
|
|
|
@Directive({
|
|
selector: '[iqserPreventDefault]',
|
|
standalone: true,
|
|
})
|
|
export class PreventDefaultDirective {
|
|
readonly #logger = inject(NGXLogger);
|
|
@Input({ transform: booleanAttribute }) iqserPreventDefault = true;
|
|
|
|
@HostListener('click', ['$event'])
|
|
onClick($event: Event) {
|
|
if (this.iqserPreventDefault) {
|
|
this.#logger.info('[CLICK] iqserPreventDefault');
|
|
$event.preventDefault();
|
|
}
|
|
}
|
|
}
|