@carbon/ibm-products 2.43.2-canary.54 → 2.43.2-canary.55

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 (75) hide show
  1. package/css/index-full-carbon.css +8 -2
  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 +8 -2
  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 +8 -2
  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.js +21 -11
  14. package/es/components/ConditionBuilder/ConditionBuilder.js +15 -5
  15. package/es/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.d.ts +2 -2
  16. package/es/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.js +58 -36
  17. package/es/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.d.ts +3 -1
  18. package/es/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.js +21 -9
  19. package/es/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.d.ts +4 -1
  20. package/es/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js +14 -4
  21. package/es/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.js +8 -4
  22. package/es/components/ConditionBuilder/ConditionBuilderConnector/GroupConnector.js +17 -9
  23. package/es/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js +19 -10
  24. package/es/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.d.ts +12 -6
  25. package/es/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.js +20 -7
  26. package/es/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.d.ts +2 -1
  27. package/es/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.js +18 -17
  28. package/es/components/ConditionBuilder/ConditionBuilderContext/translationObject.d.ts +36 -39
  29. package/es/components/ConditionBuilder/ConditionBuilderContext/translationObject.js +36 -38
  30. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +20 -12
  31. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.js +8 -3
  32. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js +9 -7
  33. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js +9 -4
  34. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.js +10 -5
  35. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.d.ts +5 -1
  36. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.js +19 -7
  37. package/es/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js +23 -17
  38. package/es/components/ConditionBuilder/ConditionPreview/ConditionPreview.d.ts +3 -1
  39. package/es/components/ConditionBuilder/ConditionPreview/ConditionPreview.js +31 -14
  40. package/es/components/ConditionBuilder/utils/useTranslations.d.ts +1 -0
  41. package/es/components/ConditionBuilder/utils/useTranslations.js +26 -0
  42. package/es/components/ConditionBuilder/utils/util.js +1 -9
  43. package/lib/components/ConditionBuilder/ConditionBlock/ConditionBlock.js +20 -10
  44. package/lib/components/ConditionBuilder/ConditionBuilder.js +15 -5
  45. package/lib/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.d.ts +2 -2
  46. package/lib/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.js +56 -33
  47. package/lib/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.d.ts +3 -1
  48. package/lib/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.js +20 -8
  49. package/lib/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.d.ts +4 -1
  50. package/lib/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js +13 -3
  51. package/lib/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.js +6 -2
  52. package/lib/components/ConditionBuilder/ConditionBuilderConnector/GroupConnector.js +16 -8
  53. package/lib/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js +18 -9
  54. package/lib/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.d.ts +12 -6
  55. package/lib/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.js +20 -7
  56. package/lib/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.d.ts +2 -1
  57. package/lib/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.js +17 -17
  58. package/lib/components/ConditionBuilder/ConditionBuilderContext/translationObject.d.ts +36 -39
  59. package/lib/components/ConditionBuilder/ConditionBuilderContext/translationObject.js +36 -38
  60. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +19 -11
  61. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.js +8 -3
  62. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js +8 -6
  63. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js +8 -3
  64. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.js +9 -4
  65. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.d.ts +5 -1
  66. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.js +18 -6
  67. package/lib/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js +21 -15
  68. package/lib/components/ConditionBuilder/ConditionPreview/ConditionPreview.d.ts +3 -1
  69. package/lib/components/ConditionBuilder/ConditionPreview/ConditionPreview.js +30 -13
  70. package/lib/components/ConditionBuilder/utils/useTranslations.d.ts +1 -0
  71. package/lib/components/ConditionBuilder/utils/useTranslations.js +30 -0
  72. package/lib/components/ConditionBuilder/utils/util.js +0 -9
  73. package/package.json +3 -3
  74. package/scss/components/ConditionBuilder/styles/_conditionBuilderCondition.scss +5 -1
  75. package/scss/components/ConditionBuilder/styles/_conditionBuilderItem.scss +3 -1
@@ -10,7 +10,7 @@ import React__default, { useContext, useState } from 'react';
10
10
  import { Close } from '@carbon/react/icons';
11
11
  import { ConditionBuilderItem } from '../ConditionBuilderItem/ConditionBuilderItem.js';
12
12
  import PropTypes from '../../../node_modules/prop-types/index.js';
13
- import { blockClass, translateWithId, statementConfig, operatorConfig } from '../ConditionBuilderContext/DataConfigs.js';
13
+ import { blockClass, statementConfig, operatorConfig } from '../ConditionBuilderContext/DataConfigs.js';
14
14
  import cx from 'classnames';
15
15
  import ConditionConnector from '../ConditionBuilderConnector/ConditionConnector.js';
16
16
  import { ConditionBuilderItemNumber } from '../ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js';
@@ -23,6 +23,7 @@ import { ConditionBuilderItemTime } from '../ConditionBuilderItem/ConditionBuild
23
23
  import ConditionBuilderAdd from '../ConditionBuilderAdd/ConditionBuilderAdd.js';
24
24
  import { ItemOption } from '../ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js';
25
25
  import { ItemOptionForValueField } from '../ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.js';
26
+ import { useTranslations } from '../utils/useTranslations.js';
26
27
 
27
28
  var _div;
28
29
 
@@ -59,6 +60,13 @@ var ConditionBlock = function ConditionBlock(props) {
59
60
  _useState2 = _slicedToArray(_useState, 2),
60
61
  showDeletionPreview = _useState2[0],
61
62
  setShowDeletionPreview = _useState2[1];
63
+ var _useTranslations = useTranslations(['conditionRowText', 'conditionText', 'propertyText', 'operatorText', 'removeConditionText']),
64
+ _useTranslations2 = _slicedToArray(_useTranslations, 5),
65
+ conditionRowText = _useTranslations2[0],
66
+ conditionText = _useTranslations2[1],
67
+ propertyText = _useTranslations2[2],
68
+ operatorText = _useTranslations2[3],
69
+ removeConditionText = _useTranslations2[4];
62
70
 
63
71
  //filtering the current property to access its properties and config options
64
72
  var getCurrentConfig = function getCurrentConfig(property) {
@@ -80,7 +88,8 @@ var ConditionBlock = function ConditionBlock(props) {
80
88
  date: ConditionBuilderItemDate,
81
89
  time: ConditionBuilderItemTime,
82
90
  option: ItemOptionForValueField,
83
- custom: config === null || config === void 0 ? void 0 : config.component
91
+ custom: config === null || config === void 0 ? void 0 : config.component,
92
+ textarea: ConditionBuilderItemText
84
93
  };
85
94
  var ItemComponent = property ? itemComponents[type] : null;
86
95
  var onStatementChangeHandler = function onStatementChangeHandler(v, evt) {
@@ -133,7 +142,7 @@ var ConditionBlock = function ConditionBlock(props) {
133
142
  return /*#__PURE__*/React__default.createElement("div", _extends({
134
143
  className: cx("".concat(blockClass, "__condition-block"), _defineProperty({}, "".concat(blockClass, "__condition__deletion-preview"), showDeletionPreview), _defineProperty({}, "".concat(blockClass, "__gap-bottom"), variant == 'tree' && !(conditionIndex + 1 >= group.conditions.length)), _defineProperty({}, "".concat(blockClass, "__gap ").concat(blockClass, "__gap-bottom"), variant == 'sentence')),
135
144
  role: "row",
136
- "aria-label": translateWithId('condition_row'),
145
+ "aria-label": conditionRowText,
137
146
  tabIndex: -1
138
147
  }, getAriaAttributes()), conjunction ? /*#__PURE__*/React__default.createElement(ConditionConnector, {
139
148
  className: "".concat(blockClass, "__gap"),
@@ -145,14 +154,14 @@ var ConditionBlock = function ConditionBlock(props) {
145
154
  role: "gridcell"
146
155
  })), isStatement && /*#__PURE__*/React__default.createElement(ConditionBuilderItem, {
147
156
  label: group.statement,
148
- title: translateWithId('condition'),
157
+ title: conditionText,
149
158
  "data-name": "connectorField",
150
159
  popOverClassName: "".concat(blockClass, "__gap"),
151
160
  className: "".concat(blockClass, "__statement-button")
152
161
  }, /*#__PURE__*/React__default.createElement(ItemOption, {
153
162
  conditionState: {
154
163
  value: group.statement,
155
- label: translateWithId('condition')
164
+ label: conditionText
156
165
  },
157
166
  onChange: onStatementChangeHandler,
158
167
  config: {
@@ -160,7 +169,7 @@ var ConditionBlock = function ConditionBlock(props) {
160
169
  }
161
170
  })), /*#__PURE__*/React__default.createElement(ConditionBuilderItem, {
162
171
  label: label,
163
- title: translateWithId('property'),
172
+ title: propertyText,
164
173
  renderIcon: icon !== null && icon !== void 0 ? icon : null,
165
174
  className: "".concat(blockClass, "__property-field"),
166
175
  "data-name": "propertyField",
@@ -169,7 +178,7 @@ var ConditionBlock = function ConditionBlock(props) {
169
178
  }, /*#__PURE__*/React__default.createElement(ItemOption, {
170
179
  conditionState: {
171
180
  value: property,
172
- label: translateWithId('property')
181
+ label: propertyText
173
182
  },
174
183
  onChange: onPropertyChangeHandler,
175
184
  config: {
@@ -177,7 +186,7 @@ var ConditionBlock = function ConditionBlock(props) {
177
186
  }
178
187
  })), property && /*#__PURE__*/React__default.createElement(ConditionBuilderItem, {
179
188
  label: operator,
180
- title: translateWithId('operator'),
189
+ title: operatorText,
181
190
  "data-name": "operatorField",
182
191
  condition: condition,
183
192
  type: type
@@ -187,7 +196,7 @@ var ConditionBlock = function ConditionBlock(props) {
187
196
  },
188
197
  conditionState: {
189
198
  value: operator,
190
- label: translateWithId('operator')
199
+ label: operatorText
191
200
  },
192
201
  onChange: onOperatorChangeHandler
193
202
  })), property && operator && /*#__PURE__*/React__default.createElement(ConditionBuilderItem, {
@@ -206,13 +215,14 @@ var ConditionBlock = function ConditionBlock(props) {
206
215
  },
207
216
  onChange: onValueChangeHandler,
208
217
  config: config,
218
+ type: type,
209
219
  "data-name": "valueField"
210
220
  })), /*#__PURE__*/React__default.createElement("span", {
211
221
  role: "gridcell",
212
- "aria-label": translateWithId('remove_condition')
222
+ "aria-label": removeConditionText
213
223
  }, /*#__PURE__*/React__default.createElement(ConditionBuilderButton, {
214
224
  hideLabel: true,
215
- label: translateWithId('remove_condition'),
225
+ label: removeConditionText,
216
226
  onClick: onRemove,
217
227
  onMouseEnter: handleShowDeletionPreview,
218
228
  onMouseLeave: handleHideDeletionPreview,
@@ -17,7 +17,7 @@ import { pkg } from '../../settings.js';
17
17
  import { blockClass } from './ConditionBuilderContext/DataConfigs.js';
18
18
  import { handleKeyDown } from './utils/handleKeyboardEvents.js';
19
19
 
20
- var _excluded = ["className", "inputConfig", "startConditionLabel", "popOverSearchThreshold", "getOptions", "initialState", "getConditionState", "getActionsState", "variant", "actions"];
20
+ var _excluded = ["className", "inputConfig", "startConditionLabel", "popOverSearchThreshold", "getOptions", "initialState", "getConditionState", "getActionsState", "variant", "actions", "translateWithId"];
21
21
 
22
22
  // Carbon and package components we use.
23
23
  /* TODO: @import(s) of carbon components and other package components. */
@@ -53,8 +53,10 @@ var ConditionBuilder = /*#__PURE__*/React__default.forwardRef(function (_ref, re
53
53
  initialState = _ref.initialState,
54
54
  getConditionState = _ref.getConditionState,
55
55
  getActionsState = _ref.getActionsState,
56
- variant = _ref.variant,
56
+ _ref$variant = _ref.variant,
57
+ variant = _ref$variant === void 0 ? 'sentence' : _ref$variant,
57
58
  actions = _ref.actions,
59
+ translateWithId = _ref.translateWithId,
58
60
  rest = _objectWithoutProperties(_ref, _excluded);
59
61
  var localRef = useRef();
60
62
  var conditionBuilderRef = ref || localRef;
@@ -65,7 +67,8 @@ var ConditionBuilder = /*#__PURE__*/React__default.forwardRef(function (_ref, re
65
67
  inputConfig: inputConfig,
66
68
  popOverSearchThreshold: popOverSearchThreshold,
67
69
  getOptions: getOptions,
68
- variant: variant
70
+ variant: variant,
71
+ translateWithId: translateWithId
69
72
  }, /*#__PURE__*/React__default.createElement("div", _extends({}, rest, {
70
73
  className: cx(blockClass,
71
74
  // Apply the block class to the main HTML element
@@ -173,7 +176,7 @@ ConditionBuilder.propTypes = {
173
176
  id: PropTypes.string.isRequired,
174
177
  label: PropTypes.string.isRequired,
175
178
  icon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
176
- type: PropTypes.oneOf(['text', 'number', 'date', 'option', 'time', 'custom']).isRequired,
179
+ type: PropTypes.oneOf(['text', 'textarea', 'number', 'date', 'option', 'time', 'custom']).isRequired,
177
180
  config: PropTypes.shape({
178
181
  options: PropTypes.arrayOf(PropTypes.shape({
179
182
  id: PropTypes.string.isRequired,
@@ -196,11 +199,18 @@ ConditionBuilder.propTypes = {
196
199
  * Provide a label to the button that starts condition builder
197
200
  */
198
201
  startConditionLabel: PropTypes.string.isRequired,
202
+ /**
203
+ * Optional prop, if you need to pass translations to the texts on the component instead of the defined defaults.
204
+ * This callback function will receive the message id and you need to return the corresponding text for that id.
205
+ * The message id will be one of [ "ifText","addConditionText", "addConditionGroupText", "addSubgroupText", "conditionText", "propertyText", "operatorText", "valueText", "connectorText", "conditionRowText", "removeConditionText", "addConditionRowText", "startText", "endText", "clearSearchText", "actionsText", "then", "removeActionText", "addActionText", "invalidText", "invalidNumberWarnText"]
206
+ ]
207
+ */
208
+ translateWithId: PropTypes.func,
199
209
  /* TODO: add types and DocGen for all props. */
200
210
  /**
201
211
  * Provide the condition builder variant: sentence/ tree
202
212
  */
203
- variant: PropTypes.string.isRequired
213
+ variant: PropTypes.oneOf(['tree', 'sentence'])
204
214
  };
205
215
 
206
216
  export { ConditionBuilder };
@@ -6,8 +6,8 @@ declare function ConditionBuilderActions({ actions, className }: {
6
6
  declare namespace ConditionBuilderActions {
7
7
  namespace propTypes {
8
8
  let actions: PropTypes.Requireable<(PropTypes.InferProps<{
9
- id: PropTypes.Requireable<number>;
10
- label: PropTypes.Requireable<string>;
9
+ id: PropTypes.Validator<NonNullable<NonNullable<string | number | null | undefined>>>;
10
+ label: PropTypes.Validator<string>;
11
11
  }> | null | undefined)[]>;
12
12
  let className: PropTypes.Requireable<string>;
13
13
  }
@@ -5,19 +5,20 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- import { toConsumableArray as _toConsumableArray, objectSpread2 as _objectSpread2 } from '../../../_virtual/_rollupPluginBabelHelpers.js';
9
- import React__default, { useContext } from 'react';
8
+ import { slicedToArray as _slicedToArray, defineProperty as _defineProperty, toConsumableArray as _toConsumableArray, objectSpread2 as _objectSpread2 } from '../../../_virtual/_rollupPluginBabelHelpers.js';
9
+ import React__default, { useContext, useState } from 'react';
10
10
  import PropTypes from '../../../node_modules/prop-types/index.js';
11
+ import cx from 'classnames';
11
12
  import { Close } from '@carbon/react/icons';
12
13
  import { Section, Heading } from '@carbon/react';
13
14
  import { ConditionBuilderItem } from '../ConditionBuilderItem/ConditionBuilderItem.js';
14
- import { blockClass, translateWithId } from '../ConditionBuilderContext/DataConfigs.js';
15
- import { ItemOption } from '../ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js';
15
+ import { blockClass } from '../ConditionBuilderContext/DataConfigs.js';
16
16
  import { ConditionBuilderContext } from '../ConditionBuilderContext/ConditionBuilderProvider.js';
17
17
  import ConditionBuilderAdd from '../ConditionBuilderAdd/ConditionBuilderAdd.js';
18
18
  import uuidv4 from '../../../global/js/utils/uuidv4.js';
19
19
  import { ConditionBuilderButton } from '../ConditionBuilderButton/ConditionBuilderButton.js';
20
- import { checkDuplicateAction, focusThisField } from '../utils/util.js';
20
+ import { useTranslations } from '../utils/useTranslations.js';
21
+ import { ItemOptionForValueField } from '../ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.js';
21
22
 
22
23
  var ConditionBuilderActions = function ConditionBuilderActions(_ref) {
23
24
  var actions = _ref.actions,
@@ -25,90 +26,111 @@ var ConditionBuilderActions = function ConditionBuilderActions(_ref) {
25
26
  var _useContext = useContext(ConditionBuilderContext),
26
27
  actionState = _useContext.actionState,
27
28
  setActionState = _useContext.setActionState;
29
+ var _useState = useState(-1),
30
+ _useState2 = _slicedToArray(_useState, 2),
31
+ showDeletionPreview = _useState2[0],
32
+ setShowDeletionPreview = _useState2[1];
33
+ var _useTranslations = useTranslations(['actionsText', 'then', 'and', 'removeActionText', 'addActionText']),
34
+ _useTranslations2 = _slicedToArray(_useTranslations, 5),
35
+ actionsText = _useTranslations2[0],
36
+ thenText = _useTranslations2[1],
37
+ andText = _useTranslations2[2],
38
+ removeActionText = _useTranslations2[3],
39
+ addActionText = _useTranslations2[4];
28
40
  var addActionHandler = function addActionHandler() {
29
41
  var action = {
30
42
  id: uuidv4(),
31
43
  label: undefined,
32
- popoverToOpen: 'actionField'
44
+ popoverToOpen: 'valueField'
33
45
  };
34
46
  setActionState([].concat(_toConsumableArray(actionState), [action]));
35
47
  };
36
- var onchangeHandler = function onchangeHandler(evt, selectedId, actionIndex, currentAction) {
48
+ var onchangeHandler = function onchangeHandler(selectedId, actionIndex) {
37
49
  var action = actions.find(function (action) {
38
50
  return action.id === selectedId;
39
51
  }); //fetch the selected action from the input action array
40
52
 
41
- //if the action is duplicate, that action is added with a new id, else the same action is used.
42
53
  // same actions can be added multiple times
43
- var newAction = checkDuplicateAction(actionState, selectedId, currentAction.id) ? _objectSpread2(_objectSpread2({}, action), {}, {
44
- id: uuidv4()
45
- }) : action;
54
+ var newAction = _objectSpread2(_objectSpread2({}, action), {}, {
55
+ id: actionState[actionIndex].id
56
+ });
46
57
  setActionState([].concat(_toConsumableArray(actionState.slice(0, actionIndex)), [newAction], _toConsumableArray(actionState.slice(actionIndex + 1))));
47
- focusThisField(evt);
48
58
  };
49
59
  var onRemove = function onRemove(selectedId) {
50
60
  setActionState(actionState.filter(function (action) {
51
61
  return action.id !== selectedId;
52
62
  }));
53
63
  };
64
+ var handleShowDeletionPreview = function handleShowDeletionPreview(index) {
65
+ setShowDeletionPreview(index);
66
+ };
67
+ var handleHideDeletionPreview = function handleHideDeletionPreview() {
68
+ setShowDeletionPreview(-1);
69
+ };
54
70
  return /*#__PURE__*/React__default.createElement("div", {
55
- className: "".concat(className)
71
+ className: className
56
72
  }, /*#__PURE__*/React__default.createElement(Section, {
57
73
  className: "".concat(blockClass, "__heading"),
58
74
  level: 4
59
- }, /*#__PURE__*/React__default.createElement(Heading, null, translateWithId('actions'))), /*#__PURE__*/React__default.createElement("div", {
60
- className: "".concat(blockClass, "__condition-wrapper")
75
+ }, /*#__PURE__*/React__default.createElement(Heading, null, actionsText)), /*#__PURE__*/React__default.createElement("div", {
76
+ className: "".concat(blockClass, "__condition-wrapper"),
77
+ role: "grid"
61
78
  }, actionState === null || actionState === void 0 ? void 0 : actionState.map(function (action, index) {
62
79
  return /*#__PURE__*/React__default.createElement("div", {
63
80
  key: action.id,
64
- "aria-hidden": true,
65
- className: "".concat(blockClass, "__condition-block conditionBlockWrapper ").concat(blockClass, "__gap ").concat(blockClass, "__gap-bottom ")
81
+ role: "row",
82
+ className: cx("".concat(blockClass, "__condition-block ").concat(blockClass, "__gap ").concat(blockClass, "__gap-bottom"), _defineProperty({}, "".concat(blockClass, "__condition__deletion-preview"), showDeletionPreview == index))
66
83
  }, /*#__PURE__*/React__default.createElement(ConditionBuilderItem, {
67
84
  className: "".concat(blockClass, "__statement-button"),
85
+ tabIndex: 0,
68
86
  popOverClassName: "".concat(blockClass, "__gap"),
69
- label: index === 0 ? translateWithId('then') : translateWithId('and')
87
+ label: index === 0 ? thenText : andText
70
88
  }), /*#__PURE__*/React__default.createElement(ConditionBuilderItem, {
71
89
  label: action.label,
72
- title: translateWithId('actions'),
73
- popOverClassName: "".concat(blockClass, "__gap"),
90
+ title: actionsText,
74
91
  condition: action,
75
- "data-name": "actionField"
76
- }, /*#__PURE__*/React__default.createElement(ItemOption, {
92
+ "data-name": "valueField",
93
+ type: "option"
94
+ }, /*#__PURE__*/React__default.createElement(ItemOptionForValueField, {
77
95
  conditionState: {
78
96
  value: action.label
79
97
  },
80
- onChange: function onChange(selectedId, evt) {
81
- return onchangeHandler(evt, selectedId, index, action);
98
+ onChange: function onChange(selection) {
99
+ return onchangeHandler(selection.id, index);
82
100
  },
83
101
  config: {
84
102
  options: actions
85
103
  }
86
104
  })), /*#__PURE__*/React__default.createElement("span", {
87
105
  role: "gridcell",
88
- "aria-label": translateWithId('remove_action')
106
+ "aria-label": removeActionText
89
107
  }, /*#__PURE__*/React__default.createElement(ConditionBuilderButton, {
90
108
  hideLabel: true,
91
- label: translateWithId('remove_action'),
109
+ label: removeActionText,
92
110
  onClick: function onClick() {
93
111
  return onRemove(action.id);
94
- }
95
- // onMouseEnter={handleShowDeletionPreview}
96
- // onMouseLeave={handleHideDeletionPreview}
97
- // onFocus={handleShowDeletionPreview}
98
- // onBlur={handleHideDeletionPreview}
99
- ,
112
+ },
113
+ onMouseEnter: function onMouseEnter() {
114
+ return handleShowDeletionPreview(index);
115
+ },
116
+ onMouseLeave: handleHideDeletionPreview,
117
+ onFocus: function onFocus() {
118
+ return handleShowDeletionPreview(index);
119
+ },
120
+ onBlur: handleHideDeletionPreview,
100
121
  renderIcon: Close,
101
122
  className: "".concat(blockClass, "__close-condition"),
102
123
  "data-name": "closeCondition"
103
124
  })), actionState.length === index + 1 && /*#__PURE__*/React__default.createElement(ConditionBuilderAdd, {
104
125
  onClick: addActionHandler,
105
126
  className: "".concat(blockClass, "__gap ").concat(blockClass, "__gap-left"),
106
- buttonLabel: translateWithId('add_action')
127
+ buttonLabel: addActionText
107
128
  }));
108
129
  }), actionState.length === 0 && /*#__PURE__*/React__default.createElement(ConditionBuilderAdd, {
109
130
  onClick: addActionHandler,
110
131
  className: "".concat(blockClass, "__gap ").concat(blockClass, "__gap-left"),
111
- buttonLabel: translateWithId('add_action')
132
+ buttonLabel: addActionText,
133
+ tabIndex: 0
112
134
  })));
113
135
  };
114
136
  var ConditionBuilderActions$1 = ConditionBuilderActions;
@@ -117,8 +139,8 @@ ConditionBuilderActions.propTypes = {
117
139
  * optional array of object that give the list of actions.
118
140
  */
119
141
  actions: PropTypes.arrayOf(PropTypes.shape({
120
- id: PropTypes.number,
121
- label: PropTypes.string
142
+ id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,
143
+ label: PropTypes.string.isRequired
122
144
  })),
123
145
  /**
124
146
  * Provide an optional class to be applied to the containing node.
@@ -1,5 +1,5 @@
1
1
  export default ConditionBuilderAdd;
2
- declare function ConditionBuilderAdd({ className, onClick, addConditionSubGroupHandler, showConditionSubGroupPreviewHandler, hideConditionSubGroupPreviewHandler, showConditionPreviewHandler, hideConditionPreviewHandler, enableSubGroup, buttonLabel, }: {
2
+ declare function ConditionBuilderAdd({ className, onClick, addConditionSubGroupHandler, showConditionSubGroupPreviewHandler, hideConditionSubGroupPreviewHandler, showConditionPreviewHandler, hideConditionPreviewHandler, enableSubGroup, buttonLabel, tabIndex, }: {
3
3
  className: any;
4
4
  onClick: any;
5
5
  addConditionSubGroupHandler: any;
@@ -9,6 +9,7 @@ declare function ConditionBuilderAdd({ className, onClick, addConditionSubGroupH
9
9
  hideConditionPreviewHandler: any;
10
10
  enableSubGroup: any;
11
11
  buttonLabel: any;
12
+ tabIndex: any;
12
13
  }): import("react/jsx-runtime").JSX.Element;
13
14
  declare namespace ConditionBuilderAdd {
14
15
  namespace propTypes {
@@ -21,6 +22,7 @@ declare namespace ConditionBuilderAdd {
21
22
  let onClick: PropTypes.Requireable<(...args: any[]) => any>;
22
23
  let showConditionPreviewHandler: PropTypes.Requireable<(...args: any[]) => any>;
23
24
  let showConditionSubGroupPreviewHandler: PropTypes.Requireable<(...args: any[]) => any>;
25
+ let tabIndex: PropTypes.Requireable<number>;
24
26
  }
25
27
  }
26
28
  import PropTypes from 'prop-types';
@@ -11,7 +11,8 @@ import cx from 'classnames';
11
11
  import { AddAlt, TextNewLine } from '@carbon/react/icons';
12
12
  import { ConditionBuilderButton } from '../ConditionBuilderButton/ConditionBuilderButton.js';
13
13
  import PropTypes from '../../../node_modules/prop-types/index.js';
14
- import { translateWithId, blockClass } from '../ConditionBuilderContext/DataConfigs.js';
14
+ import { blockClass } from '../ConditionBuilderContext/DataConfigs.js';
15
+ import { useTranslations } from '../utils/useTranslations.js';
15
16
 
16
17
  var ConditionBuilderAdd = function ConditionBuilderAdd(_ref) {
17
18
  var className = _ref.className,
@@ -22,11 +23,17 @@ var ConditionBuilderAdd = function ConditionBuilderAdd(_ref) {
22
23
  showConditionPreviewHandler = _ref.showConditionPreviewHandler,
23
24
  hideConditionPreviewHandler = _ref.hideConditionPreviewHandler,
24
25
  enableSubGroup = _ref.enableSubGroup,
25
- buttonLabel = _ref.buttonLabel;
26
+ buttonLabel = _ref.buttonLabel,
27
+ tabIndex = _ref.tabIndex;
26
28
  var _useState = useState(false),
27
29
  _useState2 = _slicedToArray(_useState, 2),
28
30
  isAddSubgroup = _useState2[0],
29
31
  setIsAddSubgroup = _useState2[1];
32
+ var _useTranslations = useTranslations(['addConditionText', 'addConditionRowText', 'addSubgroupText']),
33
+ _useTranslations2 = _slicedToArray(_useTranslations, 3),
34
+ addConditionText = _useTranslations2[0],
35
+ addConditionRowText = _useTranslations2[1],
36
+ addSubgroupText = _useTranslations2[2];
30
37
  var showAddSubGroup = function showAddSubGroup() {
31
38
  setIsAddSubgroup(true);
32
39
  };
@@ -54,13 +61,13 @@ var ConditionBuilderAdd = function ConditionBuilderAdd(_ref) {
54
61
  };
55
62
  };
56
63
  var wrapperProps = enableSubGroup ? {
57
- role: 'gridcell',
58
- 'aria-label': translateWithId('add-condition')
64
+ role: 'gridcell'
65
+ // 'aria-label': addSubgroupText,
59
66
  } : {};
60
67
  return /*#__PURE__*/React__default.createElement("div", {
61
68
  className: "".concat(className, " ").concat(blockClass, "__add-button-wrapper"),
62
69
  role: !enableSubGroup ? 'gridcell' : 'none',
63
- "aria-label": !enableSubGroup ? translateWithId('add_condition_row') : undefined,
70
+ "aria-label": !enableSubGroup ? addConditionRowText : undefined,
64
71
  onMouseEnter: showAddSubGroup,
65
72
  onMouseLeave: hideAddSubGroup,
66
73
  onFocus: showAddSubGroup,
@@ -69,17 +76,18 @@ var ConditionBuilderAdd = function ConditionBuilderAdd(_ref) {
69
76
  renderIcon: AddAlt,
70
77
  onClick: onClickHandler
71
78
  }, previewHandlers(), {
79
+ wrapperProps: wrapperProps,
72
80
  className: "".concat(blockClass, "__add-button"),
73
81
  hideLabel: true,
74
82
  "data-name": "addButton",
75
- label: buttonLabel !== null && buttonLabel !== void 0 ? buttonLabel : translateWithId('add-condition'),
76
- wrapperProps: wrapperProps
83
+ label: buttonLabel !== null && buttonLabel !== void 0 ? buttonLabel : addConditionText,
84
+ tabIndex: tabIndex
77
85
  })), enableSubGroup && /*#__PURE__*/React__default.createElement(ConditionBuilderButton, _extends({
78
86
  renderIcon: TextNewLine,
79
87
  onClick: addConditionSubGroupHandler,
80
88
  className: cx("".concat(blockClass, "__add_condition_group ").concat(blockClass, "__gap-left")),
81
89
  hideLabel: true,
82
- label: translateWithId('add-condition'),
90
+ label: addSubgroupText,
83
91
  wrapperProps: wrapperProps,
84
92
  wrapperClassName: cx("".concat(blockClass, "__add_condition_group-wrapper"), _defineProperty({}, "".concat(blockClass, "__add_condition_group-wrapper--show"), isAddSubgroup))
85
93
  }, previewHandlersForSubgroup())));
@@ -116,10 +124,14 @@ ConditionBuilderAdd.propTypes = {
116
124
  */
117
125
  onClick: PropTypes.func,
118
126
  showConditionPreviewHandler: PropTypes.func,
119
- showConditionSubGroupPreviewHandler: PropTypes.func
127
+ showConditionSubGroupPreviewHandler: PropTypes.func,
120
128
  /**
121
129
  * handler for hiding sub group preview
122
130
  */
131
+ /**
132
+ * Tab index
133
+ */
134
+ tabIndex: PropTypes.number
123
135
  };
124
136
 
125
137
  export { ConditionBuilderAdd$1 as default };
@@ -1,4 +1,5 @@
1
- export function ConditionBuilderButton({ className, label, hideLabel, tooltipAlign, renderIcon: Icon, onClick, showToolTip, wrapperProps, onBlur, onFocus, onMouseEnter, onMouseLeave, isInvalid, wrapperClassName, }: {
1
+ export function ConditionBuilderButton({ className, label, hideLabel, tooltipAlign, renderIcon: Icon, onClick, showToolTip, wrapperProps, onBlur, onFocus, onMouseEnter, onMouseLeave, isInvalid, wrapperClassName, tabIndex, ...rest }: {
2
+ [x: string]: any;
2
3
  className: any;
3
4
  label: any;
4
5
  hideLabel: any;
@@ -13,6 +14,7 @@ export function ConditionBuilderButton({ className, label, hideLabel, tooltipAli
13
14
  onMouseLeave: any;
14
15
  isInvalid: any;
15
16
  wrapperClassName: any;
17
+ tabIndex: any;
16
18
  }): import("react/jsx-runtime").JSX.Element;
17
19
  export namespace ConditionBuilderButton {
18
20
  namespace propTypes {
@@ -27,6 +29,7 @@ export namespace ConditionBuilderButton {
27
29
  let onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
28
30
  let renderIcon: PropTypes.Requireable<object>;
29
31
  let showToolTip: PropTypes.Requireable<boolean>;
32
+ let tabIndex: PropTypes.Requireable<number>;
30
33
  let tooltipAlign: PropTypes.Requireable<string>;
31
34
  let wrapperClassName: PropTypes.Requireable<string>;
32
35
  let wrapperProps: PropTypes.Requireable<object>;
@@ -5,7 +5,7 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- import { extends as _extends, defineProperty as _defineProperty } from '../../../_virtual/_rollupPluginBabelHelpers.js';
8
+ import { objectWithoutProperties as _objectWithoutProperties, extends as _extends, defineProperty as _defineProperty } from '../../../_virtual/_rollupPluginBabelHelpers.js';
9
9
  import React__default from 'react';
10
10
  import cx from 'classnames';
11
11
  import PropTypes from '../../../node_modules/prop-types/index.js';
@@ -14,6 +14,7 @@ import { blockClass } from '../ConditionBuilderContext/DataConfigs.js';
14
14
  import { WarningAltFilled } from '@carbon/react/icons';
15
15
 
16
16
  var _WarningAltFilled;
17
+ var _excluded = ["className", "label", "hideLabel", "tooltipAlign", "renderIcon", "onClick", "showToolTip", "wrapperProps", "onBlur", "onFocus", "onMouseEnter", "onMouseLeave", "isInvalid", "wrapperClassName", "tabIndex"];
17
18
  var ConditionBuilderButton = function ConditionBuilderButton(_ref) {
18
19
  var _Icon, _span;
19
20
  var className = _ref.className,
@@ -29,18 +30,23 @@ var ConditionBuilderButton = function ConditionBuilderButton(_ref) {
29
30
  onMouseEnter = _ref.onMouseEnter,
30
31
  onMouseLeave = _ref.onMouseLeave,
31
32
  isInvalid = _ref.isInvalid,
32
- wrapperClassName = _ref.wrapperClassName;
33
+ wrapperClassName = _ref.wrapperClassName,
34
+ tabIndex = _ref.tabIndex,
35
+ rest = _objectWithoutProperties(_ref, _excluded);
33
36
  var Button = function Button() {
37
+ var _rest$dataName;
38
+ var dataName = (_rest$dataName = rest['data-name']) !== null && _rest$dataName !== void 0 ? _rest$dataName : '';
34
39
  return /*#__PURE__*/React__default.createElement("button", {
35
40
  // role={'gridcell'}
36
- tabIndex: -1,
41
+ tabIndex: tabIndex != undefined ? tabIndex : -1,
37
42
  className: cx([className, "".concat(blockClass, "__button"), _defineProperty({}, "".concat(blockClass, "__text-ellipsis"), showToolTip && !hideLabel && !isInvalid), _defineProperty({}, "".concat(blockClass, "__invalid-input"), isInvalid)]),
38
43
  type: "button",
39
44
  onClick: onClick,
40
45
  onBlur: onBlur,
41
46
  onFocus: onFocus,
42
47
  onMouseEnter: onMouseEnter,
43
- onMouseLeave: onMouseLeave
48
+ onMouseLeave: onMouseLeave,
49
+ "data-name": dataName
44
50
  }, Icon && (_Icon || (_Icon = /*#__PURE__*/React__default.createElement(Icon, null))), !hideLabel && (_span || (_span = /*#__PURE__*/React__default.createElement("span", null, label))), isInvalid && (_WarningAltFilled || (_WarningAltFilled = /*#__PURE__*/React__default.createElement(WarningAltFilled, null))));
45
51
  };
46
52
  return hideLabel || showToolTip ? /*#__PURE__*/React__default.createElement(Tooltip, _extends({
@@ -87,6 +93,10 @@ ConditionBuilderButton.propTypes = {
87
93
  *decides if tooltip to be shown
88
94
  */
89
95
  showToolTip: PropTypes.bool,
96
+ /**
97
+ * Tab index
98
+ */
99
+ tabIndex: PropTypes.number,
90
100
  /**
91
101
  * tooltip position
92
102
  */
@@ -5,14 +5,15 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- import { objectWithoutProperties as _objectWithoutProperties, extends as _extends } from '../../../_virtual/_rollupPluginBabelHelpers.js';
8
+ import { objectWithoutProperties as _objectWithoutProperties, slicedToArray as _slicedToArray, extends as _extends } from '../../../_virtual/_rollupPluginBabelHelpers.js';
9
9
  import React__default, { useContext, useCallback } from 'react';
10
10
  import { ConditionBuilderItem } from '../ConditionBuilderItem/ConditionBuilderItem.js';
11
11
  import { ItemOption } from '../ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js';
12
- import { blockClass, translateWithId, connectorConfig } from '../ConditionBuilderContext/DataConfigs.js';
12
+ import { blockClass, connectorConfig } from '../ConditionBuilderContext/DataConfigs.js';
13
13
  import PropTypes from '../../../node_modules/prop-types/index.js';
14
14
  import { focusThisField } from '../utils/util.js';
15
15
  import { ConditionBuilderContext } from '../ConditionBuilderContext/ConditionBuilderProvider.js';
16
+ import { useTranslations } from '../utils/useTranslations.js';
16
17
 
17
18
  var _excluded = ["operator", "className", "onChange"];
18
19
  var ConditionConnector = function ConditionConnector(_ref) {
@@ -22,6 +23,9 @@ var ConditionConnector = function ConditionConnector(_ref) {
22
23
  rest = _objectWithoutProperties(_ref, _excluded);
23
24
  var _useContext = useContext(ConditionBuilderContext),
24
25
  variant = _useContext.variant;
26
+ var _useTranslations = useTranslations(['connectorText']),
27
+ _useTranslations2 = _slicedToArray(_useTranslations, 1),
28
+ connectorText = _useTranslations2[0];
25
29
  var handleConnectorHover = useCallback(function (parentGroup, isHover) {
26
30
  if (isHover) {
27
31
  parentGroup.classList.add('hoveredConnector');
@@ -48,7 +52,7 @@ var ConditionConnector = function ConditionConnector(_ref) {
48
52
  // <div className={className} {...rest}>
49
53
  React__default.createElement(ConditionBuilderItem, _extends({
50
54
  label: operator,
51
- title: translateWithId('connector'),
55
+ title: connectorText,
52
56
  "data-name": "connectorField",
53
57
  onMouseEnter: activeConnectorHandler,
54
58
  onMouseLeave: inActiveConnectorHandler,
@@ -63,7 +67,7 @@ var ConditionConnector = function ConditionConnector(_ref) {
63
67
  },
64
68
  conditionState: {
65
69
  value: operator,
66
- label: translateWithId('connector')
70
+ label: connectorText
67
71
  },
68
72
  onChange: onChangeHandler
69
73
  }))