import { Directive, HostListener } from '@angular/core';

@Directive({
    selector: '[appUppercase]',
    standalone: false
})
export class UppercaseDirective {

  @HostListener('input', ['$event'])
  onInput(event: Event) {
    const input = event.target as HTMLInputElement;

    const start = input.selectionStart ?? 0;
    const end   = input.selectionEnd ?? 0;

    const upper = input.value.toUpperCase();

    if (input.value !== upper) {
      input.value = upper;
      // restore caret / selection
      input.setSelectionRange(start, end);
    }
  }
}
