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 { 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; } 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(); } 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..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 @@ -3,14 +3,14 @@ import { BaseCoreModule, coreOptionsFactory, CORE_OPTIONS, - LocalizationPipe, + LIST_QUERY_DEBOUNCE_TIME, RestService, } 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 { MockLocalizationPipe } from './pipes/mock-localization.pipe'; import { MockRestService } from './services/mock-rest.service'; /** @@ -18,13 +18,12 @@ import { MockRestService } from './services/mock-rest.service'; * and it provides mock alternatives */ @NgModule({ - exports: [RouterTestingModule, BaseCoreModule, MockLocalizationPipe], - imports: [RouterTestingModule, BaseCoreModule], - declarations: [MockLocalizationPipe], + exports: [RouterTestingModule, BaseCoreModule], + imports: [NoopAnimationsModule, RouterTestingModule, BaseCoreModule], }) export class CoreTestingModule { static withConfig( - { baseHref = '/', routes = [], ...options } = {} as ABP.Test, + { baseHref = '/', listQueryDebounceTime = 0, routes = [], ...options } = {} as ABP.Test, ): ModuleWithProviders { return { ngModule: CoreTestingModule, @@ -40,8 +39,8 @@ export class CoreTestingModule { deps: ['CORE_OPTIONS'], }, { - provide: LocalizationPipe, - useClass: MockLocalizationPipe, + provide: LIST_QUERY_DEBOUNCE_TIME, + useValue: listQueryDebounceTime, }, { provide: RestService, 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';