From 222159378f796aa23f4faa6cad4a740fabd76adc Mon Sep 17 00:00:00 2001 From: Masum ULU Date: Mon, 12 Jun 2023 10:06:26 +0300 Subject: [PATCH] Password directive created --- .../packages/core/src/lib/directives/index.ts | 1 + .../lib/directives/show-password.directive.ts | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 npm/ng-packs/packages/core/src/lib/directives/show-password.directive.ts diff --git a/npm/ng-packs/packages/core/src/lib/directives/index.ts b/npm/ng-packs/packages/core/src/lib/directives/index.ts index 8f05e2daae..a2f5d8e4fe 100644 --- a/npm/ng-packs/packages/core/src/lib/directives/index.ts +++ b/npm/ng-packs/packages/core/src/lib/directives/index.ts @@ -6,3 +6,4 @@ export * from './init.directive'; export * from './permission.directive'; export * from './replaceable-template.directive'; export * from './stop-propagation.directive'; +export * from './show-password.directive'; diff --git a/npm/ng-packs/packages/core/src/lib/directives/show-password.directive.ts b/npm/ng-packs/packages/core/src/lib/directives/show-password.directive.ts new file mode 100644 index 0000000000..03dc44f6a5 --- /dev/null +++ b/npm/ng-packs/packages/core/src/lib/directives/show-password.directive.ts @@ -0,0 +1,16 @@ +import { Directive, ElementRef, Input, inject } from '@angular/core'; + +@Directive({ + standalone: true, + selector: '[abpShowPassword]', +}) +export class ShowPasswordDirective { + protected readonly elementRef = inject(ElementRef); + + @Input() set abpShowPassword(visible: boolean) { + const element = this.elementRef.nativeElement as HTMLInputElement; + if (!element) return; + + element.type = visible ? 'text' : 'password'; + } +}