UNPKG

@virtualstate/navigation

Version:

Native JavaScript [navigation](https://developer.mozilla.org/en-US/docs/Web/API/Navigation_API) implementation

65 lines (64 loc) 3.42 kB
import { NavigationHistoryEntry, NavigationHistoryEntryFn, NavigationHistoryEntryGetStateFn, NavigationHistoryEntrySerialized } from "./navigation-entry"; import { Navigation as NavigationPrototype, NavigationEventMap, NavigationReloadOptions, NavigationResult, NavigationUpdateCurrentOptions, NavigationTransition as NavigationTransitionPrototype, NavigationNavigationOptions, NavigationNavigationType } from "./spec/navigation"; import { NavigationEventTarget } from "./navigation-event-target"; import { NavigationNavigateOptions } from "./create-navigation-transition"; export * from "./spec/navigation"; export interface NavigationOptions<S = unknown> { baseURL?: URL | string; getState?: NavigationHistoryEntryGetStateFn<S>; setState?: NavigationHistoryEntryFn<S>; disposeState?: NavigationHistoryEntryFn<S>; entries?: NavigationHistoryEntrySerialized<S>[]; currentIndex?: number; currentKey?: string; } export declare const NavigationSetOptions: unique symbol; export declare const NavigationSetEntries: unique symbol; export declare const NavigationSetCurrentIndex: unique symbol; export declare const NavigationSetCurrentKey: unique symbol; export declare const NavigationGetState: unique symbol; export declare const NavigationSetState: unique symbol; export declare const NavigationDisposeState: unique symbol; export declare function isNavigationNavigationType(value: unknown): value is NavigationNavigationType; export declare class Navigation<S = unknown, R = unknown | void> extends NavigationEventTarget<NavigationEventMap<S, R>> implements NavigationPrototype<S, R> { #private; get canGoBack(): boolean; get canGoForward(): boolean; get currentEntry(): NavigationHistoryEntry<S>; get transition(): NavigationTransitionPrototype | undefined; constructor(options?: NavigationOptions<S>); [NavigationSetOptions](options: NavigationOptions<S>): void; /** * Set the current entry key without any lifecycle eventing * * This would be more exact than providing an index * @param key */ [NavigationSetCurrentKey](key: string): void; /** * Set the current entry index without any lifecycle eventing * @param index */ [NavigationSetCurrentIndex](index: number): void; /** * Set the entries available without any lifecycle eventing * @param entries */ [NavigationSetEntries](entries: NavigationHistoryEntrySerialized<S>[]): void; [NavigationGetState]: (entry: NavigationHistoryEntry<S>) => S | undefined; [NavigationSetState]: (entry: NavigationHistoryEntry<S>) => void; [NavigationDisposeState]: (entry: NavigationHistoryEntry<S>) => void; back(options?: NavigationNavigationOptions): NavigationResult<S>; entries(): NavigationHistoryEntry<S>[]; forward(options?: NavigationNavigationOptions): NavigationResult<S>; /** /** * @deprecated use traverseTo */ goTo(key: string, options?: NavigationNavigateOptions): NavigationResult<R>; traverseTo(key: string, options?: NavigationNavigationOptions): NavigationResult<S>; navigate(url: string, options?: NavigationNavigateOptions<S>): NavigationResult; reload(options?: NavigationReloadOptions<S>): NavigationResult<S>; updateCurrentEntry(options: NavigationUpdateCurrentOptions<S>): unknown; updateCurrentEntry(options: NavigationUpdateCurrentOptions<S>): void; }