Provides an advanced compound store for positioning elements dynamically including an optimized pipeline for updating an associated element. Essential tweening / animation is supported in addition to a validation API to constrain positional updates.

Implements
Index

Constructors

Accessors

  • get dimension(): Readonly<
        {
            height: number
            | "auto"
            | "inherit"
            | null;
            width: number | "auto" | "inherit" | null;
        },
    >

    Returns the dimension data for the readable store.

    Returns Readonly<
        {
            height: number
            | "auto"
            | "inherit"
            | null;
            width: number | "auto" | "inherit" | null;
        },
    >

    Dimension data.

  • get element(): HTMLElement

    Returns the current HTMLElement being positioned.

    Returns HTMLElement

    Current HTMLElement being positioned.

  • get elementUpdated(): Promise<number>

    Returns a promise that is resolved on the next element update with the time of the update.

    Returns Promise<number>

    Promise resolved on element update.

  • get enabled(): boolean

    Returns the enabled state.

    Returns boolean

    Enabled state.

  • set enabled(enabled: boolean): void

    Sets the enabled state.

    Parameters

    • enabled: boolean

      Newly enabled state.

    Returns void

  • get height(): number | "auto" | "inherit"

    Returns number | "auto" | "inherit"

    height

  • set height(height: string | number): void

    Parameters

    • height: string | number

    Returns void

  • get left(): number

    Returns number

    left

  • set left(left: string | number): void

    Parameters

    • left: string | number

    Returns void

  • get maxHeight(): number

    Returns number

    maxHeight

  • set maxHeight(maxHeight: string | number): void

    Parameters

    • maxHeight: string | number

    Returns void

  • get maxWidth(): number

    Returns number

    maxWidth

  • set maxWidth(maxWidth: string | number): void

    Parameters

    • maxWidth: string | number

    Returns void

  • get minHeight(): number

    Returns number

    minHeight

  • set minHeight(minHeight: string | number): void

    Parameters

    • minHeight: string | number

    Returns void

  • get minWidth(): number

    Returns number

    minWidth

  • set minWidth(minWidth: string | number): void

    Parameters

    • minWidth: string | number

    Returns void

  • get resizeObservable(): boolean

    Returns the resize observable state which is true whenever width or height is auto or inherit.

    Returns boolean

  • get resizeObservableHeight(): boolean

    Returns the resize observable state which is true whenever height is auto or inherit.

    Returns boolean

  • get resizeObservableWidth(): boolean

    Returns the resize observable state which is true whenever width is auto or inherit.

    Returns boolean

  • get rotateX(): number

    Returns number

    rotateX

  • set rotateX(rotateX: string | number): void

    Parameters

    • rotateX: string | number

    Returns void

  • get rotateY(): number

    Returns number

    rotateY

  • set rotateY(rotateY: string | number): void

    Parameters

    • rotateY: string | number

    Returns void

  • get rotateZ(): number

    Returns number

    rotateZ

  • set rotateZ(rotateZ: string | number): void

    Parameters

    • rotateZ: string | number

    Returns void

  • get rotation(): number

    Returns number

    Alias for rotateZ

  • set rotation(rotateZ: string | number): void

    Parameters

    • rotateZ: string | number

      alias for rotateZ

    Returns void

  • get scale(): number

    Returns number

    scale

  • set scale(scale: number): void

    Parameters

    • scale: number

    Returns void

  • get top(): number

    Returns number

    top

  • set top(top: string | number): void

    Parameters

    • top: string | number

    Returns void

  • get translateX(): number

    Returns number

    translateX

  • set translateX(translateX: string | number): void

    Parameters

    • translateX: string | number

    Returns void

  • get translateY(): number

    Returns number

    translateY

  • set translateY(translateY: string | number): void

    Parameters

    • translateY: string | number

    Returns void

  • get translateZ(): number

    Returns number

    translateZ

  • set translateZ(translateZ: string | number): void

    Parameters

    • translateZ: string | number

    Returns void

  • get width(): number | "auto" | "inherit"

    Returns number | "auto" | "inherit"

    width

  • set width(width: string | number): void

    Parameters

    • width: string | number

    Returns void

  • get zIndex(): number

    Returns number

    z-index

  • set zIndex(zIndex: number): void

    Parameters

    • zIndex: number

    Returns void

  • get transformOrigins(): readonly TransformOrigin[]

    Returns a list of supported transform origins.

    Returns readonly TransformOrigin[]

    The supported transform origin strings.

Methods

  • Assigns current position data to the given object data object. By default, null position data is not assigned. Other options allow configuration of the data assigned, including setting default numeric values for any properties that are null.

    Parameters

    • Optionaldata: { [key: string]: any }

      Target to assign current position data.

    • Optionaloptions: TJSPosition.Options.Get

      Defines options for specific keys and substituting null for numeric default values. By default, nullable keys are included.

    Returns Partial<TJSPositionData>

    Any passed in data object with current position data.

  • All calculation and updates of position are implemented in TJSPosition. This allows position to be fully reactive and in control of updating inline styles for a connected HTMLElement.

    The initial set call with a target element will always set width / height as this is necessary for correct calculations.

    When a target element is present, updated styles are applied after validation. To modify the behavior of set, implement one or more validator functions and add them via the validator API available from TJSPosition.validators.

    Updates to any target element are decoupled from the underlying TJSPosition data. This method returns this instance that you can then await on the target element inline style update by using TJSPosition.elementUpdated.

    Relative updates to any property of TJSPositionData are possible by specifying properties as strings. This string should be in the form of '+=', '-=', or '*=' and float / numeric value. IE '+=0.2'. TJSPosition.set will apply the addition, subtraction, or multiplication operation specified against the current value of the given property. Please see Data.TJSPositionDataRelative for a detailed description.

    Parameters

    Returns this

    This TJSPosition instance.

  • Convenience to copy from source to target of two TJSPositionData like objects. If a target is not supplied a new TJSPositionData instance is created.

    Parameters

    Returns TJSPositionData

    The target instance with all TJSPositionData fields.

  • Returns a duplicate of a given position instance copying any options and validators. The position parent is not copied, and a new one must be set manually via the TJSPosition.parent setter.

    Parameters

    Returns TJSPosition

    A duplicate position instance.