UNPKG

react-awesome-query-builder-pd

Version:

User-friendly query builder for React. Demo: https://ukrbublik.github.io/react-awesome-query-builder

75 lines (66 loc) 1.76 kB
import uuid from "../utils/uuid"; import {defaultRuleProperties, defaultGroupProperties} from "../utils/defaultUtils"; import * as constants from "../constants"; import Immutable from "immutable"; /** * @param {object} config * @param {Immutable.Map} tree */ export const setTree = (config, tree) => ({ type: constants.SET_TREE, tree: tree }); /** * @param {object} config * @param {Immutable.List} path * @param {Immutable.Map} properties */ export const addRule = (config, path, properties) => ({ type: constants.ADD_RULE, path: path, id: uuid(), properties: defaultRuleProperties(config).merge(properties || {}), config: config }); /** * @param {object} config * @param {Immutable.List} path */ export const removeRule = (config, path) => ({ type: constants.REMOVE_RULE, path: path, config: config }); /** * @param {object} config * @param {Immutable.List} path * @param {Immutable.Map} properties */ export const addGroup = (config, path, properties) => ({ type: constants.ADD_NEW_GROUP, path: path, properties: defaultGroupProperties(config).merge(properties || {}), config: config }); /** * @param {object} config * @param {Immutable.List} path */ export const removeGroup = (config, path) => ({ type: constants.REMOVE_GROUP, path: path, config: config }); /** * @param {object} config * @param {Array} fromPath * @param {Array} toPath * @param {String} placement, see constants PLACEMENT_* */ export const moveItem = (config, fromPath, toPath, placement) => ({ type: constants.MOVE_ITEM, fromPath: new Immutable.List(fromPath), toPath: new Immutable.List(toPath), placement: placement, config: config, });