UNPKG

1.74 kBTypeScriptView Raw
1import { AnimationBuilder, ComponentProps } from '../../../interface';
2import { NavigationHookCallback } from '../../route/route-interface';
3export interface HTMLStencilElement extends HTMLElement {
4 componentOnReady(): Promise<this>;
5}
6export interface NavOutlet {
7 setRouteId(id: string, params: ComponentProps | undefined, direction: RouterDirection, animation?: AnimationBuilder): Promise<RouteWrite>;
8 getRouteId(): Promise<RouteID | undefined>;
9}
10export interface RouterEventDetail {
11 from: string | null;
12 redirectedFrom: string | null;
13 to: string;
14}
15export interface RouterCustomEvent extends CustomEvent {
16 detail: RouterEventDetail;
17 target: HTMLIonRouterElement;
18}
19export interface RouteRedirect {
20 from: string[];
21 to?: ParsedRoute;
22}
23export interface RouteWrite {
24 changed: boolean;
25 element: HTMLElement | undefined;
26 markVisible?: () => void | Promise<void>;
27}
28export interface RouteID {
29 id: string;
30 element: HTMLElement | undefined;
31 params?: {
32 [key: string]: any;
33 };
34}
35export interface RouteEntry {
36 /** Component tag name or tab name. */
37 id: string;
38 segments: string[];
39 params: {
40 [key: string]: any;
41 } | undefined;
42 beforeLeave?: NavigationHookCallback;
43 beforeEnter?: NavigationHookCallback;
44}
45export interface RouteNode extends RouteEntry {
46 children: RouteTree;
47}
48export interface ParsedRoute {
49 /** Parts of the route (non empty "/" separated parts of an URL). */
50 segments: string[];
51 /** Unparsed query string. */
52 queryString?: string;
53}
54export declare type RouterDirection = 'forward' | 'back' | 'root';
55export declare type NavOutletElement = NavOutlet & HTMLStencilElement;
56export declare type RouteChain = RouteEntry[];
57export declare type RouteTree = RouteNode[];