@ionic/angular
Version:
Angular specific wrappers for @ionic/core
105 lines (104 loc) • 4.86 kB
TypeScript
import { Location } from '@angular/common';
import { ComponentRef, ElementRef, NgZone, OnDestroy, OnInit, EventEmitter, EnvironmentInjector } from '@angular/core';
import type { Provider } from '@angular/core';
import { OutletContext, Router, ActivatedRoute, Data } from '@angular/router';
import type { AnimationBuilder } from '@ionic/core/components';
import { RouteView, StackDidChangeEvent, StackWillChangeEvent } from './stack-utils';
import * as i0 from "@angular/core";
export declare abstract class IonRouterOutlet implements OnDestroy, OnInit {
readonly parentOutlet?: IonRouterOutlet | undefined;
abstract outletContent: any;
nativeEl: HTMLIonRouterOutletElement;
activatedView: RouteView | null;
tabsPrefix: string | undefined;
private _swipeGesture?;
private stackCtrl;
private proxyMap;
private currentActivatedRoute$;
private activated;
/** @internal */
get activatedComponentRef(): ComponentRef<any> | null;
private _activatedRoute;
/**
* The name of the outlet
*/
name: string;
/** @internal */
stackWillChange: EventEmitter<StackWillChangeEvent>;
/** @internal */
stackDidChange: EventEmitter<StackDidChangeEvent>;
activateEvents: EventEmitter<any>;
deactivateEvents: EventEmitter<any>;
private parentContexts;
private location;
private environmentInjector;
private inputBinder;
/** @nodoc */
readonly supportsBindingToComponentInputs = true;
private config;
private navCtrl;
set animation(animation: AnimationBuilder);
set animated(animated: boolean);
set swipeGesture(swipe: boolean);
constructor(name: string, tabs: string, commonLocation: Location, elementRef: ElementRef, router: Router, zone: NgZone, activatedRoute: ActivatedRoute, parentOutlet?: IonRouterOutlet | undefined);
ngOnDestroy(): void;
getContext(): OutletContext | null;
ngOnInit(): void;
private initializeOutletWithName;
get isActivated(): boolean;
get component(): Record<string, unknown>;
get activatedRoute(): ActivatedRoute;
get activatedRouteData(): Data;
/**
* Called when the `RouteReuseStrategy` instructs to detach the subtree
*/
detach(): ComponentRef<any>;
/**
* Called when the `RouteReuseStrategy` instructs to re-attach a previously detached subtree
*/
attach(_ref: ComponentRef<any>, _activatedRoute: ActivatedRoute): void;
deactivate(): void;
activateWith(activatedRoute: ActivatedRoute, environmentInjector: EnvironmentInjector | null): void;
/**
* Returns `true` if there are pages in the stack to go back.
*/
canGoBack(deep?: number, stackId?: string): boolean;
/**
* Resolves to `true` if it the outlet was able to sucessfully pop the last N pages.
*/
pop(deep?: number, stackId?: string): Promise<boolean>;
/**
* Returns the URL of the active page of each stack.
*/
getLastUrl(stackId?: string): string | undefined;
/**
* Returns the RouteView of the active page of each stack.
* @internal
*/
getLastRouteView(stackId?: string): RouteView | undefined;
/**
* Returns the root view in the tab stack.
* @internal
*/
getRootView(stackId?: string): RouteView | undefined;
/**
* Returns the active stack ID. In the context of ion-tabs, it means the active tab.
*/
getActiveStackId(): string | undefined;
/**
* Since the activated route can change over the life time of a component in an ion router outlet, we create
* a proxy so that we can update the values over time as a user navigates back to components already in the stack.
*/
private createActivatedRouteProxy;
/**
* Create a wrapped observable that will switch to the latest activated route matched by the given component
*/
private proxyObservable;
/**
* Updates the activated route proxy for the given component to the new incoming router state
*/
private updateActivatedRouteProxy;
static ɵfac: i0.ɵɵFactoryDeclaration<IonRouterOutlet, [{ attribute: "name"; }, { attribute: "tabs"; optional: true; }, null, null, null, null, null, { optional: true; skipSelf: true; }]>;
static ɵdir: i0.ɵɵDirectiveDeclaration<IonRouterOutlet, "ion-router-outlet", ["outlet"], { "animated": { "alias": "animated"; "required": false; }; "animation": { "alias": "animation"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "swipeGesture": { "alias": "swipeGesture"; "required": false; }; "name": { "alias": "name"; "required": false; }; }, { "stackWillChange": "stackWillChange"; "stackDidChange": "stackDidChange"; "activateEvents": "activate"; "deactivateEvents": "deactivate"; }, never, never, false, never>;
}
export declare const provideComponentInputBinding: () => Provider;