import { Directive, ElementRef, Input, Renderer2 } from "@angular/core";

@Directive({
  selector: "[appInputVerbatim]",
})
export class InputVerbatimDirective {
  @Input() set appInputVerbatim(condition: boolean | string) {
    this.disableComplete = condition === "" || condition === true;
  }

  private disableComplete: boolean;

  constructor(
    private el: ElementRef,
    private renderer: Renderer2,
  ) {}

  ngOnInit() {
    if (this.disableComplete && !this.el.nativeElement.hasAttribute("autocomplete")) {
      this.renderer.setAttribute(this.el.nativeElement, "autocomplete", "off");
    }
    if (!this.el.nativeElement.hasAttribute("autocapitalize")) {
      this.renderer.setAttribute(this.el.nativeElement, "autocapitalize", "none");
    }
    if (!this.el.nativeElement.hasAttribute("autocorrect")) {
      this.renderer.setAttribute(this.el.nativeElement, "autocorrect", "none");
    }
    if (!this.el.nativeElement.hasAttribute("spellcheck")) {
      this.renderer.setAttribute(this.el.nativeElement, "spellcheck", "false");
    }
    if (!this.el.nativeElement.hasAttribute("inputmode")) {
      this.renderer.setAttribute(this.el.nativeElement, "inputmode", "verbatim");
    }
  }
}
