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

    Class FilterableArrayDatasource<T>

    An in-memory array datasource that supports filtering via a CompiledFilter.

    When an expression is applied the datasource compiles it into a single predicate, re-derives its visible rows from the original data, and exposes only the matching items. The underlying array is never mutated.

    const ds = new FilterableArrayDatasource(employees);
    ds.filterBy([{ predicate: row => row.age > 30 }]);

    Type Parameters

    • T

      The row object type.

    Hierarchy (View Summary)

    Implements

    Index

    Constructors

    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[]

    Accessors

    • get allRows(): readonly T[]

      The full, unfiltered dataset.

      Useful when consumers need to inspect the original data while a filter is active (e.g. to infer field types from a sample row without the result disappearing when the filter yields no matches).

      Returns readonly T[]

    Methods

    • Clears any active filter, restoring all rows.

      Returns void

    • Applies a structured CompiledFilter to the datasource.

      The expression is compiled into a single predicate once, which is then applied to every row. Pass an empty array (or null / undefined) to clear the filter and show all rows.

      • Property-level entries test a single property value.
      • Row-level entries test the entire row object.
      • All entries must pass (AND) for a row to be included.

      Parameters

      Returns void

    • Returns the row object at the given index.

      Parameters

      • rowIndex: number

        Zero-based index of the row to retrieve.

      Returns 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.