UNPKG

@this-dot/route-config

Version:

A library containing directives and services for configuring components via Route's routeData property

51 lines (50 loc) 2.52 kB
import { ActivatedRoute, Router } from '@angular/router'; import { Observable } from 'rxjs'; import * as i0 from "@angular/core"; export type RouteConfigParams<RouteTags extends string = string> = { routeTags: RouteTags | RouteTags[]; }; export type RouteConfigParamNames = keyof RouteConfigParams; export type RouteData<ConfigParamsNames extends string = never, RouteTags extends string = string> = { [key in ConfigParamsNames]: unknown; } & RouteConfigParams<RouteTags>; export type RouteDataParam<ConfigParamsNames extends string> = keyof RouteData<ConfigParamsNames>; export declare class RouteConfigService<RouteTags extends string = string, ConfigParamsNames extends string = never> { private activatedRoute; private router; private _injectedDefaultValue?; private get injectedDefaultValue(); constructor(activatedRoute: ActivatedRoute, router: Router, _injectedDefaultValue?: Partial<RouteData<ConfigParamsNames, RouteTags>> | undefined); /** * Returns an Observable which emits the route config set for the activated route. * * @example * export class AppComponent { * data$ = this.routeConfigService.getActivatedRouteConfig(); * dataWithDefaultValue$ = this.routeConfigService.getActivatedRouteConfig({ * routeTags: ['defaultTag'], * title: 'Default Title', * }); * } * * @param defaultValue - the default value that should be returned, it allows overriding the injected default values. * * @returns Observable<Partial<C>> */ getActivatedRouteConfig<C extends RouteData<ConfigParamsNames, RouteTags> = RouteData<ConfigParamsNames, RouteTags>>(defaultValue?: Partial<C>): Observable<Partial<C>>; /** * Returnsthe an Observable with current route's property value * * @example * export class AppComponent { * tags$ = this.routeConfigService.getLeafConfig('routeTags', ['no tags']); * } * * @param paramName - the parameter name from the route config to be returned * @param defaultValue - the default value that should be returned, if the value is not present */ getLeafConfig(paramName: 'routeTags', defaultValue?: RouteTags[]): Observable<RouteTags[]>; getLeafConfig<T>(paramName: ConfigParamsNames, defaultValue?: T): Observable<T>; static ɵfac: i0.ɵɵFactoryDeclaration<RouteConfigService<any, any>, [null, null, { optional: true; }]>; static ɵprov: i0.ɵɵInjectableDeclaration<RouteConfigService<any, any>>; }