@carbon/ibm-products 2.43.2-canary.146 → 2.43.2-canary.149

Sign up to get free protection for your applications and to get access to all the features.
Files changed (86) hide show
  1. package/css/index-full-carbon.css +4 -6
  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 +4 -6
  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 +4 -6
  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/Card/Card.js +4 -2
  14. package/es/components/ConditionBuilder/ConditionBlock/ConditionBlock.d.ts +100 -24
  15. package/es/components/ConditionBuilder/ConditionBlock/ConditionBlock.js +19 -20
  16. package/es/components/ConditionBuilder/ConditionBuilder.d.ts +9 -2
  17. package/es/components/ConditionBuilder/ConditionBuilder.js +9 -6
  18. package/es/components/ConditionBuilder/ConditionBuilder.types.d.ts +150 -0
  19. package/es/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.d.ts +26 -12
  20. package/es/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.js +6 -6
  21. package/es/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.d.ts +62 -27
  22. package/es/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.js +1 -2
  23. package/es/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.d.ts +84 -37
  24. package/es/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js +1 -1
  25. package/es/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.d.ts +29 -14
  26. package/es/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.js +5 -6
  27. package/es/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.d.ts +40 -20
  28. package/es/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js +32 -30
  29. package/es/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.d.ts +10 -49
  30. package/es/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.js +20 -29
  31. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.d.ts +81 -31
  32. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +5 -5
  33. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.d.ts +27 -12
  34. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.js +1 -1
  35. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.d.ts +30 -12
  36. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js +11 -6
  37. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.d.ts +33 -12
  38. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js +5 -4
  39. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.d.ts +32 -12
  40. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.js +3 -3
  41. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.d.ts +35 -14
  42. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.js +4 -4
  43. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.d.ts +25 -10
  44. package/es/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.d.ts +44 -17
  45. package/es/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js +39 -32
  46. package/es/components/ConditionBuilder/ConditionPreview/ConditionPreview.d.ts +30 -13
  47. package/es/components/ConditionBuilder/ConditionPreview/ConditionPreview.js +1 -2
  48. package/es/components/ConditionBuilder/utils/handleKeyboardEvents.js +1 -1
  49. package/lib/components/Card/Card.js +3 -1
  50. package/lib/components/ConditionBuilder/ConditionBlock/ConditionBlock.d.ts +100 -24
  51. package/lib/components/ConditionBuilder/ConditionBlock/ConditionBlock.js +19 -20
  52. package/lib/components/ConditionBuilder/ConditionBuilder.d.ts +9 -2
  53. package/lib/components/ConditionBuilder/ConditionBuilder.js +9 -6
  54. package/lib/components/ConditionBuilder/ConditionBuilder.types.d.ts +150 -0
  55. package/lib/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.d.ts +26 -12
  56. package/lib/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.js +6 -6
  57. package/lib/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.d.ts +62 -27
  58. package/lib/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.js +1 -2
  59. package/lib/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.d.ts +84 -37
  60. package/lib/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js +1 -1
  61. package/lib/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.d.ts +29 -14
  62. package/lib/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.js +5 -6
  63. package/lib/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.d.ts +40 -20
  64. package/lib/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js +32 -30
  65. package/lib/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.d.ts +10 -49
  66. package/lib/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.js +20 -29
  67. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.d.ts +81 -31
  68. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +5 -5
  69. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.d.ts +27 -12
  70. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.js +1 -1
  71. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.d.ts +30 -12
  72. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js +11 -6
  73. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.d.ts +33 -12
  74. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js +5 -4
  75. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.d.ts +32 -12
  76. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.js +3 -3
  77. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.d.ts +35 -14
  78. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.js +4 -4
  79. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.d.ts +25 -10
  80. package/lib/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.d.ts +44 -17
  81. package/lib/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js +39 -32
  82. package/lib/components/ConditionBuilder/ConditionPreview/ConditionPreview.d.ts +30 -13
  83. package/lib/components/ConditionBuilder/ConditionPreview/ConditionPreview.js +1 -2
  84. package/lib/components/ConditionBuilder/utils/handleKeyboardEvents.js +1 -1
  85. package/package.json +3 -3
  86. package/scss/components/ConditionBuilder/styles/_conditionBuilderItem.scss +21 -19
@@ -1,28 +1,104 @@
1
- export default ConditionBlock;
1
+ /**
2
+ * Copyright IBM Corp. 2024
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import React from 'react';
8
+ import PropTypes from 'prop-types';
9
+ import { Condition, ConditionGroup, LogicalOperator } from '../ConditionBuilder.types';
2
10
  /**
3
11
  * This component build each block of condition consisting of property, operator value and close button.
4
12
  */
5
- declare function ConditionBlock(props: any): import("react/jsx-runtime").JSX.Element;
6
- declare namespace ConditionBlock {
7
- namespace propTypes {
8
- let addConditionHandler: PropTypes.Requireable<(...args: any[]) => any>;
9
- let addConditionSubGroupHandler: PropTypes.Requireable<(...args: any[]) => any>;
10
- let aria: PropTypes.Requireable<object>;
11
- let condition: PropTypes.Requireable<object>;
12
- let conditionIndex: PropTypes.Requireable<number>;
13
- let conjunction: PropTypes.Requireable<string>;
14
- let group: PropTypes.Requireable<object>;
15
- let hideConditionPreviewHandler: PropTypes.Requireable<(...args: any[]) => any>;
16
- let hideConditionSubGroupPreviewHandler: PropTypes.Requireable<(...args: any[]) => any>;
17
- let isLastCondition: PropTypes.Requireable<(...args: any[]) => any>;
18
- let isStatement: PropTypes.Requireable<boolean>;
19
- let onChange: PropTypes.Requireable<(...args: any[]) => any>;
20
- let onConnectorOperatorChange: PropTypes.Requireable<(...args: any[]) => any>;
21
- let onRemove: PropTypes.Requireable<(...args: any[]) => any>;
22
- let onStatementChange: PropTypes.Requireable<(...args: any[]) => any>;
23
- let showConditionPreviewHandler: PropTypes.Requireable<(...args: any[]) => any>;
24
- let showConditionSubGroupPreviewHandler: PropTypes.Requireable<(...args: any[]) => any>;
25
- let state: PropTypes.Requireable<object>;
26
- }
13
+ interface ConditionBlockProps {
14
+ condition?: Condition;
15
+ onRemove: (e: React.MouseEvent<HTMLButtonElement>) => void;
16
+ onChange: (condition: Condition) => void;
17
+ onConnectorOperatorChange?: (op: string) => void;
18
+ onStatementChange?: (v: string) => void;
19
+ addConditionHandler?: (conditionIndex: number) => void;
20
+ addConditionSubGroupHandler?: (conditionIndex: number) => void;
21
+ hideConditionSubGroupPreviewHandler?: () => void;
22
+ showConditionSubGroupPreviewHandler?: () => void;
23
+ hideConditionPreviewHandler?: () => void;
24
+ showConditionPreviewHandler?: () => void;
25
+ conjunction?: LogicalOperator;
26
+ isStatement?: boolean;
27
+ group: ConditionGroup;
28
+ conditionIndex: number;
29
+ aria: {
30
+ level: number;
31
+ posinset: number;
32
+ setsize?: number;
33
+ };
34
+ isLastCondition: (index: number, conditions: (ConditionGroup | Condition)[]) => void;
27
35
  }
28
- import PropTypes from 'prop-types';
36
+ declare const ConditionBlock: {
37
+ (props: ConditionBlockProps): import("react/jsx-runtime").JSX.Element;
38
+ propTypes: {
39
+ /**
40
+ * callback to add a new condition
41
+ */
42
+ addConditionHandler: PropTypes.Requireable<(...args: any[]) => any>;
43
+ /**
44
+ * callback to add a new condition subgroup
45
+ */
46
+ addConditionSubGroupHandler: PropTypes.Requireable<(...args: any[]) => any>;
47
+ /**
48
+ * object hold aria attributes
49
+ */
50
+ aria: PropTypes.Requireable<object>;
51
+ condition: PropTypes.Requireable<object>;
52
+ conditionIndex: PropTypes.Requireable<number>;
53
+ /**
54
+ * string that decides to show the condition connector
55
+ */
56
+ conjunction: PropTypes.Requireable<string>;
57
+ /**
58
+ * object that hold the current group object where is condition is part of
59
+ */
60
+ group: PropTypes.Requireable<object>;
61
+ /**
62
+ * handler for hiding sub group preview
63
+ */
64
+ hideConditionPreviewHandler: PropTypes.Requireable<(...args: any[]) => any>;
65
+ /**
66
+ * handler for hiding sub group preview
67
+ */
68
+ hideConditionSubGroupPreviewHandler: PropTypes.Requireable<(...args: any[]) => any>;
69
+ isLastCondition: PropTypes.Requireable<(...args: any[]) => any>;
70
+ /**
71
+ * boolean that decides to show the statement(if/ excl.if)
72
+ */
73
+ isStatement: PropTypes.Requireable<boolean>;
74
+ /**
75
+ * callback to update the current condition of the state tree
76
+ */
77
+ onChange: PropTypes.Requireable<(...args: any[]) => any>;
78
+ /**
79
+ * callback to handle the connector(and/or) change
80
+ */
81
+ onConnectorOperatorChange: PropTypes.Requireable<(...args: any[]) => any>;
82
+ /**
83
+ * callback for Remove a condition
84
+ */
85
+ onRemove: PropTypes.Requireable<(...args: any[]) => any>;
86
+ /**
87
+ * callback to handle the statement(if/ excl.if) change
88
+ */
89
+ onStatementChange: PropTypes.Requireable<(...args: any[]) => any>;
90
+ /**
91
+ * handler for showing add condition preview
92
+ */
93
+ showConditionPreviewHandler: PropTypes.Requireable<(...args: any[]) => any>;
94
+ /**
95
+ * handler for showing sub group preview
96
+ */
97
+ showConditionSubGroupPreviewHandler: PropTypes.Requireable<(...args: any[]) => any>;
98
+ /**
99
+ * object that hold the current condition
100
+ */
101
+ state: PropTypes.Requireable<object>;
102
+ };
103
+ };
104
+ export default ConditionBlock;
@@ -32,13 +32,10 @@ var _div;
32
32
  */
33
33
 
34
34
  var ConditionBlock = function ConditionBlock(props) {
35
- var _props$condition = props.condition,
36
- property = _props$condition.property,
37
- value = _props$condition.value,
38
- operator = _props$condition.operator;
39
35
  var onRemove = props.onRemove,
40
36
  onChange = props.onChange,
41
- condition = props.condition,
37
+ _props$condition = props.condition,
38
+ condition = _props$condition === void 0 ? {} : _props$condition,
42
39
  conjunction = props.conjunction,
43
40
  onConnectorOperatorChange = props.onConnectorOperatorChange,
44
41
  isStatement = props.isStatement,
@@ -53,6 +50,9 @@ var ConditionBlock = function ConditionBlock(props) {
53
50
  hideConditionPreviewHandler = props.hideConditionPreviewHandler,
54
51
  showConditionPreviewHandler = props.showConditionPreviewHandler,
55
52
  isLastCondition = props.isLastCondition;
53
+ var property = condition.property,
54
+ value = condition.value,
55
+ operator = condition.operator;
56
56
  var _useContext = useContext(ConditionBuilderContext),
57
57
  inputConfig = _useContext.inputConfig,
58
58
  variant = _useContext.variant,
@@ -76,15 +76,15 @@ var ConditionBlock = function ConditionBlock(props) {
76
76
  //filtering the current property to access its properties and config options
77
77
  var getCurrentConfig = function getCurrentConfig(property) {
78
78
  var _inputConfig$properti, _inputConfig$properti2;
79
- return (_inputConfig$properti = (_inputConfig$properti2 = inputConfig.properties) === null || _inputConfig$properti2 === void 0 ? void 0 : _inputConfig$properti2.find(function (eachProperty) {
79
+ return (_inputConfig$properti = inputConfig === null || inputConfig === void 0 || (_inputConfig$properti2 = inputConfig.properties) === null || _inputConfig$properti2 === void 0 ? void 0 : _inputConfig$properti2.find(function (eachProperty) {
80
80
  return eachProperty.id == property;
81
81
  })) !== null && _inputConfig$properti !== void 0 ? _inputConfig$properti : {};
82
82
  };
83
- var _getCurrentConfig = getCurrentConfig(property),
84
- icon = _getCurrentConfig.icon,
85
- type = _getCurrentConfig.type,
86
- config = _getCurrentConfig.config,
87
- label = _getCurrentConfig.label;
83
+ var _ref = getCurrentConfig(property),
84
+ icon = _ref.icon,
85
+ type = _ref.type,
86
+ config = _ref.config,
87
+ label = _ref.label;
88
88
 
89
89
  //Below possible input types expected for value field.
90
90
  var itemComponents = {
@@ -96,7 +96,7 @@ var ConditionBlock = function ConditionBlock(props) {
96
96
  custom: config === null || config === void 0 ? void 0 : config.component,
97
97
  textarea: ConditionBuilderItemText
98
98
  };
99
- var ItemComponent = property ? itemComponents[type] : null;
99
+ var ItemComponent = itemComponents[type];
100
100
  var showAllActionsHandler = function showAllActionsHandler() {
101
101
  setShowAllActions(true);
102
102
  };
@@ -105,7 +105,7 @@ var ConditionBlock = function ConditionBlock(props) {
105
105
  };
106
106
  var onStatementChangeHandler = function onStatementChangeHandler(v, evt) {
107
107
  focusThisField(evt, conditionBuilderRef);
108
- onStatementChange(v);
108
+ onStatementChange === null || onStatementChange === void 0 || onStatementChange(v);
109
109
  };
110
110
  var onPropertyChangeHandler = function onPropertyChangeHandler(newProperty) {
111
111
  onChange(_objectSpread2(_objectSpread2({}, condition), {}, {
@@ -183,7 +183,7 @@ var ConditionBlock = function ConditionBlock(props) {
183
183
  className: "".concat(blockClass, "__gap"),
184
184
  operator: conjunction,
185
185
  onChange: function onChange(op) {
186
- return onConnectorOperatorChange(op);
186
+ return onConnectorOperatorChange === null || onConnectorOperatorChange === void 0 ? void 0 : onConnectorOperatorChange(op);
187
187
  }
188
188
  }) : _div || (_div = /*#__PURE__*/React__default.createElement("div", {
189
189
  role: "gridcell"
@@ -206,7 +206,7 @@ var ConditionBlock = function ConditionBlock(props) {
206
206
  })), /*#__PURE__*/React__default.createElement(ConditionBuilderItem, {
207
207
  label: label !== null && label !== void 0 ? label : condition === null || condition === void 0 ? void 0 : condition.property,
208
208
  title: propertyText,
209
- renderIcon: icon !== null && icon !== void 0 ? icon : null,
209
+ renderIcon: icon !== null && icon !== void 0 ? icon : undefined,
210
210
  className: "".concat(blockClass, "__property-field"),
211
211
  "data-name": "propertyField",
212
212
  condition: condition,
@@ -219,7 +219,7 @@ var ConditionBlock = function ConditionBlock(props) {
219
219
  },
220
220
  onChange: onPropertyChangeHandler,
221
221
  config: {
222
- options: inputConfig.properties
222
+ options: inputConfig === null || inputConfig === void 0 ? void 0 : inputConfig.properties
223
223
  }
224
224
  })), checkIsValid(property) && /*#__PURE__*/React__default.createElement(ConditionBuilderItem, {
225
225
  label: operator,
@@ -263,10 +263,10 @@ var ConditionBlock = function ConditionBlock(props) {
263
263
  "data-name": "closeCondition"
264
264
  })), manageActionButtons(conditionIndex, group.conditions) && /*#__PURE__*/React__default.createElement(ConditionBuilderAdd, {
265
265
  onClick: function onClick() {
266
- addConditionHandler(conditionIndex);
266
+ addConditionHandler === null || addConditionHandler === void 0 || addConditionHandler(conditionIndex);
267
267
  },
268
268
  addConditionSubGroupHandler: function addConditionSubGroupHandler() {
269
- _addConditionSubGroupHandler(conditionIndex);
269
+ _addConditionSubGroupHandler === null || _addConditionSubGroupHandler === void 0 || _addConditionSubGroupHandler(conditionIndex);
270
270
  },
271
271
  showConditionSubGroupPreviewHandler: showConditionSubGroupPreviewHandler,
272
272
  hideConditionSubGroupPreviewHandler: hideConditionSubGroupPreviewHandler,
@@ -276,7 +276,6 @@ var ConditionBlock = function ConditionBlock(props) {
276
276
  className: "".concat(blockClass, "__gap ").concat(blockClass, "__gap-left")
277
277
  }));
278
278
  };
279
- var ConditionBlock$1 = ConditionBlock;
280
279
  ConditionBlock.propTypes = {
281
280
  /**
282
281
  * callback to add a new condition
@@ -343,4 +342,4 @@ ConditionBlock.propTypes = {
343
342
  state: PropTypes.object
344
343
  };
345
344
 
346
- export { ConditionBlock$1 as default };
345
+ export { ConditionBlock as default };
@@ -1,5 +1,12 @@
1
1
  /**
2
- * TODO: A description of the component.
2
+ * Copyright IBM Corp. 2024, 2024
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
3
6
  */
4
- export let ConditionBuilder: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
5
7
  import React from 'react';
8
+ import { ConditionBuilderProps } from './ConditionBuilder.types';
9
+ /**
10
+ * TODO: A description of the component.
11
+ */
12
+ export declare let ConditionBuilder: React.ForwardRefExoticComponent<ConditionBuilderProps & React.RefAttributes<HTMLDivElement>>;
@@ -18,7 +18,6 @@ import { blockClass } from './ConditionBuilderContext/DataConfigs.js';
18
18
  import { handleKeyDown } from './utils/handleKeyboardEvents.js';
19
19
 
20
20
  var _excluded = ["className", "inputConfig", "startConditionLabel", "popOverSearchThreshold", "getOptions", "initialState", "getConditionState", "getActionsState", "variant", "actions", "translateWithId"];
21
-
22
21
  // Carbon and package components we use.
23
22
  /* TODO: @import(s) of carbon components and other package components. */
24
23
 
@@ -58,7 +57,7 @@ var ConditionBuilder = /*#__PURE__*/React__default.forwardRef(function (_ref, re
58
57
  actions = _ref.actions,
59
58
  translateWithId = _ref.translateWithId,
60
59
  rest = _objectWithoutProperties(_ref, _excluded);
61
- var localRef = useRef();
60
+ var localRef = useRef(null);
62
61
  var conditionBuilderRef = ref || localRef;
63
62
  var handleKeyDownHandler = function handleKeyDownHandler(evt) {
64
63
  handleKeyDown(evt, conditionBuilderRef, variant);
@@ -108,6 +107,7 @@ ConditionBuilder.propTypes = {
108
107
  /**
109
108
  * optional array of actions
110
109
  */
110
+ /**@ts-ignore */
111
111
  actions: PropTypes.arrayOf(PropTypes.shape({
112
112
  id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,
113
113
  label: PropTypes.string.isRequired
@@ -149,13 +149,14 @@ ConditionBuilder.propTypes = {
149
149
  * Optional prop if you want to pass a saved condition state.
150
150
  * This object should respect the structure of condition state that is available in getConditionState callback
151
151
  */
152
+ /**@ts-ignore */
152
153
  initialState: PropTypes.shape({
153
154
  groups: PropTypes.arrayOf(PropTypes.shape({
154
- groupOperator: PropTypes.string.isRequired,
155
- statement: PropTypes.string.isRequired,
155
+ groupOperator: PropTypes.string,
156
+ statement: PropTypes.string,
156
157
  conditions: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.shape({
157
- property: PropTypes.string.isRequired,
158
- operator: PropTypes.string.isRequired,
158
+ property: PropTypes.string,
159
+ operator: PropTypes.string,
159
160
  value: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.shape({
160
161
  id: PropTypes.string,
161
162
  label: PropTypes.string
@@ -171,6 +172,7 @@ ConditionBuilder.propTypes = {
171
172
  * This is a mandatory prop that defines the input to the condition builder.
172
173
 
173
174
  */
175
+ /**@ts-ignore */
174
176
  inputConfig: PropTypes.shape({
175
177
  properties: PropTypes.arrayOf(PropTypes.shape({
176
178
  id: PropTypes.string.isRequired,
@@ -205,6 +207,7 @@ ConditionBuilder.propTypes = {
205
207
  * The message id will be one of [ "ifText","addConditionText", "addConditionGroupText", "addSubgroupText", "conditionText", "propertyText", "operatorText", "valueText", "connectorText", "conditionRowText","conditionRowGroupText","conditionBuilderText","actionSectionText", "removeConditionText", "addConditionRowText", "startText", "endText", "clearSearchText", "actionsText", "then", "removeActionText", "addActionText", "invalidText", "invalidNumberWarnText"]
206
208
  ]
207
209
  */
210
+ /**@ts-ignore */
208
211
  translateWithId: PropTypes.func,
209
212
  /* TODO: add types and DocGen for all props. */
210
213
  /**
@@ -0,0 +1,150 @@
1
+ /// <reference path="../../../src/custom-typings/index.d.ts" />
2
+ /**
3
+ * Copyright IBM Corp. 2024
4
+ *
5
+ * This source code is licensed under the Apache-2.0 license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ import { TextAreaProps, TextInputProps } from '@carbon/react';
9
+ import { CarbonIconType } from '@carbon/react/icons';
10
+ import { NumberInputProps } from '@carbon/react/lib/components/NumberInput/NumberInput';
11
+ import { Dispatch, ForwardedRef, PropsWithChildren, ReactNode, SetStateAction } from 'react';
12
+ export type LogicalOperator = 'and' | 'or';
13
+ export type StatementOperator = 'if' | 'if-not';
14
+ type CoreOperator = 'is';
15
+ type NumberOperator = 'greater' | 'greaterEqual' | 'lower' | 'lowerEqual';
16
+ type StringOperator = 'startsWith' | 'endsWith';
17
+ type ArrayOperator = 'contains';
18
+ type OptionOperator = 'oneOf';
19
+ type DateOperator = 'before' | 'after';
20
+ export type Operator = LogicalOperator | StatementOperator | CoreOperator | NumberOperator | StringOperator | ArrayOperator | OptionOperator | DateOperator;
21
+ export type OperatorGroups = 'logical' | 'statement' | 'core' | 'number' | 'string' | 'array' | 'option' | 'date';
22
+ export type Operators = {
23
+ logical: LogicalOperator;
24
+ statement: StatementOperator;
25
+ core: CoreOperator;
26
+ number: NumberOperator;
27
+ string: StringOperator;
28
+ array: ArrayOperator;
29
+ option: OptionOperator;
30
+ date: DateOperator;
31
+ };
32
+ export type PropertyConfigOption = {
33
+ type: 'option';
34
+ config?: {
35
+ options?: {
36
+ id: string;
37
+ label: string;
38
+ icon?: CarbonIconType;
39
+ }[];
40
+ };
41
+ };
42
+ export interface PropertyConfigText {
43
+ type: 'text';
44
+ config: TextInputProps;
45
+ }
46
+ export interface PropertyConfigTextArea {
47
+ type: 'textarea';
48
+ config: TextAreaProps;
49
+ }
50
+ export interface PropertyConfigNumber {
51
+ type: 'number';
52
+ config: {
53
+ min?: number;
54
+ max?: number;
55
+ step?: number;
56
+ unit?: string;
57
+ } & NumberInputProps;
58
+ }
59
+ export type PropertyConfigDate = {
60
+ type: 'date';
61
+ config: object;
62
+ };
63
+ export type PropertyConfigTime = {
64
+ type: 'time';
65
+ config: {
66
+ timeZones: string[];
67
+ };
68
+ };
69
+ export type PropertyConfigCustom = {
70
+ type: 'custom';
71
+ config: {
72
+ component: React.ComponentType<any>;
73
+ operators: {
74
+ label: string;
75
+ id: string;
76
+ }[];
77
+ };
78
+ };
79
+ export type PropertyConfig = {
80
+ option: PropertyConfigOption;
81
+ text: PropertyConfigText;
82
+ textarea: PropertyConfigTextArea;
83
+ number: PropertyConfigNumber;
84
+ date: PropertyConfigDate;
85
+ time: PropertyConfigTime;
86
+ custom: PropertyConfigCustom;
87
+ };
88
+ export type Property = {
89
+ id: string;
90
+ label: string;
91
+ icon?: CarbonIconType;
92
+ } & (PropertyConfig['option'] | PropertyConfig['text'] | PropertyConfig['number'] | PropertyConfig['date'] | PropertyConfig['textarea'] | PropertyConfig['time'] | PropertyConfig['custom']);
93
+ export type inputConfig = {
94
+ properties: Property[];
95
+ };
96
+ export type Option = {
97
+ id: string;
98
+ label: string;
99
+ icon?: CarbonIconType;
100
+ };
101
+ export type Condition = {
102
+ property?: string;
103
+ operator?: Operator | '' | 'INVALID';
104
+ value?: string | Option[] | Option;
105
+ id?: string | number;
106
+ popoverToOpen?: string;
107
+ };
108
+ export type ConditionGroup = {
109
+ conditions?: (ConditionGroup | Condition)[];
110
+ groupOperator?: LogicalOperator;
111
+ statement?: StatementOperator;
112
+ id: string;
113
+ };
114
+ export type ConditionBuilderState = {
115
+ groups?: ConditionGroup[];
116
+ operator?: LogicalOperator;
117
+ };
118
+ export type Action = {
119
+ id?: string | number;
120
+ label?: string;
121
+ };
122
+ export type ConditionBuilderProps = {
123
+ inputConfig: inputConfig;
124
+ initialState?: ConditionBuilderState;
125
+ getActionsState?: (state: Action[] | undefined) => void;
126
+ getConditionState: (state: ConditionBuilderState | undefined) => void;
127
+ getOptions?: (state: ConditionBuilderState, condition: Condition) => Promise<Option[]>;
128
+ actions?: Action[];
129
+ className?: string;
130
+ popOverSearchThreshold: number;
131
+ startConditionLabel: string;
132
+ variant?: 'sentence' | 'tree';
133
+ translateWithId: (id: string) => string;
134
+ };
135
+ export interface ConditionBuilderContextInputProps extends PropsWithChildren {
136
+ children?: ReactNode;
137
+ inputConfig?: inputConfig;
138
+ popOverSearchThreshold?: number;
139
+ getOptions?: (state: ConditionBuilderState, condition: Condition) => Promise<Option[]>;
140
+ variant?: string;
141
+ translateWithId?: (id: string) => string;
142
+ conditionBuilderRef?: ForwardedRef<HTMLDivElement>;
143
+ }
144
+ export type ConditionBuilderContextProps = {
145
+ rootState?: ConditionBuilderState;
146
+ setRootState?: Dispatch<SetStateAction<ConditionBuilderState>>;
147
+ actionState?: Action[];
148
+ setActionState?: Dispatch<SetStateAction<Action[]>>;
149
+ } & ConditionBuilderContextInputProps;
150
+ export {};
@@ -1,15 +1,29 @@
1
- export default ConditionBuilderActions;
2
- declare function ConditionBuilderActions({ actions, className }: {
3
- actions: any;
4
- className: any;
5
- }): import("react/jsx-runtime").JSX.Element;
6
- declare namespace ConditionBuilderActions {
7
- namespace propTypes {
8
- let actions: PropTypes.Requireable<(PropTypes.InferProps<{
1
+ /**
2
+ * Copyright IBM Corp. 2024
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import PropTypes from 'prop-types';
8
+ import { Action, Option } from '../ConditionBuilder.types';
9
+ interface ConditionBuilderActionsProps {
10
+ actions: Action[] | Option[];
11
+ className?: string;
12
+ }
13
+ declare const ConditionBuilderActions: {
14
+ ({ actions, className, }: ConditionBuilderActionsProps): import("react/jsx-runtime").JSX.Element;
15
+ propTypes: {
16
+ /**
17
+ * optional array of object that give the list of actions.
18
+ */
19
+ actions: PropTypes.Requireable<(PropTypes.InferProps<{
9
20
  id: PropTypes.Validator<NonNullable<NonNullable<string | number | null | undefined>>>;
10
21
  label: PropTypes.Validator<string>;
11
22
  }> | null | undefined)[]>;
12
- let className: PropTypes.Requireable<string>;
13
- }
14
- }
15
- import PropTypes from 'prop-types';
23
+ /**
24
+ * Provide an optional class to be applied to the containing node.
25
+ */
26
+ className: PropTypes.Requireable<string>;
27
+ };
28
+ };
29
+ export default ConditionBuilderActions;
@@ -24,7 +24,8 @@ var ConditionBuilderActions = function ConditionBuilderActions(_ref) {
24
24
  var actions = _ref.actions,
25
25
  className = _ref.className;
26
26
  var _useContext = useContext(ConditionBuilderContext),
27
- actionState = _useContext.actionState,
27
+ _useContext$actionSta = _useContext.actionState,
28
+ actionState = _useContext$actionSta === void 0 ? [] : _useContext$actionSta,
28
29
  setActionState = _useContext.setActionState;
29
30
  var _useState = useState(-1),
30
31
  _useState2 = _slicedToArray(_useState, 2),
@@ -44,7 +45,7 @@ var ConditionBuilderActions = function ConditionBuilderActions(_ref) {
44
45
  label: undefined,
45
46
  popoverToOpen: 'valueField'
46
47
  };
47
- setActionState([].concat(_toConsumableArray(actionState), [action]));
48
+ setActionState === null || setActionState === void 0 || setActionState([].concat(_toConsumableArray(actionState), [action]));
48
49
  };
49
50
  var onchangeHandler = function onchangeHandler(selectedId, actionIndex) {
50
51
  var action = actions.find(function (action) {
@@ -55,10 +56,10 @@ var ConditionBuilderActions = function ConditionBuilderActions(_ref) {
55
56
  var newAction = _objectSpread2(_objectSpread2({}, action), {}, {
56
57
  id: actionState[actionIndex].id
57
58
  });
58
- setActionState([].concat(_toConsumableArray(actionState.slice(0, actionIndex)), [newAction], _toConsumableArray(actionState.slice(actionIndex + 1))));
59
+ setActionState === null || setActionState === void 0 || setActionState([].concat(_toConsumableArray(actionState.slice(0, actionIndex)), [newAction], _toConsumableArray(actionState.slice(actionIndex + 1))));
59
60
  };
60
61
  var onRemove = function onRemove(selectedId) {
61
- setActionState(actionState.filter(function (action) {
62
+ setActionState === null || setActionState === void 0 || setActionState(actionState.filter(function (action) {
62
63
  return action.id !== selectedId;
63
64
  }));
64
65
  };
@@ -136,7 +137,6 @@ var ConditionBuilderActions = function ConditionBuilderActions(_ref) {
136
137
  tabIndex: 0
137
138
  })));
138
139
  };
139
- var ConditionBuilderActions$1 = ConditionBuilderActions;
140
140
  ConditionBuilderActions.propTypes = {
141
141
  /**
142
142
  * optional array of object that give the list of actions.
@@ -151,4 +151,4 @@ ConditionBuilderActions.propTypes = {
151
151
  className: PropTypes.string
152
152
  };
153
153
 
154
- export { ConditionBuilderActions$1 as default };
154
+ export { ConditionBuilderActions as default };
@@ -1,28 +1,63 @@
1
- export default ConditionBuilderAdd;
2
- declare function ConditionBuilderAdd({ className, onClick, addConditionSubGroupHandler, showConditionSubGroupPreviewHandler, hideConditionSubGroupPreviewHandler, showConditionPreviewHandler, hideConditionPreviewHandler, enableSubGroup, buttonLabel, tabIndex, }: {
3
- className: any;
4
- onClick: any;
5
- addConditionSubGroupHandler: any;
6
- showConditionSubGroupPreviewHandler: any;
7
- hideConditionSubGroupPreviewHandler: any;
8
- showConditionPreviewHandler: any;
9
- hideConditionPreviewHandler: any;
10
- enableSubGroup: any;
11
- buttonLabel: any;
12
- tabIndex: any;
13
- }): import("react/jsx-runtime").JSX.Element;
14
- declare namespace ConditionBuilderAdd {
15
- namespace propTypes {
16
- let addConditionSubGroupHandler: PropTypes.Requireable<(...args: any[]) => any>;
17
- let buttonLabel: PropTypes.Requireable<string>;
18
- let className: PropTypes.Requireable<string>;
19
- let enableSubGroup: PropTypes.Requireable<boolean>;
20
- let hideConditionPreviewHandler: PropTypes.Requireable<(...args: any[]) => any>;
21
- let hideConditionSubGroupPreviewHandler: PropTypes.Requireable<(...args: any[]) => any>;
22
- let onClick: PropTypes.Requireable<(...args: any[]) => any>;
23
- let showConditionPreviewHandler: PropTypes.Requireable<(...args: any[]) => any>;
24
- let showConditionSubGroupPreviewHandler: PropTypes.Requireable<(...args: any[]) => any>;
25
- let tabIndex: PropTypes.Requireable<number>;
26
- }
27
- }
1
+ /**
2
+ * Copyright IBM Corp. 2024
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
28
7
  import PropTypes from 'prop-types';
8
+ interface ConditionBuilderAddProps {
9
+ className?: string;
10
+ onClick: () => void;
11
+ addConditionSubGroupHandler?: () => void;
12
+ showConditionSubGroupPreviewHandler?: () => void;
13
+ hideConditionSubGroupPreviewHandler?: () => void;
14
+ showConditionPreviewHandler?: () => void;
15
+ hideConditionPreviewHandler?: () => void;
16
+ enableSubGroup?: boolean;
17
+ buttonLabel?: string;
18
+ tabIndex?: number;
19
+ }
20
+ declare const ConditionBuilderAdd: {
21
+ ({ className, onClick, addConditionSubGroupHandler, showConditionSubGroupPreviewHandler, hideConditionSubGroupPreviewHandler, showConditionPreviewHandler, hideConditionPreviewHandler, enableSubGroup, buttonLabel, tabIndex, }: ConditionBuilderAddProps): import("react/jsx-runtime").JSX.Element;
22
+ propTypes: {
23
+ /**
24
+ * handler for hiding sub group preview
25
+ */
26
+ addConditionSubGroupHandler: PropTypes.Requireable<(...args: any[]) => any>;
27
+ /**
28
+ * handler for hiding sub group preview
29
+ */ /**
30
+ * tooltip label for plus button
31
+ */
32
+ buttonLabel: PropTypes.Requireable<string>;
33
+ /**
34
+ * Provide an optional class to be applied to the containing node.
35
+ */
36
+ className: PropTypes.Requireable<string>;
37
+ /**
38
+ * boolean to enable sub groups for the tree variant
39
+ */
40
+ enableSubGroup: PropTypes.Requireable<boolean>;
41
+ /**
42
+ * handler for hiding sub group preview
43
+ */
44
+ hideConditionPreviewHandler: PropTypes.Requireable<(...args: any[]) => any>;
45
+ hideConditionSubGroupPreviewHandler: PropTypes.Requireable<(...args: any[]) => any>;
46
+ /**
47
+ * handler for hiding sub group preview
48
+ */ /**
49
+ * callback triggered on click of add button
50
+ */
51
+ onClick: PropTypes.Requireable<(...args: any[]) => any>;
52
+ showConditionPreviewHandler: PropTypes.Requireable<(...args: any[]) => any>;
53
+ showConditionSubGroupPreviewHandler: PropTypes.Requireable<(...args: any[]) => any>;
54
+ /**
55
+ * handler for hiding sub group preview
56
+ */
57
+ /**
58
+ * Tab index
59
+ */
60
+ tabIndex: PropTypes.Requireable<number>;
61
+ };
62
+ };
63
+ export default ConditionBuilderAdd;
@@ -81,7 +81,6 @@ var ConditionBuilderAdd = function ConditionBuilderAdd(_ref) {
81
81
  wrapperClassName: "".concat(blockClass, "__add-condition-sub-group-wrapper ").concat(blockClass, "__gap-left")
82
82
  }, previewHandlersForSubgroup())));
83
83
  };
84
- var ConditionBuilderAdd$1 = ConditionBuilderAdd;
85
84
  ConditionBuilderAdd.propTypes = {
86
85
  /**
87
86
  * handler for hiding sub group preview
@@ -123,4 +122,4 @@ ConditionBuilderAdd.propTypes = {
123
122
  tabIndex: PropTypes.number
124
123
  };
125
124
 
126
- export { ConditionBuilderAdd$1 as default };
125
+ export { ConditionBuilderAdd as default };