UNPKG

@docsvision/webclient

Version:

Type definitions for DocsVision WebClient scripts and extensions.

28 lines (27 loc) 2.27 kB
import { IRouteInfo } from "@docsvision/webclient/System/IRouteInfo"; import { RouteParameters } from "@docsvision/webclient/System/RouteParameters"; /** Интерфейс для классов, сопоставляющий url на тип роута. Для регистрации маппера используется метод {@link SammyHelper.addRouteTypeMapper} */ export interface IRouteTypeMapper<T> { /** * Должно возвращать описание [пути роута для SammyJS](http://sammyjs.org/docs/routes). * * При реализации можно использовать методы класса {@link RouteHelpers}, например: * * // В результате получится #/Folder/:FolderId * hashPattern = RouteHelpers.makeHashPattern('#/Folder/', [FolderRouteParameters.FolderId]); * */ readonly hashPattern: string; /** * При реализации должен анализировать параметры роута и формировать начальный RouteData объект. * Допустим, если у нас роут папки, то мы извлекаем из url id папки, проверяем * что это корректный id, и возвращаем объект {@link IFolderRouteData} с заполненным `folderId`. * @param path Путь текущего роута, включая имя приложения, хэш, и query-параметры. * Например: `/DocsvisionWebClient/#/Folder/5bf0fb94-23fa-4212-80c3-c598e9859901?Color=folder-default` * @param parameters Объединяют в себе как параметры указанные через двоеточие в hashPattern, * так и query-параметры, добавленные через знак вопроса (после #). */ resolve(path: string, parameters: RouteParameters): Promise<IRouteInfo<T>> | Promise<undefined>; /** Используется в том случае, если мы вызываем SammyHelper.setCurrentRoute для того, чтобы обновить url в браузере. */ tryGetUrl(route: IRouteInfo<T>): string | undefined; }