add-group
Description
Fires when adding a nested group with a filtering rule in itUsage
"add-group": ({
  rule: {
    id?: string,
    parent?: string,
    data?: rule[],
    glue?: "and" | "or",
    field?: string, 
    $temp?: boolean,
    type?: string,
    predicate?: "month" | "year", 
    filter?: string,
    includes?: any[],
    value?:  any,
  }; 
  edit?: boolean,
  after: string | number
}) => void;
Parameters
The callback of the action takes an object with the following parameters:
- rule- a filtering rule object with the following parameters:- id- (optional) the rule id
- parent- (optional) parent id if any
- data- (optional) an array with the- ruleobject parameters for each item
- $temp- (optional) set to true by default, which means that a group is added only temporarily before changes are saved
- glue- (optional) "and" | "or"
- field- (optional) the id of a field
- type- (optional) the type of a value: "text" (default, for string values), "number", "date", "tuple"
- filter- (optional) the filter operator
- includes- (optional) an array of the included values (strings, numbers or dates)
- value- (optional) the value passed to the field
 
- edit- (optional) by default, opens the filter rule editor when a group is added; if it's set to false, a group with an empty filter is added.
- after- (optional) the id of a field after which a new group will be added
Example
The example below shows how to add a group with an empty filter and do not open the editor form when adding a group.
import { getData } from "./common/data";
import { FilterBuilder } from "@svar-ui/react-filter";
export default function Demo() {
  const { value, fields, options } = getData();
  const init = (api) => {
    api.intercept("add-group", ev => {
      ev.edit = false;
    });
  };
  return (
    `<FilterBuilder
      value={value}
      options={options}
      fields={fields}
      init={init}
    />`
  );
}
Related articles: