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 c34b4a2fab..270ab7dcbd 100644 --- a/npm/ng-packs/packages/core/src/lib/core.module.ts +++ b/npm/ng-packs/packages/core/src/lib/core.module.ts @@ -23,6 +23,7 @@ import { LocalizationModule } from './localization.module'; import { ABP } from './models/common'; import { LocalizationPipe } from './pipes/localization.pipe'; import { SortPipe } from './pipes/sort.pipe'; +import { ToInjectorPipe } from './pipes/to-injector.pipe'; import { CookieLanguageProvider } from './providers/cookie-language.provider'; import { LocaleProvider } from './providers/locale.provider'; import { LocalizationService } from './services/localization.service'; @@ -65,6 +66,7 @@ export function storageFactory(): OAuthStorage { RouterOutletComponent, SortPipe, StopPropagationDirective, + ToInjectorPipe, ], imports: [ OAuthModule, @@ -89,6 +91,7 @@ export function storageFactory(): OAuthStorage { RouterOutletComponent, SortPipe, StopPropagationDirective, + ToInjectorPipe, ], providers: [LocalizationPipe], entryComponents: [ diff --git a/npm/ng-packs/packages/core/src/lib/pipes/index.ts b/npm/ng-packs/packages/core/src/lib/pipes/index.ts index eb028eee4f..31e0a76593 100644 --- a/npm/ng-packs/packages/core/src/lib/pipes/index.ts +++ b/npm/ng-packs/packages/core/src/lib/pipes/index.ts @@ -1,2 +1,3 @@ export * from './localization.pipe'; export * from './sort.pipe'; +export * from './to-injector.pipe'; diff --git a/npm/ng-packs/packages/core/src/lib/pipes/to-injector.pipe.ts b/npm/ng-packs/packages/core/src/lib/pipes/to-injector.pipe.ts new file mode 100644 index 0000000000..5a1ac4df29 --- /dev/null +++ b/npm/ng-packs/packages/core/src/lib/pipes/to-injector.pipe.ts @@ -0,0 +1,28 @@ +import { InjectionToken, Injector, Pipe, PipeTransform } from '@angular/core'; + +export const INJECTOR_PIPE_DATA_TOKEN = new InjectionToken( + 'INJECTOR_PIPE_DATA_TOKEN', +); + +@Pipe({ + name: 'toInjector', +}) +export class ToInjectorPipe implements PipeTransform { + constructor(private injector: Injector) {} + transform( + value: any, + token: InjectionToken = INJECTOR_PIPE_DATA_TOKEN, + name = 'ToInjectorPipe', + ): Injector { + return Injector.create({ + providers: [ + { + provide: token, + useValue: value, + }, + ], + parent: this.injector, + name, + }); + } +}