Browse Source

update: transfer lazy localization from theme basic to core package

pull/22817/head
sumeyye 9 months ago
parent
commit
8eebc691c0
  1. 4
      npm/ng-packs/packages/core/src/lib/localization.module.ts
  2. 1
      npm/ng-packs/packages/core/src/lib/pipes/index.ts
  3. 41
      npm/ng-packs/packages/core/src/lib/pipes/lazy-localization.pipe.ts
  4. 1
      npm/ng-packs/packages/theme-basic/src/lib/pipes/index.ts
  5. 20
      npm/ng-packs/packages/theme-basic/src/lib/pipes/lazy-translate.pipe.ts
  6. 2
      npm/ng-packs/packages/theme-basic/src/lib/theme-basic.module.ts
  7. 1
      npm/ng-packs/packages/theme-basic/src/public-api.ts

4
npm/ng-packs/packages/core/src/lib/localization.module.ts

@ -1,8 +1,10 @@
import { NgModule } from '@angular/core';
import { LocalizationPipe } from './pipes/localization.pipe';
import { LazyLocalizationPipe } from './pipes';
@NgModule({
exports: [LocalizationPipe],
imports: [LazyLocalizationPipe],
exports: [LocalizationPipe, LazyLocalizationPipe],
declarations: [LocalizationPipe],
})
export class LocalizationModule {}

1
npm/ng-packs/packages/core/src/lib/pipes/index.ts

@ -5,3 +5,4 @@ export * from './to-injector.pipe';
export * from './short-date.pipe';
export * from './short-time.pipe';
export * from './short-date-time.pipe';
export * from './lazy-localization.pipe';

41
npm/ng-packs/packages/core/src/lib/pipes/lazy-localization.pipe.ts

@ -0,0 +1,41 @@
import { inject, Injectable, Pipe, PipeTransform } from '@angular/core';
import {
Observable,
of,
filter,
take,
switchMap,
map,
startWith,
distinctUntilChanged,
} from 'rxjs';
import { ConfigStateService, LocalizationService } from '../services';
@Injectable()
@Pipe({
name: 'abpLazyLocalization',
})
export class LazyLocalizationPipe implements PipeTransform {
private localizationService = inject(LocalizationService);
private configStateService = inject(ConfigStateService);
transform(key: string, ...params: (string | string[])[]): Observable<string> {
if (!key) {
return of('');
}
const flatParams = params.reduce<string[]>(
(acc, val) => (Array.isArray(val) ? acc.concat(val) : [...acc, val]),
[],
);
return this.configStateService.getAll$().pipe(
filter(config => !!config.localization),
take(1),
switchMap(() => this.localizationService.get(key, ...flatParams)),
map(translation => (translation && translation !== key ? translation : '')),
startWith(''),
distinctUntilChanged(),
);
}
}

1
npm/ng-packs/packages/theme-basic/src/lib/pipes/index.ts

@ -1 +0,0 @@
export * from './lazy-translate.pipe';

20
npm/ng-packs/packages/theme-basic/src/lib/pipes/lazy-translate.pipe.ts

@ -1,20 +0,0 @@
import { LocalizationService, ConfigStateService } from '@abp/ng.core';
import { inject, Pipe, PipeTransform } from '@angular/core';
import { Observable, filter, take, switchMap, shareReplay } from 'rxjs';
@Pipe({
name: 'abpLazyTranslate',
})
export class LazyTranslatePipe implements PipeTransform {
private localizationService = inject(LocalizationService);
private configStateService = inject(ConfigStateService);
transform(key: string): Observable<string> {
return this.configStateService.getAll$().pipe(
filter(config => !!config.localization),
take(1),
switchMap(() => this.localizationService.get(key)),
shareReplay({ bufferSize: 1, refCount: true }),
);
}
}

2
npm/ng-packs/packages/theme-basic/src/lib/theme-basic.module.ts

@ -16,7 +16,6 @@ import { PageAlertContainerComponent } from './components/page-alert-container/p
import { RoutesComponent } from './components/routes/routes.component';
import { ValidationErrorComponent } from './components/validation-error/validation-error.component';
import { provideThemeBasicConfig } from './providers';
import { LazyTranslatePipe } from './pipes';
export const LAYOUTS = [ApplicationLayoutComponent, AccountLayoutComponent, EmptyLayoutComponent];
@ -49,7 +48,6 @@ export const LAYOUTS = [ApplicationLayoutComponent, AccountLayoutComponent, Empt
NgbCollapseModule,
NgbDropdownModule,
NgxValidateCoreModule,
LazyTranslatePipe,
],
})
export class BaseThemeBasicModule {}

1
npm/ng-packs/packages/theme-basic/src/public-api.ts

@ -6,7 +6,6 @@ export * from './lib/components';
export * from './lib/enums';
export * from './lib/handlers';
export * from './lib/models';
export * from './lib/pipes';
export * from './lib/providers';
export * from './lib/theme-basic.module';
export * from './lib/tokens';

Loading…
Cancel
Save