- 6.3.0
- Allow saving and loading config from server (PR #866) (issue #817)
- New utils:
compressConfig()
,decompressConfig()
- New
settings.useConfigCompress
- Config now has
ctx
property - Added new test app
sandbox_next
to demonstrate new server-side features
- New utils:
- Export utils (like
mongoFormatOp1
,mongoFormatOp2
) inCoreConfig.ctx.utils
(PR #866) (issue #890) - 2nd parameter of
onChange
callback 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)
- 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
:RuleProps
instead of wrongFieldProps
(PR #909) (issue #879) - Breaking change in types:
listValues
renamed totreeValues
inTreeSelectFieldSettings
But oldlistValues
is 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
BootstrapFieldSelect
for 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
flex
ible styles for low-width styles.scss
now has vars that can be overridden to change colos and sizes- Breaking: Now
compact_styles.css
replacesstyles.css
, don't use them together - Breaking: Removed icon in "Add sub rule" button
- More
- Added
@react-awesome-query-builder/fluent
package (PR #727) - Fix import of
is_null
andis_not_null
ops 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_contains
operator (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
id
forJsonRule
(PR #799) (issue #791) - Type fix: Add typings for
groupOperators
(PR #798) - Fix:
not
operation 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
loadFromSpel
forselect_not_equals
op (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
greater
op (PR #749) (issue #744) - ES: Fix NOT (PR #750) (issue #723)
- 5.2.0
- ! Breaking change:
children1
is 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:removeIncompleteRulesOnLoad
andremoveEmptyGroupsOnLoad
now default totrue
, set them tofalse
in yoursettings
to preserve the current behaviour - Fix
loadFromSpel
forselect_equals
op (PR #740) (issue #704) - Fix
loadFromSpel
foris_empty
andis_not_empty
ops (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
id
infixPathsInTree()
(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
loadFromSpel
andspelFormat
inUtils
(PR #613) - Added
excludeOperators
for type config (PR #613) SeeexcludeOperators: ["proximity"]
in demo - Changed export of
not_between
op for text format (!(num >= 3 && num <= 4)
->(num < 3 || num > 4)
) (PR #613) - Rename
Like
->Contains
. Movedis_empty
,is_null
to 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_null
andis_not_null
operators (issue #494) (PR #522) - ! Breaking change for operators
is_empty
andis_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
fieldDef
for functions to format operators (PR #573) - Added
jsonLogic
to widget TS def (PR #572) - Export
TreeUtils
(PR #597)
- Added
- 4.8.0
- Added read-only mode switch for rules and groups. See
showLock
andcanDeleteLocked
config options, custom JsonLogic oplocked
,setLock
action,lockLabel
andlockedLabel
. 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-server
from 3.11.2 to 4.4.0 (PR #540) - Change
FieldItems
type definition from map to array (issues #550, #363) (PR #551) - Spreading
customProps
to vanilla widgets (PR #546) - Fix for
allowCustomValues
(PR #545) - Use minimum
material-ui
version 4.12.3 and use newcreateTheme
instead of deprecatedcreateMuiTheme
(issue #463) (PR #531)
- 4.7.0
- Add explicit
not: false
in 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
actionMeta
toonChange()
to get info about action (PR #445) (issue #351) - Added demo of using actions programmatically (see
run actions
in demo app) (PR #445) - Added config
shouldCreateEmptyGroup
(defaultfalse
) (PR #445) - Now config
canLeaveEmptyGroup
is 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
id
to 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
showPrefix
for func args (false by default) - Added missing
mongoFormatValue
for all types in basic config (now dates are exported asDate
objects)
- 4.2.0
- Added
textarea
widget
- 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_ts
tosandbox-ts
,sandbox_js
tosandbox-js
. - Fixed problems with VSCode's TSLint plugin
- Moved from deprecated
prepublish
toprepare
inpackage.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 configmode
for type!group
with values:some
(default, corresponding useGroupsAsArrays = true),array
(new, user can choose one of group operators),struct
(obsolete, corresponding useGroupsAsArrays = false). - For type=
!group
and mode=array
:- new field configs are available:
conjunctions
,showNot
,operators
,defaultOperator
,initialEmptyWhere
- you can use group operators
some
,none
,all
or 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
fieldName
to override field key for import/export - (rare) Added field config
jsonLogicVar
and settingsjsonLogic.groupVarKey
,jsonLogic.altVarKey
to 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!group
fields 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
maxNesting
andcanLeaveEmptyGroup
settings during drag-n-drop - Enabled ESLint for examples with TS
- Added config
- 2.1.1
- Fixed export of
not_like
op to JsonLogic
- Fixed export of
- 2.1.0
- Added displaying of rule validation errors, see
showErrorMessage
in config.settings - Added
QbUtils.isValidTree()
validateValue
moved 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_with
operators for text type
- Added
- 2.0.10
- Fixed bug with missing
funcs
in 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
canShortMongoQuery
toconfig.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
antd
andvanilla
in 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
treeselect
andtreemultiselect
types - Changed format of
listValues
from{<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
$eq
and$and
in 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-lite
for 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
funcs
inconfig
- Improved Mongo format: now can compare with field & use funcs with help of
$expr
- (breaking)
mongoFormatOp
- inserted arguseExpr
at 4th position - Added
hideForSelect
,hideForCompare
for 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 (
examples
uses TS,sandbox
uses JS) - Updated Babel, Webpack
- For
field
widget slightly changed format offormatValue()
andsqlFormatValue()
functions - argumentrightFieldDef
is now last one - Added
defaultValue
in field config - All
fieldSettings
will be now passed to widget props listValues
andallowCustomValues
moved insidefieldSettings
- Added TypeScript support (
- 1.0.4
- Added
QbUtils.sqlFormat()
(issue #29) - Added
like
andnot_like
operators - Added 2 params
string op, Object opDef
to 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-preview
class - optimized renders & dragging