From 134468e2cd967533f8fde5f3a2ece62136746140 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 25 Dec 2020 18:20:22 +0300 Subject: [PATCH 1/6] move localization to BaseCoreModule --- npm/ng-packs/packages/core/src/lib/core.module.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/core.module.ts b/npm/ng-packs/packages/core/src/lib/core.module.ts index a661012ac7..f25f8f07ac 100644 --- a/npm/ng-packs/packages/core/src/lib/core.module.ts +++ b/npm/ng-packs/packages/core/src/lib/core.module.ts @@ -52,6 +52,7 @@ export function storageFactory(): OAuthStorage { FormsModule, ReactiveFormsModule, RouterModule, + LocalizationModule, AbstractNgModelComponent, AutofocusDirective, @@ -76,6 +77,7 @@ export function storageFactory(): OAuthStorage { FormsModule, ReactiveFormsModule, RouterModule, + LocalizationModule, ], declarations: [ AbstractNgModelComponent, @@ -94,6 +96,7 @@ export function storageFactory(): OAuthStorage { StopPropagationDirective, VisibilityDirective, ], + providers: [LocalizationPipe], entryComponents: [ RouterOutletComponent, DynamicLayoutComponent, @@ -125,9 +128,8 @@ export class RootCoreModule {} * CoreModule is the module that is publicly available */ @NgModule({ - exports: [BaseCoreModule, LocalizationModule], - imports: [BaseCoreModule, LocalizationModule], - providers: [LocalizationPipe], + exports: [BaseCoreModule], + imports: [BaseCoreModule], }) export class CoreModule { static forRoot(options = {} as ABP.Root): ModuleWithProviders { From 91b5b74b95bcb2807a15a5365e92c07eed9b34ae Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 25 Dec 2020 18:22:40 +0300 Subject: [PATCH 2/6] remove MockLocalizationPipe from core testing package --- .../core/testing/src/lib/core-testing.module.ts | 17 ++--------------- .../core/testing/src/lib/pipes/index.ts | 1 - .../src/lib/pipes/mock-localization.pipe.ts | 12 ------------ .../packages/core/testing/src/public-api.ts | 1 - 4 files changed, 2 insertions(+), 29 deletions(-) delete mode 100644 npm/ng-packs/packages/core/testing/src/lib/pipes/index.ts delete mode 100644 npm/ng-packs/packages/core/testing/src/lib/pipes/mock-localization.pipe.ts diff --git a/npm/ng-packs/packages/core/testing/src/lib/core-testing.module.ts b/npm/ng-packs/packages/core/testing/src/lib/core-testing.module.ts index 9a7fc3eec0..214a49ebc9 100644 --- a/npm/ng-packs/packages/core/testing/src/lib/core-testing.module.ts +++ b/npm/ng-packs/packages/core/testing/src/lib/core-testing.module.ts @@ -1,16 +1,8 @@ -import { - ABP, - BaseCoreModule, - coreOptionsFactory, - CORE_OPTIONS, - LocalizationPipe, - RestService, -} from '@abp/ng.core'; +import { ABP, BaseCoreModule, coreOptionsFactory, CORE_OPTIONS, RestService } from '@abp/ng.core'; import { APP_BASE_HREF } from '@angular/common'; import { ModuleWithProviders, NgModule } from '@angular/core'; import { provideRoutes } from '@angular/router'; import { RouterTestingModule } from '@angular/router/testing'; -import { MockLocalizationPipe } from './pipes/mock-localization.pipe'; import { MockRestService } from './services/mock-rest.service'; /** @@ -18,9 +10,8 @@ import { MockRestService } from './services/mock-rest.service'; * and it provides mock alternatives */ @NgModule({ - exports: [RouterTestingModule, BaseCoreModule, MockLocalizationPipe], + exports: [RouterTestingModule, BaseCoreModule], imports: [RouterTestingModule, BaseCoreModule], - declarations: [MockLocalizationPipe], }) export class CoreTestingModule { static withConfig( @@ -39,10 +30,6 @@ export class CoreTestingModule { useFactory: coreOptionsFactory, deps: ['CORE_OPTIONS'], }, - { - provide: LocalizationPipe, - useClass: MockLocalizationPipe, - }, { provide: RestService, useClass: MockRestService, diff --git a/npm/ng-packs/packages/core/testing/src/lib/pipes/index.ts b/npm/ng-packs/packages/core/testing/src/lib/pipes/index.ts deleted file mode 100644 index 60bb9b7dce..0000000000 --- a/npm/ng-packs/packages/core/testing/src/lib/pipes/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './mock-localization.pipe'; diff --git a/npm/ng-packs/packages/core/testing/src/lib/pipes/mock-localization.pipe.ts b/npm/ng-packs/packages/core/testing/src/lib/pipes/mock-localization.pipe.ts deleted file mode 100644 index 302173cb0f..0000000000 --- a/npm/ng-packs/packages/core/testing/src/lib/pipes/mock-localization.pipe.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Config } from '@abp/ng.core'; -import { Injectable, Pipe, PipeTransform } from '@angular/core'; - -@Injectable() -@Pipe({ - name: 'abpLocalization', -}) -export class MockLocalizationPipe implements PipeTransform { - transform(value: string | Config.LocalizationWithDefault = '', ..._: string[]) { - return typeof value === 'string' ? value : value.defaultValue; - } -} diff --git a/npm/ng-packs/packages/core/testing/src/public-api.ts b/npm/ng-packs/packages/core/testing/src/public-api.ts index 8028a99aac..3b48853680 100644 --- a/npm/ng-packs/packages/core/testing/src/public-api.ts +++ b/npm/ng-packs/packages/core/testing/src/public-api.ts @@ -1,2 +1 @@ export * from './lib/core-testing.module'; -export * from './lib/pipes'; From 3c904373631508024d8943bc7cc956cd043056a7 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 25 Dec 2020 18:22:58 +0300 Subject: [PATCH 3/6] add listQueryDebounceTime to ABP.Test interface --- npm/ng-packs/packages/core/src/lib/models/common.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/npm/ng-packs/packages/core/src/lib/models/common.ts b/npm/ng-packs/packages/core/src/lib/models/common.ts index 7e828c9d2a..d4d44faae0 100644 --- a/npm/ng-packs/packages/core/src/lib/models/common.ts +++ b/npm/ng-packs/packages/core/src/lib/models/common.ts @@ -14,6 +14,7 @@ export namespace ABP { export interface Test extends Partial { baseHref?: string; + listQueryDebounceTime?: number; routes?: Routes; } From 186081fcdd536cd5b9ce1c9352c920a6acadddf7 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 25 Dec 2020 18:27:19 +0300 Subject: [PATCH 4/6] avoid debounce when LIST_QUERY_DEBOUNCE_TIME is 0 --- .../core/src/lib/services/list.service.ts | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/services/list.service.ts b/npm/ng-packs/packages/core/src/lib/services/list.service.ts index 135b13a912..0bd3e927ae 100644 --- a/npm/ng-packs/packages/core/src/lib/services/list.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/list.service.ts @@ -1,5 +1,12 @@ -import { Inject, Injectable, OnDestroy, Optional } from '@angular/core'; -import { BehaviorSubject, Observable, of, ReplaySubject, Subject } from 'rxjs'; +import { Injectable, Injector, OnDestroy } from '@angular/core'; +import { + BehaviorSubject, + MonoTypeOperatorFunction, + Observable, + of, + ReplaySubject, + Subject, +} from 'rxjs'; import { catchError, debounceTime, @@ -68,7 +75,7 @@ export class ListService implements OnDes get query$(): Observable { return this._query$ .asObservable() - .pipe(debounceTime(this.delay || 300), shareReplay({ bufferSize: 1, refCount: true })); + .pipe(this.delay, shareReplay({ bufferSize: 1, refCount: true })); } private _isLoading$ = new BehaviorSubject(false); @@ -89,7 +96,11 @@ export class ListService implements OnDes } as any) as QueryParamsType); }; - constructor(@Optional() @Inject(LIST_QUERY_DEBOUNCE_TIME) private delay: number) { + private delay: MonoTypeOperatorFunction; + + constructor(injector: Injector) { + const delay = injector.get(LIST_QUERY_DEBOUNCE_TIME, 300); + this.delay = delay ? debounceTime(delay) : tap(); this.get(); } From b47cb9364db546dce4d0b786971669029dc287a4 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 25 Dec 2020 18:28:56 +0300 Subject: [PATCH 5/6] use listQueryDebounceTime passed to CoreTestingModule --- .../core/testing/src/lib/core-testing.module.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/npm/ng-packs/packages/core/testing/src/lib/core-testing.module.ts b/npm/ng-packs/packages/core/testing/src/lib/core-testing.module.ts index 214a49ebc9..d598021577 100644 --- a/npm/ng-packs/packages/core/testing/src/lib/core-testing.module.ts +++ b/npm/ng-packs/packages/core/testing/src/lib/core-testing.module.ts @@ -1,4 +1,11 @@ -import { ABP, BaseCoreModule, coreOptionsFactory, CORE_OPTIONS, RestService } from '@abp/ng.core'; +import { + ABP, + BaseCoreModule, + coreOptionsFactory, + CORE_OPTIONS, + LIST_QUERY_DEBOUNCE_TIME, + RestService, +} from '@abp/ng.core'; import { APP_BASE_HREF } from '@angular/common'; import { ModuleWithProviders, NgModule } from '@angular/core'; import { provideRoutes } from '@angular/router'; @@ -15,7 +22,7 @@ import { MockRestService } from './services/mock-rest.service'; }) export class CoreTestingModule { static withConfig( - { baseHref = '/', routes = [], ...options } = {} as ABP.Test, + { baseHref = '/', listQueryDebounceTime = 0, routes = [], ...options } = {} as ABP.Test, ): ModuleWithProviders { return { ngModule: CoreTestingModule, @@ -30,6 +37,10 @@ export class CoreTestingModule { useFactory: coreOptionsFactory, deps: ['CORE_OPTIONS'], }, + { + provide: LIST_QUERY_DEBOUNCE_TIME, + useValue: listQueryDebounceTime, + }, { provide: RestService, useClass: MockRestService, From f012479bf8c9d808fa6bb718327504424276f871 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 25 Dec 2020 18:29:15 +0300 Subject: [PATCH 6/6] add NoopAnimationsModule toCoreTestingModule imports --- .../packages/core/testing/src/lib/core-testing.module.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/npm/ng-packs/packages/core/testing/src/lib/core-testing.module.ts b/npm/ng-packs/packages/core/testing/src/lib/core-testing.module.ts index d598021577..7fa32a1b89 100644 --- a/npm/ng-packs/packages/core/testing/src/lib/core-testing.module.ts +++ b/npm/ng-packs/packages/core/testing/src/lib/core-testing.module.ts @@ -8,6 +8,7 @@ import { } from '@abp/ng.core'; import { APP_BASE_HREF } from '@angular/common'; import { ModuleWithProviders, NgModule } from '@angular/core'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { provideRoutes } from '@angular/router'; import { RouterTestingModule } from '@angular/router/testing'; import { MockRestService } from './services/mock-rest.service'; @@ -18,7 +19,7 @@ import { MockRestService } from './services/mock-rest.service'; */ @NgModule({ exports: [RouterTestingModule, BaseCoreModule], - imports: [RouterTestingModule, BaseCoreModule], + imports: [NoopAnimationsModule, RouterTestingModule, BaseCoreModule], }) export class CoreTestingModule { static withConfig(