# Changelog
- 4.5.5
  - Fixed bug useConfirm not found
- 4.5.4
  - Upgrade material-ui-confirm to version 5
- 4.5.3
  - Using makeStyles to style Slider wrapper
- 4.5.2
  - Fixed issue with slider styles
- 4.5.1
  - Migrate Material widgets to v5
- 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)
- 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 as `Date` objects)
- 4.2.0
  - Added `textarea` widget
- 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`.
    Renamed `sandbox_ts` to `sandbox-ts`, `sandbox_js` to `sandbox-js`.
  - Fixed problems with VSCode's TSLint plugin
  - Moved from deprecated `prepublish` to `prepare` in `package.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 config `mode` 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`
  - Removed obsolete setting `hideConjForOne`
  - (rare) Added field config `fieldName` to override field key for import/export
  - (rare) Added field config `jsonLogicVar` and settings `jsonLogic.groupVarKey`, `jsonLogic.altVarKey` to override JsonLogic var key if need
- 3.0.0
  - Added [Material-UI](https://material-ui.com) 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 setting `useGroupsAsArrays` = true)
- 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` and `canLeaveEmptyGroup` settings during drag-n-drop
  - Enabled ESLint for examples with TS
- 2.1.1
  - Fixed export of `not_like` op to JsonLogic
- 2.1.0
  - Added displaying of rule validation errors, see `showErrorMessage` in config.settings
  - Added `QbUtils.isValidTree()`
  - `validateValue` moved from widget settings to field's `fieldSettings`
  - Added ESLint (unused vars & props are off for now)
- 2.0.11
  - Added `starts_with`, `ends_with` operators for text type
- 2.0.10
  - Fixed bug with missing `funcs` in config
- 2.0.9
  - Fixed issues #215, #214, #208
  - Fixed `validateValue`
  - Simpler sandbox demo
- 2.0.8
  - Fixed issue #207
- 2.0.7
  - Added `canShortMongoQuery` to `config.settings`
- 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` and `vanilla` in demo.
- 1.3.7
  - Fixed issue #168 with dot in field name
- 1.3.6
  - Added config options to disable inputs: `immutableFieldsMode`, `immutableOpsMode`, `immutableValuesMode` 
- 1.3.5
  - Issue #158
- 1.3.3
  - Bugfix
- 1.3.2
  - Bugfix
- 1.3.1
  - Added `FieldTreeSelect`
- 1.3.0
  - Added support of `!group`
- 1.2.0
  - Added `treeselect` and `treemultiselect` types
  - Changed format of `listValues` from `{<value>: <title>}` to `[{value, title}]` (old is supported). 
    Tree select also use `listValues`, format is compatible with simple select - `[{value, title, parent}]`
- 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](http://jsonlogic.com)
- 1.1.1
  - Optimized `$eq` and `$and` in MongoDb query export
  - Fixed error if query value is empty
  - Added API in readme
- 1.1.0
  - Added export to [JsonLogic](http://jsonlogic.com)
- 1.0.12
  - Added `sqlFormatFunc`, `mongoFormatFunc`, `renderBrackets`, `renderSeps` (for func), `funcs` (for field)
- 1.0.11
  - Added css-class `qb-lite` for query builder (see readme if you wanna use it)
- 1.0.10
  - Fix when using cascader for func selection
- 1.0.9
  - Allow group of functions (like with fields - `type == '!struct'` and `subfields`)
- 1.0.8
  - Added support for your custom functions as value source (args can be values/fields/funcs), see new section `funcs` in `config`
  - Improved Mongo format: now can compare with field & use funcs with help of `$expr`
  - (breaking) `mongoFormatOp` - inserted arg `useExpr` at 4th position
  - Added `hideForSelect`, `hideForCompare` for field config
- 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 of `formatValue()` and `sqlFormatValue()` functions - argument `rightFieldDef` is now last one
  - Added `defaultValue` in field config
  - All `fieldSettings` will be now passed to widget props
  - `listValues` and `allowCustomValues` moved inside `fieldSettings`
- 1.0.4
  - Added `QbUtils.sqlFormat()` (issue #29)
  - Added `like` and `not_like` operators
  - Added 2 params `string op, Object opDef` to end of `formatValue()`, `mongoFormatValue()`
- 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 by `renderField` (issue #109)
  - added `renderOperator` (issue #89)
  - change: query value now can be exported to JSON (instead of `Immutable.Map`), and loaded with `loadTree`  (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
