From 222159378f796aa23f4faa6cad4a740fabd76adc Mon Sep 17 00:00:00 2001 From: Masum ULU Date: Mon, 12 Jun 2023 10:06:26 +0300 Subject: [PATCH 1/4] 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'; + } +} From bf70b56375b15dbae00491391104d1042ed3fa13 Mon Sep 17 00:00:00 2001 From: Masum ULU Date: Mon, 12 Jun 2023 10:22:06 +0300 Subject: [PATCH 2/4] fix wrong imports for account layout --- npm/ng-packs/apps/dev-app/src/app/app.module.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/npm/ng-packs/apps/dev-app/src/app/app.module.ts b/npm/ng-packs/apps/dev-app/src/app/app.module.ts index ac56d2736e..7e903dff0d 100644 --- a/npm/ng-packs/apps/dev-app/src/app/app.module.ts +++ b/npm/ng-packs/apps/dev-app/src/app/app.module.ts @@ -12,7 +12,7 @@ import { SettingManagementConfigModule } from '@abp/ng.setting-management/config import { TenantManagementConfigModule } from '@abp/ng.tenant-management/config'; import { FeatureManagementModule } from '@abp/ng.feature-management'; import { AccountConfigModule } from '@abp/ng.account/config'; -import { AccountLayoutModule } from '@abp/ng.theme.lepton-x/account/account-layout'; +import { AccountLayoutModule } from '@abp/ng.theme.lepton-x/account'; import { environment } from '../environments/environment'; import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; From a0df51dd23a0bdb77dd9385c951d7c71ccf2f1b7 Mon Sep 17 00:00:00 2001 From: Masum ULU Date: Mon, 12 Jun 2023 14:35:57 +0300 Subject: [PATCH 3/4] caps-lock directive added --- .../src/lib/directives/caps-lock.directive.ts | 30 +++++++++++++++++++ .../packages/core/src/lib/directives/index.ts | 1 + 2 files changed, 31 insertions(+) create mode 100644 npm/ng-packs/packages/core/src/lib/directives/caps-lock.directive.ts diff --git a/npm/ng-packs/packages/core/src/lib/directives/caps-lock.directive.ts b/npm/ng-packs/packages/core/src/lib/directives/caps-lock.directive.ts new file mode 100644 index 0000000000..7da2eb32cf --- /dev/null +++ b/npm/ng-packs/packages/core/src/lib/directives/caps-lock.directive.ts @@ -0,0 +1,30 @@ +import { Directive, EventEmitter, HostListener, Output } from '@angular/core'; + +@Directive({ + standalone: true, + selector: '[abpCapsLock]', +}) +export class TrackCapsLockDirective { + @Output('abpCapsLock') capsLock = new EventEmitter(); + + @HostListener('window:keydown', ['$event']) + onKeyDown(event: KeyboardEvent): void { + this.capsLock.emit(this.capS(event)); + } + @HostListener('window:keyup', ['$event']) + onKeyUp(event: KeyboardEvent): void { + this.capsLock.emit(this.capS(event)); + } + + capS(e) { + var s = String.fromCharCode(e.which); + if ( + (s.toUpperCase() === s && s.toLowerCase() !== s && e.shiftKey) || + (s.toUpperCase() !== s && s.toLowerCase() === s && e.shiftKey) || + e.getModifierState('CapsLock') + ) { + return true; + } + return false; + } +} 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 a2f5d8e4fe..d5d6e22c31 100644 --- a/npm/ng-packs/packages/core/src/lib/directives/index.ts +++ b/npm/ng-packs/packages/core/src/lib/directives/index.ts @@ -7,3 +7,4 @@ export * from './permission.directive'; export * from './replaceable-template.directive'; export * from './stop-propagation.directive'; export * from './show-password.directive'; +export * from './caps-lock.directive'; From a5dfdb4c50bf84a4954b3b2ce0ea4e89ddba4fbc Mon Sep 17 00:00:00 2001 From: Masum ULU Date: Mon, 12 Jun 2023 14:37:21 +0300 Subject: [PATCH 4/4] fix method name --- .../packages/core/src/lib/directives/caps-lock.directive.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/directives/caps-lock.directive.ts b/npm/ng-packs/packages/core/src/lib/directives/caps-lock.directive.ts index 7da2eb32cf..0194bb9d3e 100644 --- a/npm/ng-packs/packages/core/src/lib/directives/caps-lock.directive.ts +++ b/npm/ng-packs/packages/core/src/lib/directives/caps-lock.directive.ts @@ -9,14 +9,14 @@ export class TrackCapsLockDirective { @HostListener('window:keydown', ['$event']) onKeyDown(event: KeyboardEvent): void { - this.capsLock.emit(this.capS(event)); + this.capsLock.emit(this.isCapsLockOpen(event)); } @HostListener('window:keyup', ['$event']) onKeyUp(event: KeyboardEvent): void { - this.capsLock.emit(this.capS(event)); + this.capsLock.emit(this.isCapsLockOpen(event)); } - capS(e) { + isCapsLockOpen(e): boolean { var s = String.fromCharCode(e.which); if ( (s.toUpperCase() === s && s.toLowerCase() !== s && e.shiftKey) ||