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"); } } }