HavingFilterBuilder

Having filter builder for adding, modifying, and removing post-aggregation filter conditions. Having filters take effect after data aggregation and are used to filter grouped results.

Properties

Methods

constructor

Definition:

constructor(doc: Y.Doc, dsl: Y.Map<any>)

Parameters:

ParameterTypeDescription
docY.Doc-
dslY.Map-

getConditions

Definition:

getConditions(): Y.Array<any>

Returns: Y.Array<any>

add

Adds a Having filter condition.

Definition:

add(field: string, callback: (node: HavingFilterNodeBuilder) => void): HavingFilterBuilder

Returns: HavingFilterBuilder

Parameters:

ParameterTypeDescription
fieldstring- Field name
callback(node: HavingFilterNodeBuilder) => void- Callback function

addGroup

Adds a Having group.

Definition:

addGroup(op: 'and' | 'or', callback: (group: HavingGroupBuilder) => void): HavingFilterBuilder

Returns: HavingFilterBuilder

Parameters:

ParameterTypeDescription
op'and' | 'or'- Logical operator
callback(group: HavingGroupBuilder) => void- Callback function

update

Updates the filter condition with the specified ID.

Definition:

update(id: string, callback: (node: HavingFilterNodeBuilder) => void): HavingFilterBuilder

Returns: HavingFilterBuilder

Parameters:

ParameterTypeDescription
idstring- Filter condition ID
callback(node: HavingFilterNodeBuilder) => void- Callback function

updateGroup

Updates the group with the specified ID.

Definition:

updateGroup(id: string, callback: (group: HavingGroupBuilder) => void): HavingFilterBuilder

Returns: HavingFilterBuilder

Parameters:

ParameterTypeDescription
idstring- Group ID
callback(group: HavingGroupBuilder) => void- Callback function

remove

Removes the condition with the specified ID or the item at the specified index.

Definition:

remove(idOrIndex: string | number): HavingFilterBuilder

Returns: HavingFilterBuilder

Parameters:

ParameterTypeDescription
idOrIndexstring | number- ID or index

find

Finds the first condition (filter or group) matching the callback condition, behaves like Array.find.

Definition:

find(predicate: (entry: HavingFilterNodeBuilder | HavingGroupBuilder, index: number) => boolean): HavingFilterNodeBuilder | HavingGroupBuilder | undefined

Returns: HavingFilterNodeBuilder \| HavingGroupBuilder \| undefined

Parameters:

ParameterTypeDescription
predicate(entry: HavingFilterNodeBuilder | HavingGroupBuilder, index: number) => boolean- Search condition

clear

Clears all Having filter conditions.

Definition:

clear()

toJSON

Exports the complete Having filter configuration.

Definition:

toJSON(): VBIHavingGroup

Returns: VBIHavingGroup

observe

Listens for filter condition changes, returns an unsubscribe function.

Definition:

observe(callback: ObserveDeepCallback): () => void

Returns: () => void

Parameters:

ParameterTypeDescription
callbackObserveDeepCallback- Callback function

static isGroup

Determines whether the node is a group node.

Definition:

static isGroup(yMap: Y.Map<any>): boolean

Returns: boolean

Parameters:

ParameterTypeDescription
yMapY.Map-

static isNode

Determines whether the node is a leaf node.

Definition:

static isNode(yMap: Y.Map<any>): boolean

Returns: boolean

Parameters:

ParameterTypeDescription
yMapY.Map-