@theredhead — Frontend Library - v1.0.0
    Preparing search index...

    Simple in-memory datasource backed by an array.

    The constructor takes a defensive copy of the provided data so that external mutations to the source array do not affect the table.

    Implements IActiveDatasource so that UI components automatically stay in sync when rows are inserted, removed, moved, or individually mutated (via notifyRowChanged).

    Implements IReorderableDatasource, IInsertableDatasource, and IRemovableDatasource so UI components can reorder items and transfer items between datasources via the capability-detection pattern.

    Type Parameters

    • T

      The row object type.

    Hierarchy (View Summary)

    Implements

    Index

    Constructors

    • Type Parameters

      • T

        The row object type.

      Parameters

      • data: T[]

      Returns ArrayDatasource<T>

    Properties

    noteRowChanged: Emitter<RowChangedNotification> = ...

    Fires when a specific row has changed. The event includes the index of the changed row.

    noteRowRangeChanged: Emitter<RowRangeChangedNotification> = ...

    Fires when a range of rows has changed. The event includes the definition of the changed range.

    rows: T[]

    Methods

    • Returns the total number of items, synchronously or asynchronously.

      Returns number | Promise<number>

    • Returns the row object at the given index.

      Parameters

      • rowIndex: number

        Zero-based index of the row to retrieve.

      Returns RowResult<T>

      The row value, or a Promise that resolves to it.

    • Inserts item at index, shifting subsequent items to the right.

      After this call, getNumberOfItems() must return one more than before, and getObjectAtRowIndex(index) must return the inserted item.

      Parameters

      • index: number

        The zero-based position at which to insert.

      • item: T

        The item to insert.

      Returns void

    • Moves the item at fromIndex to toIndex, shifting other items to accommodate.

      After this call, subsequent calls to getObjectAtRowIndex() and getNumberOfItems() must reflect the new order.

      Parameters

      • fromIndex: number

        The current zero-based index of the item to move.

      • toIndex: number

        The desired zero-based index for the item.

      Returns void

    • Notifies consumers that all visible data should be considered stale. Call this after bulk mutations that affect many rows.

      Returns void

    • Notifies consumers that the row at the given index has been externally mutated (e.g. property values changed in-place).

      Call this after directly modifying a row object so that any listening UI (such as a table view) can re-read the data.

      Parameters

      • rowIndex: number

        Zero-based index of the changed row.

      Returns void

    • Removes and returns the item at index, shifting subsequent items to the left.

      After this call, getNumberOfItems() must return one fewer than before.

      Parameters

      • index: number

        The zero-based position of the item to remove.

      Returns T

      The removed item.