Class Filterlist<Item, Additional, Error>

Type Parameters

  • Item
  • Additional
  • Error

Constructors

  • Type Parameters

    • Item
    • Additional
    • Error

    Parameters

    • params: Readonly<{
          additional?: Additional;
          alwaysResetFilters?: Readonly<Record<string, unknown>>;
          appliedFilters?: Readonly<Record<string, unknown>>;
          autoload?: boolean;
          createDataStore?: ((initalValue: Readonly<{
              appliedFilters: Record<string, unknown>;
              page: number;
              pageSize?: null | number;
              sort: Readonly<{
                  asc: boolean;
                  param?: null | string;
              }>;
          }>) => DataStore);
          debounceTimeout?: number;
          isDefaultSortAsc?: boolean;
          items?: readonly Item[];
          loadItems: ItemsLoader<Item, Additional, Error>;
          page?: null | number;
          pageSize?: null | number;
          refreshTimeout?: number;
          resetFiltersTo?: Readonly<Record<string, unknown>>;
          saveFiltersOnResetAll?: readonly string[];
          saveItemsWhileLoad?: boolean;
          shouldRefresh?: (() => boolean);
          sort?: Readonly<{
              asc: boolean;
              param?: null | string;
          }>;
          total?: null | number;
      }>

    Returns Filterlist<Item, Additional, Error>

Properties

dataStore: DataStore
dataStoreUnsubscribe: VoidFunction
emitter: Emitter<Record<EventType, Readonly<{
    additional: Additional;
    error: null | Error;
    filters: Record<string, unknown>;
    isFirstLoad: boolean;
    items: readonly Item[];
    loadedPages: number;
    loading: boolean;
    shouldClean: boolean;
    total?: null | number;
}>>>
listState: Readonly<{
    additional: Additional;
    error: null | Error;
    filters: Record<string, unknown>;
    isFirstLoad: boolean;
    items: readonly Item[];
    loadedPages: number;
    loading: boolean;
    shouldClean: boolean;
    total?: null | number;
}>

Type declaration

  • additional: Additional

    additional info that can be recieved together with items

  • error: null | Error

    error that can be received if list not loaded

  • filters: Record<string, unknown>

    current filters state on page (intermediate inputs values etc.)

  • isFirstLoad: boolean

    is the first load after initialization

  • items: readonly Item[]

    loaded items

  • loadedPages: number

    number of pages that loaded without changing filters or sorting

  • loading: boolean

    is list loading at this moment

  • shouldClean: boolean
  • Optionaltotal?: null | number
options: Readonly<{
    alwaysResetFilters: Readonly<Record<string, unknown>>;
    autoload: boolean;
    debounceTimeout?: number;
    isDefaultSortAsc: boolean;
    refreshTimeout?: number;
    resetFiltersTo: Readonly<Record<string, unknown>>;
    saveFiltersOnResetAll: readonly string[];
    saveItemsWhileLoad: boolean;
}>
refreshTimeout?: number
refreshTimeoutId: null | number = null
requestId: number
shouldRefresh?: (() => boolean)

Methods

  • delete item by specified index

    Parameters

    • itemIndex: number

      index of deleted item

    • Optionaladditional: Additional

      if defined, set additional param of list state

    Returns void

  • Returns Readonly<{
        additional: Additional;
        error: null | Error;
        filters: Record<string, unknown>;
        isFirstLoad: boolean;
        items: readonly Item[];
        loadedPages: number;
        loading: boolean;
        shouldClean: boolean;
        total?: null | number;
    }>

  • Returns Readonly<{
        additional: Additional;
        error: null | Error;
        filters: Record<string, unknown>;
        isFirstLoad: boolean;
        items: readonly Item[];
        loadedPages: number;
        loading: boolean;
        shouldClean: boolean;
        total?: null | number;
    }>

  • Returns Readonly<{
        additional: Additional;
        error: null | Error;
        filters: Record<string, unknown>;
        isFirstLoad: boolean;
        items: readonly Item[];
        loadedPages: number;
        loading: boolean;
        shouldClean: boolean;
        total?: null | number;
    }>

  • Returns Readonly<{
        appliedFilters: Record<string, unknown>;
        page: number;
        pageSize?: null | number;
        sort: Readonly<{
            asc: boolean;
            param?: null | string;
        }>;
    }>

  • Returns Readonly<{
        appliedFilters: Record<string, unknown>;
        page: number;
        pageSize?: null | number;
        sort: Readonly<{
            asc: boolean;
            param?: null | string;
        }>;
    }>

  • insert item by specified index

    Parameters

    • itemIndex: number

      index of updated item

    • item: Item

      updated item

    • Optionaladditional: Additional

      if defined, set additional param of list state

    Returns void

  • Parameters

    • nextValue: Readonly<{
          appliedFilters: Record<string, unknown>;
          page: number;
          pageSize?: null | number;
          sort: Readonly<{
              asc: boolean;
              param?: null | string;
          }>;
      }>
    • prevValue: Readonly<{
          appliedFilters: Record<string, unknown>;
          page: number;
          pageSize?: null | number;
          sort: Readonly<{
              asc: boolean;
              param?: null | string;
          }>;
      }>

    Returns void

  • reset filter to the corresponding value in resetFiltersTo (or undefined) and request

    Parameters

    • filterName: string

    Returns void

  • reset multiple filters to the corresponding value in resetFiltersTo (or undefined) and request

    Parameters

    • filtersNames: readonly string[]

    Returns void

  • set multiple filter values that currently undefined and request

    Parameters

    • values: Record<string, unknown>

    Returns void

  • set intermediate filter value of the filter without request

    Parameters

    • filterName: string
    • value: unknown

    Returns void

  • Parameters

    • nextListState: Readonly<{
          additional: Additional;
          error: null | Error;
          filters: Record<string, unknown>;
          isFirstLoad: boolean;
          items: readonly Item[];
          loadedPages: number;
          loading: boolean;
          shouldClean: boolean;
          total?: null | number;
      }>

    Returns void

  • Parameters

    • nextRequestParams: Readonly<{
          appliedFilters: Record<string, unknown>;
          page: number;
          pageSize?: null | number;
          sort: Readonly<{
              asc: boolean;
              param?: null | string;
          }>;
      }>

    Returns void

  • sets sorting column

    if asc defined and Boolean, sets it

    otherwise, if this column differs from previous sorting column, asc will be setted with isDefaultSortAsc param from decorator

    otherwise, it will be reverse asc param from previous state

    Parameters

    • param: string
    • Optionalasc: boolean

    Returns void

  • update item by specified index

    Parameters

    • itemIndex: number

      index of updated item

    • item: Item

      updated item

    • Optionaladditional: Additional

      if defined, set additional param of list state

    Returns void

  • set filters, applied filters, sorting, page and pageSize and request then

    Parameters

    • updateStateParams: Readonly<{
          appliedFilters?: Record<string, unknown>;
          filters?: Record<string, unknown>;
          page?: null | number;
          pageSize?: null | number;
          sort?: Readonly<{
              asc: boolean;
              param?: null | string;
          }>;
      }>

    Returns void