angular-traversal
Version:
A traversal navigation library for Angular (v2+)
64 lines (63 loc) • 2.78 kB
TypeScript
import { ComponentFactoryResolver, ComponentFactory, InjectionToken, Type, Compiler, Injector } from '@angular/core';
import { Location } from '@angular/common';
import { BehaviorSubject, Observable, Subject } from 'rxjs';
import { Resolver } from './resolver';
import { Marker } from './marker';
import { Normalizer } from './normalizer';
import { Target } from './interfaces';
export declare type LazyView = () => Promise<Type<any>>;
export declare const NAVIGATION_PREFIX: InjectionToken<BehaviorSubject<string>>;
export declare class Traverser {
private location;
private resolver;
private marker;
private normalizer;
private ngResolver;
private compiler;
private injector;
private prefix;
target: BehaviorSubject<Target>;
beforeTraverse: Subject<[Subject<boolean>, string]>;
traverseTo: Subject<{
path: string;
navigate: boolean;
}>;
echo: Subject<boolean>;
canTraverse: Subject<boolean>;
tilesContexts: {
[name: string]: BehaviorSubject<Target>;
};
tileUpdates: Subject<{
tile: string;
target: Target;
}>;
private views;
private lazy;
private lazyModules;
private tiles;
constructor(location: Location, resolver: Resolver, marker: Marker, normalizer: Normalizer, ngResolver: ComponentFactoryResolver, compiler: Compiler, injector: Injector, prefix: BehaviorSubject<string>);
traverse(path: string, navigate?: boolean): void;
_traverse(path: string, navigate: boolean): void;
traverseHere(includeHash?: boolean): void;
addView(name: string, target: string, component: any): void;
addLazyView(name: string, target: string, loader: LazyView): void;
loadLazyView(moduleId: string, viewName: string, isTile?: boolean): Promise<Type<any>>;
addTile(name: string, target: string, component: any): void;
loadTile(name: string, path: string): void;
emptyTile(name: string): void;
addLazyTile(name: string, target: string, loader: LazyView): void;
emitTarget(path: string, contextPath: string, queryString: string, viewOrTile: string, targetObs: BehaviorSubject<Target>, components: {
[target: string]: any;
}, isTile?: boolean, currentContext?: any): void;
_emit(targetObs: BehaviorSubject<Target>, target: Target, viewOrTile: string, isTile: boolean): void;
_resolve(path: string, view?: any, queryString?: string): Observable<any>;
resolve(path: string, view?: any, queryString?: string): Observable<any>;
getFullPath(path: string): string;
getComponent(component: any): ComponentFactory<unknown>;
getEmptyTarget(): Target;
getQueryParams<T = string>(): Observable<{
[key: string]: T;
}>;
getPrefix(): string;
setPrefix(prefix: string): void;
}