@elliemae/ds-query-builder 2.0.0-next.0 → 2.0.0-next.13

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 (58) hide show
  1. package/cjs/DSQueryBuilder.js +60 -56
  2. package/cjs/components/AndOrController/AndOrController.js +21 -27
  3. package/cjs/components/ConditionController/ConditionController.js +27 -33
  4. package/cjs/components/DisplayOutput/DisplayOutput.js +18 -17
  5. package/cjs/components/DragContainerController/DragContainerController.js +14 -16
  6. package/cjs/components/DragControllerRow/DragControllerRow.js +10 -6
  7. package/cjs/components/FieldControllerRow/FieldControllerRow.js +22 -22
  8. package/cjs/components/Nestable/Nestable.js +27 -13
  9. package/cjs/components/Nestable/NestableItem.js +21 -13
  10. package/cjs/components/Nestable/actions/events.js +6 -1
  11. package/cjs/components/Nestable/actions/getPaths.js +11 -1
  12. package/cjs/components/Nestable/actions/moveItem.js +12 -5
  13. package/cjs/components/Nestable/actions/paths.js +15 -3
  14. package/cjs/components/QueryBuilderImpl.js +6 -1
  15. package/cjs/components/QueryBuilderItem/QueryBuilderItem.js +28 -20
  16. package/cjs/components/QueryBuilderRow/QueryBuilderRow.js +40 -30
  17. package/cjs/components/ToolBarAnimation/ToolBarAnimation.js +5 -0
  18. package/cjs/components/format/sqlFormat.js +25 -23
  19. package/cjs/components/format/sqlSafeFormat.js +27 -25
  20. package/cjs/components/format/xmlFormat.js +25 -23
  21. package/cjs/components/helpers/actions.js +61 -36
  22. package/cjs/components/helpers/dependencies.js +17 -8
  23. package/cjs/components/helpers/store.js +5 -0
  24. package/cjs/index.js +2 -1
  25. package/cjs/propTypes.js +1 -3
  26. package/esm/DSQueryBuilder.js +60 -57
  27. package/esm/components/AndOrController/AndOrController.js +11 -13
  28. package/esm/components/ConditionController/ConditionController.js +21 -23
  29. package/esm/components/DisplayOutput/DisplayOutput.js +14 -11
  30. package/esm/components/DragContainerController/DragContainerController.js +11 -11
  31. package/esm/components/DragControllerRow/DragControllerRow.js +7 -2
  32. package/esm/components/FieldControllerRow/FieldControllerRow.js +22 -20
  33. package/esm/components/Nestable/Nestable.js +26 -12
  34. package/esm/components/Nestable/NestableItem.js +21 -13
  35. package/esm/components/Nestable/actions/events.js +6 -1
  36. package/esm/components/Nestable/actions/getPaths.js +11 -1
  37. package/esm/components/Nestable/actions/moveItem.js +12 -5
  38. package/esm/components/Nestable/actions/paths.js +15 -3
  39. package/esm/components/QueryBuilderImpl.js +6 -1
  40. package/esm/components/QueryBuilderItem/QueryBuilderItem.js +28 -20
  41. package/esm/components/QueryBuilderRow/QueryBuilderRow.js +40 -29
  42. package/esm/components/ToolBarAnimation/ToolBarAnimation.js +5 -0
  43. package/esm/components/format/sqlFormat.js +25 -23
  44. package/esm/components/format/sqlSafeFormat.js +27 -25
  45. package/esm/components/format/xmlFormat.js +25 -23
  46. package/esm/components/helpers/actions.js +61 -36
  47. package/esm/components/helpers/dependencies.js +17 -8
  48. package/esm/components/helpers/store.js +5 -0
  49. package/esm/index.js +1 -1
  50. package/esm/propTypes.js +1 -3
  51. package/package.json +9 -7
  52. package/types/DSQueryBuilder.d.ts +1 -1
  53. package/types/components/AndOrController/AndOrController.d.ts +4 -4
  54. package/types/components/ConditionController/ConditionController.d.ts +2 -2
  55. package/types/components/DragContainerController/DragContainerController.d.ts +3 -3
  56. package/types/components/DragControllerRow/DragControllerRow.d.ts +2 -2
  57. package/cjs/package.json +0 -7
  58. package/esm/package.json +0 -7
@@ -1,8 +1,16 @@
1
+ import 'core-js/modules/esnext.async-iterator.filter.js';
2
+ import 'core-js/modules/esnext.iterator.constructor.js';
3
+ import 'core-js/modules/esnext.iterator.filter.js';
4
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
5
+ import 'core-js/modules/esnext.iterator.for-each.js';
1
6
  import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
2
7
  import _jsx from '@babel/runtime/helpers/esm/jsx';
8
+ import 'core-js/modules/web.dom-collections.iterator.js';
9
+ import 'core-js/modules/esnext.async-iterator.map.js';
10
+ import 'core-js/modules/esnext.iterator.map.js';
3
11
  import React, { Component } from 'react';
4
- import AlertsDetail from '@elliemae/ds-icons/AlertsDetail';
5
- import { DSTooltipV2 } from '@elliemae/ds-basic/Tooltip';
12
+ import { AlertsDetail } from '@elliemae/ds-icons';
13
+ import { DSTooltipV3 } from '@elliemae/ds-tooltip';
6
14
  import { convertPropToCssClassName } from '@elliemae/ds-classnames';
7
15
  import { resolveDependencies } from '../helpers/dependencies.js';
8
16
  import ConditionController from '../ConditionController/ConditionController.js';
@@ -13,25 +21,26 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
13
21
 
14
22
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
15
23
 
16
- const RenderField = ({
17
- target,
18
- component,
19
- valueProp,
20
- additionalInfo,
21
- handleMouseEnterInput,
22
- handleMouseLeaveInput,
23
- onChangeHandler,
24
- hasError
25
- }) => {
24
+ const RenderField = _ref => {
25
+ let {
26
+ target,
27
+ component,
28
+ valueProp,
29
+ additionalInfo,
30
+ handleMouseEnterInput,
31
+ handleMouseLeaveInput,
32
+ onChangeHandler,
33
+ hasError
34
+ } = _ref;
26
35
  const ref = React.useRef();
27
- const id = React.useMemo(() => `el_${String.fromCharCode(65 + Math.floor(Math.random() * 26))}`, []);
36
+ const id = React.useMemo(() => "el_".concat(String.fromCharCode(65 + Math.floor(Math.random() * 26))), []);
28
37
  return /*#__PURE__*/_jsx("div", {
29
- className: `em-ds-query-builder-row-input child-type-${target} ${hasError && hasError.error ? 'row-input-error' : ''}`,
38
+ className: "em-ds-query-builder-row-input child-type-".concat(target, " ").concat(hasError && hasError.error ? 'row-input-error' : ''),
30
39
  onMouseDownCapture: () => {
31
40
  var _ref$current;
32
41
 
33
42
  // eslint-disable-next-line no-underscore-dangle
34
- const _refInput = (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.querySelector(`#${id}`);
43
+ const _refInput = (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.querySelector("#".concat(id));
35
44
 
36
45
  if (_refInput && _refInput.focus) setTimeout(_refInput.focus());
37
46
  handleMouseEnterInput();
@@ -50,20 +59,22 @@ const RenderField = ({
50
59
  'aria-invalid': Boolean(hasError)
51
60
  })
52
61
  }), hasError && hasError.errorMessage ? /*#__PURE__*/_jsx("div", {
62
+ style: {
63
+ width: '40px'
64
+ }
65
+ }, void 0, /*#__PURE__*/_jsx(DSTooltipV3, {
66
+ text: hasError.errorMessage
67
+ }, void 0, /*#__PURE__*/_jsx("div", {
53
68
  tabIndex: 0,
54
69
  className: "row-icon-alert",
55
70
  "data-testid": "qb-error-state-icon",
56
- role: "alert",
57
- "aria-label": hasError.errorMessage
58
- }, void 0, /*#__PURE__*/_jsx(DSTooltipV2, {
59
- title: hasError.errorMessage,
60
- triggerComponent: /*#__PURE__*/_jsx(AlertsDetail, {
61
- width: 20,
62
- height: 20,
63
- color: ['danger', 900],
64
- title: hasError.message
65
- })
66
- })) : null); // return React.useMemo(
71
+ role: "alert"
72
+ }, void 0, /*#__PURE__*/_jsx(AlertsDetail, {
73
+ width: 20,
74
+ height: 20,
75
+ color: ['danger', 900],
76
+ title: hasError.errorMessage
77
+ })))) : null); // return React.useMemo(
67
78
  // () => (
68
79
  // <div
69
80
  // className={`em-ds-query-builder-row-input child-type-${target}`}
@@ -152,8 +163,8 @@ class QueryBuilderRow extends Component {
152
163
  idGroup,
153
164
  additionalInfo: _objectSpread(_objectSpread({}, additionalInfo), {}, {
154
165
  [target]: extraData,
155
- [`${target}_error`]: hasError,
156
- [`${target}_touched`]: true
166
+ ["".concat(target, "_error")]: hasError,
167
+ ["".concat(target, "_touched")]: true
157
168
  }),
158
169
  target
159
170
  });
@@ -208,7 +219,7 @@ class QueryBuilderRow extends Component {
208
219
  const {
209
220
  [target]: valueProp
210
221
  } = this.props;
211
- const isTouched = additionalInfo && additionalInfo[`${target}_touched`];
222
+ const isTouched = additionalInfo && additionalInfo["".concat(target, "_touched")];
212
223
  const hasError = renderField && renderField.validation ? renderField.validation(valueProp, {
213
224
  field,
214
225
  operator,
@@ -1,3 +1,8 @@
1
+ import 'core-js/modules/esnext.async-iterator.filter.js';
2
+ import 'core-js/modules/esnext.iterator.constructor.js';
3
+ import 'core-js/modules/esnext.iterator.filter.js';
4
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
5
+ import 'core-js/modules/esnext.iterator.for-each.js';
1
6
  import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
2
7
  import { createElement } from 'react';
3
8
  import GrowRight from '@elliemae/ds-shared/Animations/GrowRight';
@@ -1,7 +1,7 @@
1
+ import 'core-js/modules/esnext.async-iterator.map.js';
2
+ import 'core-js/modules/esnext.iterator.map.js';
1
3
  import { QB_OPERATOR_TYPES } from '../helpers/types.js';
2
4
 
3
- /* eslint-disable complexity */
4
-
5
5
  const conditionSql = (condition, value) => {
6
6
  const {
7
7
  EQUAL,
@@ -15,16 +15,16 @@ const conditionSql = (condition, value) => {
15
15
  LESS_THAN_OR_EQUAL,
16
16
  START_WITH
17
17
  } = QB_OPERATOR_TYPES;
18
- if (condition === EQUAL) return ` = '${value}'`;
19
- if (condition === NOT_EQUAL) return ` <> '${value}'`;
20
- if (condition === GREATER_THAN) return ` > ${value}`;
21
- if (condition === LESS_THAN) return ` < ${value}`;
22
- if (condition === CONTAINS) return ` LIKE '%${value}%'`;
23
- if (condition === NOT_CONTAINS) return ` NOT LIKE '%${value}%'`;
24
- if (condition === BETWEEN) return ` BETWEEN ${value[0]} AND ${value[1]} `;
25
- if (condition === GREATER_THAN_OR_EQUAL) return ` >= ${value}`;
26
- if (condition === LESS_THAN_OR_EQUAL) return ` <= ${value}`;
27
- if (condition === START_WITH) return ` LIKE '${value}%'`;
18
+ if (condition === EQUAL) return " = '".concat(value, "'");
19
+ if (condition === NOT_EQUAL) return " <> '".concat(value, "'");
20
+ if (condition === GREATER_THAN) return " > ".concat(value);
21
+ if (condition === LESS_THAN) return " < ".concat(value);
22
+ if (condition === CONTAINS) return " LIKE '%".concat(value, "%'");
23
+ if (condition === NOT_CONTAINS) return " NOT LIKE '%".concat(value, "%'");
24
+ if (condition === BETWEEN) return " BETWEEN ".concat(value[0], " AND ").concat(value[1], " ");
25
+ if (condition === GREATER_THAN_OR_EQUAL) return " >= ".concat(value);
26
+ if (condition === LESS_THAN_OR_EQUAL) return " <= ".concat(value);
27
+ if (condition === START_WITH) return " LIKE '".concat(value, "%'");
28
28
  return condition;
29
29
  };
30
30
 
@@ -34,33 +34,35 @@ const renderFilterSQl = filter => {
34
34
  operator,
35
35
  value
36
36
  } = filter.element;
37
- return `${field} ${conditionSql(operator, value) || ''}`;
37
+ return "".concat(field, " ").concat(conditionSql(operator, value) || '');
38
38
  };
39
39
 
40
- const sqlFormat = ({
41
- main,
42
- mapGroups,
43
- items
44
- }) => {
40
+ const sqlFormat = _ref => {
41
+ let {
42
+ main,
43
+ mapGroups,
44
+ items
45
+ } = _ref;
46
+
45
47
  const groupSql = (item, idGroup) => {
46
48
  if (idGroup === main) {
47
49
  const groupCondition = mapGroups[idGroup].condition === true ? 'AND' : 'OR';
48
- return ` ( ${filterSql(item, groupCondition)} ) `; // eslint-disable-line
50
+ return " ( ".concat(filterSql(item, groupCondition), " ) "); // eslint-disable-line
49
51
  }
50
52
 
51
53
  const groupCondition = item.element.condition === true ? 'AND' : 'OR';
52
- return ` ( ${filterSql(item.children, groupCondition)} ) `; // eslint-disable-line
54
+ return " ( ".concat(filterSql(item.children, groupCondition), " ) "); // eslint-disable-line
53
55
  };
54
56
 
55
57
  const filterSql = (filters, groupCondition) => {
56
58
  const filterGroup = filters.map(filter => {
57
- if (filter.element.type === 'filter') return ` ${renderFilterSQl(filter)} `;
58
- return ` ${groupSql(filter) || ''} `;
59
+ if (filter.element.type === 'filter') return " ".concat(renderFilterSQl(filter), " ");
60
+ return " ".concat(groupSql(filter) || '', " ");
59
61
  });
60
62
  return filterGroup.join(groupCondition);
61
63
  };
62
64
 
63
- const sql = ` FROM [TABLE_NAME] WHERE ${groupSql(items, main) || ''} `;
65
+ const sql = " FROM [TABLE_NAME] WHERE ".concat(groupSql(items, main) || '', " ");
64
66
  return sql;
65
67
  };
66
68
 
@@ -1,7 +1,7 @@
1
+ import 'core-js/modules/esnext.async-iterator.map.js';
2
+ import 'core-js/modules/esnext.iterator.map.js';
1
3
  import { QB_OPERATOR_TYPES } from '../helpers/types.js';
2
4
 
3
- /* eslint-disable complexity */
4
-
5
5
  const specialChar = /[ !@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/;
6
6
 
7
7
  const conditionSql = (condition, value) => {
@@ -18,17 +18,17 @@ const conditionSql = (condition, value) => {
18
18
  START_WITH
19
19
  } = QB_OPERATOR_TYPES; // eslint-disable-next-line no-restricted-globals
20
20
 
21
- const valueDisplay = isNaN(value) ? `'${value}'` : value;
22
- if (condition === EQUAL) return ` = ${valueDisplay}`;
23
- if (condition === NOT_EQUAL) return ` <> ${valueDisplay}`;
24
- if (condition === GREATER_THAN) return ` > ${valueDisplay}`;
25
- if (condition === LESS_THAN) return ` < ${valueDisplay}`;
26
- if (condition === CONTAINS) return ` LIKE '%${value}%'`;
27
- if (condition === NOT_CONTAINS) return ` NOT LIKE '%${value}%'`;
28
- if (condition === BETWEEN) return ` BETWEEN ${value[0]} AND ${value[1]} `;
29
- if (condition === GREATER_THAN_OR_EQUAL) return ` >= ${value}`;
30
- if (condition === LESS_THAN_OR_EQUAL) return ` <= ${value}`;
31
- if (condition === START_WITH) return ` LIKE '${value}%'`;
21
+ const valueDisplay = isNaN(value) ? "'".concat(value, "'") : value;
22
+ if (condition === EQUAL) return " = ".concat(valueDisplay);
23
+ if (condition === NOT_EQUAL) return " <> ".concat(valueDisplay);
24
+ if (condition === GREATER_THAN) return " > ".concat(valueDisplay);
25
+ if (condition === LESS_THAN) return " < ".concat(valueDisplay);
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
32
  return condition;
33
33
  };
34
34
 
@@ -40,34 +40,36 @@ const renderFilterSQl = filter => {
40
40
  } = filter.element; // eslint-disable-next-line no-restricted-globals
41
41
 
42
42
  const fieldDisplay = // eslint-disable-next-line no-restricted-globals
43
- /[.]/.test(field) || !isNaN(field) ? `\\"${field}\\"` : field;
44
- return `${fieldDisplay} ${conditionSql(operator, value) || ''}`;
43
+ /[.]/.test(field) || !isNaN(field) ? "\\\"".concat(field, "\\\"") : field;
44
+ return "".concat(fieldDisplay, " ").concat(conditionSql(operator, value) || '');
45
45
  };
46
46
 
47
- const sqlSafeFormat = ({
48
- main,
49
- mapGroups,
50
- items
51
- }) => {
47
+ const sqlSafeFormat = _ref => {
48
+ let {
49
+ main,
50
+ mapGroups,
51
+ items
52
+ } = _ref;
53
+
52
54
  const groupSql = (item, idGroup) => {
53
55
  if (idGroup === main) {
54
56
  const groupCondition = mapGroups[idGroup].condition === true ? 'AND' : 'OR';
55
- return ` ( ${filterSql(item, groupCondition)} ) `; // eslint-disable-line
57
+ return " ( ".concat(filterSql(item, groupCondition), " ) "); // eslint-disable-line
56
58
  }
57
59
 
58
60
  const groupCondition = item.element.condition === true ? 'AND' : 'OR';
59
- return ` ( ${filterSql(item.children, groupCondition)} ) `; // eslint-disable-line
61
+ return " ( ".concat(filterSql(item.children, groupCondition), " ) "); // eslint-disable-line
60
62
  };
61
63
 
62
64
  const filterSql = (filters, groupCondition) => {
63
65
  const filterGroup = filters.map(filter => {
64
- if (filter.element.type === 'filter') return ` ${renderFilterSQl(filter)} `;
65
- return ` ${groupSql(filter) || ''} `;
66
+ if (filter.element.type === 'filter') return " ".concat(renderFilterSQl(filter), " ");
67
+ return " ".concat(groupSql(filter) || '', " ");
66
68
  });
67
69
  return filterGroup.join(groupCondition);
68
70
  };
69
71
 
70
- const sql = ` FROM [TABLE_NAME] WHERE ${groupSql(items, main) || ''} `;
72
+ const sql = " FROM [TABLE_NAME] WHERE ".concat(groupSql(items, main) || '', " ");
71
73
  return sql;
72
74
  };
73
75
 
@@ -1,7 +1,7 @@
1
+ import 'core-js/modules/esnext.async-iterator.map.js';
2
+ import 'core-js/modules/esnext.iterator.map.js';
1
3
  import { QB_OPERATOR_TYPES } from '../helpers/types.js';
2
4
 
3
- /* eslint-disable complexity */
4
-
5
5
  const conditionSql = (condition, value) => {
6
6
  const {
7
7
  EQUAL,
@@ -15,16 +15,16 @@ const conditionSql = (condition, value) => {
15
15
  LESS_THAN_OR_EQUAL,
16
16
  START_WITH
17
17
  } = QB_OPERATOR_TYPES;
18
- if (condition === EQUAL) return `<condition>EQUAL</condition><value>${value}</value>`;
19
- if (condition === NOT_EQUAL) return `<condition>NOT_EQUAL</condition><value>${value}</value>`;
20
- if (condition === GREATER_THAN) return `<condition>GREATER_THAN</condition><value>${value}</value>`;
21
- if (condition === LESS_THAN) return `<condition>LESS_THAN</condition><value>${value}</value>`;
22
- if (condition === CONTAINS) return `<condition>LIKE</condition><value>${value}</value>`;
23
- if (condition === NOT_CONTAINS) return `<condition>NOT_LIKE</condition><value>${value}</value>`;
24
- if (condition === BETWEEN) return `<condition>NOT_LIKE</condition><value><from>${value[0]}</from><to>${value[1]}</to></value>`;
25
- if (condition === GREATER_THAN_OR_EQUAL) return `<condition>GREATER_THAN_OR_EQUAL</condition><value>${value}</value>`;
26
- if (condition === LESS_THAN_OR_EQUAL) return `<condition>LESS_THAN_OR_EQUAL</condition><value>${value}</value>`;
27
- if (condition === START_WITH) return `<condition>GREATER_THAN</condition><value>${value}</value>`;
18
+ if (condition === EQUAL) return "<condition>EQUAL</condition><value>".concat(value, "</value>");
19
+ if (condition === NOT_EQUAL) return "<condition>NOT_EQUAL</condition><value>".concat(value, "</value>");
20
+ if (condition === GREATER_THAN) return "<condition>GREATER_THAN</condition><value>".concat(value, "</value>");
21
+ if (condition === LESS_THAN) return "<condition>LESS_THAN</condition><value>".concat(value, "</value>");
22
+ if (condition === CONTAINS) return "<condition>LIKE</condition><value>".concat(value, "</value>");
23
+ if (condition === NOT_CONTAINS) return "<condition>NOT_LIKE</condition><value>".concat(value, "</value>");
24
+ if (condition === BETWEEN) return "<condition>NOT_LIKE</condition><value><from>".concat(value[0], "</from><to>").concat(value[1], "</to></value>");
25
+ if (condition === GREATER_THAN_OR_EQUAL) return "<condition>GREATER_THAN_OR_EQUAL</condition><value>".concat(value, "</value>");
26
+ if (condition === LESS_THAN_OR_EQUAL) return "<condition>LESS_THAN_OR_EQUAL</condition><value>".concat(value, "</value>");
27
+ if (condition === START_WITH) return "<condition>GREATER_THAN</condition><value>".concat(value, "</value>");
28
28
  return condition;
29
29
  };
30
30
 
@@ -34,33 +34,35 @@ const renderFilterSQl = filter => {
34
34
  operator,
35
35
  value
36
36
  } = filter.element;
37
- return `<filter><field>${field}</field>${conditionSql(operator, value) || ''}</filter>`;
37
+ return "<filter><field>".concat(field, "</field>").concat(conditionSql(operator, value) || '', "</filter>");
38
38
  };
39
39
 
40
- const xmlFormat = ({
41
- main,
42
- mapGroups,
43
- items
44
- }) => {
40
+ const xmlFormat = _ref => {
41
+ let {
42
+ main,
43
+ mapGroups,
44
+ items
45
+ } = _ref;
46
+
45
47
  const groupXML = (item, idGroup) => {
46
48
  if (idGroup === main) {
47
49
  const groupCondition = mapGroups[idGroup].condition === true ? 'AND' : 'OR';
48
- return `<group value="${groupCondition}">${filterXML(item)}</group>`; // eslint-disable-line
50
+ return "<group value=\"".concat(groupCondition, "\">").concat(filterXML(item), "</group>"); // eslint-disable-line
49
51
  }
50
52
 
51
53
  const groupCondition = item.element.condition === true ? 'AND' : 'OR';
52
- return `<group value="${groupCondition}">${filterXML(item.children)}</group>`; // eslint-disable-line
54
+ return "<group value=\"".concat(groupCondition, "\">").concat(filterXML(item.children), "</group>"); // eslint-disable-line
53
55
  };
54
56
 
55
57
  const filterXML = filters => {
56
58
  const filterGroup = filters.map(filter => {
57
- if (filter.element.type === 'filter') return `${renderFilterSQl(filter) || ''} `;
58
- return ` ${groupXML(filter)} `;
59
+ if (filter.element.type === 'filter') return "".concat(renderFilterSQl(filter) || '', " ");
60
+ return " ".concat(groupXML(filter), " ");
59
61
  });
60
62
  return filterGroup.join('');
61
63
  };
62
64
 
63
- const xml = `<xml><query>${groupXML(items, main) || ''}</query></xml>`;
65
+ const xml = "<xml><query>".concat(groupXML(items, main) || '', "</query></xml>");
64
66
  return xml;
65
67
  };
66
68
 
@@ -1,4 +1,13 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
2
+ import 'core-js/modules/esnext.async-iterator.find.js';
3
+ import 'core-js/modules/esnext.iterator.constructor.js';
4
+ import 'core-js/modules/esnext.iterator.find.js';
5
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
6
+ import 'core-js/modules/esnext.iterator.for-each.js';
7
+ import 'core-js/modules/esnext.async-iterator.filter.js';
8
+ import 'core-js/modules/esnext.iterator.filter.js';
9
+ import 'core-js/modules/esnext.async-iterator.map.js';
10
+ import 'core-js/modules/esnext.iterator.map.js';
2
11
  import { QB_DRAG_TYPES, QB_GROUP_CONDITION_TYPES, QB_FIELD_SHARED_ACTIONS } from './types.js';
3
12
 
4
13
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
@@ -12,7 +21,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
12
21
  */
13
22
 
14
23
  const createNewFilter = function (idGroup) {
15
- const idFilter = `filter_${new Date().getTime()}_${Math.random().toString(36).substring(7)}`;
24
+ const idFilter = "filter_".concat(new Date().getTime(), "_").concat(Math.random().toString(36).substring(7));
16
25
  return {
17
26
  idGroup,
18
27
  field: '',
@@ -30,7 +39,7 @@ const createNewFilter = function (idGroup) {
30
39
  */
31
40
 
32
41
  const createNewGroup = function (parentIdGroup) {
33
- const idGroup = `group_${new Date().getTime()}_${Math.random().toString(36).substring(7)}`;
42
+ const idGroup = "group_".concat(new Date().getTime(), "_").concat(Math.random().toString(36).substring(7));
34
43
  return {
35
44
  parentIdGroup,
36
45
  idGroup,
@@ -76,9 +85,12 @@ const addFilterToMainItem = function (items, newFilter) {
76
85
  });
77
86
  };
78
87
  const findInChilds = function (childs, filterId) {
79
- const found = childs.find(({
80
- id
81
- }) => id === filterId);
88
+ const found = childs.find(_ref => {
89
+ let {
90
+ id
91
+ } = _ref;
92
+ return id === filterId;
93
+ });
82
94
 
83
95
  if (!found) {
84
96
  let findInChild;
@@ -94,9 +106,12 @@ const findItemFilterById = function (filterId) {
94
106
  return findInChilds(this.items, filterId);
95
107
  };
96
108
  const findParentWithFilterId = function (childs, filterId) {
97
- const found = childs.find(({
98
- id
99
- }) => id === filterId);
109
+ const found = childs.find(_ref2 => {
110
+ let {
111
+ id
112
+ } = _ref2;
113
+ return id === filterId;
114
+ });
100
115
 
101
116
  if (!found) {
102
117
  let findInChild;
@@ -113,17 +128,23 @@ const findParentFilterById = function (filterId) {
113
128
  };
114
129
  const filterInChildren = function (childs, filterId, mainId) {
115
130
  if (childs.children) {
116
- childs.children = childs.children.filter(({
117
- id
118
- }) => id !== filterId);
131
+ childs.children = childs.children.filter(_ref3 => {
132
+ let {
133
+ id
134
+ } = _ref3;
135
+ return id !== filterId;
136
+ });
119
137
  childs.children = childs.children.forEach(item => filterInChildren(item.children, filterId));
120
138
  return childs;
121
139
  } // main
122
140
 
123
141
 
124
- if (childs.length > 1) childs = childs.filter(({
125
- id
126
- }) => id !== filterId); // https://jira.elliemae.io/browse/PUI-1252
142
+ if (childs.length > 1) childs = childs.filter(_ref4 => {
143
+ let {
144
+ id
145
+ } = _ref4;
146
+ return id !== filterId;
147
+ }); // https://jira.elliemae.io/browse/PUI-1252
127
148
 
128
149
  if (childs.length === 0 && mainId) {
129
150
  const emptyFilter = createNewFilter.call(this, mainId);
@@ -186,19 +207,20 @@ const changeGroupOperator = function (idGroup, value) {
186
207
  group.element.condition = value;
187
208
  }
188
209
  };
189
- const changeFilterItem = function ({
190
- idFilter,
191
- field,
192
- value,
193
- operator,
194
- additionalInfo,
195
- target,
196
- fieldsSharedActions: {
197
- onFieldChange,
198
- onOperatorChange,
199
- onValueChange
200
- }
201
- }) {
210
+ const changeFilterItem = function (_ref5) {
211
+ let {
212
+ idFilter,
213
+ field,
214
+ value,
215
+ operator,
216
+ additionalInfo,
217
+ target,
218
+ fieldsSharedActions: {
219
+ onFieldChange,
220
+ onOperatorChange,
221
+ onValueChange
222
+ }
223
+ } = _ref5;
202
224
  const child = findItemFilterById.call(this, idFilter);
203
225
  if (field || field === '' || typeof field === 'boolean') child.element.field = field;
204
226
  if (operator) child.element.operator = operator;
@@ -206,21 +228,24 @@ const changeFilterItem = function ({
206
228
  if (additionalInfo) child.element.additionalInfo = additionalInfo; // shared fields actions
207
229
 
208
230
  if (target === 'field') {
209
- onFieldChange.forEach(({
210
- action
211
- }) => {
231
+ onFieldChange.forEach(_ref6 => {
232
+ let {
233
+ action
234
+ } = _ref6;
212
235
  if (action === QB_FIELD_SHARED_ACTIONS.RESET_FIELD) child.element.field = null;else if (action === QB_FIELD_SHARED_ACTIONS.RESET_OPERATOR) child.element.operator = null;else if (action === QB_FIELD_SHARED_ACTIONS.RESET_VALUE) child.element.value = null;
213
236
  });
214
237
  } else if (target === 'operator') {
215
- onOperatorChange.forEach(({
216
- action
217
- }) => {
238
+ onOperatorChange.forEach(_ref7 => {
239
+ let {
240
+ action
241
+ } = _ref7;
218
242
  if (action === QB_FIELD_SHARED_ACTIONS.RESET_FIELD) child.element.field = null;else if (action === QB_FIELD_SHARED_ACTIONS.RESET_OPERATOR) child.element.operator = null;else if (action === QB_FIELD_SHARED_ACTIONS.RESET_VALUE) child.element.value = null;
219
243
  });
220
244
  } else if (target === 'value') {
221
- onValueChange.forEach(({
222
- action
223
- }) => {
245
+ onValueChange.forEach(_ref8 => {
246
+ let {
247
+ action
248
+ } = _ref8;
224
249
  if (action === QB_FIELD_SHARED_ACTIONS.RESET_FIELD) child.element.field = null;else if (action === QB_FIELD_SHARED_ACTIONS.RESET_OPERATOR) child.element.operator = null;else if (action === QB_FIELD_SHARED_ACTIONS.RESET_VALUE) child.element.value = null;
225
250
  });
226
251
  }
@@ -1,8 +1,16 @@
1
+ import 'core-js/modules/esnext.async-iterator.every.js';
2
+ import 'core-js/modules/esnext.iterator.constructor.js';
3
+ import 'core-js/modules/esnext.iterator.every.js';
4
+ import 'core-js/modules/esnext.async-iterator.some.js';
5
+ import 'core-js/modules/esnext.iterator.some.js';
6
+ import 'core-js/modules/esnext.async-iterator.reduce.js';
7
+ import 'core-js/modules/esnext.iterator.reduce.js';
1
8
  import { get } from 'lodash';
2
9
  import * as operators from '@elliemae/ds-utilities/operators';
3
10
  import { QB_GROUP_CONDITION_TYPES } from './types.js';
4
11
 
5
- const resolveCondition = (condition, state, resolveBy = QB_GROUP_CONDITION_TYPES.AND) => {
12
+ const resolveCondition = function (condition, state) {
13
+ let resolveBy = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : QB_GROUP_CONDITION_TYPES.AND;
6
14
  if (condition.length === 0 || !condition) return true; // resolve by AND: all the conditions must be true
7
15
 
8
16
  if (resolveBy) {
@@ -29,13 +37,14 @@ const resolveCondition = (condition, state, resolveBy = QB_GROUP_CONDITION_TYPES
29
37
  };
30
38
 
31
39
  const resolveDependencies = (state, fields) => {
32
- const fieldsToRender = fields.reduce((result, {
33
- target,
34
- component,
35
- condition,
36
- resolveBy,
37
- validation
38
- }) => {
40
+ const fieldsToRender = fields.reduce((result, _ref) => {
41
+ let {
42
+ target,
43
+ component,
44
+ condition,
45
+ resolveBy,
46
+ validation
47
+ } = _ref;
39
48
  if (resolveCondition(condition, state, resolveBy)) result.push({
40
49
  target,
41
50
  component,
@@ -1,4 +1,9 @@
1
+ import 'core-js/modules/esnext.async-iterator.filter.js';
2
+ import 'core-js/modules/esnext.iterator.filter.js';
1
3
  import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
4
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
5
+ import 'core-js/modules/esnext.iterator.constructor.js';
6
+ import 'core-js/modules/esnext.iterator.for-each.js';
2
7
  import { createNewFilter, createNewGroup, addFilterToMap, addFilterToMainItem, findItemFilterById, addFilterToItem, removeFilterItem, addGroupFilterToItem, addGroupToMap, unGroupFilterToItem, changeGroupOperator, changeFilterItem } from './actions.js';
3
8
  import QueryBuilderFormat from '../format/format.js';
4
9
 
package/esm/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { DSQueryBuilderWithSchema, default } from './DSQueryBuilder.js';
1
+ export { DSQueryBuilder, DSQueryBuilderWithSchema, DSQueryBuilder as default } from './DSQueryBuilder.js';
2
2
  export { QB_ADD_FILTER_METHOD_TYPES, QB_DRAG_LOCATIONS, QB_DRAG_TYPES, QB_EXPORT_FORMAT_TYPES, QB_FIELD_SHARED_ACTIONS, QB_FIELD_TYPES, QB_GROUP_CONDITION_TYPES, QB_GROUP_FILTER_METHOD_TYPES, QB_OPERATOR_TYPES } from './components/helpers/types.js';
3
3
  export { QB_DEFAULT_VALUES_OPTIONS, QB_FIELD_OPTIONS, QB_LOAN_VALUES_OPTIONS, QB_OPERATOR_OPTIONS, QB_SUBJECT_VALUES_OPTIONS } from './components/helpers/selectors.js';
4
4
  export { default as QueryBuilderFormat } from './components/format/format.js';
package/esm/propTypes.js CHANGED
@@ -73,9 +73,7 @@ const props = {
73
73
 
74
74
  /** remove filter callback */
75
75
  onRemoveFilter: PropTypes.func.description('remove filter callback'),
76
- displayFixedOutput: PropTypes.string.description(`Label for fixed output.Using this props it will ignore 'displayOutput' and 'displayOutputLabel'
77
- and it will always render the output without the ability to close it.
78
- `).defaultValue(''),
76
+ displayFixedOutput: PropTypes.string.description("Label for fixed output.Using this props it will ignore 'displayOutput' and 'displayOutputLabel' \n and it will always render the output without the ability to close it. \n ").defaultValue(''),
79
77
 
80
78
  /** show output */
81
79
  displayOutput: PropTypes.bool.description('show output'),