@carbon/ibm-products 2.42.1-canary.7 → 2.42.1-canary.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. package/css/index-full-carbon.css +302 -9
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +1 -1
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon.css +302 -9
  6. package/css/index-without-carbon.css.map +1 -1
  7. package/css/index-without-carbon.min.css +1 -1
  8. package/css/index-without-carbon.min.css.map +1 -1
  9. package/css/index.css +302 -9
  10. package/css/index.css.map +1 -1
  11. package/css/index.min.css +1 -1
  12. package/css/index.min.css.map +1 -1
  13. package/es/components/ConditionBuilder/ConditionBlock/ConditionBlock.d.ts +6 -0
  14. package/es/components/ConditionBuilder/ConditionBlock/ConditionBlock.js +74 -33
  15. package/es/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.d.ts +15 -1
  16. package/es/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.js +95 -12
  17. package/es/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.d.ts +11 -2
  18. package/es/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js +27 -9
  19. package/es/components/ConditionBuilder/{ConditionConnector → ConditionBuilderConnector}/ConditionConnector.js +38 -33
  20. package/es/components/ConditionBuilder/ConditionBuilderConnector/GroupConnector.d.ts +2 -0
  21. package/es/components/ConditionBuilder/ConditionBuilderConnector/GroupConnector.js +44 -0
  22. package/es/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.d.ts +5 -0
  23. package/es/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js +95 -14
  24. package/es/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.d.ts +1 -0
  25. package/es/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.js +1 -0
  26. package/es/components/ConditionBuilder/ConditionBuilderContext/translationObject.d.ts +7 -0
  27. package/es/components/ConditionBuilder/ConditionBuilderContext/translationObject.js +8 -1
  28. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +1 -1
  29. package/es/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js +197 -67
  30. package/es/components/ConditionBuilder/ConditionPreview/ConditionPreview.d.ts +10 -0
  31. package/es/components/ConditionBuilder/ConditionPreview/ConditionPreview.js +69 -0
  32. package/es/components/ConditionBuilder/utils/util.d.ts +1 -0
  33. package/lib/components/ConditionBuilder/ConditionBlock/ConditionBlock.d.ts +6 -0
  34. package/lib/components/ConditionBuilder/ConditionBlock/ConditionBlock.js +73 -32
  35. package/lib/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.d.ts +15 -1
  36. package/lib/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.js +92 -9
  37. package/lib/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.d.ts +11 -2
  38. package/lib/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js +26 -8
  39. package/lib/components/ConditionBuilder/{ConditionConnector → ConditionBuilderConnector}/ConditionConnector.js +36 -31
  40. package/lib/components/ConditionBuilder/ConditionBuilderConnector/GroupConnector.d.ts +2 -0
  41. package/lib/components/ConditionBuilder/ConditionBuilderConnector/GroupConnector.js +52 -0
  42. package/lib/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.d.ts +5 -0
  43. package/lib/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js +92 -11
  44. package/lib/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.d.ts +1 -0
  45. package/lib/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.js +1 -0
  46. package/lib/components/ConditionBuilder/ConditionBuilderContext/translationObject.d.ts +7 -0
  47. package/lib/components/ConditionBuilder/ConditionBuilderContext/translationObject.js +8 -1
  48. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +1 -1
  49. package/lib/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js +195 -64
  50. package/lib/components/ConditionBuilder/ConditionPreview/ConditionPreview.d.ts +10 -0
  51. package/lib/components/ConditionBuilder/ConditionPreview/ConditionPreview.js +77 -0
  52. package/lib/components/ConditionBuilder/utils/util.d.ts +1 -0
  53. package/package.json +3 -3
  54. package/scss/components/ConditionBuilder/_condition-builder.scss +21 -1
  55. package/scss/components/ConditionBuilder/styles/_conditionBuilderCondition.scss +22 -3
  56. package/scss/components/ConditionBuilder/styles/_conditionBuilderItem.scss +58 -21
  57. /package/es/components/ConditionBuilder/{ConditionConnector → ConditionBuilderConnector}/ConditionConnector.d.ts +0 -0
  58. /package/lib/components/ConditionBuilder/{ConditionConnector → ConditionBuilderConnector}/ConditionConnector.d.ts +0 -0
@@ -7,7 +7,12 @@ declare function ConditionBuilderContent({ startConditionLabel, conditionBuilder
7
7
  }): import("react/jsx-runtime").JSX.Element;
8
8
  declare namespace ConditionBuilderContent {
9
9
  namespace propTypes {
10
+ let actions: PropTypes.Requireable<(PropTypes.InferProps<{
11
+ id: PropTypes.Requireable<number>;
12
+ label: PropTypes.Requireable<string>;
13
+ }> | null | undefined)[]>;
10
14
  let conditionBuilderRef: PropTypes.Requireable<object>;
15
+ let getActionsState: PropTypes.Requireable<(...args: any[]) => any>;
11
16
  let getConditionState: PropTypes.Validator<(...args: any[]) => any>;
12
17
  let initialState: PropTypes.Requireable<PropTypes.InferProps<{
13
18
  groups: PropTypes.Requireable<(PropTypes.InferProps<{
@@ -17,24 +17,37 @@ var icons = require('@carbon/react/icons');
17
17
  var ConditionGroupBuilder = require('../ConditionGroupBuilder/ConditionGroupBuilder.js');
18
18
  var ConditionBuilderProvider = require('../ConditionBuilderContext/ConditionBuilderProvider.js');
19
19
  var DataConfigs = require('../ConditionBuilderContext/DataConfigs.js');
20
+ var ConditionBuilderButton = require('../ConditionBuilderButton/ConditionBuilderButton.js');
21
+ var uuidv4 = require('../../../global/js/utils/uuidv4.js');
22
+ var ConditionPreview = require('../ConditionPreview/ConditionPreview.js');
23
+ var GroupConnector = require('../ConditionBuilderConnector/GroupConnector.js');
20
24
 
21
25
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
22
26
 
23
27
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
24
28
 
29
+ var _Heading, _GroupConnector, _ConditionPreview;
25
30
  var ConditionBuilderContent = function ConditionBuilderContent(_ref) {
26
31
  var _rootState$groups2;
27
32
  var startConditionLabel = _ref.startConditionLabel,
28
33
  conditionBuilderRef = _ref.conditionBuilderRef,
29
34
  getConditionState = _ref.getConditionState,
30
35
  initialState = _ref.initialState;
36
+ // const { rootState, setRootState, variant, actionState } = useContext(
37
+ // ConditionBuilderContext
38
+ // );
31
39
  var _useContext = React.useContext(ConditionBuilderProvider.ConditionBuilderContext),
32
40
  rootState = _useContext.rootState,
33
- setRootState = _useContext.setRootState;
41
+ setRootState = _useContext.setRootState,
42
+ variant = _useContext.variant;
34
43
  var _useState = React.useState(false),
35
44
  _useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
36
45
  isConditionBuilderActive = _useState2[0],
37
46
  setIsConditionBuilderActive = _useState2[1];
47
+ var _useState3 = React.useState(false),
48
+ _useState4 = _rollupPluginBabelHelpers.slicedToArray(_useState3, 2),
49
+ showConditionGroupPreview = _useState4[0],
50
+ setShowConditionGroupPreview = _useState4[1];
38
51
  React.useEffect(function () {
39
52
  var _rootState$groups;
40
53
  if (rootState !== null && rootState !== void 0 && (_rootState$groups = rootState.groups) !== null && _rootState$groups !== void 0 && _rootState$groups.length) {
@@ -47,7 +60,12 @@ var ConditionBuilderContent = function ConditionBuilderContent(_ref) {
47
60
  }
48
61
 
49
62
  // eslint-disable-next-line react-hooks/exhaustive-deps
50
- }, [rootState, conditionBuilderRef]);
63
+ }, [rootState]);
64
+
65
+ // useEffect(() => {
66
+ // getActionsState?.(actionState);
67
+ // // eslint-disable-next-line react-hooks/exhaustive-deps
68
+ // }, [actionState]);
51
69
  var onStartConditionBuilder = function onStartConditionBuilder() {
52
70
  //when add condition button is clicked.
53
71
  setIsConditionBuilderActive(true);
@@ -71,10 +89,28 @@ var ConditionBuilderContent = function ConditionBuilderContent(_ref) {
71
89
  groups: groups
72
90
  }));
73
91
  };
74
- return /*#__PURE__*/React__default["default"].createElement("div", {
75
- className: "".concat(DataConfigs.blockClass, "__content-container"),
76
- tabIndex: -1
77
- }, !isConditionBuilderActive && /*#__PURE__*/React__default["default"].createElement(react.Button, {
92
+ var addConditionGroupHandler = function addConditionGroupHandler() {
93
+ var newGroup = {
94
+ groupSeparateOperator: 'and',
95
+ // 'or'|'and'|'null',
96
+ groupOperator: 'and',
97
+ //'and|or',
98
+ statement: 'if',
99
+ // 'if|exclude if',
100
+ id: uuidv4["default"](),
101
+ conditions: [{
102
+ property: undefined,
103
+ operator: '',
104
+ value: '',
105
+ popoverToOpen: 'propertyField',
106
+ id: uuidv4["default"]()
107
+ }]
108
+ };
109
+ setRootState(_rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, rootState), {}, {
110
+ groups: [].concat(_rollupPluginBabelHelpers.toConsumableArray(rootState.groups), [newGroup])
111
+ }));
112
+ };
113
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, !isConditionBuilderActive && /*#__PURE__*/React__default["default"].createElement(react.Button, {
78
114
  className: "".concat(DataConfigs.blockClass, "__add-condition-button"),
79
115
  renderIcon: function renderIcon(props) {
80
116
  return /*#__PURE__*/React__default["default"].createElement(icons.Add, _rollupPluginBabelHelpers["extends"]({
@@ -85,10 +121,22 @@ var ConditionBuilderContent = function ConditionBuilderContent(_ref) {
85
121
  kind: "ghost",
86
122
  size: "sm",
87
123
  onClick: onStartConditionBuilder
88
- }, startConditionLabel), rootState && (rootState === null || rootState === void 0 || (_rootState$groups2 = rootState.groups) === null || _rootState$groups2 === void 0 ? void 0 : _rootState$groups2.map(function (eachGroup, groupIndex) {
89
- return /*#__PURE__*/React__default["default"].createElement(ConditionGroupBuilder["default"], {
124
+ }, startConditionLabel), isConditionBuilderActive &&
125
+ /*#__PURE__*/
126
+ // <h5 >Condition</h5>
127
+ React__default["default"].createElement(react.Section, {
128
+ className: "".concat(DataConfigs.blockClass, "__heading"),
129
+ level: 4
130
+ }, _Heading || (_Heading = /*#__PURE__*/React__default["default"].createElement(react.Heading, null, "Condition"))), /*#__PURE__*/React__default["default"].createElement("div", {
131
+ className: "".concat(DataConfigs.blockClass, "__content-container"),
132
+ role: "treegrid",
133
+ "aria-label": "condition builder tree"
134
+ }, rootState && (rootState === null || rootState === void 0 || (_rootState$groups2 = rootState.groups) === null || _rootState$groups2 === void 0 ? void 0 : _rootState$groups2.map(function (eachGroup, groupIndex) {
135
+ return /*#__PURE__*/React__default["default"].createElement("div", {
136
+ key: eachGroup.id,
137
+ className: "".concat(DataConfigs.blockClass, "__group-wrapper")
138
+ }, /*#__PURE__*/React__default["default"].createElement(ConditionGroupBuilder["default"], {
90
139
  className: "".concat(DataConfigs.blockClass, "__group"),
91
- key: groupIndex,
92
140
  aria: {
93
141
  level: 1,
94
142
  posinset: groupIndex * 2 + 1,
@@ -102,15 +150,48 @@ var ConditionBuilderContent = function ConditionBuilderContent(_ref) {
102
150
  onChangeHandler(updatedGroup, groupIndex);
103
151
  },
104
152
  conditionBuilderRef: conditionBuilderRef
105
- });
106
- })));
153
+ }), groupIndex < rootState.groups.length - 1 && (_GroupConnector || (_GroupConnector = /*#__PURE__*/React__default["default"].createElement(GroupConnector["default"], null))));
154
+ })), isConditionBuilderActive && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, variant == 'tree' && /*#__PURE__*/React__default["default"].createElement("div", {
155
+ role: "row",
156
+ tabIndex: -1,
157
+ "aria-level": 1
158
+ }, /*#__PURE__*/React__default["default"].createElement(ConditionBuilderButton.ConditionBuilderButton, {
159
+ renderIcon: icons.TextNewLine,
160
+ onClick: addConditionGroupHandler,
161
+ onMouseEnter: function onMouseEnter() {
162
+ setShowConditionGroupPreview(true);
163
+ },
164
+ onMouseLeave: function onMouseLeave() {
165
+ setShowConditionGroupPreview(false);
166
+ },
167
+ className: "".concat(DataConfigs.blockClass, "__add-condition-group "),
168
+ hideLabel: true,
169
+ label: DataConfigs.translateWithId('add-condition-sub-group'),
170
+ wrapperProps: {
171
+ role: 'gridcell',
172
+ 'aria-label': DataConfigs.translateWithId('add-condition-sub-group')
173
+ }
174
+ })), showConditionGroupPreview && (_ConditionPreview || (_ConditionPreview = /*#__PURE__*/React__default["default"].createElement(ConditionPreview["default"], {
175
+ previewType: "newGroup"
176
+ }))))));
107
177
  };
108
178
  var ConditionBuilderContent$1 = ConditionBuilderContent;
109
179
  ConditionBuilderContent.propTypes = {
180
+ /**
181
+ * optional array of object that give the list of actions.
182
+ */
183
+ actions: index["default"].arrayOf(index["default"].shape({
184
+ id: index["default"].number,
185
+ label: index["default"].string
186
+ })),
110
187
  /**
111
188
  * ref of condition builder
112
189
  */
113
190
  conditionBuilderRef: index["default"].object,
191
+ /**
192
+ * callback functions that will provide the updated action state back.
193
+ */
194
+ getActionsState: index["default"].func,
114
195
  /**
115
196
  * This is a callback function that returns the updated state
116
197
  */
@@ -1,4 +1,5 @@
1
1
  export namespace emptyState {
2
+ let operator: string;
2
3
  let groups: {
3
4
  groupSeparateOperator: null;
4
5
  groupOperator: string;
@@ -19,6 +19,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
19
19
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
20
20
 
21
21
  var emptyState = {
22
+ operator: 'or',
22
23
  groups: [{
23
24
  groupSeparateOperator: null,
24
25
  groupOperator: 'and',
@@ -17,9 +17,12 @@ export namespace translationsObject {
17
17
  after: string;
18
18
  between: string;
19
19
  'add-condition': string;
20
+ 'add-condition-group': string;
21
+ 'add-condition-sub-group': string;
20
22
  condition: string;
21
23
  property: string;
22
24
  operator: string;
25
+ value: string;
23
26
  connector: string;
24
27
  condition_row: string;
25
28
  remove_condition: string;
@@ -27,5 +30,9 @@ export namespace translationsObject {
27
30
  start: string;
28
31
  end: string;
29
32
  clear_search: string;
33
+ actions: string;
34
+ then: string;
35
+ remove_action: string;
36
+ add_action: string;
30
37
  };
31
38
  }
@@ -28,16 +28,23 @@ var translationsObject = {
28
28
  after: 'is after',
29
29
  between: 'is between',
30
30
  'add-condition': 'Add Condition',
31
+ 'add-condition-group': 'Add Condition Group',
32
+ 'add-condition-sub-group': 'Add Condition sub group',
31
33
  condition: 'Condition',
32
34
  property: 'Property',
33
35
  operator: 'Operator',
36
+ value: 'Value',
34
37
  connector: 'Connector',
35
38
  condition_row: 'Condition row',
36
39
  remove_condition: 'Remove condition',
37
40
  add_condition_row: 'Add condition row',
38
41
  start: 'Start',
39
42
  end: 'End',
40
- clear_search: 'Clear search input'
43
+ clear_search: 'Clear search input',
44
+ actions: 'Actions',
45
+ then: 'then',
46
+ remove_action: 'Remove Action',
47
+ add_action: 'Add action'
41
48
  }
42
49
  };
43
50
 
@@ -95,7 +95,7 @@ var ConditionBuilderItem = function ConditionBuilderItem(_ref) {
95
95
  label: propertyLabel !== null && propertyLabel !== void 0 ? propertyLabel : DataConfigs.translateWithId('add-condition'),
96
96
  hideLabel: !label ? true : false,
97
97
  onClick: function onClick() {
98
- setOpen(!open);
98
+ children ? setOpen(!open) : null;
99
99
  },
100
100
  className: className,
101
101
  "aria-haspopup": true,
@@ -13,12 +13,22 @@ var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHel
13
13
  var React = require('react');
14
14
  var ConditionBlock = require('../ConditionBlock/ConditionBlock.js');
15
15
  var index = require('../../../node_modules/prop-types/index.js');
16
+ var cx = require('classnames');
16
17
  var DataConfigs = require('../ConditionBuilderContext/DataConfigs.js');
18
+ var ConditionBuilderItem = require('../ConditionBuilderItem/ConditionBuilderItem.js');
19
+ var ConditionBuilderItemOption = require('../ConditionBuilderItem/ConditionBuilderItemOption/ConditionBuilderItemOption.js');
20
+ var util = require('../utils/util.js');
21
+ var ConditionConnector = require('../ConditionBuilderConnector/ConditionConnector.js');
22
+ var ConditionBuilderProvider = require('../ConditionBuilderContext/ConditionBuilderProvider.js');
17
23
  var uuidv4 = require('../../../global/js/utils/uuidv4.js');
24
+ var ConditionPreview = require('../ConditionPreview/ConditionPreview.js');
18
25
 
19
26
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
20
27
 
21
28
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
29
+ var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
30
+
31
+ var _ConditionPreview, _ConditionPreview2;
22
32
 
23
33
  /**
24
34
  *
@@ -26,14 +36,24 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
26
36
  * All the inner components of group are called from here.
27
37
  * @returns
28
38
  */
39
+
29
40
  var ConditionGroupBuilder = function ConditionGroupBuilder(_ref) {
30
- var _group$conditions;
31
41
  var group = _ref.group,
32
42
  aria = _ref.aria,
33
43
  onRemove = _ref.onRemove,
34
44
  onChange = _ref.onChange,
35
45
  conditionBuilderRef = _ref.conditionBuilderRef,
36
46
  className = _ref.className;
47
+ var _useContext = React.useContext(ConditionBuilderProvider.ConditionBuilderContext),
48
+ variant = _useContext.variant;
49
+ var _useState = React.useState(-1),
50
+ _useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
51
+ showConditionPreview = _useState2[0],
52
+ setShowConditionPreview = _useState2[1];
53
+ var _useState3 = React.useState(-1),
54
+ _useState4 = _rollupPluginBabelHelpers.slicedToArray(_useState3, 2),
55
+ showConditionSubGroupPreview = _useState4[0],
56
+ setShowConditionSubGroupPreview = _useState4[1];
37
57
  var onRemoveHandler = function onRemoveHandler(conditionId, evt) {
38
58
  if (group.conditions.length > 1) {
39
59
  onChange(_rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, group), {}, {
@@ -64,72 +84,183 @@ var ConditionGroupBuilder = function ConditionGroupBuilder(_ref) {
64
84
  conditions: [].concat(_rollupPluginBabelHelpers.toConsumableArray(group.conditions.slice(0, conditionIndex + 1)), [newCondition], _rollupPluginBabelHelpers.toConsumableArray(group.conditions.slice(conditionIndex + 1)))
65
85
  }));
66
86
  };
67
- var isLastCondition = function isLastCondition(conditionIndex, conditionArr) {
68
- return conditionIndex + 1 >= conditionArr.length || conditionArr.length - 1 != conditionIndex && conditionArr[conditionIndex + 1].conditions;
69
- };
70
- var handleFocusOnClose = function handleFocusOnClose(evt) {
71
- var _evt$currentTarget;
72
- var previousClose = (_evt$currentTarget = evt.currentTarget) === null || _evt$currentTarget === void 0 || (_evt$currentTarget = _evt$currentTarget.closest('[role="row"]')) === null || _evt$currentTarget === void 0 || (_evt$currentTarget = _evt$currentTarget.parentElement) === null || _evt$currentTarget === void 0 || (_evt$currentTarget = _evt$currentTarget.previousSibling) === null || _evt$currentTarget === void 0 ? void 0 : _evt$currentTarget.querySelector('[data-name="closeCondition"]');
87
+ var handleFocusOnClose = function handleFocusOnClose(e) {
88
+ var _e$currentTarget;
89
+ var previousClose = (_e$currentTarget = e.currentTarget) === null || _e$currentTarget === void 0 || (_e$currentTarget = _e$currentTarget.closest('[role="row"]')) === null || _e$currentTarget === void 0 || (_e$currentTarget = _e$currentTarget.previousSibling) === null || _e$currentTarget === void 0 ? void 0 : _e$currentTarget.querySelector('[data-name="closeCondition"]');
73
90
  if (previousClose) {
74
91
  previousClose.focus();
75
92
  }
76
93
  };
77
- return /*#__PURE__*/React__default["default"].createElement("div", {
78
- className: "".concat(className, " eachGroup")
79
- }, /*#__PURE__*/React__default["default"].createElement("div", {
80
- className: "".concat(DataConfigs.blockClass, "__condition-wrapper"),
81
- role: "grid",
82
- "aria-label": DataConfigs.translateWithId('condition_builder_group')
83
- }, group === null || group === void 0 || (_group$conditions = group.conditions) === null || _group$conditions === void 0 ? void 0 : _group$conditions.map(function (eachCondition, conditionIndex) {
94
+ var addConditionSubGroupHandler = function addConditionSubGroupHandler(conditionIndex) {
95
+ onChange(_rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, group), {}, {
96
+ conditions: [].concat(_rollupPluginBabelHelpers.toConsumableArray(group.conditions.slice(0, conditionIndex + 1)), [{
97
+ groupSeparateOperator: null,
98
+ groupOperator: 'and',
99
+ statement: 'if',
100
+ conditions: [{
101
+ property: undefined,
102
+ operator: '',
103
+ value: '',
104
+ popoverToOpen: 'propertyField',
105
+ id: uuidv4["default"]()
106
+ }],
107
+ id: uuidv4["default"]()
108
+ }], _rollupPluginBabelHelpers.toConsumableArray(group.conditions.slice(conditionIndex + 1)))
109
+ }));
110
+ };
111
+ var isLastCondition = function isLastCondition(conditionIndex, conditionArr) {
112
+ return conditionIndex + 1 >= conditionArr.length || conditionArr.length - 1 != conditionIndex && conditionArr[conditionIndex + 1].conditions;
113
+ };
114
+ var _showConditionSubGroupPreviewHandler = function showConditionSubGroupPreviewHandler(conditionIndex) {
115
+ setShowConditionSubGroupPreview(conditionIndex);
116
+ };
117
+ var hideConditionSubGroupPreviewHandler = function hideConditionSubGroupPreviewHandler() {
118
+ setShowConditionSubGroupPreview(-1);
119
+ };
120
+ var _showConditionPreviewHandler = function showConditionPreviewHandler(conditionIndex) {
121
+ setShowConditionPreview(conditionIndex);
122
+ };
123
+ var hideConditionPreviewHandler = function hideConditionPreviewHandler() {
124
+ setShowConditionPreview(-1);
125
+ };
126
+ var onStatementChangeHandler = function onStatementChangeHandler(updatedStatement) {
127
+ onChange(_rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, group), {}, {
128
+ statement: updatedStatement
129
+ }));
130
+ };
131
+ var onConnectorOperatorChange = function onConnectorOperatorChange(op) {
132
+ onChange(_rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, group), {}, {
133
+ groupOperator: op
134
+ }));
135
+ };
136
+ var getSentenceVariant = function getSentenceVariant() {
137
+ var _group$conditions;
84
138
  return /*#__PURE__*/React__default["default"].createElement("div", {
85
- key: eachCondition.id
86
- }, eachCondition.conditions && /*#__PURE__*/React__default["default"].createElement(ConditionGroupBuilder, {
87
- className: "".concat(DataConfigs.blockClass, "__group"),
88
- aria: {
89
- level: aria.level + 1,
90
- posinset: conditionIndex + 1,
91
- setsize: group.conditions.length
92
- },
93
- group: eachCondition,
94
- onChange: function onChange(updatedCondition) {
95
- onChangeHandler(updatedCondition, conditionIndex);
96
- },
97
- onRemove: function onRemove(evt) {
98
- onRemoveHandler(eachCondition.id, evt);
99
- },
100
- conditionBuilderRef: conditionBuilderRef
101
- }), !eachCondition.conditions && /*#__PURE__*/React__default["default"].createElement(ConditionBlock["default"], {
102
- conjunction: conditionIndex > 0 ? group.groupOperator : undefined,
103
- aria: {
104
- level: aria.level + 1,
105
- posinset: conditionIndex + 1,
106
- setsize: group.conditions.length
107
- },
108
- isStatement: conditionIndex == 0,
109
- condition: eachCondition,
110
- group: group,
111
- conditionIndex: conditionIndex,
112
- className: "".concat(DataConfigs.blockClass, "__gap ").concat(DataConfigs.blockClass, "__gap-bottom"),
113
- onChange: function onChange(updatedConditions) {
114
- onChangeHandler(updatedConditions, conditionIndex);
115
- },
116
- addConditionHandler: addConditionHandler,
117
- onRemove: function onRemove(evt) {
118
- onRemoveHandler(eachCondition.id, evt);
119
- },
120
- onConnectorOperatorChange: function onConnectorOperatorChange(op) {
121
- onChange(_rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, group), {}, {
122
- groupOperator: op
123
- }));
139
+ className: "".concat(className, " eachGroup")
140
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
141
+ className: "".concat(DataConfigs.blockClass, "__condition-wrapper"),
142
+ role: "grid",
143
+ "aria-label": DataConfigs.translateWithId('condition_builder_group')
144
+ }, group === null || group === void 0 || (_group$conditions = group.conditions) === null || _group$conditions === void 0 ? void 0 : _group$conditions.map(function (eachCondition, conditionIndex) {
145
+ return /*#__PURE__*/React__default["default"].createElement("div", {
146
+ key: eachCondition.id,
147
+ className: "".concat(DataConfigs.blockClass, "__group-wrapper")
148
+ }, /*#__PURE__*/React__default["default"].createElement(ConditionBlock["default"], {
149
+ conjunction: conditionIndex > 0 ? group.groupOperator : undefined,
150
+ aria: {
151
+ level: aria.level + 1,
152
+ posinset: conditionIndex + 1,
153
+ setsize: group.conditions.length
154
+ },
155
+ isStatement: conditionIndex == 0,
156
+ condition: eachCondition,
157
+ group: group,
158
+ conditionIndex: conditionIndex,
159
+ onChange: function onChange(updatedConditions) {
160
+ onChangeHandler(updatedConditions, conditionIndex);
161
+ },
162
+ addConditionHandler: addConditionHandler,
163
+ onRemove: function onRemove(e) {
164
+ onRemoveHandler(eachCondition.id, e);
165
+ },
166
+ onConnectorOperatorChange: onConnectorOperatorChange,
167
+ onStatementChange: onStatementChangeHandler,
168
+ isLastCondition: isLastCondition
169
+ }));
170
+ })));
171
+ };
172
+ var getTreeVariant = function getTreeVariant() {
173
+ var _group$conditions2;
174
+ return /*#__PURE__*/React__default["default"].createElement("div", {
175
+ className: "".concat(className, " ").concat(DataConfigs.blockClass, "__condition-wrapper"),
176
+ role: aria.level === 1 ? 'rowgroup' : undefined,
177
+ "aria-label": aria.level == 1 ? DataConfigs.translateWithId('condition_builder_group') : undefined
178
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
179
+ tabIndex: 0,
180
+ role: "row",
181
+ "aria-level": aria.level,
182
+ "aria-posinset": aria.posinset,
183
+ "aria-setsize": aria.setsize
184
+ }, /*#__PURE__*/React__default["default"].createElement(ConditionBuilderItem.ConditionBuilderItem, {
185
+ label: group.statement,
186
+ title: DataConfigs.translateWithId('condition'),
187
+ "data-name": "connectorField",
188
+ popOverClassName: "".concat(DataConfigs.blockClass, "__gap"),
189
+ className: "".concat(DataConfigs.blockClass, "__statement-button")
190
+ }, /*#__PURE__*/React__default["default"].createElement(ConditionBuilderItemOption.ConditionBuilderItemOption, {
191
+ conditionState: {
192
+ value: group.statement,
193
+ label: DataConfigs.translateWithId('condition')
124
194
  },
125
- onStatementChange: function onStatementChange(updatedStatement) {
126
- onChange(_rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, group), {}, {
127
- statement: updatedStatement
128
- }));
195
+ onChange: function onChange(v, evt) {
196
+ util.focusThisField(evt);
197
+ onStatementChangeHandler(v);
129
198
  },
130
- isLastCondition: isLastCondition
199
+ config: {
200
+ options: DataConfigs.statementConfig
201
+ }
202
+ }))), group === null || group === void 0 || (_group$conditions2 = group.conditions) === null || _group$conditions2 === void 0 ? void 0 : _group$conditions2.map(function (eachCondition, conditionIndex) {
203
+ return /*#__PURE__*/React__default["default"].createElement(React.Fragment, {
204
+ key: eachCondition.id
205
+ }, eachCondition.conditions ? /*#__PURE__*/React__default["default"].createElement("div", {
206
+ className: cx__default["default"]("".concat(DataConfigs.blockClass, "__condition-block subgroup ").concat(DataConfigs.blockClass, "__gap"), _rollupPluginBabelHelpers.defineProperty({}, "".concat(DataConfigs.blockClass, "__gap-bottom"), group.conditions.length < conditionIndex + 1))
207
+ }, /*#__PURE__*/React__default["default"].createElement(ConditionConnector["default"], {
208
+ className: "".concat(DataConfigs.blockClass, "__gap ").concat(DataConfigs.blockClass, "__groupConnector"),
209
+ operator: group.groupOperator,
210
+ "aria-hidden": true
211
+ }), /*#__PURE__*/React__default["default"].createElement(ConditionGroupBuilder, {
212
+ aria: {
213
+ level: aria.level + 1,
214
+ posinset: conditionIndex + 1,
215
+ setsize: group.conditions.length
216
+ },
217
+ className: "".concat(DataConfigs.blockClass, "__group"),
218
+ group: eachCondition,
219
+ onChange: function onChange(updatedConditions) {
220
+ onChangeHandler(updatedConditions, conditionIndex);
221
+ },
222
+ onRemove: function onRemove(e) {
223
+ onRemoveHandler(eachCondition.id, e);
224
+ },
225
+ conditionBuilderRef: conditionBuilderRef
226
+ })) : /*#__PURE__*/React__default["default"].createElement(ConditionBlock["default"], {
227
+ conjunction: conditionIndex > 0 ? group.groupOperator : undefined,
228
+ aria: {
229
+ level: aria.level + 1,
230
+ posinset: conditionIndex + 1,
231
+ setsize: group.conditions.length
232
+ },
233
+ isStatement: false,
234
+ condition: eachCondition,
235
+ group: group,
236
+ conditionIndex: conditionIndex,
237
+ addConditionHandler: addConditionHandler,
238
+ addConditionSubGroupHandler: addConditionSubGroupHandler,
239
+ onChange: function onChange(updatedConditions) {
240
+ onChangeHandler(updatedConditions, conditionIndex);
241
+ },
242
+ onRemove: function onRemove(e) {
243
+ onRemoveHandler(eachCondition.id, e);
244
+ },
245
+ onConnectorOperatorChange: onConnectorOperatorChange,
246
+ onStatementChange: onStatementChangeHandler,
247
+ showConditionSubGroupPreviewHandler: function showConditionSubGroupPreviewHandler() {
248
+ _showConditionSubGroupPreviewHandler(conditionIndex);
249
+ },
250
+ hideConditionSubGroupPreviewHandler: hideConditionSubGroupPreviewHandler,
251
+ showConditionPreviewHandler: function showConditionPreviewHandler() {
252
+ _showConditionPreviewHandler(conditionIndex);
253
+ },
254
+ hideConditionPreviewHandler: hideConditionPreviewHandler,
255
+ isLastCondition: isLastCondition
256
+ }), conditionIndex == showConditionSubGroupPreview && (_ConditionPreview || (_ConditionPreview = /*#__PURE__*/React__default["default"].createElement(ConditionPreview["default"], {
257
+ previewType: "subGroup"
258
+ }))), conditionIndex == showConditionPreview && (_ConditionPreview2 || (_ConditionPreview2 = /*#__PURE__*/React__default["default"].createElement(ConditionPreview["default"], {
259
+ previewType: "condition"
260
+ }))));
131
261
  }));
132
- })));
262
+ };
263
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, variant == 'tree' && getTreeVariant(), variant == 'sentence' && getSentenceVariant());
133
264
  };
134
265
  var ConditionGroupBuilder$1 = ConditionGroupBuilder;
135
266
  ConditionGroupBuilder.propTypes = {
@@ -138,19 +269,19 @@ ConditionGroupBuilder.propTypes = {
138
269
  */
139
270
  aria: index["default"].object,
140
271
  /**
141
- * Provide an class to be applied to the containing node.
272
+ * state defines the current group
273
+ */
274
+ /**
275
+ * Provide an optional class to be applied to the containing node.
142
276
  */
143
277
  className: index["default"].string,
144
278
  /**
279
+ className: PropTypes.string,
145
280
  * ref of condition builder
146
281
  */
147
282
  conditionBuilderRef: index["default"].object,
148
- /**
149
- * group defines the current group
150
- */
151
283
  group: index["default"].object,
152
284
  /**
153
-
154
285
  * callback to update the current condition of the state tree
155
286
  */
156
287
  onChange: index["default"].func,
@@ -0,0 +1,10 @@
1
+ export default ConditionPreview;
2
+ declare function ConditionPreview({ previewType }: {
3
+ previewType: any;
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ declare namespace ConditionPreview {
6
+ namespace propTypes {
7
+ let previewType: PropTypes.Requireable<string>;
8
+ }
9
+ }
10
+ import PropTypes from 'prop-types';