- 6.4.3
- Fixed the issue when using func with arg of type
multiselect(PR #997) - Updated
immutablefrom v3 to v4 (PR #997) - Fixed issue with "[object Object]" in MUI field autocomplete when item should be bold (PR #997)
- Respect
funcsin field/arg config during validation of function value (PR #997)
- Fixed the issue when using func with arg of type
- 6.4.2
- Allow override icons with
renderIcon(issues #319, #872) (PR #962) - Support tooltips for MUI (issues #965, #684) (PR #973)
- Fixed issue with
FieldCascader(issue #969) (PR #973) - Fixed issue with date/time pickers for MUI 6 (issue #986) (PR #973)
- Allow use of antd icons 5 (issue #992) (PR #973)
- Allow override icons with
- 6.4.1
- Fixed import of rule_group in rule_group from SpEL (PR #959)
- Updated type
ItemBuilderProps(PR #959) - Fixed drag-n-drop to respect
maxNestingwhen moving group into group (PR #959) - Fix: allow custom conjuction in JsonLogic (issue #317) (PR #959)
- Fixed import of fields with dot from JsonLogic (issue #786) (PR #960)
- Fixes export to SpEL to respect
fieldSeparator(issue #958) (PR #960)
- 6.4.0
- Functions can be used in LHS with
fieldSources: ["field", "func"]insettingsThanks @rhallerman1 (PR #900, #896) (issues #287, #250, #344, #336) - Support import/export of functions for SpEL (PR #900) (issue #754)
- Fix issue with
fieldName(PR #900) (issues #929, #609) - Support
@mui/x-date-pickersv6 (PR #951) (issue #910) - Updated antd to 5.7.2 (PR #952) (issue #946)
- Updated dev dependencies. Now
pnpm irequires Node 16+ - Updated
@fluentui/react. Fixed date/time widgets - Autocomplete items now support
groupTitle(PR #953) (issue #600) - Add more types in
Utils.Autocomplete(PR #953) (issue #934) - Add settings
fieldItemKeysForSearchandlistKeysForSearch(PR #954) (issue #931) - Add settings
defaultFieldanddefaultOperator(PR #956) (issue #763)
- Functions can be used in LHS with
- 6.3.0
- Allow saving and loading config from server (PR #866) (issue #817)
- New utils:
compressConfig(),decompressConfig() - New
settings.useConfigCompress - Config now has
ctxproperty - Added new test app
sandbox_nextto demonstrate new server-side features
- New utils:
- Export utils (like
mongoFormatOp1,mongoFormatOp2) inCoreConfig.ctx.utils(PR #866) (issue #890) - 2nd parameter of
onChangecallback now equals original config, not extended config (PR #866) (issue #364) - Fix totalQuery structure in mongodb (PR #916) (issue #915)
- Fixed bug in
loadTree()(PR #917) (issue #356) - Fixed bug on change group value (PR #944) (issue #923)
- Fixed render of option titles in Autocomplete AntDesign (PR #947) (issues #930, #942)
- Implemented
allowCustomValuesfor MUI (PR #947) (issue #327) - Improved autocomplete for MUI and AntD. Mark custom values with coral color (PR #947)
- Type fixes for
strictNullChecks(PR #948) (issue #945)
- Allow saving and loading config from server (PR #866) (issue #817)
- 6.2.0
- Fixed type
Config: should have render settings likerenderSize(PR #909) (issue #879) - Fixed type for
renderBeforeWidget:RulePropsinstead of wrongFieldProps(PR #909) (issue #879) - Breaking change in types:
listValuesrenamed totreeValuesinTreeSelectFieldSettingsBut oldlistValuesis still supported in JS (PR #909) - Add support for ElasticSearch 7 term syntax (PR #906) (issue #904)
- Fix mongodbFormat to work with mode = array (PR #908) (issue #907)
- Fixed type
- 6.1.3
- Fix isNull roundtrip (PR #887) (issue #886)
- Fix
BootstrapFieldSelectfor fields with 2+ level nesting (PR #898) (issue #868) - Fix
UNSAFE_componentWillReceiveProps(PR #901) (issue #390) - Fix bugs with
React.StrictMode(PR #902) (issue #789)
- 6.1.2
- Fix typings for
children1: tuple -> array (PR #885) (issue #881) - Fix compare fields for case when type != widget.type (PR #875) (issue #758)
- Fix typings for
- 6.1.1
- Fix CJS build (issue with antd/es and antd/lib) (PR #859) (issue #858)
- Fix button labels (PR #856) (issue #824)
- Fix whitespace in select (PR #855) (issue #845)
- 6.1.0
- Improve styles (PR #848)
- More
flexible styles for low-width styles.scssnow has vars that can be overridden to change colos and sizes- Breaking: Now
compact_styles.cssreplacesstyles.css, don't use them together - Breaking: Removed icon in "Add sub rule" button
- More
- Added
@react-awesome-query-builder/fluentpackage (PR #727) - Fix import of
is_nullandis_not_nullops from SpEL (PR #831) (issue #794) - Fix import of NOT from SpEL (PR #852) (issue #834)
Also fixes export of aggregation expression w/o children filter like
cars.size() == 2 - Support antd 5 (PR #853) (issue #812)
- Improve styles (PR #848)
- 6.0.0
- Project has been divided into packages (monorepo) (PR #769) Export ESM
- 5.4.0
- Add
multiselect_containsoperator (PR #813) (issue #702)
- Add
- 5.3.2
- Fix drag-n-drop issue in React 18 using
ReactDOM.createRoot()(PR #815) (issue #792) - Type fix: add
idforJsonRule(PR #799) (issue #791) - Type fix: Add typings for
groupOperators(PR #798) - Fix:
notoperation at the root not detected when importing from SpEL (PR #767) (issue #766)
- Fix drag-n-drop issue in React 18 using
- 5.3.1
- Support
@fortawesome/react-fontawesome 0.2.x(issue #757) - Fix
loadFromSpelforselect_not_equalsop (PR #761) (issue #704)
- Support
- 5.3.0
- Added
renderItem(PR #729)
- Added
- 5.2.1
- Fix type applied to filter funcs as another func's arg value (PR #743) (issue #586)
- Allow self nesting of functions with
allowSelfNesting(PR #698) - ES: Fix
greaterop (PR #749) (issue #744) - ES: Fix NOT (PR #750) (issue #723)
- 5.2.0
- ! Breaking change:
children1is now array in result ofgetTree()to preserve items order (PR #672) (issues #589, #670)Utils.getTree(tree, true, false)will behave same as before this change. - Support React 18. Migrate to x-date-pickers. (PR #734) (issues #710, #732)
- Add path property at
index.d.ts(PR #671) (issue #669) - Fixed
getTotalRulesCountInTree()== 1 (should be 0) for clear tree (PR #673) (issue #583) - Handle validation of bad multiselect value correctly (PR #733) (issue #674)
Remove bad values from list, don't unset whole value.
Added config
removeInvalidMultiSelectValuesOnLoad(true by default, false for AntDesign) ! Breaking change:removeIncompleteRulesOnLoadandremoveEmptyGroupsOnLoadnow default totrue, set them tofalsein yoursettingsto preserve the current behaviour - Fix
loadFromSpelforselect_equalsop (PR #740) (issue #704) - Fix
loadFromSpelforis_emptyandis_not_emptyops (PR #713) (issues #714, #699)
- ! Breaking change:
- 5.1.2
- Added config
removeIncompleteRulesOnLoad(default false) (PR #661) (issue #642) - Fix error when using same field for comparison as argument of function (PR #662) (issue #612)
- Set missing
idinfixPathsInTree()(PR #665) (issue #664) - Use func arg type in field selection (PR #666) (issue #615)
- Added config
- 5.1.1
- Fix value null instead of undefined in JSON (PR #657) (issue #653)
- 5.1.0
- Use spel2js 0.2.8 instead of my branch (PR #638) (issues #634, #643, #654)
- Add async load to antd (PR #640) (issues #616, #425)
- Fix autocomplete (PRs #655, #641)
- Fix setting defaultValue on set value src (PR #639) (issue #635)
- Fix validation of multiselect func arg (PR #656) (issue #587)
- 5.0.0
- Support of SpEL for import and export. See
loadFromSpelandspelFormatinUtils(PR #613) - Added
excludeOperatorsfor type config (PR #613) SeeexcludeOperators: ["proximity"]in demo - Changed export of
not_betweenop for text format (!(num >= 3 && num <= 4)->(num < 3 || num > 4)) (PR #613) - Rename
Like->Contains. Movedis_empty,is_nullto end of operators list (PR #613) - Support MUI v5 (PR #628)
- Upgraded to React 17. Moved from RHL to react-refresh. Converted demo app to FC. (PR #628)
- Added
Utils._loadFromJsonLogic()that returns[tree, errors](issue #621)
- Support of SpEL for import and export. See
- 4.10.0
- Support Bootstrap (via
reactstrap) (PR #604)
- Support Bootstrap (via
- 4.9.0
- Added
is_nullandis_not_nulloperators (issue #494) (PR #522) - ! Breaking change for operators
is_emptyandis_not_empty. Left for text type only, for other types will be auto converted tois_null/is_not_null. Changed meaning ofis_empty- now it's just strict comparing with empty string. Before change meaning was similar tois_null(and export to SQL was wrong because of non-existent operatorIS EMPTY). (issue #494) (PR #573) - Fixed order of operators for field when merging operators from 2+ widgets (PR #573)
- Added last param
fieldDeffor functions to format operators (PR #573) - Added
jsonLogicto widget TS def (PR #572) - Export
TreeUtils(PR #597)
- Added
- 4.8.0
- Added read-only mode switch for rules and groups. See
showLockandcanDeleteLockedconfig options, custom JsonLogic oplocked,setLockaction,lockLabelandlockedLabel. Added Switch components, seerenderSwitch. (issue #377) (PR #490) - Fixed issue with frozen config (
Object.freeze) by usingclone(issue #345) (PR #490) - Fix: Filter value sources for func args correctly. LHS field can be used as arg in RHS function. (PR #490)
- MUI - Support showSearch (autocomplete) for field select widget (issue #479 #521) (PR #563)
- AntDesign - Fix FieldSelect with 3+ level !struct nesting (issue #224) (PR #564)
- Added read-only mode switch for rules and groups. See
- 4.7.2
- Fixed import of rule_group with
not(issue #548) (PR #559)
- Fixed import of rule_group with
- 4.7.1
- Fixed potential inconsistent order of fields (issue #335) (PR #553)
- Bump
webpack-dev-serverfrom 3.11.2 to 4.4.0 (PR #540) - Change
FieldItemstype definition from map to array (issues #550, #363) (PR #551) - Spreading
customPropsto vanilla widgets (PR #546) - Fix for
allowCustomValues(PR #545) - Use minimum
material-uiversion 4.12.3 and use newcreateThemeinstead of deprecatedcreateMuiTheme(issue #463) (PR #531)
- 4.7.0
- Add explicit
not: falsein new group (issue #512) - Fix: don't automatically add one rule to query when it become empty when
canLeaveEmptyGroup=true(issue #504) - Added config
forceShowConj(issue #474) - Fixed import of complex hierarchy fields (combination of !group and !struct) from JsonLogic (issues #517, #333)
- Fixed non-ordered map bug (issue #501)
- Add explicit
- 4.6.0
- Added
groupId(id of the parent Item - Group, RuleGroup, RuleGroupExt etc) to field's, operartor's and widget's props (PR #510) - Fixed export to ES when group is empty (broken 'Clear' button in demo app) (PR #511)
- Added 3rd param
actionMetatoonChange()to get info about action (PR #445) (issue #351) - Added demo of using actions programmatically (see
run actionsin demo app) (PR #445) - Added config
shouldCreateEmptyGroup(defaultfalse) (PR #445) - Now config
canLeaveEmptyGroupis true by default (PR #445) (issue #504) - Breaking changes for format with
isForDisplay=true- don't wrap strings with", replace==with=(PR #518) - Fixed type definition for export utils - can return undefined (PR #516)
- Fixed use of
hideOperator(PR #523) (issue #292) - Documented
cancelText(PR #524) (issue #520)
- Added
- 4.5.2
- Added rule
idto field's, operartor's and widget's props. Added config of the selected field to the operator props asfieldConfig(issue #502) (PR #503)
- Added rule
- 4.5.1
- Fixed export of field name to ES (broken demo app)
- 4.5.0
- Added basic support of export to ElasticSearch (PR #469)
- Export all helper funcs from configUtils (PR #493)
- Fixed bug with zero value in MaterialSelect (PR #392)
- 4.4.3
- babel: use "@babel/plugin-transform-runtime" to avoid globally defined regenerator runtime (PR #480)
- Fix export of not in some!group into JsonLogic (issue #476) (PR #484)
- Fixed issue with default import/export in Vite build (PR #481)
- 4.4.2
- Added support of autocomplete for multiselect widget in MUI (PR #475)
- 4.4.1
- feat: possibility to add custom operators for groups (PR #462)
- 4.4.0
- Added support of server-side load of values for
select(MaterialUI only) (PR #471)
- Added support of server-side load of values for
- 4.3.0
- Improved function support
- Functions used in examples now moved to
BasicFuncs(exported with lib) - Added funcs
RELATIVE_DATETIME,NOW,UPPER - Added option
showPrefixfor func args (false by default) - Added missing
mongoFormatValuefor all types in basic config (now dates are exported asDateobjects)
- 4.2.0
- Added
textareawidget
- Added
- 4.1.1
- Fix warning about showSearch in MUI theme
- Fix incorrect override of vanilla button label (issue #347)
- Fix display default conj (issue #426)
- Don't wrap in MUI ThemeProvider if no theme or locale provided (issue #325)
- Fix canLeaveEmptyGroup logic (issue #378)
- 4.1.0
- Fixed lint errors in code
- Reorganized files in
tests - Updated packages
- Now minimum supported NodeJs is 12.13
- Added TSC linting
- Now ESLint checks types in TS files
- Added new scripts:
install-all,clean,reinstall,build-all,check-hot,tsc,eslint,smoke,resmoke. Renamedsandbox_tstosandbox-ts,sandbox_jstosandbox-js. - Fixed problems with VSCode's TSLint plugin
- Moved from deprecated
prepublishtoprepareinpackage.json
- 4.0.4
- Fixed issue #349 with drag-n-drop and office-ui-fabric-react
- Fixed issue #413 with func arg with 1 value source which is not value
- 4.0.3
- Fixed issue #386 with import select field from JsonLogic (reason: bug with func/field widget in getWidgetForFieldOp)
- Fixed issue #387 with subgroups in Material UI
- 4.0.2
- Fixed MaterialConfig import for TS projects (issue #368)
- 4.0.1
- Added custom context to isolate Query Builder store (PR #350)
- Added support for React 17 as a peer dependency
- 4.0.0
- Removed setting
useGroupsAsArrays. Instead added field configmodefor type!groupwith values:some(default, corresponding useGroupsAsArrays = true),array(new, user can choose one of group operators),struct(obsolete, corresponding useGroupsAsArrays = false). - For type=
!groupand mode=array:- new field configs are available:
conjunctions,showNot,operators,defaultOperator,initialEmptyWhere - you can use group operators
some,none,allor operators with 1 integer opearnd (for count):equal,not_equal,less,between, .. - localization setting
addSubRuleLabel
- new field configs are available:
- Removed obsolete setting
hideConjForOne - (rare) Added field config
fieldNameto override field key for import/export - (rare) Added field config
jsonLogicVarand settingsjsonLogic.groupVarKey,jsonLogic.altVarKeyto override JsonLogic var key if need
- Removed setting
- 3.0.0
- Added Material-UI widgets
- 2.2.2
- Fix issue #306: Wrong import from JsonLogic and export to MongoDb for negated single-item group
- 2.2.1
- Fix issue #300: If using query builder inside a form element, buttons try to submit the form
- 2.2.0
- Fixed issues #246 and #176 related to wrong export and import from JsonLogic for multi-nested group fields
Now!groupfields are treated as arrays (added settinguseGroupsAsArrays= true)
- Fixed issues #246 and #176 related to wrong export and import from JsonLogic for multi-nested group fields
- 2.1.19
- Fixed issue #252 ("Cannot update a component from inside the function body of a different component")
- Issue #190: Fixed TS def for getTree/2 - added 2nd param light?
- 2.1.17
- Dropped support of loading query in obsolete Immutable string format used in versions 0.* (issue #254)
- 2.1.16
- Fixed issues with export to Mongo and JsonLogic of queries with nested groups (#279, #279)
- 2.1.15
- Fixed issue #276 with TS definitions
- 2.1.14
- Require Node v10+ (for karma)
- Fixed "SyntaxError Unexpected token '<'" in sandboxes
- Fixed requirement of sass in sandboxes
- Fixed eslint warnings in sandboxes
- Improved Travis config: fixed ENOSPC, removed excess testing during install
- 2.1.12
- Added sandbox with vanilla widgets and without TS
- 2.1.11
- Minor fix for some/not JsonLogic operators can be potentially used for array types
- 2.1.10
- Fixed issues #249, #246 regarding export/import from jsonLogic and groups
- Fixed issue #272 with float numbers for vanilla widgets
- 2.1.8
- Fixed issue #263
- 2.1.7
- Fixed TS def for conjunctionOptions (#247)
- 2.1.6
- Temporary disable AntDesign 4.5.0+ because of "Invalid hook call" problem
- 2.1.4
- Fixed issue #249 with importing rules with group fields from JsonLogic format
- 2.1.3
- Fixed issue #255 with reordering
- 2.1.2
- Added config
maxNumberOfRules - Bugfix: respect
maxNestingandcanLeaveEmptyGroupsettings during drag-n-drop - Enabled ESLint for examples with TS
- Added config
- 2.1.1
- Fixed export of
not_likeop to JsonLogic
- Fixed export of
- 2.1.0
- Added displaying of rule validation errors, see
showErrorMessagein config.settings - Added
QbUtils.isValidTree() validateValuemoved from widget settings to field'sfieldSettings- Added ESLint (unused vars & props are off for now)
- Added displaying of rule validation errors, see
- 2.0.11
- Added
starts_with,ends_withoperators for text type
- Added
- 2.0.10
- Fixed bug with missing
funcsin config
- Fixed bug with missing
- 2.0.9
- Fixed issues #215, #214, #208
- Fixed
validateValue - Simpler sandbox demo
- 2.0.8
- Fixed issue #207
- 2.0.7
- Added
canShortMongoQuerytoconfig.settings
- Added
- 2.0.6
- Fixed issue #176
- 2.0.5
- Fixed TS types. Updated sandbox to TS
- 2.0.4
- Fixed import
- 2.0.2
- Fix for TS
- 2.0.1
- Fixed issues #187, #194, #182
- 2.0.0
- Added
renderConjs,renderButton,renderButtonGroup,renderProvider,renderValueSources,renderConfirm - Removed coupling with AntDesign. Now it should be possible to use another UI framework.
- Added vanilla widgets. Added switcher between
antdandvanillain demo.
- Added
- 1.3.7
- Fixed issue #168 with dot in field name
- 1.3.6
- Added config options to disable inputs:
immutableFieldsMode,immutableOpsMode,immutableValuesMode
- Added config options to disable inputs:
- 1.3.5
- Issue #158
- 1.3.3
- Bugfix
- 1.3.2
- Bugfix
- 1.3.1
- Added
FieldTreeSelect
- Added
- 1.3.0
- Added support of
!group
- Added support of
- 1.2.0
- Added
treeselectandtreemultiselecttypes - Changed format of
listValuesfrom{<value>: <title>}to[{value, title}](old is supported). Tree select also uselistValues, format is compatible with simple select -[{value, title, parent}]
- Added
- 1.1.3
- Fixed console warnings
- Fixed dev hot reload: now state is preserving
- Added render hoooks to
config.settings:renderBeforeWidget,renderAfterWidget,renderBeforeActions,renderAfterActions
- 1.1.2
- Added import from JsonLogic
- 1.1.1
- Optimized
$eqand$andin MongoDb query export - Fixed error if query value is empty
- Added API in readme
- Optimized
- 1.1.0
- Added export to JsonLogic
- 1.0.12
- Added
sqlFormatFunc,mongoFormatFunc,renderBrackets,renderSeps(for func),funcs(for field)
- Added
- 1.0.11
- Added css-class
qb-litefor query builder (see readme if you wanna use it)
- Added css-class
- 1.0.10
- Fix when using cascader for func selection
- 1.0.9
- Allow group of functions (like with fields -
type == '!struct'andsubfields)
- Allow group of functions (like with fields -
- 1.0.8
- Added support for your custom functions as value source (args can be values/fields/funcs), see new section
funcsinconfig - Improved Mongo format: now can compare with field & use funcs with help of
$expr - (breaking)
mongoFormatOp- inserted arguseExprat 4th position - Added
hideForSelect,hideForComparefor field config
- Added support for your custom functions as value source (args can be values/fields/funcs), see new section
- 1.0.7
- Fixed Babel
- 1.0.6
- Added TypeScript support (
examplesuses TS,sandboxuses JS) - Updated Babel, Webpack
- For
fieldwidget slightly changed format offormatValue()andsqlFormatValue()functions - argumentrightFieldDefis now last one - Added
defaultValuein field config - All
fieldSettingswill be now passed to widget props listValuesandallowCustomValuesmoved insidefieldSettings
- Added TypeScript support (
- 1.0.4
- Added
QbUtils.sqlFormat()(issue #29) - Added
likeandnot_likeoperators - Added 2 params
string op, Object opDefto end offormatValue(),mongoFormatValue()
- Added
- 1.0.3
- Completely removed auto-loading of antd styles (issue #50)
- 1.0.2
- Fixed bug with running examples app via react-scripts
- 1.0.1
- Fixed bug with importing React
- 1.0.0
- Don't include AntDesign styles automatically (issues #50, #93)
- added:
allowCustomValues(issue #88) - change: removed
renderFieldAndOpAsDropdown, replaced byrenderField(issue #109) - added
renderOperator(issue #89) - change: query value now can be exported to JSON (instead of
Immutable.Map), and loaded withloadTree(old format is supported) (issue #61) - added:
canRegroup - rename:
readonlyMode->immutableGroupsMode - rename:
get_children->renderBuilder - removed: unused
<Preview />component and.query-previewclass - optimized renders & dragging