• English
  • 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.

    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-