UNPKG

ionic-angular

Version:

A powerful framework for building mobile and progressive web apps with JavaScript and Angular

115 lines (114 loc) 3.75 kB
import { ComponentFactory, ComponentFactoryResolver } from '@angular/core'; import { Location } from '@angular/common'; import { App } from '../components/app/app'; import { NavLink, NavSegment } from './nav-util'; import { ModuleLoader } from '../util/module-loader'; import { Tab, Tabs } from './nav-interfaces'; import { NavController } from './nav-controller'; import { UrlSerializer } from './url-serializer'; import { ViewController } from './view-controller'; /** * @hidden */ export declare class DeepLinker { _app: App; _serializer: UrlSerializer; _location: Location; _moduleLoader: ModuleLoader; _baseCfr: ComponentFactoryResolver; /** @internal */ _segments: NavSegment[]; /** @internal */ _history: string[]; /** @internal */ _indexAliasUrl: string; constructor(_app: App, _serializer: UrlSerializer, _location: Location, _moduleLoader: ModuleLoader, _baseCfr: ComponentFactoryResolver); /** * @internal */ init(): void; /** * The browser's location has been updated somehow. * @internal */ _urlChange(browserUrl: string): Promise<any>; /** * Update the deep linker using the NavController's current active view. * @internal */ navChange(direction: string): void; /** * @internal */ _updateLocation(browserUrl: string, direction: string): void; getComponentFromName(componentName: string): Promise<any>; getNavLinkComponent(link: NavLink): Promise<any>; /** * @internal */ resolveComponent(component: any): ComponentFactory<any>; /** * @internal */ createUrl(nav: any, nameOrComponent: any, data: any, prepareExternalUrl?: boolean): string; /** * Build a browser URL out of this NavController. Climbs up the tree * of NavController's to create a string representation of all the * NavControllers state. * * @internal */ _pathFromNavs(nav: NavController, component?: any, data?: any): NavSegment[]; /** * @internal */ _getTabSelector(tab: Tab): string; /** * @internal */ getSelectedTabIndex(tabsNav: Tabs, pathName: string, fallbackIndex?: number): number; /** * Each NavController will call this method when it initializes for * the first time. This allows each NavController to figure out * where it lives in the path and load up the correct component. * @internal */ initNav(nav: any): NavSegment; /** * @internal */ initViews(segment: NavSegment): Promise<ViewController[]>; /** * Using the known Path of Segments, walk down all descendents * from the root NavController and load each NavController according * to each Segment. This is usually called after a browser URL and * Path changes and needs to update all NavControllers to match * the new browser URL. Because the URL is already known, it will * not update the browser's URL when transitions have completed. * * @internal */ _loadNavFromPath(nav: NavController, done?: Function): void; /** * @internal */ _loadViewFromSegment(navInstance: any, done: Function): void; /** * @internal */ _isBackUrl(browserUrl: string): boolean; /** * @internal */ _isCurrentUrl(browserUrl: string): boolean; /** * @internal */ _historyPush(browserUrl: string): void; /** * @internal */ _historyPop(): void; } export declare function setupDeepLinker(app: App, serializer: UrlSerializer, location: Location, moduleLoader: ModuleLoader, cfr: ComponentFactoryResolver): DeepLinker; export declare function normalizeUrl(browserUrl: string): string;