@carbon/ibm-products 2.43.2-canary.145 → 2.43.2-canary.149
Sign up to get free protection for your applications and to get access to all the features.
- package/css/index-full-carbon.css +4 -6
- package/css/index-full-carbon.css.map +1 -1
- package/css/index-full-carbon.min.css +1 -1
- package/css/index-full-carbon.min.css.map +1 -1
- package/css/index-without-carbon.css +4 -6
- package/css/index-without-carbon.css.map +1 -1
- package/css/index-without-carbon.min.css +1 -1
- package/css/index-without-carbon.min.css.map +1 -1
- package/css/index.css +4 -6
- package/css/index.css.map +1 -1
- package/css/index.min.css +1 -1
- package/css/index.min.css.map +1 -1
- package/es/components/Card/Card.js +4 -2
- package/es/components/ConditionBuilder/ConditionBlock/ConditionBlock.d.ts +100 -24
- package/es/components/ConditionBuilder/ConditionBlock/ConditionBlock.js +19 -20
- package/es/components/ConditionBuilder/ConditionBuilder.d.ts +9 -2
- package/es/components/ConditionBuilder/ConditionBuilder.js +9 -6
- package/es/components/ConditionBuilder/ConditionBuilder.types.d.ts +150 -0
- package/es/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.d.ts +26 -12
- package/es/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.js +6 -6
- package/es/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.d.ts +62 -27
- package/es/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.js +1 -2
- package/es/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.d.ts +84 -37
- package/es/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js +1 -1
- package/es/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.d.ts +29 -14
- package/es/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.js +5 -6
- package/es/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.d.ts +40 -20
- package/es/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js +32 -30
- package/es/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.d.ts +10 -49
- package/es/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.js +20 -29
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.d.ts +81 -31
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +5 -5
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.d.ts +27 -12
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.js +1 -1
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.d.ts +30 -12
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js +11 -6
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.d.ts +33 -12
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js +5 -4
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.d.ts +32 -12
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.js +3 -3
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.d.ts +35 -14
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.js +4 -4
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.d.ts +25 -10
- package/es/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.d.ts +44 -17
- package/es/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js +39 -32
- package/es/components/ConditionBuilder/ConditionPreview/ConditionPreview.d.ts +30 -13
- package/es/components/ConditionBuilder/ConditionPreview/ConditionPreview.js +1 -2
- package/es/components/ConditionBuilder/utils/handleKeyboardEvents.js +1 -1
- package/es/components/Datagrid/useFiltering.d.ts +1 -0
- package/es/components/Datagrid/useFiltering.js +14 -3
- package/lib/components/Card/Card.js +3 -1
- package/lib/components/ConditionBuilder/ConditionBlock/ConditionBlock.d.ts +100 -24
- package/lib/components/ConditionBuilder/ConditionBlock/ConditionBlock.js +19 -20
- package/lib/components/ConditionBuilder/ConditionBuilder.d.ts +9 -2
- package/lib/components/ConditionBuilder/ConditionBuilder.js +9 -6
- package/lib/components/ConditionBuilder/ConditionBuilder.types.d.ts +150 -0
- package/lib/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.d.ts +26 -12
- package/lib/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.js +6 -6
- package/lib/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.d.ts +62 -27
- package/lib/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.js +1 -2
- package/lib/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.d.ts +84 -37
- package/lib/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js +1 -1
- package/lib/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.d.ts +29 -14
- package/lib/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.js +5 -6
- package/lib/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.d.ts +40 -20
- package/lib/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js +32 -30
- package/lib/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.d.ts +10 -49
- package/lib/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.js +20 -29
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.d.ts +81 -31
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +5 -5
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.d.ts +27 -12
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.js +1 -1
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.d.ts +30 -12
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js +11 -6
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.d.ts +33 -12
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js +5 -4
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.d.ts +32 -12
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.js +3 -3
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.d.ts +35 -14
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.js +4 -4
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.d.ts +25 -10
- package/lib/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.d.ts +44 -17
- package/lib/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js +39 -32
- package/lib/components/ConditionBuilder/ConditionPreview/ConditionPreview.d.ts +30 -13
- package/lib/components/ConditionBuilder/ConditionPreview/ConditionPreview.js +1 -2
- package/lib/components/ConditionBuilder/utils/handleKeyboardEvents.js +1 -1
- package/lib/components/Datagrid/useFiltering.d.ts +1 -0
- package/lib/components/Datagrid/useFiltering.js +13 -1
- package/package.json +3 -3
- package/scss/components/ConditionBuilder/styles/_conditionBuilderItem.scss +21 -19
@@ -1,28 +1,104 @@
|
|
1
|
-
|
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
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
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
|
-
|
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
|
84
|
-
icon =
|
85
|
-
type =
|
86
|
-
config =
|
87
|
-
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 =
|
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 :
|
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
|
345
|
+
export { ConditionBlock as default };
|
@@ -1,5 +1,12 @@
|
|
1
1
|
/**
|
2
|
-
*
|
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
|
155
|
-
statement: PropTypes.string
|
155
|
+
groupOperator: PropTypes.string,
|
156
|
+
statement: PropTypes.string,
|
156
157
|
conditions: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.shape({
|
157
|
-
property: PropTypes.string
|
158
|
-
operator: PropTypes.string
|
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
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
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
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
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
|
-
|
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
|
154
|
+
export { ConditionBuilderActions as default };
|
@@ -1,28 +1,63 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
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
|
125
|
+
export { ConditionBuilderAdd as default };
|