import HistoryScrollRestorationEnum from './HistoryScrollRestorationEnum.js'; /** * History API. * * Reference: * https://developer.mozilla.org/en-US/docs/Web/API/History. */ export default class History { public readonly length = 0; public readonly state = null; #scrollRestoration = HistoryScrollRestorationEnum.auto; /** * Returns scroll restoration. * * @returns Sroll restoration. */ public get scrollRestoration(): HistoryScrollRestorationEnum { return this.#scrollRestoration; } /** * Sets scroll restoration. * * @param scrollRestoration Sroll restoration. */ public set scrollRestoration(scrollRestoration: HistoryScrollRestorationEnum) { this.#scrollRestoration = HistoryScrollRestorationEnum[scrollRestoration] ? scrollRestoration : this.#scrollRestoration; } /** * Goes to the previous page in session history. */ public back(): void { // Do nothing. } /** * Goes to the next page in session history. */ public forward(): void { // Do nothing. } /** * Load a specific page from the session history. * * @param delta Delta. * @param _delta */ public go(_delta: number): void { // Do nothing. } /** * Pushes the given data onto the session history stack. * * @param state State. * @param title Title. * @param [url] URL. * @param _state * @param _title * @param _url */ public pushState(_state: object, _title, _url?: string): void { // Do nothing. } /** * This method modifies the current history entry, replacing it with a new state. * * @param state State. * @param title Title. * @param [url] URL. * @param _state * @param _title * @param _url */ public replaceState(_state: object, _title, _url?: string): void { // Do nothing. } }