@elliemae/ds-query-builder 2.3.0-next.0 → 3.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. package/dist/cjs/DSQueryBuilder.js +118 -0
  2. package/dist/cjs/DSQueryBuilder.js.map +7 -0
  3. package/dist/cjs/components/AndOrController/AndOrController.js +208 -0
  4. package/dist/cjs/components/AndOrController/AndOrController.js.map +7 -0
  5. package/dist/cjs/components/ConditionController/ConditionController.js +116 -0
  6. package/dist/cjs/components/ConditionController/ConditionController.js.map +7 -0
  7. package/dist/cjs/components/DisplayOutput/DisplayOutput.js +92 -0
  8. package/dist/cjs/components/DisplayOutput/DisplayOutput.js.map +7 -0
  9. package/dist/cjs/components/DragContainerController/DragContainerController.js +65 -0
  10. package/dist/cjs/components/DragContainerController/DragContainerController.js.map +7 -0
  11. package/dist/cjs/components/DragControllerRow/DragControllerRow.js +51 -0
  12. package/dist/cjs/components/DragControllerRow/DragControllerRow.js.map +7 -0
  13. package/dist/cjs/components/FieldControllerRow/FieldControllerRow.js +55 -0
  14. package/dist/cjs/components/FieldControllerRow/FieldControllerRow.js.map +7 -0
  15. package/dist/cjs/components/Nestable/Nestable.js +254 -0
  16. package/dist/cjs/components/Nestable/Nestable.js.map +7 -0
  17. package/dist/cjs/components/Nestable/NestableItem.js +119 -0
  18. package/dist/cjs/components/Nestable/NestableItem.js.map +7 -0
  19. package/dist/cjs/components/Nestable/actions/events.js +143 -0
  20. package/dist/cjs/components/Nestable/actions/events.js.map +7 -0
  21. package/dist/cjs/components/Nestable/actions/getItemOptions.js +49 -0
  22. package/dist/cjs/components/Nestable/actions/getItemOptions.js.map +7 -0
  23. package/dist/cjs/components/Nestable/actions/getPaths.js +119 -0
  24. package/dist/cjs/components/Nestable/actions/getPaths.js.map +7 -0
  25. package/dist/cjs/components/Nestable/actions/index.js +42 -0
  26. package/dist/cjs/components/Nestable/actions/index.js.map +7 -0
  27. package/dist/cjs/components/Nestable/actions/moveItem.js +56 -0
  28. package/dist/cjs/components/Nestable/actions/moveItem.js.map +7 -0
  29. package/dist/cjs/components/Nestable/actions/paths.js +119 -0
  30. package/dist/cjs/components/Nestable/actions/paths.js.map +7 -0
  31. package/dist/cjs/components/Nestable/actions/tryDecreaseDepth.js +51 -0
  32. package/dist/cjs/components/Nestable/actions/tryDecreaseDepth.js.map +7 -0
  33. package/dist/cjs/components/Nestable/actions/tryIncreaseDepth.js +51 -0
  34. package/dist/cjs/components/Nestable/actions/tryIncreaseDepth.js.map +7 -0
  35. package/dist/cjs/components/Nestable/index.js +36 -0
  36. package/dist/cjs/components/Nestable/index.js.map +7 -0
  37. package/dist/cjs/components/QueryBuilderContext/QueryBuilderContext.js +36 -0
  38. package/dist/cjs/components/QueryBuilderContext/QueryBuilderContext.js.map +7 -0
  39. package/dist/cjs/components/QueryBuilderImpl.js +225 -0
  40. package/dist/cjs/components/QueryBuilderImpl.js.map +7 -0
  41. package/dist/cjs/components/QueryBuilderItem/QueryBuilderItem.js +92 -0
  42. package/dist/cjs/components/QueryBuilderItem/QueryBuilderItem.js.map +7 -0
  43. package/dist/cjs/components/QueryBuilderRow/QueryBuilderRow.js +219 -0
  44. package/dist/cjs/components/QueryBuilderRow/QueryBuilderRow.js.map +7 -0
  45. package/dist/cjs/components/ToolBarAnimation/ToolBarAnimation.js +42 -0
  46. package/dist/cjs/components/ToolBarAnimation/ToolBarAnimation.js.map +7 -0
  47. package/dist/cjs/components/format/format.js +59 -0
  48. package/dist/cjs/components/format/format.js.map +7 -0
  49. package/dist/cjs/components/format/sqlFormat.js +94 -0
  50. package/dist/cjs/components/format/sqlFormat.js.map +7 -0
  51. package/dist/cjs/components/format/sqlSafeFormat.js +98 -0
  52. package/dist/cjs/components/format/sqlSafeFormat.js.map +7 -0
  53. package/dist/cjs/components/format/xmlFormat.js +94 -0
  54. package/dist/cjs/components/format/xmlFormat.js.map +7 -0
  55. package/dist/cjs/components/helpers/actions.js +242 -0
  56. package/dist/cjs/components/helpers/actions.js.map +7 -0
  57. package/dist/cjs/components/helpers/constants.js +39 -0
  58. package/dist/cjs/components/helpers/constants.js.map +7 -0
  59. package/dist/cjs/components/helpers/dependencies.js +69 -0
  60. package/dist/cjs/components/helpers/dependencies.js.map +7 -0
  61. package/dist/cjs/components/helpers/selectors.js +161 -0
  62. package/dist/cjs/components/helpers/selectors.js.map +7 -0
  63. package/dist/cjs/components/helpers/store.js +159 -0
  64. package/dist/cjs/components/helpers/store.js.map +7 -0
  65. package/dist/cjs/components/helpers/types.js +92 -0
  66. package/dist/cjs/components/helpers/types.js.map +7 -0
  67. package/dist/cjs/index.js +36 -0
  68. package/dist/cjs/index.js.map +7 -0
  69. package/dist/cjs/propTypes.js +105 -0
  70. package/dist/cjs/propTypes.js.map +7 -0
  71. package/dist/esm/DSQueryBuilder.js +105 -0
  72. package/dist/esm/DSQueryBuilder.js.map +7 -0
  73. package/dist/esm/components/AndOrController/AndOrController.js +179 -0
  74. package/dist/esm/components/AndOrController/AndOrController.js.map +7 -0
  75. package/dist/esm/components/ConditionController/ConditionController.js +87 -0
  76. package/dist/esm/components/ConditionController/ConditionController.js.map +7 -0
  77. package/dist/esm/components/DisplayOutput/DisplayOutput.js +63 -0
  78. package/dist/esm/components/DisplayOutput/DisplayOutput.js.map +7 -0
  79. package/dist/esm/components/DragContainerController/DragContainerController.js +36 -0
  80. package/dist/esm/components/DragContainerController/DragContainerController.js.map +7 -0
  81. package/dist/esm/components/DragControllerRow/DragControllerRow.js +22 -0
  82. package/dist/esm/components/DragControllerRow/DragControllerRow.js.map +7 -0
  83. package/dist/esm/components/FieldControllerRow/FieldControllerRow.js +26 -0
  84. package/dist/esm/components/FieldControllerRow/FieldControllerRow.js.map +7 -0
  85. package/dist/esm/components/Nestable/Nestable.js +241 -0
  86. package/dist/esm/components/Nestable/Nestable.js.map +7 -0
  87. package/dist/esm/components/Nestable/NestableItem.js +90 -0
  88. package/dist/esm/components/Nestable/NestableItem.js.map +7 -0
  89. package/dist/esm/components/Nestable/actions/events.js +119 -0
  90. package/dist/esm/components/Nestable/actions/events.js.map +7 -0
  91. package/{esm → dist/esm}/components/Nestable/actions/getItemOptions.js +7 -11
  92. package/dist/esm/components/Nestable/actions/getItemOptions.js.map +7 -0
  93. package/{esm → dist/esm}/components/Nestable/actions/getPaths.js +17 -43
  94. package/dist/esm/components/Nestable/actions/getPaths.js.map +7 -0
  95. package/dist/esm/components/Nestable/actions/index.js +13 -0
  96. package/dist/esm/components/Nestable/actions/index.js.map +7 -0
  97. package/dist/esm/components/Nestable/actions/moveItem.js +27 -0
  98. package/dist/esm/components/Nestable/actions/moveItem.js.map +7 -0
  99. package/{esm → dist/esm}/components/Nestable/actions/paths.js +19 -47
  100. package/dist/esm/components/Nestable/actions/paths.js.map +7 -0
  101. package/dist/esm/components/Nestable/actions/tryDecreaseDepth.js +22 -0
  102. package/dist/esm/components/Nestable/actions/tryDecreaseDepth.js.map +7 -0
  103. package/{esm → dist/esm}/components/Nestable/actions/tryIncreaseDepth.js +10 -22
  104. package/dist/esm/components/Nestable/actions/tryIncreaseDepth.js.map +7 -0
  105. package/dist/esm/components/Nestable/index.js +7 -0
  106. package/dist/esm/components/Nestable/index.js.map +7 -0
  107. package/dist/esm/components/QueryBuilderContext/QueryBuilderContext.js +7 -0
  108. package/dist/esm/components/QueryBuilderContext/QueryBuilderContext.js.map +7 -0
  109. package/dist/esm/components/QueryBuilderImpl.js +196 -0
  110. package/dist/esm/components/QueryBuilderImpl.js.map +7 -0
  111. package/dist/esm/components/QueryBuilderItem/QueryBuilderItem.js +63 -0
  112. package/dist/esm/components/QueryBuilderItem/QueryBuilderItem.js.map +7 -0
  113. package/dist/esm/components/QueryBuilderRow/QueryBuilderRow.js +190 -0
  114. package/dist/esm/components/QueryBuilderRow/QueryBuilderRow.js.map +7 -0
  115. package/dist/esm/components/ToolBarAnimation/ToolBarAnimation.js +13 -0
  116. package/dist/esm/components/ToolBarAnimation/ToolBarAnimation.js.map +7 -0
  117. package/dist/esm/components/format/format.js +30 -0
  118. package/dist/esm/components/format/format.js.map +7 -0
  119. package/dist/esm/components/format/sqlFormat.js +65 -0
  120. package/dist/esm/components/format/sqlFormat.js.map +7 -0
  121. package/dist/esm/components/format/sqlSafeFormat.js +69 -0
  122. package/dist/esm/components/format/sqlSafeFormat.js.map +7 -0
  123. package/dist/esm/components/format/xmlFormat.js +65 -0
  124. package/dist/esm/components/format/xmlFormat.js.map +7 -0
  125. package/dist/esm/components/helpers/actions.js +217 -0
  126. package/dist/esm/components/helpers/actions.js.map +7 -0
  127. package/dist/esm/components/helpers/constants.js +10 -0
  128. package/dist/esm/components/helpers/constants.js.map +7 -0
  129. package/dist/esm/components/helpers/dependencies.js +40 -0
  130. package/dist/esm/components/helpers/dependencies.js.map +7 -0
  131. package/dist/esm/components/helpers/selectors.js +132 -0
  132. package/dist/esm/components/helpers/selectors.js.map +7 -0
  133. package/dist/esm/components/helpers/store.js +143 -0
  134. package/dist/esm/components/helpers/store.js.map +7 -0
  135. package/dist/esm/components/helpers/types.js +63 -0
  136. package/dist/esm/components/helpers/types.js.map +7 -0
  137. package/dist/esm/index.js +7 -0
  138. package/dist/esm/index.js.map +7 -0
  139. package/dist/esm/propTypes.js +76 -0
  140. package/dist/esm/propTypes.js.map +7 -0
  141. package/{types → dist/types}/DSQueryBuilder.d.ts +0 -0
  142. package/{types → dist/types}/components/AndOrController/AndOrController.d.ts +0 -0
  143. package/{types → dist/types}/components/ConditionController/ConditionController.d.ts +0 -0
  144. package/{types → dist/types}/components/DisplayOutput/DisplayOutput.d.ts +0 -0
  145. package/{types → dist/types}/components/DragContainerController/DragContainerController.d.ts +0 -0
  146. package/{types → dist/types}/components/DragControllerRow/DragControllerRow.d.ts +0 -0
  147. package/{types → dist/types}/components/FieldControllerRow/FieldControllerRow.d.ts +0 -0
  148. package/{types → dist/types}/components/Nestable/Nestable.d.ts +0 -0
  149. package/{types → dist/types}/components/Nestable/NestableItem.d.ts +0 -0
  150. package/{types → dist/types}/components/Nestable/actions/events.d.ts +0 -0
  151. package/{types → dist/types}/components/Nestable/actions/getItemOptions.d.ts +0 -0
  152. package/{types → dist/types}/components/Nestable/actions/getPaths.d.ts +0 -0
  153. package/{types → dist/types}/components/Nestable/actions/index.d.ts +0 -0
  154. package/{types → dist/types}/components/Nestable/actions/moveItem.d.ts +0 -0
  155. package/{types → dist/types}/components/Nestable/actions/paths.d.ts +0 -0
  156. package/{types → dist/types}/components/Nestable/actions/tryDecreaseDepth.d.ts +0 -0
  157. package/{types → dist/types}/components/Nestable/actions/tryIncreaseDepth.d.ts +0 -0
  158. package/{types → dist/types}/components/Nestable/index.d.ts +0 -0
  159. package/{types → dist/types}/components/QueryBuilderContext/QueryBuilderContext.d.ts +0 -0
  160. package/{types → dist/types}/components/QueryBuilderImpl.d.ts +0 -0
  161. package/{types → dist/types}/components/QueryBuilderItem/QueryBuilderItem.d.ts +0 -0
  162. package/{types → dist/types}/components/QueryBuilderRow/QueryBuilderRow.d.ts +0 -0
  163. package/{types → dist/types}/components/ToolBarAnimation/ToolBarAnimation.d.ts +0 -0
  164. package/{types → dist/types}/components/format/format.d.ts +0 -0
  165. package/{types → dist/types}/components/format/sqlFormat.d.ts +0 -0
  166. package/{types → dist/types}/components/format/sqlSafeFormat.d.ts +0 -0
  167. package/{types → dist/types}/components/format/xmlFormat.d.ts +0 -0
  168. package/{types → dist/types}/components/helpers/actions.d.ts +0 -0
  169. package/{types → dist/types}/components/helpers/constants.d.ts +0 -0
  170. package/{types → dist/types}/components/helpers/dependencies.d.ts +0 -0
  171. package/{types → dist/types}/components/helpers/selectors.d.ts +0 -0
  172. package/{types → dist/types}/components/helpers/store.d.ts +0 -0
  173. package/{types → dist/types}/components/helpers/types.d.ts +0 -0
  174. package/{types → dist/types}/index.d.ts +0 -0
  175. package/{types → dist/types}/propTypes.d.ts +0 -0
  176. package/package.json +102 -94
  177. package/cjs/DSQueryBuilder.js +0 -98
  178. package/cjs/components/AndOrController/AndOrController.js +0 -222
  179. package/cjs/components/ConditionController/ConditionController.js +0 -100
  180. package/cjs/components/DisplayOutput/DisplayOutput.js +0 -93
  181. package/cjs/components/DragContainerController/DragContainerController.js +0 -45
  182. package/cjs/components/DragControllerRow/DragControllerRow.js +0 -47
  183. package/cjs/components/FieldControllerRow/FieldControllerRow.js +0 -33
  184. package/cjs/components/Nestable/Nestable.js +0 -320
  185. package/cjs/components/Nestable/NestableItem.js +0 -111
  186. package/cjs/components/Nestable/actions/events.js +0 -166
  187. package/cjs/components/Nestable/actions/getItemOptions.js +0 -28
  188. package/cjs/components/Nestable/actions/getPaths.js +0 -124
  189. package/cjs/components/Nestable/actions/index.js +0 -28
  190. package/cjs/components/Nestable/actions/moveItem.js +0 -54
  191. package/cjs/components/Nestable/actions/paths.js +0 -126
  192. package/cjs/components/Nestable/actions/tryDecreaseDepth.js +0 -35
  193. package/cjs/components/Nestable/actions/tryIncreaseDepth.js +0 -38
  194. package/cjs/components/Nestable/index.js +0 -7
  195. package/cjs/components/QueryBuilderContext/QueryBuilderContext.js +0 -13
  196. package/cjs/components/QueryBuilderImpl.js +0 -309
  197. package/cjs/components/QueryBuilderItem/QueryBuilderItem.js +0 -90
  198. package/cjs/components/QueryBuilderRow/QueryBuilderRow.js +0 -276
  199. package/cjs/components/ToolBarAnimation/ToolBarAnimation.js +0 -29
  200. package/cjs/components/format/format.js +0 -33
  201. package/cjs/components/format/sqlFormat.js +0 -73
  202. package/cjs/components/format/sqlSafeFormat.js +0 -81
  203. package/cjs/components/format/xmlFormat.js +0 -73
  204. package/cjs/components/helpers/actions.js +0 -277
  205. package/cjs/components/helpers/constants.js +0 -11
  206. package/cjs/components/helpers/dependencies.js +0 -84
  207. package/cjs/components/helpers/selectors.js +0 -101
  208. package/cjs/components/helpers/store.js +0 -177
  209. package/cjs/components/helpers/types.js +0 -64
  210. package/cjs/index.js +0 -29
  211. package/cjs/propTypes.js +0 -97
  212. package/esm/DSQueryBuilder.js +0 -74
  213. package/esm/components/AndOrController/AndOrController.js +0 -213
  214. package/esm/components/ConditionController/ConditionController.js +0 -92
  215. package/esm/components/DisplayOutput/DisplayOutput.js +0 -87
  216. package/esm/components/DragContainerController/DragContainerController.js +0 -39
  217. package/esm/components/DragControllerRow/DragControllerRow.js +0 -39
  218. package/esm/components/FieldControllerRow/FieldControllerRow.js +0 -27
  219. package/esm/components/Nestable/Nestable.js +0 -312
  220. package/esm/components/Nestable/NestableItem.js +0 -103
  221. package/esm/components/Nestable/actions/events.js +0 -153
  222. package/esm/components/Nestable/actions/index.js +0 -6
  223. package/esm/components/Nestable/actions/moveItem.js +0 -45
  224. package/esm/components/Nestable/actions/tryDecreaseDepth.js +0 -31
  225. package/esm/components/Nestable/index.js +0 -2
  226. package/esm/components/QueryBuilderContext/QueryBuilderContext.js +0 -5
  227. package/esm/components/QueryBuilderImpl.js +0 -301
  228. package/esm/components/QueryBuilderItem/QueryBuilderItem.js +0 -83
  229. package/esm/components/QueryBuilderRow/QueryBuilderRow.js +0 -268
  230. package/esm/components/ToolBarAnimation/ToolBarAnimation.js +0 -20
  231. package/esm/components/format/format.js +0 -31
  232. package/esm/components/format/sqlFormat.js +0 -69
  233. package/esm/components/format/sqlSafeFormat.js +0 -76
  234. package/esm/components/format/xmlFormat.js +0 -69
  235. package/esm/components/helpers/actions.js +0 -254
  236. package/esm/components/helpers/constants.js +0 -5
  237. package/esm/components/helpers/dependencies.js +0 -60
  238. package/esm/components/helpers/selectors.js +0 -93
  239. package/esm/components/helpers/store.js +0 -171
  240. package/esm/components/helpers/types.js +0 -52
  241. package/esm/index.js +0 -4
  242. package/esm/propTypes.js +0 -93
@@ -0,0 +1,196 @@
1
+ import * as React from "react";
2
+ import React2, { Component } from "react";
3
+ import Nestable from "./Nestable";
4
+ import { QueryBuilderContext } from "./QueryBuilderContext/QueryBuilderContext";
5
+ import { QB_DRAG_TYPES, QB_ADD_FILTER_METHOD_TYPES, QB_GROUP_FILTER_METHOD_TYPES } from "./helpers/types";
6
+ import QueryBuilderStore from "./helpers/store";
7
+ import AndOrController from "./AndOrController/AndOrController";
8
+ import QueryBuilderItem from "./QueryBuilderItem/QueryBuilderItem";
9
+ import DisplayOutput from "./DisplayOutput/DisplayOutput";
10
+ class QueryBuilderImpl extends Component {
11
+ constructor(props) {
12
+ super(props);
13
+ this.isDraggableItem = true;
14
+ this.onOrderDragAndDrop = (items, item) => {
15
+ const newFilters = this.store.onOrderDragAndDrop(items, item);
16
+ this.sendCall("reOrderOnDragAndDrop", { items });
17
+ this.sendChange(newFilters);
18
+ };
19
+ this.onAddFilterToGroup = (idGroup) => {
20
+ const newFilters = this.store.addFilter(idGroup);
21
+ this.sendCall("onAddFilterToGroup", { idGroup });
22
+ this.sendChange(newFilters);
23
+ };
24
+ this.onAddFilter = (idGroup, idFilter) => {
25
+ const { addFilterMethod } = this.props;
26
+ const newFilters = addFilterMethod === QB_ADD_FILTER_METHOD_TYPES.IN_PLACE ? this.store.addFilterNextToFilterId(idGroup, idFilter) : this.onAddFilterToGroup(idGroup);
27
+ this.sendCall("onAddFilter", { idGroup, idFilter });
28
+ this.sendChange(newFilters);
29
+ };
30
+ this.onAddRuleContainer = (idGroup, idFilter) => {
31
+ const { groupFilterMethod } = this.props;
32
+ const newFilters = groupFilterMethod === QB_GROUP_FILTER_METHOD_TYPES.IN_PLACE ? this.store.addRuleContainerInPlace(idGroup, idFilter) : this.store.addRuleContainer(idGroup, idFilter);
33
+ this.sendCall("onAddRuleContainer", { idGroup, idFilter });
34
+ this.sendChange(newFilters);
35
+ };
36
+ this.onRemoveFilter = (idFilter) => {
37
+ const newFilters = this.store.onRemoveFilter(idFilter);
38
+ this.sendCall("onRemoveFilter", { idFilter });
39
+ this.sendChange(newFilters);
40
+ };
41
+ this.handleFieldChange = (data) => {
42
+ const { fieldsSharedActions } = this.props;
43
+ const newFilters = this.store.changeFilter({
44
+ ...data,
45
+ fieldsSharedActions
46
+ });
47
+ this.sendCall("handleFieldChange", { data });
48
+ this.sendChange(newFilters);
49
+ };
50
+ this.handleRuleContainerOperator = (idGroup, value) => {
51
+ const newFilters = this.store.changeGroupOperator(idGroup, value);
52
+ this.sendCall("handleRuleContainerOperator", { idGroup, value });
53
+ this.sendChange(newFilters);
54
+ };
55
+ this.handleRuleContainerUnGroup = (idGroup) => {
56
+ const newFilters = this.store.unGroup(idGroup);
57
+ this.sendCall("handleRuleContainerUnGroup", { idGroup });
58
+ this.sendChange(newFilters);
59
+ };
60
+ this.handleDropFilter = (filter, dragTo) => {
61
+ const { position: oldPosition, idGroup, idFilter } = filter;
62
+ const { position: newPosition, targetIdGroup } = dragTo;
63
+ const newFilters = this.store.reOrderFilter(idFilter, idGroup, oldPosition, newPosition, targetIdGroup);
64
+ this.sendCall("handleDropFilter", { filter, dragTo });
65
+ this.sendChange(newFilters);
66
+ };
67
+ this.handleDropGroup = (group, dragTo) => {
68
+ const { position: oldPosition, idFilter, idGroup } = group;
69
+ const { position: newPosition, targetIdGroup } = dragTo;
70
+ const newFilters = this.store.reOrderFilter(idFilter, idGroup, oldPosition, newPosition, targetIdGroup);
71
+ this.sendCall("handleDropGroup", { group, dragTo });
72
+ this.sendChange(newFilters);
73
+ };
74
+ this.handleDrop = (dragElement, dragTo) => {
75
+ const { type } = dragElement;
76
+ if (type === QB_DRAG_TYPES.FILTER)
77
+ return this.handleDropFilter(dragElement, dragTo);
78
+ return this.handleDropGroup(dragElement, dragTo);
79
+ };
80
+ this.sendChange = ({ format, ...newFilters }) => {
81
+ this.setState({ format, ...newFilters });
82
+ const { onChange } = this.props;
83
+ onChange(format, newFilters);
84
+ };
85
+ this.sendCall = (action, data) => {
86
+ const { [action]: callback } = this.props;
87
+ if (callback)
88
+ callback(data);
89
+ };
90
+ this.setDraggableItems = (drag) => {
91
+ this.isDraggableItem = true;
92
+ try {
93
+ const ua = window.navigator.userAgent;
94
+ const msie = ua.indexOf("MSIE ");
95
+ if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {
96
+ const { isDraggableItem } = this.state;
97
+ if (drag !== isDraggableItem) {
98
+ this.setState({ isDraggableItem: drag });
99
+ }
100
+ this.isDraggableItem = drag;
101
+ }
102
+ } catch (error) {
103
+ this.isDraggableItem = true;
104
+ }
105
+ };
106
+ this.store = new QueryBuilderStore(props.init, props.format);
107
+ this.state = this.store.getInitialState();
108
+ }
109
+ static getDerivedStateFromProps(props, state) {
110
+ if (props.init && props.init.step !== void 0 && Number.isInteger(props.init.step) && props.init.step !== state.step) {
111
+ const store = new QueryBuilderStore(props.init, props.format);
112
+ QueryBuilderImpl.recalculateStore = store;
113
+ return store.getInitialState();
114
+ }
115
+ return null;
116
+ }
117
+ componentDidUpdate() {
118
+ if (QueryBuilderImpl.recalculateStore) {
119
+ this.store = QueryBuilderImpl.recalculateStore;
120
+ QueryBuilderImpl.recalculateStore = null;
121
+ }
122
+ }
123
+ render() {
124
+ const { mapGroups, main, mapFilters, step, items, format } = this.state;
125
+ const {
126
+ containerProps,
127
+ ruleContainerClassName,
128
+ fields,
129
+ displayFixedOutput,
130
+ displayOutput,
131
+ displayOutputLabel,
132
+ singleRow,
133
+ toolTipZIndex
134
+ } = this.props;
135
+ const { condition } = mapGroups[main];
136
+ return /* @__PURE__ */ React2.createElement(QueryBuilderContext.Provider, {
137
+ value: {
138
+ toolTipZIndex,
139
+ fields,
140
+ handleDrop: this.handleDrop,
141
+ handleFieldChange: this.handleFieldChange,
142
+ handleRuleContainerOperator: this.handleRuleContainerOperator,
143
+ handleRuleContainerUnGroup: this.handleRuleContainerUnGroup,
144
+ mapFilters,
145
+ mapGroups,
146
+ onAddFilter: this.onAddFilter,
147
+ onAddFilterToGroup: this.onAddFilterToGroup,
148
+ onAddRuleContainer: this.onAddRuleContainer,
149
+ onRemoveFilter: this.onRemoveFilter,
150
+ ruleContainerClassName,
151
+ showDragController: false,
152
+ format,
153
+ step,
154
+ items,
155
+ isDraggableItem: this.isDraggableItem,
156
+ setDraggableItems: this.setDraggableItems,
157
+ singleRow
158
+ }
159
+ }, /* @__PURE__ */ React2.createElement("div", {
160
+ ...containerProps,
161
+ className: `nested-main-group ${condition !== true ? "is-or-group" : "is-and-groupL"} ${singleRow ? "query-main-single-row" : "query-main-multiple-row"}`
162
+ }, /* @__PURE__ */ React2.createElement(Nestable, {
163
+ isAndItem: condition === true,
164
+ isDraggableItem: this.isDraggableItem,
165
+ isOrItem: condition !== true,
166
+ items,
167
+ onChange: this.onOrderDragAndDrop,
168
+ renderItem: QueryBuilderItem,
169
+ setDraggableItems: this.setDraggableItems,
170
+ step,
171
+ singleRow
172
+ }), !singleRow && /* @__PURE__ */ React2.createElement("div", {
173
+ className: "rule-container-options"
174
+ }, /* @__PURE__ */ React2.createElement(AndOrController, {
175
+ allowUnGroup: false,
176
+ condition,
177
+ handleRuleContainerOperator: (value) => this.handleRuleContainerOperator(main, value),
178
+ handleRuleContainerUnGroup: () => this.handleRuleContainerUnGroup(main),
179
+ isMain: true,
180
+ onAddFilter: () => this.onAddFilterToGroup(main),
181
+ showDragController: false,
182
+ step,
183
+ toolTipZIndex
184
+ }))), (displayOutput || displayFixedOutput) && /* @__PURE__ */ React2.createElement(DisplayOutput, {
185
+ displayFixedOutput,
186
+ hideLabel: displayOutputLabel.hide,
187
+ showLabel: displayOutputLabel.show,
188
+ show: displayOutputLabel.open
189
+ }));
190
+ }
191
+ }
192
+ var QueryBuilderImpl_default = QueryBuilderImpl;
193
+ export {
194
+ QueryBuilderImpl_default as default
195
+ };
196
+ //# sourceMappingURL=QueryBuilderImpl.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/components/QueryBuilderImpl.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable react/prop-types */\n/* eslint-disable max-lines */\nimport React, { Component } from 'react';\nimport Nestable from './Nestable';\n\nimport { QueryBuilderContext } from './QueryBuilderContext/QueryBuilderContext';\nimport { QB_DRAG_TYPES, QB_ADD_FILTER_METHOD_TYPES, QB_GROUP_FILTER_METHOD_TYPES } from './helpers/types';\nimport QueryBuilderStore from './helpers/store';\nimport AndOrController from './AndOrController/AndOrController';\n\nimport QueryBuilderItem from './QueryBuilderItem/QueryBuilderItem';\nimport DisplayOutput from './DisplayOutput/DisplayOutput';\n\nclass QueryBuilderImpl extends Component {\n isDraggableItem = true;\n\n constructor(props) {\n super(props);\n\n this.store = new QueryBuilderStore(props.init, props.format);\n this.state = this.store.getInitialState();\n }\n\n onOrderDragAndDrop = (items, item) => {\n const newFilters = this.store.onOrderDragAndDrop(items, item);\n this.sendCall('reOrderOnDragAndDrop', { items });\n this.sendChange(newFilters);\n };\n\n onAddFilterToGroup = (idGroup) => {\n const newFilters = this.store.addFilter(idGroup);\n this.sendCall('onAddFilterToGroup', { idGroup });\n this.sendChange(newFilters);\n };\n\n onAddFilter = (idGroup, idFilter) => {\n const { addFilterMethod } = this.props;\n const newFilters =\n addFilterMethod === QB_ADD_FILTER_METHOD_TYPES.IN_PLACE\n ? this.store.addFilterNextToFilterId(idGroup, idFilter)\n : this.onAddFilterToGroup(idGroup);\n this.sendCall('onAddFilter', { idGroup, idFilter });\n this.sendChange(newFilters);\n };\n\n onAddRuleContainer = (idGroup, idFilter) => {\n const { groupFilterMethod } = this.props;\n const newFilters =\n groupFilterMethod === QB_GROUP_FILTER_METHOD_TYPES.IN_PLACE\n ? this.store.addRuleContainerInPlace(idGroup, idFilter)\n : this.store.addRuleContainer(idGroup, idFilter);\n this.sendCall('onAddRuleContainer', { idGroup, idFilter });\n this.sendChange(newFilters);\n };\n\n onRemoveFilter = (idFilter) => {\n const newFilters = this.store.onRemoveFilter(idFilter);\n this.sendCall('onRemoveFilter', { idFilter });\n this.sendChange(newFilters);\n };\n\n static getDerivedStateFromProps(props, state) {\n if (\n props.init &&\n props.init.step !== undefined &&\n Number.isInteger(props.init.step) &&\n props.init.step !== state.step\n ) {\n const store = new QueryBuilderStore(props.init, props.format);\n QueryBuilderImpl.recalculateStore = store;\n return store.getInitialState();\n }\n return null;\n }\n\n componentDidUpdate() {\n if (QueryBuilderImpl.recalculateStore) {\n this.store = QueryBuilderImpl.recalculateStore;\n QueryBuilderImpl.recalculateStore = null;\n }\n }\n\n handleFieldChange = (data) => {\n const { fieldsSharedActions } = this.props;\n const newFilters = this.store.changeFilter({\n ...data,\n fieldsSharedActions,\n });\n this.sendCall('handleFieldChange', { data });\n this.sendChange(newFilters);\n };\n\n handleRuleContainerOperator = (idGroup, value) => {\n const newFilters = this.store.changeGroupOperator(idGroup, value);\n this.sendCall('handleRuleContainerOperator', { idGroup, value });\n this.sendChange(newFilters);\n };\n\n handleRuleContainerUnGroup = (idGroup) => {\n const newFilters = this.store.unGroup(idGroup);\n this.sendCall('handleRuleContainerUnGroup', { idGroup });\n this.sendChange(newFilters);\n };\n\n /**\n * handleFieldChange and handleDropFilter\n * are equals right now, but they maybe\n * will have diferents logic\n *\n * @param filter\n * @param dragTo\n */\n handleDropFilter = (filter, dragTo) => {\n const { position: oldPosition, idGroup, idFilter } = filter;\n const { position: newPosition, targetIdGroup } = dragTo;\n const newFilters = this.store.reOrderFilter(idFilter, idGroup, oldPosition, newPosition, targetIdGroup);\n this.sendCall('handleDropFilter', { filter, dragTo });\n this.sendChange(newFilters);\n };\n\n /**\n * handleFieldChange and handleDropFilter\n * are equals right now, but they maybe\n * will have diferents logic\n *\n * @param group\n * @param dragTo\n */\n handleDropGroup = (group, dragTo) => {\n const { position: oldPosition, idFilter, idGroup } = group;\n const { position: newPosition, targetIdGroup } = dragTo;\n const newFilters = this.store.reOrderFilter(idFilter, idGroup, oldPosition, newPosition, targetIdGroup);\n this.sendCall('handleDropGroup', { group, dragTo });\n this.sendChange(newFilters);\n };\n\n handleDrop = (dragElement, dragTo) => {\n const { type } = dragElement;\n if (type === QB_DRAG_TYPES.FILTER) return this.handleDropFilter(dragElement, dragTo);\n return this.handleDropGroup(dragElement, dragTo);\n };\n\n sendChange = ({ format, ...newFilters }) => {\n this.setState({ format, ...newFilters });\n const { onChange } = this.props;\n onChange(format, newFilters);\n };\n\n sendCall = (action, data) => {\n const { [action]: callback } = this.props;\n if (callback) callback(data);\n };\n\n setDraggableItems = (drag) => {\n this.isDraggableItem = true;\n try {\n const ua = window.navigator.userAgent;\n const msie = ua.indexOf('MSIE ');\n // eslint-disable-next-line no-useless-escape\n if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\\:11\\./)) {\n const { isDraggableItem } = this.state;\n if (drag !== isDraggableItem) {\n this.setState({ isDraggableItem: drag });\n }\n this.isDraggableItem = drag;\n }\n } catch (error) {\n this.isDraggableItem = true;\n }\n };\n\n render() {\n const { mapGroups, main, mapFilters, step, items, format } = this.state;\n const {\n containerProps,\n ruleContainerClassName,\n fields,\n displayFixedOutput,\n displayOutput,\n displayOutputLabel,\n singleRow,\n toolTipZIndex,\n } = this.props;\n // const { children } = items[0]\n const { condition } = mapGroups[main];\n\n return (\n <QueryBuilderContext.Provider\n value={{\n toolTipZIndex,\n fields,\n handleDrop: this.handleDrop,\n handleFieldChange: this.handleFieldChange,\n handleRuleContainerOperator: this.handleRuleContainerOperator,\n handleRuleContainerUnGroup: this.handleRuleContainerUnGroup,\n mapFilters,\n mapGroups,\n onAddFilter: this.onAddFilter,\n onAddFilterToGroup: this.onAddFilterToGroup,\n onAddRuleContainer: this.onAddRuleContainer,\n onRemoveFilter: this.onRemoveFilter,\n ruleContainerClassName,\n showDragController: false,\n format,\n step,\n items,\n isDraggableItem: this.isDraggableItem,\n setDraggableItems: this.setDraggableItems,\n singleRow,\n }}\n >\n <div\n {...containerProps}\n className={`nested-main-group ${condition !== true ? 'is-or-group' : 'is-and-groupL'} ${\n singleRow ? 'query-main-single-row' : 'query-main-multiple-row'\n }`}\n >\n <Nestable\n isAndItem={condition === true}\n isDraggableItem={this.isDraggableItem}\n isOrItem={condition !== true}\n items={items}\n onChange={this.onOrderDragAndDrop}\n renderItem={QueryBuilderItem}\n setDraggableItems={this.setDraggableItems}\n step={step}\n singleRow={singleRow}\n />\n {!singleRow && (\n <div className=\"rule-container-options\">\n <AndOrController\n allowUnGroup={false}\n condition={condition}\n handleRuleContainerOperator={(value) => this.handleRuleContainerOperator(main, value)}\n handleRuleContainerUnGroup={() => this.handleRuleContainerUnGroup(main)}\n isMain\n onAddFilter={() => this.onAddFilterToGroup(main)}\n showDragController={false}\n step={step}\n toolTipZIndex={toolTipZIndex}\n />\n </div>\n )}\n </div>\n {(displayOutput || displayFixedOutput) && (\n <DisplayOutput\n displayFixedOutput={displayFixedOutput}\n hideLabel={displayOutputLabel.hide}\n showLabel={displayOutputLabel.show}\n show={displayOutputLabel.open}\n />\n )}\n </QueryBuilderContext.Provider>\n );\n }\n}\n\nexport default QueryBuilderImpl;\n"],
5
+ "mappings": "AAAA;ACEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA,+BAA+B,UAAU;AAAA,EAGvC,YAAY,OAAO;AACjB,UAAM;AAHR,2BAAkB;AASlB,8BAAqB,CAAC,OAAO,SAAS;AACpC,YAAM,aAAa,KAAK,MAAM,mBAAmB,OAAO;AACxD,WAAK,SAAS,wBAAwB,EAAE;AACxC,WAAK,WAAW;AAAA;AAGlB,8BAAqB,CAAC,YAAY;AAChC,YAAM,aAAa,KAAK,MAAM,UAAU;AACxC,WAAK,SAAS,sBAAsB,EAAE;AACtC,WAAK,WAAW;AAAA;AAGlB,uBAAc,CAAC,SAAS,aAAa;AACnC,YAAM,EAAE,oBAAoB,KAAK;AACjC,YAAM,aACJ,oBAAoB,2BAA2B,WAC3C,KAAK,MAAM,wBAAwB,SAAS,YAC5C,KAAK,mBAAmB;AAC9B,WAAK,SAAS,eAAe,EAAE,SAAS;AACxC,WAAK,WAAW;AAAA;AAGlB,8BAAqB,CAAC,SAAS,aAAa;AAC1C,YAAM,EAAE,sBAAsB,KAAK;AACnC,YAAM,aACJ,sBAAsB,6BAA6B,WAC/C,KAAK,MAAM,wBAAwB,SAAS,YAC5C,KAAK,MAAM,iBAAiB,SAAS;AAC3C,WAAK,SAAS,sBAAsB,EAAE,SAAS;AAC/C,WAAK,WAAW;AAAA;AAGlB,0BAAiB,CAAC,aAAa;AAC7B,YAAM,aAAa,KAAK,MAAM,eAAe;AAC7C,WAAK,SAAS,kBAAkB,EAAE;AAClC,WAAK,WAAW;AAAA;AAwBlB,6BAAoB,CAAC,SAAS;AAC5B,YAAM,EAAE,wBAAwB,KAAK;AACrC,YAAM,aAAa,KAAK,MAAM,aAAa;AAAA,WACtC;AAAA,QACH;AAAA;AAEF,WAAK,SAAS,qBAAqB,EAAE;AACrC,WAAK,WAAW;AAAA;AAGlB,uCAA8B,CAAC,SAAS,UAAU;AAChD,YAAM,aAAa,KAAK,MAAM,oBAAoB,SAAS;AAC3D,WAAK,SAAS,+BAA+B,EAAE,SAAS;AACxD,WAAK,WAAW;AAAA;AAGlB,sCAA6B,CAAC,YAAY;AACxC,YAAM,aAAa,KAAK,MAAM,QAAQ;AACtC,WAAK,SAAS,8BAA8B,EAAE;AAC9C,WAAK,WAAW;AAAA;AAWlB,4BAAmB,CAAC,QAAQ,WAAW;AACrC,YAAM,EAAE,UAAU,aAAa,SAAS,aAAa;AACrD,YAAM,EAAE,UAAU,aAAa,kBAAkB;AACjD,YAAM,aAAa,KAAK,MAAM,cAAc,UAAU,SAAS,aAAa,aAAa;AACzF,WAAK,SAAS,oBAAoB,EAAE,QAAQ;AAC5C,WAAK,WAAW;AAAA;AAWlB,2BAAkB,CAAC,OAAO,WAAW;AACnC,YAAM,EAAE,UAAU,aAAa,UAAU,YAAY;AACrD,YAAM,EAAE,UAAU,aAAa,kBAAkB;AACjD,YAAM,aAAa,KAAK,MAAM,cAAc,UAAU,SAAS,aAAa,aAAa;AACzF,WAAK,SAAS,mBAAmB,EAAE,OAAO;AAC1C,WAAK,WAAW;AAAA;AAGlB,sBAAa,CAAC,aAAa,WAAW;AACpC,YAAM,EAAE,SAAS;AACjB,UAAI,SAAS,cAAc;AAAQ,eAAO,KAAK,iBAAiB,aAAa;AAC7E,aAAO,KAAK,gBAAgB,aAAa;AAAA;AAG3C,sBAAa,CAAC,EAAE,WAAW,iBAAiB;AAC1C,WAAK,SAAS,EAAE,WAAW;AAC3B,YAAM,EAAE,aAAa,KAAK;AAC1B,eAAS,QAAQ;AAAA;AAGnB,oBAAW,CAAC,QAAQ,SAAS;AAC3B,YAAM,GAAG,SAAS,aAAa,KAAK;AACpC,UAAI;AAAU,iBAAS;AAAA;AAGzB,6BAAoB,CAAC,SAAS;AAC5B,WAAK,kBAAkB;AACvB,UAAI;AACF,cAAM,KAAK,OAAO,UAAU;AAC5B,cAAM,OAAO,GAAG,QAAQ;AAExB,YAAI,OAAO,KAAK,CAAC,CAAC,UAAU,UAAU,MAAM,sBAAsB;AAChE,gBAAM,EAAE,oBAAoB,KAAK;AACjC,cAAI,SAAS,iBAAiB;AAC5B,iBAAK,SAAS,EAAE,iBAAiB;AAAA;AAEnC,eAAK,kBAAkB;AAAA;AAAA,eAElB,OAAP;AACA,aAAK,kBAAkB;AAAA;AAAA;AApJzB,SAAK,QAAQ,IAAI,kBAAkB,MAAM,MAAM,MAAM;AACrD,SAAK,QAAQ,KAAK,MAAM;AAAA;AAAA,SAyCnB,yBAAyB,OAAO,OAAO;AAC5C,QACE,MAAM,QACN,MAAM,KAAK,SAAS,UACpB,OAAO,UAAU,MAAM,KAAK,SAC5B,MAAM,KAAK,SAAS,MAAM,MAC1B;AACA,YAAM,QAAQ,IAAI,kBAAkB,MAAM,MAAM,MAAM;AACtD,uBAAiB,mBAAmB;AACpC,aAAO,MAAM;AAAA;AAEf,WAAO;AAAA;AAAA,EAGT,qBAAqB;AACnB,QAAI,iBAAiB,kBAAkB;AACrC,WAAK,QAAQ,iBAAiB;AAC9B,uBAAiB,mBAAmB;AAAA;AAAA;AAAA,EA6FxC,SAAS;AACP,UAAM,EAAE,WAAW,MAAM,YAAY,MAAM,OAAO,WAAW,KAAK;AAClE,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,QACE,KAAK;AAET,UAAM,EAAE,cAAc,UAAU;AAEhC,WACE,qCAAC,oBAAoB,UAArB;AAAA,MACE,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA,YAAY,KAAK;AAAA,QACjB,mBAAmB,KAAK;AAAA,QACxB,6BAA6B,KAAK;AAAA,QAClC,4BAA4B,KAAK;AAAA,QACjC;AAAA,QACA;AAAA,QACA,aAAa,KAAK;AAAA,QAClB,oBAAoB,KAAK;AAAA,QACzB,oBAAoB,KAAK;AAAA,QACzB,gBAAgB,KAAK;AAAA,QACrB;AAAA,QACA,oBAAoB;AAAA,QACpB;AAAA,QACA;AAAA,QACA;AAAA,QACA,iBAAiB,KAAK;AAAA,QACtB,mBAAmB,KAAK;AAAA,QACxB;AAAA;AAAA,OAGF,qCAAC,OAAD;AAAA,SACM;AAAA,MACJ,WAAW,qBAAqB,cAAc,OAAO,gBAAgB,mBACnE,YAAY,0BAA0B;AAAA,OAGxC,qCAAC,UAAD;AAAA,MACE,WAAW,cAAc;AAAA,MACzB,iBAAiB,KAAK;AAAA,MACtB,UAAU,cAAc;AAAA,MACxB;AAAA,MACA,UAAU,KAAK;AAAA,MACf,YAAY;AAAA,MACZ,mBAAmB,KAAK;AAAA,MACxB;AAAA,MACA;AAAA,QAED,CAAC,aACA,qCAAC,OAAD;AAAA,MAAK,WAAU;AAAA,OACb,qCAAC,iBAAD;AAAA,MACE,cAAc;AAAA,MACd;AAAA,MACA,6BAA6B,CAAC,UAAU,KAAK,4BAA4B,MAAM;AAAA,MAC/E,4BAA4B,MAAM,KAAK,2BAA2B;AAAA,MAClE,QAAM;AAAA,MACN,aAAa,MAAM,KAAK,mBAAmB;AAAA,MAC3C,oBAAoB;AAAA,MACpB;AAAA,MACA;AAAA,UAKN,kBAAiB,uBACjB,qCAAC,eAAD;AAAA,MACE;AAAA,MACA,WAAW,mBAAmB;AAAA,MAC9B,WAAW,mBAAmB;AAAA,MAC9B,MAAM,mBAAmB;AAAA;AAAA;AAAA;AAQrC,IAAO,2BAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,63 @@
1
+ import * as React from "react";
2
+ import React2 from "react";
3
+ import { QueryBuilderContext } from "../QueryBuilderContext/QueryBuilderContext";
4
+ import { QB_DRAG_TYPES } from "../helpers/types";
5
+ import AndOrController from "../AndOrController/AndOrController";
6
+ import QueryBuilderRow from "../QueryBuilderRow/QueryBuilderRow";
7
+ const QueryBuilderItem = ({ item }) => {
8
+ const { element } = item;
9
+ const { type, idFilter, idGroup, condition } = element;
10
+ return /* @__PURE__ */ React2.createElement(QueryBuilderContext.Consumer, null, ({
11
+ fields,
12
+ handleFieldChange,
13
+ onAddFilter,
14
+ onAddFilterToGroup,
15
+ onAddRuleContainer,
16
+ onRemoveFilter,
17
+ showDragController,
18
+ handleRuleContainerOperator,
19
+ handleRuleContainerUnGroup,
20
+ step,
21
+ items,
22
+ isDraggableItem,
23
+ setDraggableItems,
24
+ singleRow,
25
+ toolTipZIndex
26
+ }) => {
27
+ if (type === QB_DRAG_TYPES.FILTER) {
28
+ return /* @__PURE__ */ React2.createElement(QueryBuilderRow, {
29
+ ...element,
30
+ fields,
31
+ handleFieldChange,
32
+ isDraggableItem,
33
+ items,
34
+ onAddFilter: () => onAddFilter(idGroup, idFilter),
35
+ onAddRuleContainer: () => onAddRuleContainer(idGroup, idFilter),
36
+ onRemoveFilter: () => onRemoveFilter(idFilter),
37
+ setDraggableItems,
38
+ showDragController,
39
+ step,
40
+ singleRow,
41
+ toolTipZIndex
42
+ });
43
+ }
44
+ if (singleRow)
45
+ return null;
46
+ return /* @__PURE__ */ React2.createElement(AndOrController, {
47
+ allowUnGroup: true,
48
+ condition,
49
+ handleRuleContainerOperator: (value) => handleRuleContainerOperator(idGroup, value),
50
+ handleRuleContainerUnGroup: () => handleRuleContainerUnGroup(idGroup),
51
+ multipleSize: false,
52
+ onAddFilter: () => onAddFilterToGroup(idGroup),
53
+ showDragController: true,
54
+ step,
55
+ toolTipZIndex
56
+ });
57
+ });
58
+ };
59
+ var QueryBuilderItem_default = QueryBuilderItem;
60
+ export {
61
+ QueryBuilderItem_default as default
62
+ };
63
+ //# sourceMappingURL=QueryBuilderItem.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/components/QueryBuilderItem/QueryBuilderItem.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable react/prop-types */\nimport React from 'react';\n\nimport { QueryBuilderContext } from '../QueryBuilderContext/QueryBuilderContext';\nimport { QB_DRAG_TYPES } from '../helpers/types';\nimport AndOrController from '../AndOrController/AndOrController';\nimport QueryBuilderRow from '../QueryBuilderRow/QueryBuilderRow';\n\nconst QueryBuilderItem = ({ item }) => {\n const { element } = item;\n const { type, idFilter, idGroup, condition } = element;\n return (\n <QueryBuilderContext.Consumer>\n {({\n fields,\n handleFieldChange,\n onAddFilter,\n onAddFilterToGroup,\n onAddRuleContainer,\n onRemoveFilter,\n showDragController,\n handleRuleContainerOperator,\n handleRuleContainerUnGroup,\n step,\n items,\n isDraggableItem,\n setDraggableItems,\n singleRow,\n toolTipZIndex,\n }) => {\n if (type === QB_DRAG_TYPES.FILTER) {\n return (\n <QueryBuilderRow\n {...element}\n fields={fields}\n handleFieldChange={handleFieldChange}\n isDraggableItem={isDraggableItem}\n items={items}\n onAddFilter={() => onAddFilter(idGroup, idFilter)}\n onAddRuleContainer={() => onAddRuleContainer(idGroup, idFilter)}\n onRemoveFilter={() => onRemoveFilter(idFilter)}\n setDraggableItems={setDraggableItems}\n showDragController={showDragController}\n step={step}\n singleRow={singleRow}\n toolTipZIndex={toolTipZIndex}\n />\n );\n }\n if (singleRow) return null;\n return (\n <AndOrController\n allowUnGroup\n condition={condition}\n handleRuleContainerOperator={(value) =>\n handleRuleContainerOperator(idGroup, value)\n }\n handleRuleContainerUnGroup={() =>\n handleRuleContainerUnGroup(idGroup)\n }\n multipleSize={false}\n onAddFilter={() => onAddFilterToGroup(idGroup)}\n showDragController\n step={step}\n toolTipZIndex={toolTipZIndex}\n />\n );\n }}\n </QueryBuilderContext.Consumer>\n );\n};\n\nexport default QueryBuilderItem;\n"],
5
+ "mappings": "AAAA;ACCA;AAEA;AACA;AACA;AACA;AAEA,MAAM,mBAAmB,CAAC,EAAE,WAAW;AACrC,QAAM,EAAE,YAAY;AACpB,QAAM,EAAE,MAAM,UAAU,SAAS,cAAc;AAC/C,SACE,qCAAC,oBAAoB,UAArB,MACG,CAAC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,QACI;AACJ,QAAI,SAAS,cAAc,QAAQ;AACjC,aACE,qCAAC,iBAAD;AAAA,WACM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,aAAa,MAAM,YAAY,SAAS;AAAA,QACxC,oBAAoB,MAAM,mBAAmB,SAAS;AAAA,QACtD,gBAAgB,MAAM,eAAe;AAAA,QACrC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA;AAIN,QAAI;AAAW,aAAO;AACtB,WACE,qCAAC,iBAAD;AAAA,MACE,cAAY;AAAA,MACZ;AAAA,MACA,6BAA6B,CAAC,UAC5B,4BAA4B,SAAS;AAAA,MAEvC,4BAA4B,MAC1B,2BAA2B;AAAA,MAE7B,cAAc;AAAA,MACd,aAAa,MAAM,mBAAmB;AAAA,MACtC,oBAAkB;AAAA,MAClB;AAAA,MACA;AAAA;AAAA;AAAA;AAQZ,IAAO,2BAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,190 @@
1
+ import * as React from "react";
2
+ import React2, { Component } from "react";
3
+ import { AlertsDetail } from "@elliemae/ds-icons";
4
+ import { DSTooltipV3 } from "@elliemae/ds-tooltip";
5
+ import { convertPropToCssClassName } from "@elliemae/ds-classnames";
6
+ import { resolveDependencies } from "../helpers/dependencies";
7
+ import ConditionController from "../ConditionController/ConditionController";
8
+ import DragControllerRow from "../DragControllerRow/DragControllerRow";
9
+ const RenderField = ({
10
+ target,
11
+ component,
12
+ valueProp,
13
+ additionalInfo,
14
+ handleMouseEnterInput,
15
+ handleMouseLeaveInput,
16
+ onChangeHandler,
17
+ hasError
18
+ }) => {
19
+ const ref = React2.useRef();
20
+ const id = React2.useMemo(() => `el_${String.fromCharCode(65 + Math.floor(Math.random() * 26))}`, []);
21
+ return /* @__PURE__ */ React2.createElement("div", {
22
+ className: `em-ds-query-builder-row-input child-type-${target} ${hasError && hasError.error ? "row-input-error" : ""}`,
23
+ onMouseDownCapture: () => {
24
+ const _refInput = ref.current?.querySelector(`#${id}`);
25
+ if (_refInput && _refInput.focus)
26
+ setTimeout(_refInput.focus());
27
+ handleMouseEnterInput();
28
+ },
29
+ onMouseEnter: () => handleMouseEnterInput(),
30
+ onMouseLeave: () => handleMouseLeaveInput()
31
+ }, /* @__PURE__ */ React2.createElement("div", {
32
+ ref,
33
+ className: "em-ds-query-builder-row__input-controller"
34
+ }, React2.cloneElement(component, {
35
+ id,
36
+ onChange: (e, extraData) => onChangeHandler(e, target, extraData),
37
+ value: valueProp != null ? valueProp : "",
38
+ checked: valueProp === true,
39
+ additionalInfo: additionalInfo ? additionalInfo[target] : additionalInfo || {},
40
+ "aria-invalid": Boolean(hasError)
41
+ })), hasError && hasError.errorMessage ? /* @__PURE__ */ React2.createElement("div", {
42
+ style: { width: "40px" }
43
+ }, /* @__PURE__ */ React2.createElement(DSTooltipV3, {
44
+ text: hasError.errorMessage
45
+ }, /* @__PURE__ */ React2.createElement("div", {
46
+ tabIndex: 0,
47
+ className: "row-icon-alert",
48
+ "data-testid": "qb-error-state-icon",
49
+ role: "alert"
50
+ }, /* @__PURE__ */ React2.createElement(AlertsDetail, {
51
+ width: 20,
52
+ height: 20,
53
+ color: ["danger", 900],
54
+ title: hasError.errorMessage
55
+ })))) : null);
56
+ };
57
+ class QueryBuilderRow extends Component {
58
+ constructor(props) {
59
+ super(props);
60
+ this.handleMouseEnterRow = () => {
61
+ };
62
+ this.handleMouseLeaveRow = () => {
63
+ this.handleTooltipRow(false);
64
+ };
65
+ this.handleMouseEnterInput = () => {
66
+ const { setDraggableItems } = this.props;
67
+ setDraggableItems(false);
68
+ };
69
+ this.handleMouseLeaveInput = () => {
70
+ const { setDraggableItems } = this.props;
71
+ setDraggableItems(true);
72
+ };
73
+ this.handleTooltipRow = (isOpen) => {
74
+ this.setState({ isOpen });
75
+ };
76
+ this.state = {
77
+ isOpen: false
78
+ };
79
+ }
80
+ onChangeHandler(e, target, extraData, hasError) {
81
+ const { handleFieldChange, idFilter, idGroup, additionalInfo, field, operator, value } = this.props;
82
+ let eventValue = e;
83
+ if (e && e.target) {
84
+ const { value: value2, checked } = e.target;
85
+ if (value2 || value2 === "" || typeof value2 === "boolean")
86
+ eventValue = value2;
87
+ else
88
+ eventValue = checked || e;
89
+ }
90
+ handleFieldChange({
91
+ [target]: eventValue,
92
+ idFilter,
93
+ idGroup,
94
+ additionalInfo: {
95
+ ...additionalInfo,
96
+ [target]: extraData,
97
+ [`${target}_error`]: hasError,
98
+ [`${target}_touched`]: true
99
+ },
100
+ target
101
+ });
102
+ }
103
+ render() {
104
+ const { isOpen } = this.state;
105
+ const {
106
+ fields,
107
+ onAddFilter,
108
+ onRemoveFilter,
109
+ onAddRuleContainer,
110
+ field,
111
+ operator,
112
+ value,
113
+ additionalInfo,
114
+ items,
115
+ singleRow,
116
+ toolTipZIndex,
117
+ error
118
+ } = this.props;
119
+ const { cssClassName, classNameBlock, classNameElement } = convertPropToCssClassName("query-builder-row", isOpen ? "has-open-tooltip" : "has-close-tooltip", singleRow ? "is-single-row" : "is-multiple-row");
120
+ const test = resolveDependencies({
121
+ field,
122
+ operator,
123
+ value,
124
+ additionalInfo
125
+ }, fields);
126
+ const gridTemplateColumns = [
127
+ "24px",
128
+ ...test.map((r) => {
129
+ if (r.handleWidth) {
130
+ return r.handleWidth(this.props[r.target], {
131
+ field,
132
+ operator,
133
+ value,
134
+ additionalInfo
135
+ });
136
+ }
137
+ return "minmax(0, 1fr)";
138
+ }),
139
+ "30px"
140
+ ].join(" ");
141
+ return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement("div", {
142
+ className: cssClassName,
143
+ onMouseEnter: this.handleMouseEnterRow,
144
+ onMouseLeave: this.handleMouseLeaveRow,
145
+ style: {
146
+ gridTemplateColumns
147
+ }
148
+ }, !singleRow && /* @__PURE__ */ React2.createElement(DragControllerRow, {
149
+ className: classNameElement("drag-controller"),
150
+ onMouseDownCapture: () => this.handleMouseLeaveInput()
151
+ }), test.map((renderField) => {
152
+ const { target, component } = renderField;
153
+ const { [target]: valueProp } = this.props;
154
+ const isTouched = additionalInfo && additionalInfo[`${target}_touched`];
155
+ const hasError = renderField && renderField.validation ? renderField.validation(valueProp, {
156
+ field,
157
+ operator,
158
+ value,
159
+ additionalInfo
160
+ }) : false;
161
+ return /* @__PURE__ */ React2.createElement(RenderField, {
162
+ component,
163
+ target,
164
+ valueProp,
165
+ onChangeHandler: (e, target2, extraData) => {
166
+ this.onChangeHandler(e, target2, extraData, hasError);
167
+ },
168
+ handleMouseEnterInput: this.handleMouseEnterInput,
169
+ handleMouseLeaveInput: this.handleMouseLeaveInput,
170
+ additionalInfo,
171
+ hasError: isTouched && hasError
172
+ });
173
+ }), !singleRow && /* @__PURE__ */ React2.createElement("div", {
174
+ className: classNameBlock("controller")
175
+ }, /* @__PURE__ */ React2.createElement(ConditionController, {
176
+ handleTooltipRow: this.handleTooltipRow,
177
+ isOpen,
178
+ items,
179
+ onAddFilter,
180
+ onAddRuleContainer,
181
+ onRemoveFilter,
182
+ toolTipZIndex
183
+ }))));
184
+ }
185
+ }
186
+ var QueryBuilderRow_default = QueryBuilderRow;
187
+ export {
188
+ QueryBuilderRow_default as default
189
+ };
190
+ //# sourceMappingURL=QueryBuilderRow.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/components/QueryBuilderRow/QueryBuilderRow.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport React, { Component } from 'react';\nimport { AlertsDetail } from '@elliemae/ds-icons';\nimport { DSTooltipV3 } from '@elliemae/ds-tooltip';\nimport { convertPropToCssClassName } from '@elliemae/ds-classnames';\nimport { resolveDependencies } from '../helpers/dependencies';\nimport ConditionController from '../ConditionController/ConditionController';\nimport DragControllerRow from '../DragControllerRow/DragControllerRow';\n\nconst RenderField = ({\n target,\n component,\n valueProp,\n additionalInfo,\n handleMouseEnterInput,\n handleMouseLeaveInput,\n onChangeHandler,\n hasError,\n}) => {\n const ref = React.useRef<HTMLElement>();\n const id = React.useMemo(() => `el_${String.fromCharCode(65 + Math.floor(Math.random() * 26))}`, []);\n return (\n <div\n className={`em-ds-query-builder-row-input child-type-${target} ${hasError && hasError.error ? 'row-input-error' : ''\n }`}\n onMouseDownCapture={() => {\n // eslint-disable-next-line no-underscore-dangle\n const _refInput = ref.current?.querySelector(`#${id}`);\n if (_refInput && _refInput.focus) setTimeout(_refInput.focus());\n handleMouseEnterInput();\n }}\n onMouseEnter={() => handleMouseEnterInput()}\n onMouseLeave={() => handleMouseLeaveInput()}\n >\n <div ref={ref} className=\"em-ds-query-builder-row__input-controller\">\n {React.cloneElement(component, {\n id,\n onChange: (e, extraData) => onChangeHandler(e, target, extraData),\n value: valueProp != null ? valueProp : '',\n checked: valueProp === true,\n additionalInfo: additionalInfo ? additionalInfo[target] : additionalInfo || {},\n 'aria-invalid': Boolean(hasError),\n })}\n </div>\n {hasError && hasError.errorMessage ? (\n <div style={{ width: '40px' }}>\n <DSTooltipV3 text={hasError.errorMessage}>\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n <div tabIndex={0} className=\"row-icon-alert\" data-testid=\"qb-error-state-icon\" role=\"alert\">\n <AlertsDetail width={20} height={20} color={['danger', 900]} title={hasError.errorMessage} />\n </div>\n </DSTooltipV3>\n </div>\n ) : null}\n </div>\n );\n // return React.useMemo(\n // () => (\n // <div\n // className={`em-ds-query-builder-row-input child-type-${target}`}\n // onMouseDownCapture={() => {\n // // eslint-disable-next-line no-underscore-dangle\n // const _refInput = ref.current.querySelector(`#${id}`);\n // if (_refInput && _refInput.focus) setTimeout(_refInput.focus());\n // handleMouseEnterInput();\n // }}\n // onMouseEnter={() => handleMouseEnterInput()}\n // onMouseLeave={() => handleMouseLeaveInput()}\n // >\n // <div ref={ref} className=\"em-ds-query-builder-row__input-controller\">\n // {React.cloneElement(component, {\n // id,\n // onChange: (e, extraData) => onChangeHandler(e, target, extraData),\n // value: valueProp != null ? valueProp : '',\n // checked: valueProp === true,\n // additionalInfo: additionalInfo ? additionalInfo[target] : {},\n // })}\n // </div>\n // </div>\n // ),\n // [target, component, valueProp, additionalInfo],\n // );\n};\nclass QueryBuilderRow extends Component<any, any> {\n constructor(props: any) {\n super(props);\n this.state = {\n isOpen: false,\n };\n }\n\n onChangeHandler(e, target, extraData, hasError) {\n const { handleFieldChange, idFilter, idGroup, additionalInfo, field, operator, value } = this.props;\n let eventValue = e;\n if (e && e.target) {\n const { value, checked } = e.target;\n if (value || value === '' || typeof value === 'boolean') eventValue = value;\n else eventValue = checked || e;\n }\n handleFieldChange({\n [target]: eventValue,\n idFilter,\n idGroup,\n additionalInfo: {\n ...additionalInfo,\n [target]: extraData,\n [`${target}_error`]: hasError,\n [`${target}_touched`]: true,\n },\n target,\n });\n }\n\n handleMouseEnterRow = () => { };\n\n handleMouseLeaveRow = () => {\n this.handleTooltipRow(false);\n };\n\n handleMouseEnterInput = () => {\n const { setDraggableItems } = this.props;\n setDraggableItems(false);\n };\n\n handleMouseLeaveInput = () => {\n const { setDraggableItems } = this.props;\n setDraggableItems(true);\n };\n\n handleTooltipRow = (isOpen) => {\n this.setState({ isOpen });\n };\n\n render() {\n const { isOpen } = this.state;\n const {\n fields,\n onAddFilter,\n onRemoveFilter,\n onAddRuleContainer,\n field,\n operator,\n value,\n additionalInfo,\n items,\n singleRow,\n toolTipZIndex,\n error,\n } = this.props;\n const { cssClassName, classNameBlock, classNameElement } = convertPropToCssClassName(\n 'query-builder-row',\n isOpen ? 'has-open-tooltip' : 'has-close-tooltip',\n singleRow ? 'is-single-row' : 'is-multiple-row',\n );\n const test = resolveDependencies(\n {\n field,\n operator,\n value,\n additionalInfo,\n },\n fields,\n );\n\n const gridTemplateColumns = [\n '24px',\n ...test.map((r) => {\n if (r.handleWidth) {\n return r.handleWidth(this.props[r.target], {\n field,\n operator,\n value,\n additionalInfo,\n });\n }\n return 'minmax(0, 1fr)';\n }),\n '30px',\n ].join(' ');\n\n return (\n <>\n <div\n className={cssClassName}\n onMouseEnter={this.handleMouseEnterRow}\n onMouseLeave={this.handleMouseLeaveRow}\n style={{\n gridTemplateColumns,\n }}\n >\n {!singleRow && (\n <DragControllerRow\n className={classNameElement('drag-controller')}\n onMouseDownCapture={() => this.handleMouseLeaveInput()}\n />\n )}\n {test.map((renderField) => {\n const { target, component } = renderField;\n const { [target]: valueProp } = this.props;\n\n const isTouched = additionalInfo && additionalInfo[`${target}_touched`];\n const hasError =\n renderField && renderField.validation\n ? renderField.validation(valueProp, {\n field,\n operator,\n value,\n additionalInfo,\n })\n : false;\n return (\n <RenderField\n component={component}\n target={target}\n valueProp={valueProp}\n onChangeHandler={(e, target, extraData) => {\n this.onChangeHandler(e, target, extraData, hasError);\n }}\n handleMouseEnterInput={this.handleMouseEnterInput}\n handleMouseLeaveInput={this.handleMouseLeaveInput}\n additionalInfo={additionalInfo}\n hasError={isTouched && hasError}\n />\n );\n })}\n {!singleRow && (\n <div className={classNameBlock('controller')}>\n <ConditionController\n handleTooltipRow={this.handleTooltipRow}\n isOpen={isOpen}\n items={items}\n onAddFilter={onAddFilter}\n onAddRuleContainer={onAddRuleContainer}\n onRemoveFilter={onRemoveFilter}\n toolTipZIndex={toolTipZIndex}\n />\n </div>\n )}\n </div>\n </>\n );\n }\n}\n\nexport default QueryBuilderRow;\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,13 @@
1
+ import * as React from "react";
2
+ import React2 from "react";
3
+ import GrowRight from "@elliemae/ds-shared/Animations/GrowRight";
4
+ const ToolBarAnimation = (props) => /* @__PURE__ */ React2.createElement(GrowRight, {
5
+ ...props,
6
+ key: "popper-animation-key",
7
+ from: 0.5,
8
+ to: 1
9
+ });
10
+ export {
11
+ ToolBarAnimation
12
+ };
13
+ //# sourceMappingURL=ToolBarAnimation.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/components/ToolBarAnimation/ToolBarAnimation.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport GrowRight from '@elliemae/ds-shared/Animations/GrowRight';\n\nconst ToolBarAnimation = props => (\n <GrowRight {...props} key=\"popper-animation-key\" from={0.5} to={1} />\n);\n\nexport { ToolBarAnimation };\n"],
5
+ "mappings": "AAAA;ACAA;AACA;AAEA,MAAM,mBAAmB,WACvB,qCAAC,WAAD;AAAA,KAAe;AAAA,EAAO,KAAI;AAAA,EAAuB,MAAM;AAAA,EAAK,IAAI;AAAA;",
6
+ "names": []
7
+ }
@@ -0,0 +1,30 @@
1
+ import * as React from "react";
2
+ import { sqlFormat } from "./sqlFormat";
3
+ import { xmlFormat } from "./xmlFormat";
4
+ import { sqlSafeFormat } from "./sqlSafeFormat";
5
+ class QueryBuilderFormat {
6
+ constructor() {
7
+ this.format = {
8
+ defaultFormat: (query) => query,
9
+ sqlFormat,
10
+ xmlFormat,
11
+ sqlSafeFormat
12
+ };
13
+ this.currentFormat = "sqlFormat";
14
+ this.setDefaultFormat = (formatName) => {
15
+ if (this.format[formatName])
16
+ this.currentFormat = formatName;
17
+ };
18
+ this.addFormat = (formatName, format) => this.format[formatName] = format;
19
+ this.run = (query, formatName) => {
20
+ if (this.format[formatName])
21
+ return this.format[formatName](query);
22
+ return this.format[this.currentFormat](query);
23
+ };
24
+ }
25
+ }
26
+ var format_default = new QueryBuilderFormat();
27
+ export {
28
+ format_default as default
29
+ };
30
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/components/format/format.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { sqlFormat } from './sqlFormat';\nimport { xmlFormat } from './xmlFormat';\nimport { sqlSafeFormat } from './sqlSafeFormat';\n\nclass QueryBuilderFormat {\n format = {\n defaultFormat: query => query,\n sqlFormat,\n xmlFormat,\n sqlSafeFormat,\n };\n\n currentFormat = 'sqlFormat';\n\n setDefaultFormat = formatName => {\n if (this.format[formatName]) this.currentFormat = formatName;\n };\n\n addFormat = (formatName, format) => (this.format[formatName] = format);\n\n run = (query, formatName) => {\n if (this.format[formatName]) return this.format[formatName](query);\n return this.format[this.currentFormat](query);\n };\n}\n\nexport default new QueryBuilderFormat();\n"],
5
+ "mappings": "AAAA;ACAA;AACA;AACA;AAEA,yBAAyB;AAAA,EAAzB,cAJA;AAKE,kBAAS;AAAA,MACP,eAAe,WAAS;AAAA,MACxB;AAAA,MACA;AAAA,MACA;AAAA;AAGF,yBAAgB;AAEhB,4BAAmB,gBAAc;AAC/B,UAAI,KAAK,OAAO;AAAa,aAAK,gBAAgB;AAAA;AAGpD,qBAAY,CAAC,YAAY,WAAY,KAAK,OAAO,cAAc;AAE/D,eAAM,CAAC,OAAO,eAAe;AAC3B,UAAI,KAAK,OAAO;AAAa,eAAO,KAAK,OAAO,YAAY;AAC5D,aAAO,KAAK,OAAO,KAAK,eAAe;AAAA;AAAA;AAAA;AAI3C,IAAO,iBAAQ,IAAI;",
6
+ "names": []
7
+ }
@@ -0,0 +1,65 @@
1
+ import * as React from "react";
2
+ import { QB_OPERATOR_TYPES } from "../helpers/types";
3
+ const conditionSql = (condition, value) => {
4
+ const {
5
+ EQUAL,
6
+ NOT_EQUAL,
7
+ GREATER_THAN,
8
+ LESS_THAN,
9
+ CONTAINS,
10
+ NOT_CONTAINS,
11
+ BETWEEN,
12
+ GREATER_THAN_OR_EQUAL,
13
+ LESS_THAN_OR_EQUAL,
14
+ START_WITH
15
+ } = QB_OPERATOR_TYPES;
16
+ if (condition === EQUAL)
17
+ return ` = '${value}'`;
18
+ if (condition === NOT_EQUAL)
19
+ return ` <> '${value}'`;
20
+ if (condition === GREATER_THAN)
21
+ return ` > ${value}`;
22
+ if (condition === LESS_THAN)
23
+ return ` < ${value}`;
24
+ if (condition === CONTAINS)
25
+ return ` LIKE '%${value}%'`;
26
+ if (condition === NOT_CONTAINS)
27
+ return ` NOT LIKE '%${value}%'`;
28
+ if (condition === BETWEEN)
29
+ return ` BETWEEN ${value[0]} AND ${value[1]} `;
30
+ if (condition === GREATER_THAN_OR_EQUAL)
31
+ return ` >= ${value}`;
32
+ if (condition === LESS_THAN_OR_EQUAL)
33
+ return ` <= ${value}`;
34
+ if (condition === START_WITH)
35
+ return ` LIKE '${value}%'`;
36
+ return condition;
37
+ };
38
+ const renderFilterSQl = (filter) => {
39
+ const { field, operator, value } = filter.element;
40
+ return `${field} ${conditionSql(operator, value) || ""}`;
41
+ };
42
+ const sqlFormat = ({ main, mapGroups, items }) => {
43
+ const groupSql = (item, idGroup) => {
44
+ if (idGroup === main) {
45
+ const groupCondition2 = mapGroups[idGroup].condition === true ? "AND" : "OR";
46
+ return ` ( ${filterSql(item, groupCondition2)} ) `;
47
+ }
48
+ const groupCondition = item.element.condition === true ? "AND" : "OR";
49
+ return ` ( ${filterSql(item.children, groupCondition)} ) `;
50
+ };
51
+ const filterSql = (filters, groupCondition) => {
52
+ const filterGroup = filters.map((filter) => {
53
+ if (filter.element.type === "filter")
54
+ return ` ${renderFilterSQl(filter)} `;
55
+ return ` ${groupSql(filter) || ""} `;
56
+ });
57
+ return filterGroup.join(groupCondition);
58
+ };
59
+ const sql = ` FROM [TABLE_NAME] WHERE ${groupSql(items, main) || ""} `;
60
+ return sql;
61
+ };
62
+ export {
63
+ sqlFormat
64
+ };
65
+ //# sourceMappingURL=sqlFormat.js.map