UNPKG

@objectiv/schema

Version:

Objectiv TypeScript implementation of the open analytics taxonomy

174 lines (156 loc) 4.77 kB
/* * Copyright 2022 Objectiv B.V. */ import { AbstractInteractiveEvent, AbstractNonInteractiveEvent, AbstractMediaEvent } from './abstracts'; /** * The parent of Events that are the direct result of a user interaction, e.g. a button click. * Inheritance: InteractiveEvent -> AbstractInteractiveEvent -> AbstractEvent */ export interface InteractiveEvent extends AbstractInteractiveEvent { /** * Typescript discriminator */ _type: 'InteractiveEvent'; } /** * The parent of Events that are not directly triggered by a user action. * Inheritance: NonInteractiveEvent -> AbstractNonInteractiveEvent -> AbstractEvent */ export interface NonInteractiveEvent extends AbstractNonInteractiveEvent { /** * Typescript discriminator */ _type: 'NonInteractiveEvent'; } /** * A NonInteractive event that is emitted after an application (eg. SPA) has finished loading. * Inheritance: ApplicationLoadedEvent -> AbstractNonInteractiveEvent -> AbstractEvent */ export interface ApplicationLoadedEvent extends AbstractNonInteractiveEvent { /** * Typescript discriminator */ _type: 'ApplicationLoadedEvent'; } /** * A NonInteractiveEvent that is sent when a user action results in a error, * like an invalid email when sending a form. * Inheritance: FailureEvent -> AbstractNonInteractiveEvent -> AbstractEvent */ export interface FailureEvent extends AbstractNonInteractiveEvent { /** * Typescript discriminator */ _type: 'FailureEvent'; /** * Failure message. */ message: string; } /** * Event triggered when user input is modified. * Inheritance: InputChangeEvent -> AbstractInteractiveEvent -> AbstractEvent */ export interface InputChangeEvent extends AbstractInteractiveEvent { /** * Typescript discriminator */ _type: 'InputChangeEvent'; } /** * An InteractiveEvent that is sent when a user presses on a pressable element * (like a link, button, icon). * Inheritance: PressEvent -> AbstractInteractiveEvent -> AbstractEvent */ export interface PressEvent extends AbstractInteractiveEvent { /** * Typescript discriminator */ _type: 'PressEvent'; } /** * A NonInteractiveEvent that's emitted after a LocationContext has become invisible. * Inheritance: HiddenEvent -> AbstractNonInteractiveEvent -> AbstractEvent */ export interface HiddenEvent extends AbstractNonInteractiveEvent { /** * Typescript discriminator */ _type: 'HiddenEvent'; } /** * A NonInteractiveEvent that's emitted after a section LocationContext has become visible. * Inheritance: VisibleEvent -> AbstractNonInteractiveEvent -> AbstractEvent */ export interface VisibleEvent extends AbstractNonInteractiveEvent { /** * Typescript discriminator */ _type: 'VisibleEvent'; } /** * A NonInteractiveEvent that is sent when a user action is successfully completed, * like sending an email form. * Inheritance: SuccessEvent -> AbstractNonInteractiveEvent -> AbstractEvent */ export interface SuccessEvent extends AbstractNonInteractiveEvent { /** * Typescript discriminator */ _type: 'SuccessEvent'; /** * Success message. */ message: string; } /** * The parent of non-interactive events that are triggered by a media player. * It requires a MediaPlayerContext to detail the origin of the event. * Inheritance: MediaEvent -> AbstractMediaEvent -> AbstractNonInteractiveEvent -> AbstractEvent */ export interface MediaEvent extends AbstractMediaEvent { /** * Typescript discriminator */ _type: 'MediaEvent'; } /** * A MediaEvent that's emitted after a media item completes loading. * Inheritance: MediaLoadEvent -> AbstractMediaEvent -> AbstractNonInteractiveEvent -> AbstractEvent */ export interface MediaLoadEvent extends AbstractMediaEvent { /** * Typescript discriminator */ _type: 'MediaLoadEvent'; } /** * A MediaEvent that's emitted after a media item pauses playback. * Inheritance: MediaPauseEvent -> AbstractMediaEvent -> AbstractNonInteractiveEvent -> AbstractEvent */ export interface MediaPauseEvent extends AbstractMediaEvent { /** * Typescript discriminator */ _type: 'MediaPauseEvent'; } /** * A MediaEvent that's emitted after a media item starts playback. * Inheritance: MediaStartEvent -> AbstractMediaEvent -> AbstractNonInteractiveEvent -> AbstractEvent */ export interface MediaStartEvent extends AbstractMediaEvent { /** * Typescript discriminator */ _type: 'MediaStartEvent'; } /** * A MediaEvent that's emitted after a media item stops playback. * Inheritance: MediaStopEvent -> AbstractMediaEvent -> AbstractNonInteractiveEvent -> AbstractEvent */ export interface MediaStopEvent extends AbstractMediaEvent { /** * Typescript discriminator */ _type: 'MediaStopEvent'; }