Skip to content

use/listSearch ​

Interfaces ​

ListSearchInstanceOptions ​

The configuration options used to create a list search instance.

Properties ​

parentState ​

parentState: any

The list being filtered.

props? ​

optional props?: ListSearchProps

Reactive properties.

showAllWhenEmpty? ​

optional showAllWhenEmpty?: boolean

Whether to show all items when the search is empty.

throttle? ​

optional throttle?: number

Throttle wait time.


ListSearchOptions ​

The options for a list search.

Properties ​

parentState ​

parentState: object

The parent state.

allowedFilter? ​

optional allowedFilter?: Function

Function to determine if an item should be included based on custom logic.

calculatedObjects? ​

optional calculatedObjects?: object

The calculated objects, by object pk and then rule name. Each entry is backed by a computed, but it is read through a reactive proxy that unwraps it, so reads yield the calculated value and never carry a .value.

Index Signature ​

[pk: string]: object

calculatedObjectsParentStateObjectsWatchRunning? ​

optional calculatedObjectsParentStateObjectsWatchRunning?: boolean

Whether the parent state objects watch is running.

calculatedObjectsRules? ​

optional calculatedObjectsRules?: ListCalculatedRules

The rules for the calculated objects.

calculatedObjectsWatchRunning? ​

optional calculatedObjectsWatchRunning?: boolean

Whether the calculated objects watch is running.

calculatedRunning? ​

optional calculatedRunning?: boolean

Whether the calculated properties are running.

columnTotals ​

columnTotals: ShallowReactive<ColumnTotals>

Column totals for the list.

crud ​

crud: object

CRUD handlers and their configurations for the list.

crud.args ​

args: Reactive<{ } | TargetArgs>

The arguments to be passed to the crud handlers.

crud.bulkDelete ​

bulkDelete: CrudBulkDeleteFn

The bulk delete function.

crud.executeAction ​

executeAction: CrudExecuteActionFn

The execute action function.

crud.list ​

list: CrudListFn

The list function.

crud.subscribe ​

subscribe: CrudListSubscribeFn

The subscribe function.

error ​

error: Error

The error that occurred.

errored ​

errored: boolean

Whether an error has occurred.

excludedFilter? ​

optional excludedFilter?: Function

Function to determine if an item should be excluded based on custom logic.

fkForPkAndRule? ​

optional fkForPkAndRule?: object

The foreign key for each object pk and rule, crucial for navigating complex data relationships. Each entry is backed by a computed that the reactive proxy unwraps on read.

Index Signature ​

[pk: string]: object

intendToList? ​

optional intendToList?: boolean

If this is true, the list should be fetched, or re-fetched if arguments change.

intendToSubscribe? ​

optional intendToSubscribe?: boolean

If this is true, the subscription should start or restart if arguments change.

loading ​

loading: boolean

Whether the component is loading.

objAndKeyForPkAndRule? ​

optional objAndKeyForPkAndRule?: object

Maps each object pk and rule to a tuple consisting of the related object and its respective key, facilitating direct data manipulation. Reads through the reactive state unwrap the computed to the tuple itself, so .value is not used.

Index Signature ​

[pk: string]: object

objects ​

objects: ObjectsByPk

The list objects stored by their pks.

objectsInOrder ​

objectsInOrder: ExistingCrudObject[]

The objects in the order specified by the list.

objectsMap ​

objectsMap: Map<string, ExistingCrudObject> & Omit<ObjectsMap, keyof Map<any, any>>

The map of objects stored by their pks.

objectsVersion ​

objectsVersion: number

Increments when the set of object keys changes.

order ​

order: string[]

The order of objects in the list.

paginateInfo ​

paginateInfo: ShallowReactive<PaginateInfo>

Pagination information for the list.

params ​

params: any

Arguments passed to the server for listing operations.

pkKey ​

pkKey: string

The primary key field for the list objects.

relatedObjects? ​

optional relatedObjects?: object

The related objects, by object pk and then rule name. Each entry is backed by a computed, but it is read through a reactive proxy that unwraps it, so reads yield the related object (or array of related objects) and never carry a .value.

Index Signature ​

[pk: string]: object

relatedObjectsParentStateObjectsWatchRunning? ​

optional relatedObjectsParentStateObjectsWatchRunning?: boolean

Flags whether the watch on parent state objects is currently active, ensuring updates trigger as needed.

relatedObjectsRules? ​

optional relatedObjectsRules?: ListRelatedRules

Defines the rules for establishing relationships, such as foreign key links and sorting orders.

relatedObjectsWatchRunning? ​

optional relatedObjectsWatchRunning?: boolean

Indicates if watches on the related objects themselves are active, managing updates efficiently.

relatedRunning? ​

optional relatedRunning?: boolean

Signals whether any computations related to object relationships are currently in progress.

running? ​

optional running?: boolean

General flag that indicates if the list-related logic is processing, used to manage UI feedback or prevent concurrent operations.

subscribed? ​

optional subscribed?: boolean

Whether the subscription is active.

props ​

props: object

The props.

customDocumentOptions ​

customDocumentOptions: any

FlexSearch.Document options.

customSearchOptions ​

customSearchOptions: object

FlexSearch.Search options.

customSearchOptions.limit? ​

optional limit?: any

FlexSearch.Search options.

textSearchRules ​

textSearchRules: any[]

Rules for what to search for. Keys are the keys to search for, values are functions that take the object and return The value to search for.

textSearchValue ​

textSearchValue: string

The value to search for.

showAllWhenEmpty? ​

optional showAllWhenEmpty?: boolean

Whether to show all items when the search is empty.

throttle? ​

optional throttle?: number

The throttle.


ListSearchProperties ​

The properties on a list search instance.

Properties ​

state ​

state: object

The state.

allowedFilter? ​

optional allowedFilter?: Function

Function to determine if an item should be included based on custom logic.

calculatedObjects? ​

optional calculatedObjects?: object

The calculated objects, by object pk and then rule name. Each entry is backed by a computed, but it is read through a reactive proxy that unwraps it, so reads yield the calculated value and never carry a .value.

Index Signature ​

[pk: string]: object

calculatedObjectsParentStateObjectsWatchRunning? ​

optional calculatedObjectsParentStateObjectsWatchRunning?: boolean

Whether the parent state objects watch is running.

calculatedObjectsRules? ​

optional calculatedObjectsRules?: ListCalculatedRules

The rules for the calculated objects.

calculatedObjectsWatchRunning? ​

optional calculatedObjectsWatchRunning?: boolean

Whether the calculated objects watch is running.

calculatedRunning? ​

optional calculatedRunning?: boolean

Whether the calculated properties are running.

columnTotals ​

columnTotals: ShallowReactive<ColumnTotals>

Column totals for the list.

crud ​

crud: object

CRUD handlers and their configurations for the list.

crud.args ​

args: Reactive<{ } | TargetArgs>

The arguments to be passed to the crud handlers.

crud.bulkDelete ​

bulkDelete: CrudBulkDeleteFn

The bulk delete function.

crud.executeAction ​

executeAction: CrudExecuteActionFn

The execute action function.

crud.list ​

list: CrudListFn

The list function.

crud.subscribe ​

subscribe: CrudListSubscribeFn

The subscribe function.

customDocumentOptions ​

customDocumentOptions: any

Configuration options for the search document, used by FlexSearch.

customSearchOptions ​

customSearchOptions: any

Additional search options for FlexSearch.

error ​

error: Error

The error that occurred.

errored ​

errored: boolean

Whether an error has occurred.

excludedFilter? ​

optional excludedFilter?: Function

Function to determine if an item should be excluded based on custom logic.

fkForPkAndRule? ​

optional fkForPkAndRule?: object

The foreign key for each object pk and rule, crucial for navigating complex data relationships. Each entry is backed by a computed that the reactive proxy unwraps on read.

Index Signature ​

[pk: string]: object

intendToList? ​

optional intendToList?: boolean

If this is true, the list should be fetched, or re-fetched if arguments change.

intendToSubscribe? ​

optional intendToSubscribe?: boolean

If this is true, the subscription should start or restart if arguments change.

loading ​

loading: boolean

Whether the component is loading.

objAndKeyForPkAndRule? ​

optional objAndKeyForPkAndRule?: object

Maps each object pk and rule to a tuple consisting of the related object and its respective key, facilitating direct data manipulation. Reads through the reactive state unwrap the computed to the tuple itself, so .value is not used.

Index Signature ​

[pk: string]: object

objectIndexes ​

objectIndexes: any

Indexes built for quick search across objects based on rules.

objects ​

objects: ObjectsByPk

Currently filtered objects based on the search.

objectsInOrder ​

objectsInOrder: ExistingCrudObject[]

The list of objects sorted according to the current search criteria.

objectsMap ​

objectsMap: Map<string, ExistingCrudObject> & Omit<ObjectsMap, keyof Map<any, any>>

The map of objects stored by their pks.

objectsVersion ​

objectsVersion: number

Increments when the set of object keys changes.

order ​

order: string[]

The current sort order of object pks after search have been applied.

paginateInfo ​

paginateInfo: ShallowReactive<PaginateInfo>

Pagination information for the list.

params ​

params: any

Arguments passed to the server for listing operations.

pkKey ​

pkKey: string

The primary key field for the list objects.

relatedObjects? ​

optional relatedObjects?: object

The related objects, by object pk and then rule name. Each entry is backed by a computed, but it is read through a reactive proxy that unwraps it, so reads yield the related object (or array of related objects) and never carry a .value.

Index Signature ​

[pk: string]: object

relatedObjectsParentStateObjectsWatchRunning? ​

optional relatedObjectsParentStateObjectsWatchRunning?: boolean

Flags whether the watch on parent state objects is currently active, ensuring updates trigger as needed.

relatedObjectsRules? ​

optional relatedObjectsRules?: ListRelatedRules

Defines the rules for establishing relationships, such as foreign key links and sorting orders.

relatedObjectsWatchRunning? ​

optional relatedObjectsWatchRunning?: boolean

Indicates if watches on the related objects themselves are active, managing updates efficiently.

relatedRunning? ​

optional relatedRunning?: boolean

Signals whether any computations related to object relationships are currently in progress.

running ​

running: boolean

Indicates if the search process is actively running.

searched ​

searched: boolean

Flag indicating if a search has been performed.

subscribed? ​

optional subscribed?: boolean

Whether the subscription is active.

textSearchRules ​

textSearchRules: any

Rules defining how text search should be applied on list items. Each rule specifies a key and a function to extract the searchable text.

textSearchValue ​

textSearchValue: string

The current value used for searching.

stop ​

stop: () => void

Stops the effect scope and cleans up resources.

Returns ​

void

textSearchIndex ​

textSearchIndex: SearchInstance

The text search index.


ListSearchProps ​

The consumer-supplied props configuring a list's text search (rules, value, and FlexSearch options).

Properties ​

customDocumentOptions ​

customDocumentOptions: any

FlexSearch.Document options.

customSearchOptions ​

customSearchOptions: object

FlexSearch.Search options.

limit? ​

optional limit?: any

FlexSearch.Search options.

textSearchRules ​

textSearchRules: TextSearchRules

Rules for what to search for. Keys are the keys to search for, values are functions that take the object and return The value to search for.

textSearchValue ​

textSearchValue: string

The value to search for.


ListSearchRawProps ​

The raw props for a list search.

Properties ​

customDocumentOptions ​

customDocumentOptions: any

FlexSearch.Document options.

customSearchOptions ​

customSearchOptions: object

FlexSearch.Search options.

limit? ​

optional limit?: any

FlexSearch.Search options.

textSearchRules ​

textSearchRules: any[]

Rules for what to search for. Keys are the keys to search for, values are functions that take the object and return The value to search for.

textSearchValue ​

textSearchValue: string

The value to search for.


ListSearchRawState ​

Represents the raw reactive state used by the list search functionality.

Properties ​

customDocumentOptions ​

customDocumentOptions: any

Configuration options for the search document, used by FlexSearch.

customSearchOptions ​

customSearchOptions: any

Additional search options for FlexSearch.

objectIndexes ​

objectIndexes: any

Indexes built for quick search across objects based on rules.

objects ​

objects: ObjectsByPk

Currently filtered objects based on the search.

objectsInOrder ​

objectsInOrder: ComputedRef<ExistingCrudObject[]>

The list of objects sorted according to the current search criteria.

order ​

order: ComputedRef<string[]>

The current sort order of object pks after search have been applied.

running ​

running: ComputedRef<boolean>

Indicates if the search process is actively running.

searched ​

searched: Readonly<Ref<boolean, boolean>>

Flag indicating if a search has been performed.

textSearchRules ​

textSearchRules: any

Rules defining how text search should be applied on list items. Each rule specifies a key and a function to extract the searchable text.

textSearchValue ​

textSearchValue: string

The current value used for searching.

Type Aliases ​

ListSearch ​

ListSearch = ListSearchProperties

The provided list search instance, containing properties and functions.

Type Parameters ​


ListSearchParentRawState ​

ListSearchParentRawState = ListInstanceRawState & Partial<ListSubscriptionRawState> & Partial<ListRelatedRawState> & Partial<ListCalculatedRawState> & Partial<ListFilterRawState>

The raw, pre-unwrapped parent state consumed by the list search mixin, aggregating the upstream list composable states.

Type Parameters ​


ListSearchParentState ​

ListSearchParentState = UnwrapNestedRefs

The parent state for a list search.

Type Parameters ​


ListSearchParentStateToRefs ​

ListSearchParentStateToRefs = ToRefs

The parent list-search state converted to individual Vue refs.

Type Parameters ​


ListSearchState ​

ListSearchState = UnwrapNestedRefs

The state for a list search.

Type Parameters ​


TextSearchRules ​

TextSearchRules = string | string[] | object[]

FlexSearch.Document options, specifically for .index. Their documentation isn't very clear on this. Typically, it would be a list of dot-separated keys to index.

Type Parameters ​

Functions ​

useListSearch() ​

useListSearch(options): ListSearchProperties

Creates a search functionality instance for a list, configuring reactive state and dependencies to dynamically update visible items based on provided search criteria and rules.

Parameters ​

options ​

ListSearchInstanceOptions

Configuration for initializing the list search.

Returns ​

ListSearchProperties

The initialized list search instance with reactive state and utilities for search management.

Example ​

vue
import { reactive, defineProps, toRef } from 'vue';
import { useListInstance, useListSearch } from '@arrai-innovations/reactive-helpers';

const props = defineProps({
    searchQuery: String
});
const listInstance = useListInstance({ props });
const searchProps = reactive({
    textSearchRules: [{ key: 'name', fn: item => item.name }],
    textSearchValue: toRef(props, 'searchQuery')
});
const listSearch = useListSearch({
    parentState: listInstance.state,
    props: searchProps
});
// listSearch.state.objects will contain the filtered items from listInstance.state.objects
// listSearch.state.searched will be true if a search has been performed

useListSearches() ​

useListSearches(listSearchArgs): object

Helper function that initializes multiple list search instances from given configurations. This is typically used when multiple list components require individual search capabilities.

Parameters ​

listSearchArgs ​

Configuration arguments for each search instance, including state and props.

Returns ​

object

  • A collection of initialized list search instances.