Instantly share code, notes, and snippets.
Created
March 7, 2023 00:45
-
Star
0
(0)
You must be signed in to star a gist -
Fork
0
(0)
You must be signed in to fork a gist
-
Save guiseek/cca810b30bf704afb1068ba315502cb9 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
interface Window { | |
readonly navigation: Navigation; | |
} | |
interface NavigationEventMap { | |
"navigate": NavigateEvent; | |
"navigatesuccess": Event; | |
"navigateerror": ErrorEvent; | |
"currententrychange": NavigationCurrentEntryChangeEvent; | |
} | |
interface NavigationResult { | |
committed: Promise<NavigationHistoryEntry>; | |
finished: Promise<NavigationHistoryEntry>; | |
} | |
declare class Navigation extends EventTarget { | |
entries(): NavigationHistoryEntry[]; | |
readonly currentEntry: NavigationHistoryEntry|null; | |
updateCurrentEntry(options: NavigationUpdateCurrentEntryOptions): void; | |
readonly transition: NavigationTransition|null; | |
readonly canGoBack: boolean; | |
readonly canGoForward: boolean; | |
navigate(url: string, options?: NavigationNavigateOptions): NavigationResult; | |
reload(options?: NavigationReloadOptions): NavigationResult; | |
traverseTo(key: string, options?: NavigationOptions): NavigationResult; | |
back(options?: NavigationOptions): NavigationResult; | |
forward(options?: NavigationOptions): NavigationResult; | |
onnavigate: ((this: Navigation, ev: NavigateEvent) => any)|null; | |
onnavigatesuccess: ((this: Navigation, ev: Event) => any)|null; | |
onnavigateerror: ((this: Navigation, ev: ErrorEvent) => any)|null; | |
oncurrententrychange: ((this: Navigation, ev: NavigationCurrentEntryChangeEvent) => any)|null; | |
addEventListener<K extends keyof NavigationEventMap>(type: K, listener: (this: Navigation, ev: NavigationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; | |
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; | |
removeEventListener<K extends keyof NavigationEventMap>(type: K, listener: (this: Navigation, ev: NavigationEventMap[K]) => any, options?: boolean | EventListenerOptions): void; | |
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; | |
} | |
declare class NavigationTransition { | |
readonly navigationType: NavigationType; | |
readonly from: NavigationHistoryEntry; | |
readonly finished: Promise<void>; | |
} | |
interface NavigationHistoryEntryEventMap { | |
"dispose": Event; | |
} | |
declare class NavigationHistoryEntry extends EventTarget { | |
readonly key: string; | |
readonly id: string; | |
readonly url: string|null; | |
readonly index: number; | |
readonly sameDocument: boolean; | |
getState(): unknown; | |
ondispose: ((this: NavigationHistoryEntry, ev: Event) => any)|null; | |
addEventListener<K extends keyof NavigationHistoryEntryEventMap>(type: K, listener: (this: NavigationHistoryEntry, ev: NavigationHistoryEntryEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; | |
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; | |
removeEventListener<K extends keyof NavigationHistoryEntryEventMap>(type: K, listener: (this: NavigationHistoryEntry, ev: NavigationHistoryEntryEventMap[K]) => any, options?: boolean | EventListenerOptions): void; | |
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; | |
} | |
type NavigationType = 'reload'|'push'|'replace'|'traverse'; | |
interface NavigationUpdateCurrentEntryOptions { | |
state: unknown; | |
} | |
interface NavigationOptions { | |
info?: unknown; | |
} | |
interface NavigationNavigateOptions extends NavigationOptions { | |
state?: unknown; | |
history?: "auto"|"push"|"replace"; | |
} | |
interface NavigationReloadOptions extends NavigationOptions { | |
state?: unknown; | |
} | |
declare class NavigationCurrentEntryChangeEvent extends Event { | |
constructor(type: string, eventInit?: NavigationCurrentEntryChangeEventInit); | |
readonly navigationType: NavigationType|null; | |
readonly from: NavigationHistoryEntry; | |
} | |
interface NavigationCurrentEntryChangeEventInit extends EventInit { | |
navigationType?: NavigationType|null; | |
from: NavigationHistoryEntry; | |
} | |
declare class NavigateEvent extends Event { | |
constructor(type: string, eventInit?: NavigateEventInit); | |
readonly navigationType: NavigationType; | |
readonly canIntercept: boolean; | |
readonly userInitiated: boolean; | |
readonly hashChange: boolean; | |
readonly destination: NavigationDestination; | |
readonly signal: AbortSignal; | |
readonly formData: FormData|null; | |
readonly downloadRequest: string|null; | |
readonly info?: unknown; | |
intercept(options?: NavigationInterceptOptions): void; | |
scroll(): void; | |
} | |
interface NavigateEventInit extends EventInit { | |
navigationType?: NavigationType; | |
canIntercept?: boolean; | |
userInitiated?: boolean; | |
hashChange?: boolean; | |
destination: NavigationDestination; | |
signal: AbortSignal; | |
formData?: FormData|null; | |
downloadRequest?: string|null; | |
info?: unknown; | |
} | |
interface NavigationInterceptOptions { | |
handler?: () => Promise<void>, | |
focusReset?: "after-transition"|"manual", | |
scroll?: "after-transition"|"manual" | |
} | |
declare class NavigationDestination { | |
readonly url: string; | |
readonly key: string|null; | |
readonly id: string|null; | |
readonly index: number; | |
readonly sameDocument: boolean; | |
getState(): unknown; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment