govuk-frontend
    Preparing search index...

    Class ExitThisPage

    Exit this page component

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    _$root: HTMLElement
    _config: ExitThisPageConfig
    $button: HTMLAnchorElement
    $indicatorContainer: HTMLElement = null
    $overlay: HTMLElement = null
    $skiplinkButton: HTMLAnchorElement = null
    $updateSpan: HTMLElement = null
    i18n: I18n
    keypressCounter: number = 0
    keypressTimeoutId: number = null
    lastKeyWasModified: boolean = false
    timeoutMessageId: number = null
    timeoutTime: number = 5000
    defaults: ExitThisPageConfig = ...

    Exit this page default config

    ExitThisPageConfig

    elementType: new () => Element = HTMLElement
    moduleName: string = 'govuk-exit-this-page'

    Name for the component used when initialising using data-module attributes.

    schema: Readonly<{ properties: { i18n: { type: "object" } } }> = ...

    Exit this page config schema

    Accessors

    Methods

    • Internal Virtual

      configOverride

      Function which defines configuration overrides to prioritize properties from the root element's dataset.

      It should take a subset of configuration as input and return a new configuration object with properties that should be overridden based on the root element's dataset. A Symbol is used for indexing to prevent conflicts.

      Parameters

      • Optionalparam: Partial<ExitThisPageConfig>

        Configuration object

      Returns Partial<ExitThisPageConfig>

      return - Configuration object

    • Private

      Initiates the redirection away from the current page. Includes the loading overlay functionality, which covers the current page with a white overlay so that the contents are not visible during the loading process. This is particularly important on slow network connections.

      Returns void

    • Private

      Pre-activation logic for when the button is clicked/activated via mouse or pointer.

      We do this to differentiate it from the keyboard activation event because we need to run e.preventDefault as the button or skiplink are both links and we want to apply some additional logic in exitPage before navigating.

      Parameters

      • event: MouseEvent

        mouse click event

      Returns void

    • Private

      Logic for the 'quick escape' keyboard sequence functionality (pressing the Shift key three times without interruption, within a time limit).

      Parameters

      • event: KeyboardEvent

        keyup event

      Returns void

    • Private

      Reset the page using the EtP button

      We use this in situations where a user may re-enter a page using the browser back button. In these cases, the browser can choose to restore the state of the page as it was previously, including restoring the 'ghost page' overlay, the announcement span having it's role set to "alert" and the keypress indicator still active, leaving the page in an unusable state.

      By running this check when the page is shown, we can programatically restore the page and the component to a "default" state

      Returns void

    • Private

      Starts the 'quick escape' keyboard sequence timer.

      This can be invoked several times. We want this to be possible so that the timer is restarted each time the shortcut key is pressed (e.g. the user has up to n seconds between each keypress, rather than n seconds to invoke the entire sequence.)

      Returns void