@elliemae/ds-query-builder 2.3.0-alpha.6 → 2.3.0-next.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/cjs/DSQueryBuilder.js +98 -0
  2. package/cjs/components/AndOrController/AndOrController.js +222 -0
  3. package/cjs/components/ConditionController/ConditionController.js +100 -0
  4. package/cjs/components/DisplayOutput/DisplayOutput.js +93 -0
  5. package/cjs/components/DragContainerController/DragContainerController.js +45 -0
  6. package/cjs/components/DragControllerRow/DragControllerRow.js +47 -0
  7. package/cjs/components/FieldControllerRow/FieldControllerRow.js +33 -0
  8. package/cjs/components/Nestable/Nestable.js +320 -0
  9. package/cjs/components/Nestable/NestableItem.js +111 -0
  10. package/cjs/components/Nestable/actions/events.js +166 -0
  11. package/cjs/components/Nestable/actions/getItemOptions.js +28 -0
  12. package/cjs/components/Nestable/actions/getPaths.js +124 -0
  13. package/cjs/components/Nestable/actions/index.js +28 -0
  14. package/cjs/components/Nestable/actions/moveItem.js +54 -0
  15. package/cjs/components/Nestable/actions/paths.js +126 -0
  16. package/cjs/components/Nestable/actions/tryDecreaseDepth.js +35 -0
  17. package/cjs/components/Nestable/actions/tryIncreaseDepth.js +38 -0
  18. package/cjs/components/Nestable/index.js +7 -0
  19. package/cjs/components/QueryBuilderContext/QueryBuilderContext.js +13 -0
  20. package/cjs/components/QueryBuilderImpl.js +309 -0
  21. package/cjs/components/QueryBuilderItem/QueryBuilderItem.js +90 -0
  22. package/cjs/components/QueryBuilderRow/QueryBuilderRow.js +276 -0
  23. package/cjs/components/ToolBarAnimation/ToolBarAnimation.js +29 -0
  24. package/cjs/components/format/format.js +33 -0
  25. package/cjs/components/format/sqlFormat.js +73 -0
  26. package/cjs/components/format/sqlSafeFormat.js +81 -0
  27. package/cjs/components/format/xmlFormat.js +73 -0
  28. package/cjs/components/helpers/actions.js +277 -0
  29. package/cjs/components/helpers/constants.js +11 -0
  30. package/cjs/components/helpers/dependencies.js +84 -0
  31. package/cjs/components/helpers/selectors.js +101 -0
  32. package/cjs/components/helpers/store.js +177 -0
  33. package/cjs/components/helpers/types.js +64 -0
  34. package/cjs/index.js +29 -0
  35. package/cjs/propTypes.js +97 -0
  36. package/esm/DSQueryBuilder.js +74 -0
  37. package/esm/components/AndOrController/AndOrController.js +213 -0
  38. package/esm/components/ConditionController/ConditionController.js +92 -0
  39. package/esm/components/DisplayOutput/DisplayOutput.js +87 -0
  40. package/esm/components/DragContainerController/DragContainerController.js +39 -0
  41. package/esm/components/DragControllerRow/DragControllerRow.js +39 -0
  42. package/esm/components/FieldControllerRow/FieldControllerRow.js +27 -0
  43. package/esm/components/Nestable/Nestable.js +312 -0
  44. package/esm/components/Nestable/NestableItem.js +103 -0
  45. package/esm/components/Nestable/actions/events.js +153 -0
  46. package/{dist/esm → esm}/components/Nestable/actions/getItemOptions.js +11 -7
  47. package/{dist/esm → esm}/components/Nestable/actions/getPaths.js +43 -17
  48. package/esm/components/Nestable/actions/index.js +6 -0
  49. package/esm/components/Nestable/actions/moveItem.js +45 -0
  50. package/{dist/esm → esm}/components/Nestable/actions/paths.js +47 -19
  51. package/esm/components/Nestable/actions/tryDecreaseDepth.js +31 -0
  52. package/{dist/esm → esm}/components/Nestable/actions/tryIncreaseDepth.js +22 -10
  53. package/esm/components/Nestable/index.js +2 -0
  54. package/esm/components/QueryBuilderContext/QueryBuilderContext.js +5 -0
  55. package/esm/components/QueryBuilderImpl.js +301 -0
  56. package/esm/components/QueryBuilderItem/QueryBuilderItem.js +83 -0
  57. package/esm/components/QueryBuilderRow/QueryBuilderRow.js +268 -0
  58. package/esm/components/ToolBarAnimation/ToolBarAnimation.js +20 -0
  59. package/esm/components/format/format.js +31 -0
  60. package/esm/components/format/sqlFormat.js +69 -0
  61. package/esm/components/format/sqlSafeFormat.js +76 -0
  62. package/esm/components/format/xmlFormat.js +69 -0
  63. package/esm/components/helpers/actions.js +254 -0
  64. package/esm/components/helpers/constants.js +5 -0
  65. package/esm/components/helpers/dependencies.js +60 -0
  66. package/esm/components/helpers/selectors.js +93 -0
  67. package/esm/components/helpers/store.js +171 -0
  68. package/esm/components/helpers/types.js +52 -0
  69. package/esm/index.js +4 -0
  70. package/esm/propTypes.js +93 -0
  71. package/package.json +95 -97
  72. package/types/DSQueryBuilder.d.ts +180 -0
  73. package/types/components/AndOrController/AndOrController.d.ts +38 -0
  74. package/types/components/ConditionController/ConditionController.d.ts +16 -0
  75. package/types/components/DisplayOutput/DisplayOutput.d.ts +7 -0
  76. package/types/components/DragContainerController/DragContainerController.d.ts +9 -0
  77. package/types/components/DragControllerRow/DragControllerRow.d.ts +9 -0
  78. package/types/components/FieldControllerRow/FieldControllerRow.d.ts +9 -0
  79. package/types/components/Nestable/Nestable.d.ts +51 -0
  80. package/types/components/Nestable/NestableItem.d.ts +12 -0
  81. package/types/components/Nestable/actions/events.d.ts +6 -0
  82. package/types/components/Nestable/actions/getItemOptions.d.ts +11 -0
  83. package/types/components/Nestable/actions/getPaths.d.ts +5 -0
  84. package/types/components/Nestable/actions/index.d.ts +6 -0
  85. package/types/components/Nestable/actions/moveItem.d.ts +5 -0
  86. package/types/components/Nestable/actions/paths.d.ts +5 -0
  87. package/types/components/Nestable/actions/tryDecreaseDepth.d.ts +1 -0
  88. package/types/components/Nestable/actions/tryIncreaseDepth.d.ts +1 -0
  89. package/types/components/Nestable/index.d.ts +2 -0
  90. package/types/components/QueryBuilderContext/QueryBuilderContext.d.ts +2 -0
  91. package/types/components/QueryBuilderImpl.d.ts +49 -0
  92. package/types/components/QueryBuilderItem/QueryBuilderItem.d.ts +5 -0
  93. package/types/components/QueryBuilderRow/QueryBuilderRow.d.ts +12 -0
  94. package/types/components/ToolBarAnimation/ToolBarAnimation.d.ts +3 -0
  95. package/types/components/format/format.d.ts +26 -0
  96. package/types/components/format/sqlFormat.d.ts +5 -0
  97. package/types/components/format/sqlSafeFormat.d.ts +6 -0
  98. package/types/components/format/xmlFormat.d.ts +5 -0
  99. package/types/components/helpers/actions.d.ts +63 -0
  100. package/types/components/helpers/constants.d.ts +3 -0
  101. package/types/components/helpers/dependencies.d.ts +1 -0
  102. package/types/components/helpers/selectors.d.ts +20 -0
  103. package/types/components/helpers/store.d.ts +144 -0
  104. package/types/components/helpers/types.d.ts +50 -0
  105. package/types/index.d.ts +2 -0
  106. package/types/propTypes.d.ts +156 -0
  107. package/dist/cjs/DSQueryBuilder.js +0 -118
  108. package/dist/cjs/DSQueryBuilder.js.map +0 -7
  109. package/dist/cjs/components/AndOrController/AndOrController.js +0 -208
  110. package/dist/cjs/components/AndOrController/AndOrController.js.map +0 -7
  111. package/dist/cjs/components/ConditionController/ConditionController.js +0 -116
  112. package/dist/cjs/components/ConditionController/ConditionController.js.map +0 -7
  113. package/dist/cjs/components/DisplayOutput/DisplayOutput.js +0 -92
  114. package/dist/cjs/components/DisplayOutput/DisplayOutput.js.map +0 -7
  115. package/dist/cjs/components/DragContainerController/DragContainerController.js +0 -65
  116. package/dist/cjs/components/DragContainerController/DragContainerController.js.map +0 -7
  117. package/dist/cjs/components/DragControllerRow/DragControllerRow.js +0 -51
  118. package/dist/cjs/components/DragControllerRow/DragControllerRow.js.map +0 -7
  119. package/dist/cjs/components/FieldControllerRow/FieldControllerRow.js +0 -55
  120. package/dist/cjs/components/FieldControllerRow/FieldControllerRow.js.map +0 -7
  121. package/dist/cjs/components/Nestable/Nestable.js +0 -254
  122. package/dist/cjs/components/Nestable/Nestable.js.map +0 -7
  123. package/dist/cjs/components/Nestable/NestableItem.js +0 -119
  124. package/dist/cjs/components/Nestable/NestableItem.js.map +0 -7
  125. package/dist/cjs/components/Nestable/actions/events.js +0 -143
  126. package/dist/cjs/components/Nestable/actions/events.js.map +0 -7
  127. package/dist/cjs/components/Nestable/actions/getItemOptions.js +0 -49
  128. package/dist/cjs/components/Nestable/actions/getItemOptions.js.map +0 -7
  129. package/dist/cjs/components/Nestable/actions/getPaths.js +0 -119
  130. package/dist/cjs/components/Nestable/actions/getPaths.js.map +0 -7
  131. package/dist/cjs/components/Nestable/actions/index.js +0 -42
  132. package/dist/cjs/components/Nestable/actions/index.js.map +0 -7
  133. package/dist/cjs/components/Nestable/actions/moveItem.js +0 -56
  134. package/dist/cjs/components/Nestable/actions/moveItem.js.map +0 -7
  135. package/dist/cjs/components/Nestable/actions/paths.js +0 -119
  136. package/dist/cjs/components/Nestable/actions/paths.js.map +0 -7
  137. package/dist/cjs/components/Nestable/actions/tryDecreaseDepth.js +0 -51
  138. package/dist/cjs/components/Nestable/actions/tryDecreaseDepth.js.map +0 -7
  139. package/dist/cjs/components/Nestable/actions/tryIncreaseDepth.js +0 -51
  140. package/dist/cjs/components/Nestable/actions/tryIncreaseDepth.js.map +0 -7
  141. package/dist/cjs/components/Nestable/index.js +0 -36
  142. package/dist/cjs/components/Nestable/index.js.map +0 -7
  143. package/dist/cjs/components/QueryBuilderContext/QueryBuilderContext.js +0 -36
  144. package/dist/cjs/components/QueryBuilderContext/QueryBuilderContext.js.map +0 -7
  145. package/dist/cjs/components/QueryBuilderImpl.js +0 -225
  146. package/dist/cjs/components/QueryBuilderImpl.js.map +0 -7
  147. package/dist/cjs/components/QueryBuilderItem/QueryBuilderItem.js +0 -92
  148. package/dist/cjs/components/QueryBuilderItem/QueryBuilderItem.js.map +0 -7
  149. package/dist/cjs/components/QueryBuilderRow/QueryBuilderRow.js +0 -219
  150. package/dist/cjs/components/QueryBuilderRow/QueryBuilderRow.js.map +0 -7
  151. package/dist/cjs/components/ToolBarAnimation/ToolBarAnimation.js +0 -42
  152. package/dist/cjs/components/ToolBarAnimation/ToolBarAnimation.js.map +0 -7
  153. package/dist/cjs/components/format/format.js +0 -59
  154. package/dist/cjs/components/format/format.js.map +0 -7
  155. package/dist/cjs/components/format/sqlFormat.js +0 -94
  156. package/dist/cjs/components/format/sqlFormat.js.map +0 -7
  157. package/dist/cjs/components/format/sqlSafeFormat.js +0 -98
  158. package/dist/cjs/components/format/sqlSafeFormat.js.map +0 -7
  159. package/dist/cjs/components/format/xmlFormat.js +0 -94
  160. package/dist/cjs/components/format/xmlFormat.js.map +0 -7
  161. package/dist/cjs/components/helpers/actions.js +0 -242
  162. package/dist/cjs/components/helpers/actions.js.map +0 -7
  163. package/dist/cjs/components/helpers/constants.js +0 -39
  164. package/dist/cjs/components/helpers/constants.js.map +0 -7
  165. package/dist/cjs/components/helpers/dependencies.js +0 -69
  166. package/dist/cjs/components/helpers/dependencies.js.map +0 -7
  167. package/dist/cjs/components/helpers/selectors.js +0 -161
  168. package/dist/cjs/components/helpers/selectors.js.map +0 -7
  169. package/dist/cjs/components/helpers/store.js +0 -159
  170. package/dist/cjs/components/helpers/store.js.map +0 -7
  171. package/dist/cjs/components/helpers/types.js +0 -92
  172. package/dist/cjs/components/helpers/types.js.map +0 -7
  173. package/dist/cjs/index.js +0 -36
  174. package/dist/cjs/index.js.map +0 -7
  175. package/dist/cjs/propTypes.js +0 -105
  176. package/dist/cjs/propTypes.js.map +0 -7
  177. package/dist/esm/DSQueryBuilder.js +0 -105
  178. package/dist/esm/DSQueryBuilder.js.map +0 -7
  179. package/dist/esm/components/AndOrController/AndOrController.js +0 -179
  180. package/dist/esm/components/AndOrController/AndOrController.js.map +0 -7
  181. package/dist/esm/components/ConditionController/ConditionController.js +0 -87
  182. package/dist/esm/components/ConditionController/ConditionController.js.map +0 -7
  183. package/dist/esm/components/DisplayOutput/DisplayOutput.js +0 -63
  184. package/dist/esm/components/DisplayOutput/DisplayOutput.js.map +0 -7
  185. package/dist/esm/components/DragContainerController/DragContainerController.js +0 -36
  186. package/dist/esm/components/DragContainerController/DragContainerController.js.map +0 -7
  187. package/dist/esm/components/DragControllerRow/DragControllerRow.js +0 -22
  188. package/dist/esm/components/DragControllerRow/DragControllerRow.js.map +0 -7
  189. package/dist/esm/components/FieldControllerRow/FieldControllerRow.js +0 -26
  190. package/dist/esm/components/FieldControllerRow/FieldControllerRow.js.map +0 -7
  191. package/dist/esm/components/Nestable/Nestable.js +0 -241
  192. package/dist/esm/components/Nestable/Nestable.js.map +0 -7
  193. package/dist/esm/components/Nestable/NestableItem.js +0 -90
  194. package/dist/esm/components/Nestable/NestableItem.js.map +0 -7
  195. package/dist/esm/components/Nestable/actions/events.js +0 -119
  196. package/dist/esm/components/Nestable/actions/events.js.map +0 -7
  197. package/dist/esm/components/Nestable/actions/getItemOptions.js.map +0 -7
  198. package/dist/esm/components/Nestable/actions/getPaths.js.map +0 -7
  199. package/dist/esm/components/Nestable/actions/index.js +0 -13
  200. package/dist/esm/components/Nestable/actions/index.js.map +0 -7
  201. package/dist/esm/components/Nestable/actions/moveItem.js +0 -27
  202. package/dist/esm/components/Nestable/actions/moveItem.js.map +0 -7
  203. package/dist/esm/components/Nestable/actions/paths.js.map +0 -7
  204. package/dist/esm/components/Nestable/actions/tryDecreaseDepth.js +0 -22
  205. package/dist/esm/components/Nestable/actions/tryDecreaseDepth.js.map +0 -7
  206. package/dist/esm/components/Nestable/actions/tryIncreaseDepth.js.map +0 -7
  207. package/dist/esm/components/Nestable/index.js +0 -7
  208. package/dist/esm/components/Nestable/index.js.map +0 -7
  209. package/dist/esm/components/QueryBuilderContext/QueryBuilderContext.js +0 -7
  210. package/dist/esm/components/QueryBuilderContext/QueryBuilderContext.js.map +0 -7
  211. package/dist/esm/components/QueryBuilderImpl.js +0 -196
  212. package/dist/esm/components/QueryBuilderImpl.js.map +0 -7
  213. package/dist/esm/components/QueryBuilderItem/QueryBuilderItem.js +0 -63
  214. package/dist/esm/components/QueryBuilderItem/QueryBuilderItem.js.map +0 -7
  215. package/dist/esm/components/QueryBuilderRow/QueryBuilderRow.js +0 -190
  216. package/dist/esm/components/QueryBuilderRow/QueryBuilderRow.js.map +0 -7
  217. package/dist/esm/components/ToolBarAnimation/ToolBarAnimation.js +0 -13
  218. package/dist/esm/components/ToolBarAnimation/ToolBarAnimation.js.map +0 -7
  219. package/dist/esm/components/format/format.js +0 -30
  220. package/dist/esm/components/format/format.js.map +0 -7
  221. package/dist/esm/components/format/sqlFormat.js +0 -65
  222. package/dist/esm/components/format/sqlFormat.js.map +0 -7
  223. package/dist/esm/components/format/sqlSafeFormat.js +0 -69
  224. package/dist/esm/components/format/sqlSafeFormat.js.map +0 -7
  225. package/dist/esm/components/format/xmlFormat.js +0 -65
  226. package/dist/esm/components/format/xmlFormat.js.map +0 -7
  227. package/dist/esm/components/helpers/actions.js +0 -217
  228. package/dist/esm/components/helpers/actions.js.map +0 -7
  229. package/dist/esm/components/helpers/constants.js +0 -10
  230. package/dist/esm/components/helpers/constants.js.map +0 -7
  231. package/dist/esm/components/helpers/dependencies.js +0 -40
  232. package/dist/esm/components/helpers/dependencies.js.map +0 -7
  233. package/dist/esm/components/helpers/selectors.js +0 -132
  234. package/dist/esm/components/helpers/selectors.js.map +0 -7
  235. package/dist/esm/components/helpers/store.js +0 -143
  236. package/dist/esm/components/helpers/store.js.map +0 -7
  237. package/dist/esm/components/helpers/types.js +0 -63
  238. package/dist/esm/components/helpers/types.js.map +0 -7
  239. package/dist/esm/index.js +0 -7
  240. package/dist/esm/index.js.map +0 -7
  241. package/dist/esm/propTypes.js +0 -76
  242. package/dist/esm/propTypes.js.map +0 -7
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('core-js/modules/esnext.async-iterator.filter.js');
6
+ require('core-js/modules/esnext.iterator.constructor.js');
7
+ require('core-js/modules/esnext.iterator.filter.js');
8
+ require('core-js/modules/esnext.async-iterator.for-each.js');
9
+ require('core-js/modules/esnext.iterator.for-each.js');
10
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
11
+ var React = require('react');
12
+ var GrowRight = require('@elliemae/ds-shared/Animations/GrowRight');
13
+
14
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
15
+
16
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
17
+ var GrowRight__default = /*#__PURE__*/_interopDefaultLegacy(GrowRight);
18
+
19
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
20
+
21
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
22
+
23
+ const ToolBarAnimation = props => /*#__PURE__*/React.createElement(GrowRight__default["default"], _objectSpread(_objectSpread({}, props), {}, {
24
+ key: "popper-animation-key",
25
+ from: 0.5,
26
+ to: 1
27
+ }));
28
+
29
+ exports.ToolBarAnimation = ToolBarAnimation;
@@ -0,0 +1,33 @@
1
+ 'use strict';
2
+
3
+ var sqlFormat = require('./sqlFormat.js');
4
+ var xmlFormat = require('./xmlFormat.js');
5
+ var sqlSafeFormat = require('./sqlSafeFormat.js');
6
+
7
+ class QueryBuilderFormat {
8
+ constructor() {
9
+ this.format = {
10
+ defaultFormat: query => query,
11
+ sqlFormat: sqlFormat.sqlFormat,
12
+ xmlFormat: xmlFormat.xmlFormat,
13
+ sqlSafeFormat: sqlSafeFormat.sqlSafeFormat
14
+ };
15
+ this.currentFormat = 'sqlFormat';
16
+
17
+ this.setDefaultFormat = formatName => {
18
+ if (this.format[formatName]) this.currentFormat = formatName;
19
+ };
20
+
21
+ this.addFormat = (formatName, format) => this.format[formatName] = format;
22
+
23
+ this.run = (query, formatName) => {
24
+ if (this.format[formatName]) return this.format[formatName](query);
25
+ return this.format[this.currentFormat](query);
26
+ };
27
+ }
28
+
29
+ }
30
+
31
+ var QueryBuilderFormat$1 = new QueryBuilderFormat();
32
+
33
+ module.exports = QueryBuilderFormat$1;
@@ -0,0 +1,73 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('core-js/modules/esnext.async-iterator.map.js');
6
+ require('core-js/modules/esnext.iterator.map.js');
7
+ var types = require('../helpers/types.js');
8
+
9
+ const conditionSql = (condition, value) => {
10
+ const {
11
+ EQUAL,
12
+ NOT_EQUAL,
13
+ GREATER_THAN,
14
+ LESS_THAN,
15
+ CONTAINS,
16
+ NOT_CONTAINS,
17
+ BETWEEN,
18
+ GREATER_THAN_OR_EQUAL,
19
+ LESS_THAN_OR_EQUAL,
20
+ START_WITH
21
+ } = types.QB_OPERATOR_TYPES;
22
+ if (condition === EQUAL) return " = '".concat(value, "'");
23
+ if (condition === NOT_EQUAL) return " <> '".concat(value, "'");
24
+ if (condition === GREATER_THAN) return " > ".concat(value);
25
+ if (condition === LESS_THAN) return " < ".concat(value);
26
+ if (condition === CONTAINS) return " LIKE '%".concat(value, "%'");
27
+ if (condition === NOT_CONTAINS) return " NOT LIKE '%".concat(value, "%'");
28
+ if (condition === BETWEEN) return " BETWEEN ".concat(value[0], " AND ").concat(value[1], " ");
29
+ if (condition === GREATER_THAN_OR_EQUAL) return " >= ".concat(value);
30
+ if (condition === LESS_THAN_OR_EQUAL) return " <= ".concat(value);
31
+ if (condition === START_WITH) return " LIKE '".concat(value, "%'");
32
+ return condition;
33
+ };
34
+
35
+ const renderFilterSQl = filter => {
36
+ const {
37
+ field,
38
+ operator,
39
+ value
40
+ } = filter.element;
41
+ return "".concat(field, " ").concat(conditionSql(operator, value) || '');
42
+ };
43
+
44
+ const sqlFormat = _ref => {
45
+ let {
46
+ main,
47
+ mapGroups,
48
+ items
49
+ } = _ref;
50
+
51
+ const groupSql = (item, idGroup) => {
52
+ if (idGroup === main) {
53
+ const groupCondition = mapGroups[idGroup].condition === true ? 'AND' : 'OR';
54
+ return " ( ".concat(filterSql(item, groupCondition), " ) "); // eslint-disable-line
55
+ }
56
+
57
+ const groupCondition = item.element.condition === true ? 'AND' : 'OR';
58
+ return " ( ".concat(filterSql(item.children, groupCondition), " ) "); // eslint-disable-line
59
+ };
60
+
61
+ const filterSql = (filters, groupCondition) => {
62
+ const filterGroup = filters.map(filter => {
63
+ if (filter.element.type === 'filter') return " ".concat(renderFilterSQl(filter), " ");
64
+ return " ".concat(groupSql(filter) || '', " ");
65
+ });
66
+ return filterGroup.join(groupCondition);
67
+ };
68
+
69
+ const sql = " FROM [TABLE_NAME] WHERE ".concat(groupSql(items, main) || '', " ");
70
+ return sql;
71
+ };
72
+
73
+ exports.sqlFormat = sqlFormat;
@@ -0,0 +1,81 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('core-js/modules/esnext.async-iterator.map.js');
6
+ require('core-js/modules/esnext.iterator.map.js');
7
+ var types = require('../helpers/types.js');
8
+
9
+ const specialChar = /[ !@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/;
10
+
11
+ const conditionSql = (condition, value) => {
12
+ const {
13
+ EQUAL,
14
+ NOT_EQUAL,
15
+ GREATER_THAN,
16
+ LESS_THAN,
17
+ CONTAINS,
18
+ NOT_CONTAINS,
19
+ BETWEEN,
20
+ GREATER_THAN_OR_EQUAL,
21
+ LESS_THAN_OR_EQUAL,
22
+ START_WITH
23
+ } = types.QB_OPERATOR_TYPES; // eslint-disable-next-line no-restricted-globals
24
+
25
+ const valueDisplay = isNaN(value) ? "'".concat(value, "'") : value;
26
+ if (condition === EQUAL) return " = ".concat(valueDisplay);
27
+ if (condition === NOT_EQUAL) return " <> ".concat(valueDisplay);
28
+ if (condition === GREATER_THAN) return " > ".concat(valueDisplay);
29
+ if (condition === LESS_THAN) return " < ".concat(valueDisplay);
30
+ if (condition === CONTAINS) return " LIKE '%".concat(value, "%'");
31
+ if (condition === NOT_CONTAINS) return " NOT LIKE '%".concat(value, "%'");
32
+ if (condition === BETWEEN) return " BETWEEN ".concat(value[0], " AND ").concat(value[1], " ");
33
+ if (condition === GREATER_THAN_OR_EQUAL) return " >= ".concat(value);
34
+ if (condition === LESS_THAN_OR_EQUAL) return " <= ".concat(value);
35
+ if (condition === START_WITH) return " LIKE '".concat(value, "%'");
36
+ return condition;
37
+ };
38
+
39
+ const renderFilterSQl = filter => {
40
+ const {
41
+ field,
42
+ operator,
43
+ value
44
+ } = filter.element; // eslint-disable-next-line no-restricted-globals
45
+
46
+ const fieldDisplay = // eslint-disable-next-line no-restricted-globals
47
+ /[.]/.test(field) || !isNaN(field) ? "\\\"".concat(field, "\\\"") : field;
48
+ return "".concat(fieldDisplay, " ").concat(conditionSql(operator, value) || '');
49
+ };
50
+
51
+ const sqlSafeFormat = _ref => {
52
+ let {
53
+ main,
54
+ mapGroups,
55
+ items
56
+ } = _ref;
57
+
58
+ const groupSql = (item, idGroup) => {
59
+ if (idGroup === main) {
60
+ const groupCondition = mapGroups[idGroup].condition === true ? 'AND' : 'OR';
61
+ return " ( ".concat(filterSql(item, groupCondition), " ) "); // eslint-disable-line
62
+ }
63
+
64
+ const groupCondition = item.element.condition === true ? 'AND' : 'OR';
65
+ return " ( ".concat(filterSql(item.children, groupCondition), " ) "); // eslint-disable-line
66
+ };
67
+
68
+ const filterSql = (filters, groupCondition) => {
69
+ const filterGroup = filters.map(filter => {
70
+ if (filter.element.type === 'filter') return " ".concat(renderFilterSQl(filter), " ");
71
+ return " ".concat(groupSql(filter) || '', " ");
72
+ });
73
+ return filterGroup.join(groupCondition);
74
+ };
75
+
76
+ const sql = " FROM [TABLE_NAME] WHERE ".concat(groupSql(items, main) || '', " ");
77
+ return sql;
78
+ };
79
+
80
+ exports.specialChar = specialChar;
81
+ exports.sqlSafeFormat = sqlSafeFormat;
@@ -0,0 +1,73 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('core-js/modules/esnext.async-iterator.map.js');
6
+ require('core-js/modules/esnext.iterator.map.js');
7
+ var types = require('../helpers/types.js');
8
+
9
+ const conditionSql = (condition, value) => {
10
+ const {
11
+ EQUAL,
12
+ NOT_EQUAL,
13
+ GREATER_THAN,
14
+ LESS_THAN,
15
+ CONTAINS,
16
+ NOT_CONTAINS,
17
+ BETWEEN,
18
+ GREATER_THAN_OR_EQUAL,
19
+ LESS_THAN_OR_EQUAL,
20
+ START_WITH
21
+ } = types.QB_OPERATOR_TYPES;
22
+ if (condition === EQUAL) return "<condition>EQUAL</condition><value>".concat(value, "</value>");
23
+ if (condition === NOT_EQUAL) return "<condition>NOT_EQUAL</condition><value>".concat(value, "</value>");
24
+ if (condition === GREATER_THAN) return "<condition>GREATER_THAN</condition><value>".concat(value, "</value>");
25
+ if (condition === LESS_THAN) return "<condition>LESS_THAN</condition><value>".concat(value, "</value>");
26
+ if (condition === CONTAINS) return "<condition>LIKE</condition><value>".concat(value, "</value>");
27
+ if (condition === NOT_CONTAINS) return "<condition>NOT_LIKE</condition><value>".concat(value, "</value>");
28
+ if (condition === BETWEEN) return "<condition>NOT_LIKE</condition><value><from>".concat(value[0], "</from><to>").concat(value[1], "</to></value>");
29
+ if (condition === GREATER_THAN_OR_EQUAL) return "<condition>GREATER_THAN_OR_EQUAL</condition><value>".concat(value, "</value>");
30
+ if (condition === LESS_THAN_OR_EQUAL) return "<condition>LESS_THAN_OR_EQUAL</condition><value>".concat(value, "</value>");
31
+ if (condition === START_WITH) return "<condition>GREATER_THAN</condition><value>".concat(value, "</value>");
32
+ return condition;
33
+ };
34
+
35
+ const renderFilterSQl = filter => {
36
+ const {
37
+ field,
38
+ operator,
39
+ value
40
+ } = filter.element;
41
+ return "<filter><field>".concat(field, "</field>").concat(conditionSql(operator, value) || '', "</filter>");
42
+ };
43
+
44
+ const xmlFormat = _ref => {
45
+ let {
46
+ main,
47
+ mapGroups,
48
+ items
49
+ } = _ref;
50
+
51
+ const groupXML = (item, idGroup) => {
52
+ if (idGroup === main) {
53
+ const groupCondition = mapGroups[idGroup].condition === true ? 'AND' : 'OR';
54
+ return "<group value=\"".concat(groupCondition, "\">").concat(filterXML(item), "</group>"); // eslint-disable-line
55
+ }
56
+
57
+ const groupCondition = item.element.condition === true ? 'AND' : 'OR';
58
+ return "<group value=\"".concat(groupCondition, "\">").concat(filterXML(item.children), "</group>"); // eslint-disable-line
59
+ };
60
+
61
+ const filterXML = filters => {
62
+ const filterGroup = filters.map(filter => {
63
+ if (filter.element.type === 'filter') return "".concat(renderFilterSQl(filter) || '', " ");
64
+ return " ".concat(groupXML(filter), " ");
65
+ });
66
+ return filterGroup.join('');
67
+ };
68
+
69
+ const xml = "<xml><query>".concat(groupXML(items, main) || '', "</query></xml>");
70
+ return xml;
71
+ };
72
+
73
+ exports.xmlFormat = xmlFormat;
@@ -0,0 +1,277 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
+ require('core-js/modules/esnext.async-iterator.find.js');
7
+ require('core-js/modules/esnext.iterator.constructor.js');
8
+ require('core-js/modules/esnext.iterator.find.js');
9
+ require('core-js/modules/esnext.async-iterator.for-each.js');
10
+ require('core-js/modules/esnext.iterator.for-each.js');
11
+ require('core-js/modules/esnext.async-iterator.filter.js');
12
+ require('core-js/modules/esnext.iterator.filter.js');
13
+ require('core-js/modules/esnext.async-iterator.map.js');
14
+ require('core-js/modules/esnext.iterator.map.js');
15
+ var types = require('./types.js');
16
+
17
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
18
+
19
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
20
+
21
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
22
+
23
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
24
+ /**
25
+ * this is injected. instance of QBStore
26
+ *
27
+ * @param {*} idGroup: UUID
28
+ * @param idGroup
29
+ */
30
+
31
+ const createNewFilter = function (idGroup) {
32
+ const idFilter = "filter_".concat(new Date().getTime(), "_").concat(Math.random().toString(36).substring(7));
33
+ return {
34
+ idGroup,
35
+ field: '',
36
+ condition: '',
37
+ value: '',
38
+ idFilter,
39
+ type: types.QB_DRAG_TYPES.FILTER
40
+ };
41
+ };
42
+ /**
43
+ * this is injected. instance of QBStore
44
+ *
45
+ * @param {*} parentIdGroup: UUID
46
+ * @param parentIdGroup
47
+ */
48
+
49
+ const createNewGroup = function (parentIdGroup) {
50
+ const idGroup = "group_".concat(new Date().getTime(), "_").concat(Math.random().toString(36).substring(7));
51
+ return {
52
+ parentIdGroup,
53
+ idGroup,
54
+ condition: types.QB_GROUP_CONDITION_TYPES.AND,
55
+ type: types.QB_DRAG_TYPES.GROUP
56
+ };
57
+ };
58
+ /**
59
+ * this is injected. instance of QBStore
60
+ *
61
+ * @param {*} newFilter
62
+ */
63
+
64
+ const addFilterToMap = function (newFilter) {
65
+ this.mapFilters = _objectSpread(_objectSpread({}, this.mapFilters), {}, {
66
+ [newFilter.idFilter]: newFilter
67
+ });
68
+ };
69
+ /**
70
+ * this is injected. instance of QBStore
71
+ *
72
+ * @param {*} newFilter
73
+ * @param newGroup
74
+ */
75
+
76
+ const addGroupToMap = function (newGroup) {
77
+ this.mapGroups = _objectSpread(_objectSpread({}, this.mapGroups), {}, {
78
+ [newGroup.idGroup]: _objectSpread({}, newGroup)
79
+ });
80
+ };
81
+ const addFilterToItem = function (item, newFilter) {
82
+ item.children.push({
83
+ id: newFilter.idFilter,
84
+ element: newFilter,
85
+ children: []
86
+ });
87
+ };
88
+ const addFilterToMainItem = function (items, newFilter) {
89
+ items.push({
90
+ id: newFilter.idFilter,
91
+ element: newFilter,
92
+ children: []
93
+ });
94
+ };
95
+ const findInChilds = function (childs, filterId) {
96
+ const found = childs.find(_ref => {
97
+ let {
98
+ id
99
+ } = _ref;
100
+ return id === filterId;
101
+ });
102
+
103
+ if (!found) {
104
+ let findInChild;
105
+ childs.forEach(item => {
106
+ if (!findInChild) findInChild = findInChilds(item.children, filterId);
107
+ });
108
+ if (findInChild) return findInChild;
109
+ }
110
+
111
+ return found;
112
+ };
113
+ const findItemFilterById = function (filterId) {
114
+ return findInChilds(this.items, filterId);
115
+ };
116
+ const findParentWithFilterId = function (childs, filterId) {
117
+ const found = childs.find(_ref2 => {
118
+ let {
119
+ id
120
+ } = _ref2;
121
+ return id === filterId;
122
+ });
123
+
124
+ if (!found) {
125
+ let findInChild;
126
+ childs.forEach(item => {
127
+ if (!findInChild) findInChild = findParentWithFilterId(item.children, filterId);
128
+ });
129
+ if (findInChild) return findInChild;
130
+ }
131
+
132
+ return childs;
133
+ };
134
+ const findParentFilterById = function (filterId) {
135
+ return findParentWithFilterId(this.items, filterId);
136
+ };
137
+ const filterInChildren = function (childs, filterId, mainId) {
138
+ if (childs.children) {
139
+ childs.children = childs.children.filter(_ref3 => {
140
+ let {
141
+ id
142
+ } = _ref3;
143
+ return id !== filterId;
144
+ });
145
+ childs.children = childs.children.forEach(item => filterInChildren(item.children, filterId));
146
+ return childs;
147
+ } // main
148
+
149
+
150
+ if (childs.length > 1) childs = childs.filter(_ref4 => {
151
+ let {
152
+ id
153
+ } = _ref4;
154
+ return id !== filterId;
155
+ }); // https://jira.elliemae.io/browse/PUI-1252
156
+
157
+ if (childs.length === 0 && mainId) {
158
+ const emptyFilter = createNewFilter.call(this, mainId);
159
+ addFilterToMainItem.call(this, childs, emptyFilter);
160
+ }
161
+
162
+ childs.forEach(item => item.children = filterInChildren(item.children, filterId));
163
+ return childs;
164
+ };
165
+ const removeFilterItem = function (filterId) {
166
+ this.items = filterInChildren(this.items, filterId, this.main);
167
+ };
168
+ const addGroupFilterToItem = function (idGroup, idFilter, newGroup) {
169
+ const child = findItemFilterById.call(this, idFilter);
170
+
171
+ const copy = _objectSpread({}, child);
172
+
173
+ if (copy.element.type === 'group') {
174
+ copy.element.parentIdGroup = newGroup.idGroup;
175
+ } else {
176
+ copy.element.idGroup = newGroup.idGroup;
177
+ }
178
+
179
+ child.id = newGroup.idGroup;
180
+ child.element = newGroup;
181
+ child.children = [copy];
182
+ };
183
+ const unGroupFilterToItem = function (idGroup) {
184
+ const group = findItemFilterById.call(this, idGroup);
185
+
186
+ if (group.element.parentIdGroup === this.main) {
187
+ const index = this.items.map(item => item.id).indexOf(idGroup);
188
+ const tmp = [];
189
+ tmp.splice.apply(this.items, [index, 1].concat(group.children));
190
+ this.items.forEach(item => {
191
+ if (item.element.type === 'group') {
192
+ item.element.parentIdGroup = this.main;
193
+ } else {
194
+ item.element.idGroup = this.main;
195
+ }
196
+ });
197
+ } else {
198
+ const parent = findItemFilterById.call(this, group.element.parentIdGroup);
199
+ const index = parent.children.map(item => item.id).indexOf(idGroup);
200
+ const tmp = [];
201
+ tmp.splice.apply(parent.children, [index, 1].concat(group.children));
202
+ parent.children.forEach(item => {
203
+ if (item.element.type === 'group') {
204
+ item.element.parentIdGroup = parent.id;
205
+ } else {
206
+ item.element.idGroup = parent.id;
207
+ }
208
+ });
209
+ }
210
+ };
211
+ const changeGroupOperator = function (idGroup, value) {
212
+ const group = findItemFilterById.call(this, idGroup);
213
+
214
+ if (idGroup !== this.main) {
215
+ group.element.condition = value;
216
+ }
217
+ };
218
+ const changeFilterItem = function (_ref5) {
219
+ let {
220
+ idFilter,
221
+ field,
222
+ value,
223
+ operator,
224
+ additionalInfo,
225
+ target,
226
+ fieldsSharedActions: {
227
+ onFieldChange,
228
+ onOperatorChange,
229
+ onValueChange
230
+ }
231
+ } = _ref5;
232
+ const child = findItemFilterById.call(this, idFilter);
233
+ if (field || field === '' || typeof field === 'boolean') child.element.field = field;
234
+ if (operator) child.element.operator = operator;
235
+ if (value || value === '' || typeof value === 'boolean') child.element.value = value;
236
+ if (additionalInfo) child.element.additionalInfo = additionalInfo; // shared fields actions
237
+
238
+ if (target === 'field') {
239
+ onFieldChange.forEach(_ref6 => {
240
+ let {
241
+ action
242
+ } = _ref6;
243
+ if (action === types.QB_FIELD_SHARED_ACTIONS.RESET_FIELD) child.element.field = null;else if (action === types.QB_FIELD_SHARED_ACTIONS.RESET_OPERATOR) child.element.operator = null;else if (action === types.QB_FIELD_SHARED_ACTIONS.RESET_VALUE) child.element.value = null;
244
+ });
245
+ } else if (target === 'operator') {
246
+ onOperatorChange.forEach(_ref7 => {
247
+ let {
248
+ action
249
+ } = _ref7;
250
+ if (action === types.QB_FIELD_SHARED_ACTIONS.RESET_FIELD) child.element.field = null;else if (action === types.QB_FIELD_SHARED_ACTIONS.RESET_OPERATOR) child.element.operator = null;else if (action === types.QB_FIELD_SHARED_ACTIONS.RESET_VALUE) child.element.value = null;
251
+ });
252
+ } else if (target === 'value') {
253
+ onValueChange.forEach(_ref8 => {
254
+ let {
255
+ action
256
+ } = _ref8;
257
+ if (action === types.QB_FIELD_SHARED_ACTIONS.RESET_FIELD) child.element.field = null;else if (action === types.QB_FIELD_SHARED_ACTIONS.RESET_OPERATOR) child.element.operator = null;else if (action === types.QB_FIELD_SHARED_ACTIONS.RESET_VALUE) child.element.value = null;
258
+ });
259
+ }
260
+ };
261
+
262
+ exports.addFilterToItem = addFilterToItem;
263
+ exports.addFilterToMainItem = addFilterToMainItem;
264
+ exports.addFilterToMap = addFilterToMap;
265
+ exports.addGroupFilterToItem = addGroupFilterToItem;
266
+ exports.addGroupToMap = addGroupToMap;
267
+ exports.changeFilterItem = changeFilterItem;
268
+ exports.changeGroupOperator = changeGroupOperator;
269
+ exports.createNewFilter = createNewFilter;
270
+ exports.createNewGroup = createNewGroup;
271
+ exports.filterInChildren = filterInChildren;
272
+ exports.findInChilds = findInChilds;
273
+ exports.findItemFilterById = findItemFilterById;
274
+ exports.findParentFilterById = findParentFilterById;
275
+ exports.findParentWithFilterId = findParentWithFilterId;
276
+ exports.removeFilterItem = removeFilterItem;
277
+ exports.unGroupFilterToItem = unGroupFilterToItem;
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const DELAY_CLOSE = 0.1;
6
+ const DELAY_OPEN = 0.1;
7
+ const TOOLBAR_ANIMATION_DURATION = 50;
8
+
9
+ exports.DELAY_CLOSE = DELAY_CLOSE;
10
+ exports.DELAY_OPEN = DELAY_OPEN;
11
+ exports.TOOLBAR_ANIMATION_DURATION = TOOLBAR_ANIMATION_DURATION;
@@ -0,0 +1,84 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('core-js/modules/esnext.async-iterator.every.js');
6
+ require('core-js/modules/esnext.iterator.constructor.js');
7
+ require('core-js/modules/esnext.iterator.every.js');
8
+ require('core-js/modules/esnext.async-iterator.some.js');
9
+ require('core-js/modules/esnext.iterator.some.js');
10
+ require('core-js/modules/esnext.async-iterator.reduce.js');
11
+ require('core-js/modules/esnext.iterator.reduce.js');
12
+ var lodash = require('lodash');
13
+ var operators = require('@elliemae/ds-utilities/operators');
14
+ var types = require('./types.js');
15
+
16
+ function _interopNamespace(e) {
17
+ if (e && e.__esModule) return e;
18
+ var n = Object.create(null);
19
+ if (e) {
20
+ Object.keys(e).forEach(function (k) {
21
+ if (k !== 'default') {
22
+ var d = Object.getOwnPropertyDescriptor(e, k);
23
+ Object.defineProperty(n, k, d.get ? d : {
24
+ enumerable: true,
25
+ get: function () { return e[k]; }
26
+ });
27
+ }
28
+ });
29
+ }
30
+ n["default"] = e;
31
+ return Object.freeze(n);
32
+ }
33
+
34
+ var operators__namespace = /*#__PURE__*/_interopNamespace(operators);
35
+
36
+ const resolveCondition = function (condition, state) {
37
+ let resolveBy = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : types.QB_GROUP_CONDITION_TYPES.AND;
38
+ if (condition.length === 0 || !condition) return true; // resolve by AND: all the conditions must be true
39
+
40
+ if (resolveBy) {
41
+ return condition.every(rule => {
42
+ const {
43
+ source: sourceRule,
44
+ operator: operatorRule,
45
+ value: valueRule
46
+ } = rule;
47
+ if (typeof operatorRule === "function") return operatorRule(lodash.get(state, sourceRule), valueRule);
48
+ return operators__namespace[operatorRule](lodash.get(state, sourceRule), valueRule);
49
+ });
50
+ } // resolve by OR: at least one condition must be true
51
+
52
+
53
+ return condition.some(rule => {
54
+ const {
55
+ source: sourceRule,
56
+ operator: operatorRule,
57
+ value: valueRule
58
+ } = rule;
59
+ return operators__namespace[operatorRule](state[sourceRule], valueRule);
60
+ });
61
+ };
62
+
63
+ const resolveDependencies = (state, fields) => {
64
+ const fieldsToRender = fields.reduce((result, _ref) => {
65
+ let {
66
+ target,
67
+ component,
68
+ condition,
69
+ resolveBy,
70
+ validation,
71
+ handleWidth
72
+ } = _ref;
73
+ if (resolveCondition(condition, state, resolveBy)) result.push({
74
+ target,
75
+ component,
76
+ validation,
77
+ handleWidth
78
+ });
79
+ return result;
80
+ }, []);
81
+ return fieldsToRender;
82
+ };
83
+
84
+ exports.resolveDependencies = resolveDependencies;