@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
@@ -5,35 +5,43 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
+ import { slicedToArray as _slicedToArray, objectSpread2 as _objectSpread2 } from '../../../_virtual/_rollupPluginBabelHelpers.js';
8
9
  import React__default, { useContext } from 'react';
9
10
  import { ConditionBuilderItem } from '../ConditionBuilderItem/ConditionBuilderItem.js';
10
- import { blockClass, translateWithId, connectorConfig } from '../ConditionBuilderContext/DataConfigs.js';
11
+ import { blockClass, connectorConfig } from '../ConditionBuilderContext/DataConfigs.js';
11
12
  import { ItemOption } from '../ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js';
12
- import { focusThisField } from '../utils/util.js';
13
13
  import { ConditionBuilderContext } from '../ConditionBuilderContext/ConditionBuilderProvider.js';
14
+ import { useTranslations } from '../utils/useTranslations.js';
14
15
 
15
16
  var GroupConnector = function GroupConnector() {
16
17
  var _useContext = useContext(ConditionBuilderContext),
17
- rootState = _useContext.rootState;
18
+ rootState = _useContext.rootState,
19
+ setRootState = _useContext.setRootState;
20
+ var _useTranslations = useTranslations(['conditionText']),
21
+ _useTranslations2 = _slicedToArray(_useTranslations, 1),
22
+ conditionText = _useTranslations2[0];
23
+ var onStatementChangeHandler = function onStatementChangeHandler(updatedStatement) {
24
+ setRootState(_objectSpread2(_objectSpread2({}, rootState), {}, {
25
+ operator: updatedStatement
26
+ }));
27
+ };
18
28
  return /*#__PURE__*/React__default.createElement("div", {
19
- className: "".concat(blockClass, "__group-separator"),
29
+ className: "".concat(blockClass, "__group-separator ").concat(blockClass, "__group-separator-row"),
20
30
  role: "row",
21
31
  tabIndex: -1,
22
32
  "aria-level": 1
23
33
  }, /*#__PURE__*/React__default.createElement(ConditionBuilderItem, {
24
34
  label: rootState.operator,
25
- title: translateWithId('condition'),
35
+ title: conditionText,
26
36
  "data-name": "connectorField",
27
37
  popOverClassName: "".concat(blockClass, "__gap"),
28
38
  className: "".concat(blockClass, "__statement-button")
29
39
  }, /*#__PURE__*/React__default.createElement(ItemOption, {
30
40
  conditionState: {
31
41
  value: rootState.operator,
32
- label: translateWithId('condition')
33
- },
34
- onChange: function onChange(v, e) {
35
- focusThisField(e);
42
+ label: conditionText
36
43
  },
44
+ onChange: onStatementChangeHandler,
37
45
  config: {
38
46
  options: connectorConfig
39
47
  }
@@ -12,14 +12,15 @@ import { Button, Section, Heading } from '@carbon/react';
12
12
  import { Add, TextNewLine } from '@carbon/react/icons';
13
13
  import ConditionGroupBuilder from '../ConditionGroupBuilder/ConditionGroupBuilder.js';
14
14
  import { ConditionBuilderContext, emptyState } from '../ConditionBuilderContext/ConditionBuilderProvider.js';
15
- import { blockClass, translateWithId } from '../ConditionBuilderContext/DataConfigs.js';
15
+ import { blockClass } from '../ConditionBuilderContext/DataConfigs.js';
16
16
  import { ConditionBuilderButton } from '../ConditionBuilderButton/ConditionBuilderButton.js';
17
17
  import uuidv4 from '../../../global/js/utils/uuidv4.js';
18
18
  import ConditionPreview from '../ConditionPreview/ConditionPreview.js';
19
19
  import GroupConnector from '../ConditionBuilderConnector/GroupConnector.js';
20
20
  import ConditionBuilderActions from '../ConditionBuilderActions/ConditionBuilderActions.js';
21
+ import { useTranslations } from '../utils/useTranslations.js';
21
22
 
22
- var _Heading, _GroupConnector, _ConditionPreview;
23
+ var _Heading, _GroupConnector;
23
24
  var ConditionBuilderContent = function ConditionBuilderContent(_ref) {
24
25
  var _rootState$groups2;
25
26
  var startConditionLabel = _ref.startConditionLabel,
@@ -41,6 +42,9 @@ var ConditionBuilderContent = function ConditionBuilderContent(_ref) {
41
42
  _useState4 = _slicedToArray(_useState3, 2),
42
43
  showConditionGroupPreview = _useState4[0],
43
44
  setShowConditionGroupPreview = _useState4[1];
45
+ var _useTranslations = useTranslations(['addConditionGroupText']),
46
+ _useTranslations2 = _slicedToArray(_useTranslations, 1),
47
+ addConditionGroupText = _useTranslations2[0];
44
48
  useEffect(function () {
45
49
  var _rootState$groups;
46
50
  if (rootState !== null && rootState !== void 0 && (_rootState$groups = rootState.groups) !== null && _rootState$groups !== void 0 && _rootState$groups.length) {
@@ -101,7 +105,7 @@ var ConditionBuilderContent = function ConditionBuilderContent(_ref) {
101
105
  }));
102
106
  };
103
107
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, !isConditionBuilderActive && /*#__PURE__*/React__default.createElement(Button, {
104
- className: "".concat(blockClass, "__add_condition-button"),
108
+ className: "".concat(blockClass, "__addConditionText-button"),
105
109
  renderIcon: function renderIcon(props) {
106
110
  return /*#__PURE__*/React__default.createElement(Add, _extends({
107
111
  size: 16
@@ -151,18 +155,23 @@ var ConditionBuilderContent = function ConditionBuilderContent(_ref) {
151
155
  onMouseLeave: function onMouseLeave() {
152
156
  setShowConditionGroupPreview(false);
153
157
  },
154
- className: "".concat(blockClass, "__add_condition_group "),
158
+ className: "".concat(blockClass, "__addConditionGroupText "),
155
159
  hideLabel: true,
156
- label: translateWithId('add_condition_group'),
160
+ label: addConditionGroupText,
157
161
  wrapperProps: {
158
162
  role: 'gridcell',
159
- 'aria-label': translateWithId('add_condition_group')
163
+ 'aria-label': addConditionGroupText
160
164
  }
161
- })), showConditionGroupPreview && (_ConditionPreview || (_ConditionPreview = /*#__PURE__*/React__default.createElement(ConditionPreview, {
162
- previewType: "newGroup"
163
- }))))), isConditionBuilderActive && actions && /*#__PURE__*/React__default.createElement(ConditionBuilderActions, {
165
+ })), showConditionGroupPreview && /*#__PURE__*/React__default.createElement(ConditionPreview, {
166
+ previewType: "newGroup",
167
+ group: {
168
+ groupOperator: rootState.operator
169
+ }
170
+ }))), isConditionBuilderActive && actions && /*#__PURE__*/React__default.createElement(ConditionBuilderActions, {
164
171
  actions: actions,
165
- className: "".concat(blockClass, "__actions-container")
172
+ className: "".concat(blockClass, "__actions-container"),
173
+ variant: variant,
174
+ conditionBuilderRef: conditionBuilderRef
166
175
  }));
167
176
  };
168
177
  var ConditionBuilderContent$1 = ConditionBuilderContent;
@@ -21,21 +21,27 @@ export namespace ConditionBuilderProvider {
21
21
  let getOptions: PropTypes.Requireable<(...args: any[]) => any>;
22
22
  let inputConfig: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
23
23
  properties: PropTypes.Requireable<(PropTypes.InferProps<{
24
- id: PropTypes.Requireable<string>;
25
- label: PropTypes.Requireable<string>;
24
+ id: PropTypes.Validator<string>;
25
+ label: PropTypes.Validator<string>;
26
26
  icon: PropTypes.Requireable<object>;
27
- type: PropTypes.Requireable<string>;
27
+ type: PropTypes.Validator<string>;
28
28
  config: PropTypes.Requireable<PropTypes.InferProps<{
29
29
  options: PropTypes.Requireable<(PropTypes.InferProps<{
30
- id: PropTypes.Requireable<string>;
31
- label: PropTypes.Requireable<string>;
30
+ id: PropTypes.Validator<string>;
31
+ label: PropTypes.Validator<string>;
32
32
  icon: PropTypes.Requireable<object>;
33
33
  }> | null | undefined)[]>;
34
- includeSearch: PropTypes.Requireable<boolean>;
34
+ component: PropTypes.Requireable<(...args: any[]) => any>;
35
+ operators: PropTypes.Requireable<(PropTypes.InferProps<{
36
+ id: PropTypes.Validator<string>;
37
+ label: PropTypes.Validator<string>;
38
+ }> | null | undefined)[]>;
39
+ long: PropTypes.Requireable<boolean>;
35
40
  }>>;
36
41
  }> | null | undefined)[]>;
37
42
  }>>>;
38
43
  let popOverSearchThreshold: PropTypes.Validator<number>;
44
+ let translateWithId: PropTypes.Requireable<(...args: any[]) => any>;
39
45
  let variant: PropTypes.Validator<string>;
40
46
  }
41
47
  }
@@ -62,7 +62,8 @@ var ConditionBuilderProvider = function ConditionBuilderProvider(props) {
62
62
  inputConfig: props.inputConfig,
63
63
  popOverSearchThreshold: props.popOverSearchThreshold,
64
64
  getOptions: props.getOptions,
65
- variant: props.variant
65
+ variant: props.variant,
66
+ translateWithId: props.translateWithId
66
67
  }
67
68
  },
68
69
  // eslint-disable-next-line react/prop-types
@@ -89,17 +90,22 @@ ConditionBuilderProvider.propTypes = {
89
90
  */
90
91
  inputConfig: PropTypes.shape({
91
92
  properties: PropTypes.arrayOf(PropTypes.shape({
92
- id: PropTypes.string,
93
- label: PropTypes.string,
93
+ id: PropTypes.string.isRequired,
94
+ label: PropTypes.string.isRequired,
94
95
  icon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
95
- type: PropTypes.oneOf(['text', 'number', 'date', 'option', 'time', 'custom']),
96
+ type: PropTypes.oneOf(['text', 'textarea', 'number', 'date', 'option', 'time', 'custom']).isRequired,
96
97
  config: PropTypes.shape({
97
98
  options: PropTypes.arrayOf(PropTypes.shape({
98
- id: PropTypes.string,
99
- label: PropTypes.string,
99
+ id: PropTypes.string.isRequired,
100
+ label: PropTypes.string.isRequired,
100
101
  icon: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
101
102
  })),
102
- includeSearch: PropTypes.bool
103
+ component: PropTypes.func,
104
+ operators: PropTypes.arrayOf(PropTypes.shape({
105
+ id: PropTypes.string.isRequired,
106
+ label: PropTypes.string.isRequired
107
+ })),
108
+ long: PropTypes.bool
103
109
  })
104
110
  }))
105
111
  }).isRequired,
@@ -107,6 +113,13 @@ ConditionBuilderProvider.propTypes = {
107
113
  * Provide an mandatory numeric value that will be used to enable search option in the popovers with list.
108
114
  */
109
115
  popOverSearchThreshold: PropTypes.number.isRequired,
116
+ /**
117
+ * Optional prop if you want to pass translation to the texts used . Otherwise this will the defined defaults.
118
+ * This callback function will receive the message id and you need to return the corresponding text for that id.
119
+ * The message key 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"
120
+ ]
121
+ */
122
+ translateWithId: PropTypes.func,
110
123
  /**
111
124
  * Provide the condition builder variant: sentence/ tree
112
125
  */
@@ -1,6 +1,7 @@
1
1
  export const statementConfig: {
2
2
  label: string;
3
3
  id: string;
4
+ connector: string;
4
5
  }[];
5
6
  export const connectorConfig: {
6
7
  label: string;
@@ -16,9 +17,9 @@ export const operatorConfig: {
16
17
  type: string;
17
18
  }[];
18
19
  export const blockClass: string;
19
- export function translateWithId(key: any): any;
20
20
  export namespace valueRenderers {
21
21
  function text(val: any): any;
22
+ function textarea(val: any): any;
22
23
  function time(val: any): any;
23
24
  function number(val: any): any;
24
25
  function option(value: any): any;
@@ -6,14 +6,15 @@
6
6
  */
7
7
 
8
8
  import { pkg } from '../../../settings.js';
9
- import { translationsObject } from './translationObject.js';
10
9
 
11
10
  var statementConfig = [{
12
11
  label: 'if',
13
- id: 'if'
12
+ id: 'if',
13
+ connector: 'and'
14
14
  }, {
15
15
  label: 'excl.if',
16
- id: 'excl_if'
16
+ id: 'excl_if',
17
+ connector: 'or'
17
18
  }];
18
19
  var connectorConfig = [{
19
20
  label: 'and',
@@ -32,7 +33,7 @@ var operatorConfig = [{
32
33
  type: 'number'
33
34
  }, {
34
35
  label: 'is greater than or equal to',
35
- id: 'greater_equal',
36
+ id: 'greaterEqual',
36
37
  type: 'number'
37
38
  }, {
38
39
  label: 'is lower than',
@@ -40,23 +41,23 @@ var operatorConfig = [{
40
41
  type: 'number'
41
42
  }, {
42
43
  label: 'is lower than or equal to',
43
- id: 'lower_equal',
44
+ id: 'lowerEqual',
44
45
  type: 'number'
45
46
  }, {
46
47
  label: 'starts with',
47
- id: 'starts_with',
48
- type: 'text'
48
+ id: 'startsWith',
49
+ type: 'text,textarea'
49
50
  }, {
50
51
  label: 'ends with',
51
- id: 'ends_with',
52
- type: 'text'
52
+ id: 'endsWith',
53
+ type: 'text,textarea'
53
54
  }, {
54
55
  label: 'contains',
55
56
  id: 'contains',
56
- type: 'text'
57
+ type: 'text,textarea'
57
58
  }, {
58
59
  label: 'is one of',
59
- id: 'one_of',
60
+ id: 'oneOf',
60
61
  type: 'option'
61
62
  }, {
62
63
  label: 'is before',
@@ -79,15 +80,15 @@ var formatDate = function formatDate(date) {
79
80
  var year = date.getFullYear();
80
81
  return "".concat(day, "/").concat(month, "/").concat(year);
81
82
  };
82
- var translationsObjectCurrent = translationsObject['en']; // TO DO: need to discuss if language is to be passed as prop
83
- var translateWithId = function translateWithId(key) {
84
- var _translationsObjectCu;
85
- return (_translationsObjectCu = translationsObjectCurrent[key]) !== null && _translationsObjectCu !== void 0 ? _translationsObjectCu : key;
86
- };
83
+ //const translationsObjectCurrent = translationsObject['en']; // TO DO: need to discuss if language is to be passed as prop
84
+
87
85
  var valueRenderers = {
88
86
  text: function text(val) {
89
87
  return val;
90
88
  },
89
+ textarea: function textarea(val) {
90
+ return val;
91
+ },
91
92
  time: function time(val) {
92
93
  return val;
93
94
  },
@@ -117,4 +118,4 @@ var valueRenderers = {
117
118
  }
118
119
  };
119
120
 
120
- export { blockClass, connectorConfig, operatorConfig, statementConfig, translateWithId, valueRenderers };
121
+ export { blockClass, connectorConfig, operatorConfig, statementConfig, valueRenderers };
@@ -1,41 +1,38 @@
1
1
  export namespace translationsObject {
2
- namespace en {
3
- let _if: string;
4
- export { _if as if };
5
- export let excl_if: string;
6
- export let and: string;
7
- export let or: string;
8
- export let is: string;
9
- export let greater: string;
10
- export let greater_equal: string;
11
- export let lower: string;
12
- export let lower_equal: string;
13
- export let starts_with: string;
14
- export let ends_with: string;
15
- export let contains: string;
16
- export let one_of: string;
17
- export let before: string;
18
- export let after: string;
19
- export let between: string;
20
- export let add_condition: string;
21
- export let add_condition_group: string;
22
- export let add_subgroup: string;
23
- export let condition: string;
24
- export let property: string;
25
- export let operator: string;
26
- export let value: string;
27
- export let connector: string;
28
- export let condition_row: string;
29
- export let remove_condition: string;
30
- export let add_condition_row: string;
31
- export let start: string;
32
- export let end: string;
33
- export let clear_search: string;
34
- export let actions: string;
35
- export let then: string;
36
- export let remove_action: string;
37
- export let add_action: string;
38
- export let invalid_text: string;
39
- export let text_invalid_number: string;
40
- }
2
+ let ifText: string;
3
+ let excl_if: string;
4
+ let and: string;
5
+ let or: string;
6
+ let is: string;
7
+ let greater: string;
8
+ let greaterEqual: string;
9
+ let lower: string;
10
+ let lowerEqual: string;
11
+ let startsWith: string;
12
+ let endsWith: string;
13
+ let contains: string;
14
+ let oneOf: string;
15
+ let before: string;
16
+ let after: string;
17
+ let between: string;
18
+ let addConditionText: string;
19
+ let addConditionGroupText: string;
20
+ let addSubgroupText: string;
21
+ let conditionText: string;
22
+ let propertyText: string;
23
+ let operatorText: string;
24
+ let valueText: string;
25
+ let connectorText: string;
26
+ let conditionRowText: string;
27
+ let removeConditionText: string;
28
+ let addConditionRowText: string;
29
+ let startText: string;
30
+ let endText: string;
31
+ let clearSearchText: string;
32
+ let actionsText: string;
33
+ let then: string;
34
+ let removeActionText: string;
35
+ let addActionText: string;
36
+ let invalidText: string;
37
+ let invalidNumberWarnText: string;
41
38
  }
@@ -6,44 +6,42 @@
6
6
  */
7
7
 
8
8
  var translationsObject = {
9
- en: {
10
- if: 'if',
11
- excl_if: 'excl.if',
12
- and: 'and',
13
- or: 'or',
14
- is: 'is',
15
- greater: 'is greater than',
16
- greater_equal: 'is greater than or equal to',
17
- lower: 'is lower than',
18
- lower_equal: 'is lower than or equal to',
19
- starts_with: 'starts with',
20
- ends_with: 'ends with',
21
- contains: 'contains',
22
- one_of: 'is one of',
23
- before: 'is before',
24
- after: 'is after',
25
- between: 'is between',
26
- add_condition: 'Add condition',
27
- add_condition_group: 'Add condition group',
28
- add_subgroup: 'Add subgroup',
29
- condition: 'Condition',
30
- property: 'Property',
31
- operator: 'Operator',
32
- value: 'Value',
33
- connector: 'Connector',
34
- condition_row: 'Condition row',
35
- remove_condition: 'Remove condition',
36
- add_condition_row: 'Add condition row',
37
- start: 'Start',
38
- end: 'End',
39
- clear_search: 'Clear search input',
40
- actions: 'Actions',
41
- then: 'then',
42
- remove_action: 'Remove Action',
43
- add_action: 'Add action',
44
- invalid_text: 'Incomplete',
45
- text_invalid_number: 'Invalid number, must be 0 or greater'
46
- }
9
+ ifText: 'if',
10
+ excl_if: 'excl.if',
11
+ and: 'and',
12
+ or: 'or',
13
+ is: 'is',
14
+ greater: 'is greater than',
15
+ greaterEqual: 'is greater than or equal to',
16
+ lower: 'is lower than',
17
+ lowerEqual: 'is lower than or equal to',
18
+ startsWith: 'starts with',
19
+ endsWith: 'ends with',
20
+ contains: 'contains',
21
+ oneOf: 'is one of',
22
+ before: 'is before',
23
+ after: 'is after',
24
+ between: 'is between',
25
+ addConditionText: 'Add condition',
26
+ addConditionGroupText: 'Add condition group',
27
+ addSubgroupText: 'Add subgroup',
28
+ conditionText: 'Condition',
29
+ propertyText: 'Property',
30
+ operatorText: 'Operator',
31
+ valueText: 'Value',
32
+ connectorText: 'Connector',
33
+ conditionRowText: 'Condition row',
34
+ removeConditionText: 'Remove condition',
35
+ addConditionRowText: 'Add condition row',
36
+ startText: 'Start',
37
+ endText: 'End',
38
+ clearSearchText: 'Clear search input',
39
+ actionsText: 'Actions',
40
+ then: 'then',
41
+ removeActionText: 'Remove Action',
42
+ addActionText: 'Add action',
43
+ invalidText: 'Incomplete',
44
+ invalidNumberWarnText: 'Invalid number, must be 0 or greater'
47
45
  };
48
46
 
49
47
  export { translationsObject };
@@ -10,8 +10,9 @@ import React__default, { useRef, useState, useEffect } from 'react';
10
10
  import { Popover, PopoverContent, Layer } from '@carbon/react';
11
11
  import PropTypes from '../../../node_modules/prop-types/index.js';
12
12
  import { Add } from '@carbon/react/icons';
13
- import { translateWithId, blockClass, valueRenderers } from '../ConditionBuilderContext/DataConfigs.js';
13
+ import { blockClass, valueRenderers } from '../ConditionBuilderContext/DataConfigs.js';
14
14
  import { ConditionBuilderButton } from '../ConditionBuilderButton/ConditionBuilderButton.js';
15
+ import { useTranslations } from '../utils/useTranslations.js';
15
16
 
16
17
  var _excluded = ["children", "className", "label", "renderIcon", "title", "type", "showToolTip", "condition", "popOverClassName", "config"];
17
18
  var ConditionBuilderItem = function ConditionBuilderItem(_ref) {
@@ -31,17 +32,22 @@ var ConditionBuilderItem = function ConditionBuilderItem(_ref) {
31
32
  _useState2 = _slicedToArray(_useState, 2),
32
33
  open = _useState2[0],
33
34
  setOpen = _useState2[1];
35
+ var _useTranslations = useTranslations(['invalidText', 'addConditionText', label]),
36
+ _useTranslations2 = _slicedToArray(_useTranslations, 3),
37
+ invalidText = _useTranslations2[0],
38
+ addConditionText = _useTranslations2[1],
39
+ labelText = _useTranslations2[2];
34
40
  var getPropertyDetails = function getPropertyDetails() {
35
41
  if (label === 'INVALID') {
36
42
  return {
37
- propertyLabel: translateWithId('invalid_text'),
43
+ propertyLabel: invalidText,
38
44
  isInvalid: true
39
45
  };
40
46
  }
41
- var propertyId = rest['data-name'] == 'valueField' && type ? valueRenderers[type](label, config) : label;
47
+ var propertyId = rest['data-name'] == 'valueField' && type ? valueRenderers[type](label, config) : labelText;
42
48
  return {
43
49
  isInvalid: false,
44
- propertyLabel: translateWithId(propertyId)
50
+ propertyLabel: propertyId
45
51
  };
46
52
  };
47
53
  var _getPropertyDetails = getPropertyDetails(),
@@ -58,7 +64,7 @@ var ConditionBuilderItem = function ConditionBuilderItem(_ref) {
58
64
  if (condition.popoverToOpen && currentField !== condition.popoverToOpen) {
59
65
  // close the previous popover
60
66
  setOpen(false);
61
- } else if (currentField == 'valueField' && type == 'option' && condition.operator !== 'one_of') {
67
+ } else if (currentField == 'valueField' && type == 'option' && condition.operator !== 'oneOf') {
62
68
  //close the current popover if the field is valueField and is a single select dropdown. For all other inputs ,popover need to be open on value changes.
63
69
  setOpen(false);
64
70
  }
@@ -76,7 +82,7 @@ var ConditionBuilderItem = function ConditionBuilderItem(_ref) {
76
82
  useEffect(function () {
77
83
  //this will focus the first input field in the popover
78
84
  if (open && contentRef.current) {
79
- var firstFocusableElement = contentRef.current.querySelector('input');
85
+ var firstFocusableElement = contentRef.current.querySelector('input,textarea');
80
86
  if (firstFocusableElement) {
81
87
  firstFocusableElement.focus();
82
88
  }
@@ -91,7 +97,7 @@ var ConditionBuilderItem = function ConditionBuilderItem(_ref) {
91
97
  setOpen(false);
92
98
  }
93
99
  }, /*#__PURE__*/React__default.createElement(ConditionBuilderButton, _extends({
94
- label: propertyLabel !== null && propertyLabel !== void 0 ? propertyLabel : translateWithId('add_condition'),
100
+ label: propertyLabel !== null && propertyLabel !== void 0 ? propertyLabel : addConditionText,
95
101
  hideLabel: !label ? true : false,
96
102
  onClick: function onClick() {
97
103
  children ? setOpen(!open) : null;
@@ -101,16 +107,18 @@ var ConditionBuilderItem = function ConditionBuilderItem(_ref) {
101
107
  "aria-expanded": open,
102
108
  renderIcon: renderIcon ? renderIcon : label == undefined ? Add : null,
103
109
  showToolTip: showToolTip,
104
- isInvalid: isInvalid
105
- }, rest)), /*#__PURE__*/React__default.createElement(PopoverContent, {
110
+ isInvalid: isInvalid,
111
+ condition: condition
112
+ }, rest)), open && /*#__PURE__*/React__default.createElement(PopoverContent, {
106
113
  className: "".concat(blockClass, "__item__content"),
107
114
  role: "dialog",
108
- "aria-label": "".concat(title)
115
+ "aria-label": title
109
116
  }, /*#__PURE__*/React__default.createElement(Layer, null, /*#__PURE__*/React__default.createElement("h1", {
110
117
  className: "".concat(blockClass, "__item__title")
111
118
  }, title), /*#__PURE__*/React__default.createElement("div", {
112
- ref: contentRef
113
- }, open && children))));
119
+ ref: contentRef,
120
+ className: "".concat(blockClass, "__popover-content")
121
+ }, children))));
114
122
  };
115
123
  ConditionBuilderItem.propTypes = {
116
124
  /**
@@ -5,17 +5,22 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
+ import { slicedToArray as _slicedToArray } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
8
9
  import React__default, { useRef } from 'react';
9
10
  import { DatePicker, DatePickerInput } from '@carbon/react';
10
11
  import { pkg } from '../../../../settings.js';
11
12
  import PropTypes from '../../../../node_modules/prop-types/index.js';
12
- import { translateWithId } from '../../ConditionBuilderContext/DataConfigs.js';
13
+ import { useTranslations } from '../../utils/useTranslations.js';
13
14
 
14
15
  var blockClass = "".concat(pkg.prefix, "--condition-builder");
15
16
  var ConditionBuilderItemDate = function ConditionBuilderItemDate(_ref) {
16
17
  var conditionState = _ref.conditionState,
17
18
  onChange = _ref.onChange;
18
19
  var DatePickerInputRef = useRef();
20
+ var _useTranslations = useTranslations(['startText', 'endText']),
21
+ _useTranslations2 = _slicedToArray(_useTranslations, 2),
22
+ startText = _useTranslations2[0],
23
+ endText = _useTranslations2[1];
19
24
  var datePickerType = conditionState.operator == 'between' ? 'range' : 'single';
20
25
  return /*#__PURE__*/React__default.createElement("div", {
21
26
  className: "".concat(blockClass, "__item-date ")
@@ -38,11 +43,11 @@ var ConditionBuilderItemDate = function ConditionBuilderItemDate(_ref) {
38
43
  }, /*#__PURE__*/React__default.createElement(DatePickerInput, {
39
44
  id: "datePickerStart",
40
45
  placeholder: "dd/mm/yyyy",
41
- labelText: translateWithId('start')
46
+ labelText: startText
42
47
  }), /*#__PURE__*/React__default.createElement(DatePickerInput, {
43
48
  id: "datePickerEnd",
44
49
  placeholder: "dd/mm/yyyy",
45
- labelText: translateWithId('end')
50
+ labelText: endText
46
51
  })));
47
52
  };
48
53
  ConditionBuilderItemDate.propTypes = {
@@ -5,16 +5,21 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
+ import { slicedToArray as _slicedToArray, extends as _extends } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
8
9
  import React__default from 'react';
9
10
  import { NumberInput } from '@carbon/react';
10
11
  import PropTypes from '../../../../node_modules/prop-types/index.js';
11
- import { blockClass, translateWithId } from '../../ConditionBuilderContext/DataConfigs.js';
12
+ import { blockClass } from '../../ConditionBuilderContext/DataConfigs.js';
13
+ import { useTranslations } from '../../utils/useTranslations.js';
12
14
 
13
15
  var ConditionBuilderItemNumber = function ConditionBuilderItemNumber(_ref) {
14
16
  var _conditionState$prope;
15
17
  var conditionState = _ref.conditionState,
16
18
  config = _ref.config,
17
19
  onChange = _ref.onChange;
20
+ var _useTranslations = useTranslations(['invalidNumberWarnText']),
21
+ _useTranslations2 = _slicedToArray(_useTranslations, 1),
22
+ invalidNumberWarnText = _useTranslations2[0];
18
23
  var onChangeHandler = function onChangeHandler(e, _ref2) {
19
24
  var value = _ref2.value;
20
25
  if (checkIfValid(value)) {
@@ -36,18 +41,15 @@ var ConditionBuilderItemNumber = function ConditionBuilderItemNumber(_ref) {
36
41
  };
37
42
  return /*#__PURE__*/React__default.createElement("div", {
38
43
  className: "".concat(blockClass, "__item-number")
39
- }, /*#__PURE__*/React__default.createElement(NumberInput, {
44
+ }, /*#__PURE__*/React__default.createElement(NumberInput, _extends({
40
45
  label: conditionState.property,
41
46
  hideLabel: true,
42
47
  defaultValue: getDefaultValue(),
43
48
  id: (_conditionState$prope = conditionState.property) === null || _conditionState$prope === void 0 ? void 0 : _conditionState$prope.replace(/\s/g, ''),
44
- min: config.min,
45
- max: config.max,
46
- step: config.step,
47
- invalidText: translateWithId('text_invalid_number'),
49
+ invalidText: invalidNumberWarnText,
48
50
  allowEmpty: true,
49
51
  onChange: onChangeHandler
50
- }));
52
+ }, config)));
51
53
  };
52
54
  ConditionBuilderItemNumber.propTypes = {
53
55
  /**