@relax.dev/router
Version:
Router for VKUI
48 lines (47 loc) • 1.78 kB
TypeScript
import { Page } from './Page';
import { RouteList } from './Router';
import { InfinityPanelIdTitle, PageParams, RouterGenericBase } from './Types';
/**
* @ignore
*/
export declare const POPUP_KEY = "p";
/**
* @ignore
*/
export declare const MODAL_KEY = "m";
export declare class Route<T extends RouterGenericBase = RouterGenericBase> {
/**
* @type {Page}
*/
structure: Page<T>;
pageId: T['pageId'];
params: PageParams;
uniqId: number;
constructor(structure: Page<T>, pageId: T['pageId'], params: PageParams);
static getParamsFromPath<T extends RouterGenericBase = RouterGenericBase>(location: T['pageId']): Record<string, string>;
/**
* @param {RouteList} routeList
* @param location "info?w=about&show=1" то, что лежит в window.location.hash
* @param noSlash
*/
static fromLocation<T extends RouterGenericBase = RouterGenericBase>(routeList: RouteList<T>, location: T['pageId'], noSlash?: boolean): Route<T>;
static fromPageId<T extends RouterGenericBase = RouterGenericBase>(routeList: RouteList<T>, pageId: T['pageId'], params: PageParams, prevViewId: T['viewId']): Route<T>;
clone(): Route<T>;
get location(): string;
getPageId(): T['pageId'];
getPanelId(): T['panelId'] | InfinityPanelIdTitle<T['panelId']>;
getPanelIdWithoutInfinity(): T['panelId'];
getViewId(): T['viewId'];
getRootId(): T['rootId'];
getParams(): PageParams;
setParams(params?: PageParams): Route<T>;
isPopup(): boolean;
getPopupId(): T['popupId'] | null;
setPopupId(popupId: T['popupId']): Route<T>;
isModal(): boolean;
hasOverlay(): boolean;
getModalId(): T['modalId'] | null;
setModalId(modalId: T['modalId']): Route<T>;
out(): void;
in(): void;
}