@carbon/ibm-products 2.43.2-canary.2 → 2.43.2-canary.20
Sign up to get free protection for your applications and to get access to all the features.
- package/css/index-full-carbon.css +35 -3
- 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-released-only.css.map +1 -1
- package/css/index-without-carbon-released-only.min.css.map +1 -1
- package/css/index-without-carbon.css +35 -3
- 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 +35 -3
- 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/ConditionBuilder/ConditionBlock/ConditionBlock.js +23 -21
- package/es/components/ConditionBuilder/ConditionBuilder.js +67 -20
- package/es/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.d.ts +15 -0
- package/es/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.js +129 -0
- package/es/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.js +6 -4
- package/es/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.d.ts +5 -1
- package/es/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js +16 -4
- package/es/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.js +2 -2
- package/es/components/ConditionBuilder/ConditionBuilderConnector/GroupConnector.js +2 -2
- package/es/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.d.ts +9 -11
- package/es/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js +36 -32
- package/es/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.d.ts +0 -1
- package/es/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.js +7 -2
- package/es/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.d.ts +6 -1
- package/es/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.js +18 -10
- package/es/components/ConditionBuilder/ConditionBuilderContext/translationObject.d.ts +39 -36
- package/es/components/ConditionBuilder/ConditionBuilderContext/translationObject.js +12 -10
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.d.ts +1 -1
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +24 -16
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js +19 -4
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.d.ts +13 -0
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js +109 -0
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/{ConditionBuilderItemOption.d.ts → ItemOptionForValueField.d.ts} +2 -2
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/{ConditionBuilderItemOption.js → ItemOptionForValueField.js} +58 -33
- package/es/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js +4 -6
- package/es/components/ConditionBuilder/ConditionPreview/ConditionPreview.js +14 -5
- package/es/components/ConditionBuilder/utils/handleKeyboardEvents.js +1 -2
- package/es/components/ConditionBuilder/utils/util.d.ts +1 -0
- package/es/components/ConditionBuilder/utils/util.js +16 -1
- package/es/components/DataSpreadsheet/DataSpreadsheet.js +29 -16
- package/es/components/DataSpreadsheet/DataSpreadsheetBody.d.ts +9 -1
- package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +18 -2
- package/es/components/DataSpreadsheet/DataSpreadsheetHeader.d.ts +8 -0
- package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +17 -6
- package/es/components/DataSpreadsheet/hooks/useSpreadsheetMouseMove.js +4 -1
- package/es/components/DataSpreadsheet/hooks/useSpreadsheetMouseUp.d.ts +3 -1
- package/es/components/DataSpreadsheet/hooks/useSpreadsheetMouseUp.js +15 -3
- package/es/components/DataSpreadsheet/types/index.d.ts +1 -1
- package/es/components/DataSpreadsheet/utils/moveColumnIndicatorLine.js +34 -2
- package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +21 -3
- package/es/components/Datagrid/types/index.d.ts +18 -4
- package/es/components/Datagrid/useActionsColumn.d.ts +8 -1
- package/es/components/Datagrid/useActionsColumn.js +7 -6
- package/es/components/Datagrid/useColumnRightAlign.d.ts +8 -1
- package/es/components/Datagrid/useColumnRightAlign.js +4 -3
- package/es/components/Datagrid/useInlineEdit.d.ts +8 -1
- package/es/components/Datagrid/useInlineEdit.js +13 -3
- package/es/components/Datagrid/useNestedRows.js +27 -9
- package/es/components/Decorator/Decorator.js +2 -1
- package/es/components/DecoratorBase/DecoratorBase.js +3 -5
- package/es/components/DecoratorDualButton/DecoratorDualButton.js +2 -1
- package/es/components/DecoratorLink/DecoratorLink.js +2 -1
- package/es/components/DecoratorSingleButton/DecoratorSingleButton.js +2 -1
- package/es/components/Tearsheet/Tearsheet.d.ts +8 -1
- package/es/components/Tearsheet/Tearsheet.js +9 -1
- package/es/components/Tearsheet/TearsheetNarrow.d.ts +11 -0
- package/es/components/Tearsheet/TearsheetNarrow.js +12 -0
- package/es/components/Tearsheet/TearsheetShell.d.ts +10 -0
- package/es/components/Tearsheet/TearsheetShell.js +17 -3
- package/lib/components/ConditionBuilder/ConditionBlock/ConditionBlock.js +23 -21
- package/lib/components/ConditionBuilder/ConditionBuilder.js +67 -20
- package/lib/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.d.ts +15 -0
- package/lib/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.js +137 -0
- package/lib/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.js +6 -3
- package/lib/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.d.ts +5 -1
- package/lib/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js +16 -4
- package/lib/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.js +2 -2
- package/lib/components/ConditionBuilder/ConditionBuilderConnector/GroupConnector.js +2 -2
- package/lib/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.d.ts +9 -11
- package/lib/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js +36 -32
- package/lib/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.d.ts +0 -1
- package/lib/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.js +7 -2
- package/lib/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.d.ts +6 -1
- package/lib/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.js +18 -10
- package/lib/components/ConditionBuilder/ConditionBuilderContext/translationObject.d.ts +39 -36
- package/lib/components/ConditionBuilder/ConditionBuilderContext/translationObject.js +12 -10
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.d.ts +1 -1
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +23 -15
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js +20 -5
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.d.ts +13 -0
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js +117 -0
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/{ConditionBuilderItemOption.d.ts → ItemOptionForValueField.d.ts} +2 -2
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/{ConditionBuilderItemOption.js → ItemOptionForValueField.js} +56 -31
- package/lib/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js +4 -6
- package/lib/components/ConditionBuilder/ConditionPreview/ConditionPreview.js +14 -4
- package/lib/components/ConditionBuilder/utils/handleKeyboardEvents.js +1 -2
- package/lib/components/ConditionBuilder/utils/util.d.ts +1 -0
- package/lib/components/ConditionBuilder/utils/util.js +17 -0
- package/lib/components/DataSpreadsheet/DataSpreadsheet.js +29 -16
- package/lib/components/DataSpreadsheet/DataSpreadsheetBody.d.ts +9 -1
- package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +18 -2
- package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.d.ts +8 -0
- package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +17 -6
- package/lib/components/DataSpreadsheet/hooks/useSpreadsheetMouseMove.js +4 -1
- package/lib/components/DataSpreadsheet/hooks/useSpreadsheetMouseUp.d.ts +3 -1
- package/lib/components/DataSpreadsheet/hooks/useSpreadsheetMouseUp.js +15 -3
- package/lib/components/DataSpreadsheet/types/index.d.ts +1 -1
- package/lib/components/DataSpreadsheet/utils/moveColumnIndicatorLine.js +34 -2
- package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +21 -3
- package/lib/components/Datagrid/types/index.d.ts +18 -4
- package/lib/components/Datagrid/useActionsColumn.d.ts +8 -1
- package/lib/components/Datagrid/useActionsColumn.js +7 -6
- package/lib/components/Datagrid/useColumnRightAlign.d.ts +8 -1
- package/lib/components/Datagrid/useColumnRightAlign.js +4 -3
- package/lib/components/Datagrid/useInlineEdit.d.ts +8 -1
- package/lib/components/Datagrid/useInlineEdit.js +13 -3
- package/lib/components/Datagrid/useNestedRows.js +27 -9
- package/lib/components/Decorator/Decorator.js +2 -1
- package/lib/components/DecoratorBase/DecoratorBase.js +3 -5
- package/lib/components/DecoratorDualButton/DecoratorDualButton.js +2 -1
- package/lib/components/DecoratorLink/DecoratorLink.js +2 -1
- package/lib/components/DecoratorSingleButton/DecoratorSingleButton.js +2 -1
- package/lib/components/Tearsheet/Tearsheet.d.ts +8 -1
- package/lib/components/Tearsheet/Tearsheet.js +9 -1
- package/lib/components/Tearsheet/TearsheetNarrow.d.ts +11 -0
- package/lib/components/Tearsheet/TearsheetNarrow.js +12 -0
- package/lib/components/Tearsheet/TearsheetShell.d.ts +10 -0
- package/lib/components/Tearsheet/TearsheetShell.js +16 -2
- package/package.json +4 -4
- package/scss/components/ConditionBuilder/styles/_conditionBuilderCondition.scss +9 -1
- package/scss/components/ConditionBuilder/styles/_conditionBuilderItem.scss +26 -1
- package/scss/components/DataSpreadsheet/_data-spreadsheet.scss +1 -0
- package/scss/components/StatusIcon/_status-icon.scss +4 -4
- package/scss/components/StringFormatter/_string-formatter.scss +2 -2
- package/scss/components/UserProfileImage/_user-profile-image.scss +6 -2
- package/telemetry.yml +1 -0
- package/es/components/ConditionBuilder/utils/checkForHoldingKey.d.ts +0 -1
- package/es/components/ConditionBuilder/utils/checkForHoldingKey.js +0 -16
- package/lib/components/ConditionBuilder/utils/checkForHoldingKey.d.ts +0 -1
- package/lib/components/ConditionBuilder/utils/checkForHoldingKey.js +0 -20
@@ -11,7 +11,6 @@ import { Close } from '@carbon/react/icons';
|
|
11
11
|
import { ConditionBuilderItem } from '../ConditionBuilderItem/ConditionBuilderItem.js';
|
12
12
|
import PropTypes from '../../../node_modules/prop-types/index.js';
|
13
13
|
import { blockClass, translateWithId, statementConfig, operatorConfig } from '../ConditionBuilderContext/DataConfigs.js';
|
14
|
-
import { ConditionBuilderItemOption } from '../ConditionBuilderItem/ConditionBuilderItemOption/ConditionBuilderItemOption.js';
|
15
14
|
import cx from 'classnames';
|
16
15
|
import ConditionConnector from '../ConditionBuilderConnector/ConditionConnector.js';
|
17
16
|
import { ConditionBuilderItemNumber } from '../ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js';
|
@@ -22,8 +21,11 @@ import { ConditionBuilderButton } from '../ConditionBuilderButton/ConditionBuild
|
|
22
21
|
import { focusThisField } from '../utils/util.js';
|
23
22
|
import { ConditionBuilderItemTime } from '../ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.js';
|
24
23
|
import ConditionBuilderAdd from '../ConditionBuilderAdd/ConditionBuilderAdd.js';
|
24
|
+
import { ItemOption } from '../ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js';
|
25
|
+
import { ItemOptionForValueField } from '../ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.js';
|
25
26
|
|
26
27
|
var _div;
|
28
|
+
|
27
29
|
/**
|
28
30
|
* This component build each block of condition consisting of property, operator value and close button.
|
29
31
|
*/
|
@@ -53,14 +55,6 @@ var ConditionBlock = function ConditionBlock(props) {
|
|
53
55
|
var _useContext = useContext(ConditionBuilderContext),
|
54
56
|
inputConfig = _useContext.inputConfig,
|
55
57
|
variant = _useContext.variant;
|
56
|
-
//Below possible input types expected for value field.
|
57
|
-
var itemComponents = {
|
58
|
-
option: ConditionBuilderItemOption,
|
59
|
-
text: ConditionBuilderItemText,
|
60
|
-
number: ConditionBuilderItemNumber,
|
61
|
-
date: ConditionBuilderItemDate,
|
62
|
-
time: ConditionBuilderItemTime
|
63
|
-
};
|
64
58
|
var _useState = useState(false),
|
65
59
|
_useState2 = _slicedToArray(_useState, 2),
|
66
60
|
showDeletionPreview = _useState2[0],
|
@@ -78,13 +72,17 @@ var ConditionBlock = function ConditionBlock(props) {
|
|
78
72
|
type = _getCurrentConfig.type,
|
79
73
|
config = _getCurrentConfig.config,
|
80
74
|
label = _getCurrentConfig.label;
|
81
|
-
var ItemComponent;
|
82
|
-
// if (type == 'custom') {
|
83
|
-
// ItemComponent = config.component;
|
84
|
-
// } else {
|
85
|
-
ItemComponent = property ? itemComponents[type] : null;
|
86
|
-
//}
|
87
75
|
|
76
|
+
//Below possible input types expected for value field.
|
77
|
+
var itemComponents = {
|
78
|
+
text: ConditionBuilderItemText,
|
79
|
+
number: ConditionBuilderItemNumber,
|
80
|
+
date: ConditionBuilderItemDate,
|
81
|
+
time: ConditionBuilderItemTime,
|
82
|
+
option: ItemOptionForValueField,
|
83
|
+
custom: config === null || config === void 0 ? void 0 : config.component
|
84
|
+
};
|
85
|
+
var ItemComponent = property ? itemComponents[type] : null;
|
88
86
|
var onStatementChangeHandler = function onStatementChangeHandler(v, evt) {
|
89
87
|
focusThisField(evt);
|
90
88
|
onStatementChange(v);
|
@@ -105,9 +103,10 @@ var ConditionBlock = function ConditionBlock(props) {
|
|
105
103
|
}));
|
106
104
|
};
|
107
105
|
var onValueChangeHandler = function onValueChangeHandler(newValue) {
|
108
|
-
|
109
|
-
|
110
|
-
|
106
|
+
var currentCondition = _objectSpread2({}, condition);
|
107
|
+
delete currentCondition.popoverToOpen;
|
108
|
+
onChange(_objectSpread2(_objectSpread2({}, currentCondition), {}, {
|
109
|
+
value: newValue
|
111
110
|
}));
|
112
111
|
};
|
113
112
|
var handleShowDeletionPreview = function handleShowDeletionPreview() {
|
@@ -117,6 +116,9 @@ var ConditionBlock = function ConditionBlock(props) {
|
|
117
116
|
setShowDeletionPreview(false);
|
118
117
|
};
|
119
118
|
var getOperators = function getOperators() {
|
119
|
+
if (config !== null && config !== void 0 && config.operators) {
|
120
|
+
return config.operators;
|
121
|
+
}
|
120
122
|
return operatorConfig.filter(function (operator) {
|
121
123
|
return operator.type.indexOf(type) != -1 || operator.type == 'all';
|
122
124
|
});
|
@@ -147,7 +149,7 @@ var ConditionBlock = function ConditionBlock(props) {
|
|
147
149
|
"data-name": "connectorField",
|
148
150
|
popOverClassName: "".concat(blockClass, "__gap"),
|
149
151
|
className: "".concat(blockClass, "__statement-button")
|
150
|
-
}, /*#__PURE__*/React__default.createElement(
|
152
|
+
}, /*#__PURE__*/React__default.createElement(ItemOption, {
|
151
153
|
conditionState: {
|
152
154
|
value: group.statement,
|
153
155
|
label: translateWithId('condition')
|
@@ -164,7 +166,7 @@ var ConditionBlock = function ConditionBlock(props) {
|
|
164
166
|
"data-name": "propertyField",
|
165
167
|
condition: condition,
|
166
168
|
type: type
|
167
|
-
}, /*#__PURE__*/React__default.createElement(
|
169
|
+
}, /*#__PURE__*/React__default.createElement(ItemOption, {
|
168
170
|
conditionState: {
|
169
171
|
value: property,
|
170
172
|
label: translateWithId('property')
|
@@ -179,7 +181,7 @@ var ConditionBlock = function ConditionBlock(props) {
|
|
179
181
|
"data-name": "operatorField",
|
180
182
|
condition: condition,
|
181
183
|
type: type
|
182
|
-
}, /*#__PURE__*/React__default.createElement(
|
184
|
+
}, /*#__PURE__*/React__default.createElement(ItemOption, {
|
183
185
|
config: {
|
184
186
|
options: getOperators()
|
185
187
|
},
|
@@ -17,7 +17,7 @@ import { pkg } from '../../settings.js';
|
|
17
17
|
import { blockClass } from './ConditionBuilderContext/DataConfigs.js';
|
18
18
|
import { handleKeyDown } from './utils/handleKeyboardEvents.js';
|
19
19
|
|
20
|
-
var _excluded = ["className", "inputConfig", "startConditionLabel", "popOverSearchThreshold", "getOptions", "initialState", "getConditionState", "variant"];
|
20
|
+
var _excluded = ["className", "inputConfig", "startConditionLabel", "popOverSearchThreshold", "getOptions", "initialState", "getConditionState", "getActionsState", "variant", "actions"];
|
21
21
|
|
22
22
|
// Carbon and package components we use.
|
23
23
|
/* TODO: @import(s) of carbon components and other package components. */
|
@@ -52,7 +52,9 @@ var ConditionBuilder = /*#__PURE__*/React__default.forwardRef(function (_ref, re
|
|
52
52
|
getOptions = _ref.getOptions,
|
53
53
|
initialState = _ref.initialState,
|
54
54
|
getConditionState = _ref.getConditionState,
|
55
|
+
getActionsState = _ref.getActionsState,
|
55
56
|
variant = _ref.variant,
|
57
|
+
actions = _ref.actions,
|
56
58
|
rest = _objectWithoutProperties(_ref, _excluded);
|
57
59
|
var localRef = useRef();
|
58
60
|
var conditionBuilderRef = ref || localRef;
|
@@ -83,7 +85,9 @@ var ConditionBuilder = /*#__PURE__*/React__default.forwardRef(function (_ref, re
|
|
83
85
|
startConditionLabel: startConditionLabel,
|
84
86
|
conditionBuilderRef: conditionBuilderRef,
|
85
87
|
getConditionState: getConditionState,
|
86
|
-
|
88
|
+
getActionsState: getActionsState,
|
89
|
+
initialState: initialState,
|
90
|
+
actions: actions
|
87
91
|
}))));
|
88
92
|
});
|
89
93
|
|
@@ -99,27 +103,66 @@ ConditionBuilder.displayName = componentName;
|
|
99
103
|
// See https://www.npmjs.com/package/prop-types#usage.
|
100
104
|
ConditionBuilder.propTypes = {
|
101
105
|
/**
|
102
|
-
*
|
106
|
+
* optional array of actions
|
103
107
|
*/
|
104
|
-
|
105
|
-
|
108
|
+
actions: PropTypes.arrayOf(PropTypes.shape({
|
109
|
+
id: PropTypes.oneOfType([PropTypes.string | PropTypes.number]).isRequired,
|
110
|
+
label: PropTypes.string.isRequired
|
111
|
+
})),
|
106
112
|
/**
|
107
113
|
* Provide an optional class to be applied to the containing node.
|
108
114
|
*/
|
109
115
|
className: PropTypes.string,
|
116
|
+
/**
|
117
|
+
* This is a callback that gives back the updated action state
|
118
|
+
*/
|
119
|
+
getActionsState: PropTypes.func,
|
120
|
+
/**
|
121
|
+
* This is a callback that gives back updated condition state
|
122
|
+
*/
|
110
123
|
getConditionState: PropTypes.func.isRequired,
|
124
|
+
/**
|
125
|
+
* This is a callback that get triggered when you want to dynamically fetch options.
|
126
|
+
* Component call this when the option array is not passed against a property with type as option in the input config.
|
127
|
+
* This is an asynchronous callback that can return a promise , and you need to resolve the promise with options array in the valid format.
|
128
|
+
* You will receive the root condition state and current condition as the 2 arguments.
|
129
|
+
* eg: const getOptions = async (conditionState,condition) => {
|
130
|
+
switch (condition.property) {
|
131
|
+
case 'continent':
|
132
|
+
return new Promise((resolve) => {
|
133
|
+
const continents=[{
|
134
|
+
label: 'Africa',
|
135
|
+
id: 'Africa',
|
136
|
+
},...]
|
137
|
+
resolve(continents);
|
138
|
+
});
|
139
|
+
default:
|
140
|
+
return [];
|
141
|
+
}
|
142
|
+
};
|
143
|
+
*/
|
111
144
|
getOptions: PropTypes.func,
|
145
|
+
/**
|
146
|
+
* Optional prop if you want to pass a saved condition state.
|
147
|
+
* This object should respect the structure of condition state that is available in getConditionState callback
|
148
|
+
*/
|
112
149
|
initialState: PropTypes.shape({
|
113
150
|
groups: PropTypes.arrayOf(PropTypes.shape({
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
151
|
+
groupOperator: PropTypes.string.isRequired,
|
152
|
+
statement: PropTypes.string.isRequired,
|
153
|
+
conditions: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.shape({
|
154
|
+
property: PropTypes.string.isRequired,
|
155
|
+
operator: PropTypes.string.isRequired,
|
156
|
+
value: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.shape({
|
157
|
+
id: PropTypes.string,
|
158
|
+
label: PropTypes.string
|
159
|
+
})), PropTypes.shape({
|
160
|
+
id: PropTypes.string,
|
161
|
+
label: PropTypes.string
|
162
|
+
})])
|
163
|
+
}), PropTypes.object]))
|
164
|
+
})),
|
165
|
+
operator: PropTypes.string
|
123
166
|
}),
|
124
167
|
/**
|
125
168
|
* This is a mandatory prop that defines the input to the condition builder.
|
@@ -127,17 +170,21 @@ ConditionBuilder.propTypes = {
|
|
127
170
|
*/
|
128
171
|
inputConfig: PropTypes.shape({
|
129
172
|
properties: PropTypes.arrayOf(PropTypes.shape({
|
130
|
-
id: PropTypes.string,
|
131
|
-
label: PropTypes.string,
|
173
|
+
id: PropTypes.string.isRequired,
|
174
|
+
label: PropTypes.string.isRequired,
|
132
175
|
icon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
|
133
|
-
type: PropTypes.oneOf(['text', 'number', 'date', 'option', 'time']),
|
176
|
+
type: PropTypes.oneOf(['text', 'number', 'date', 'option', 'time', 'custom']).isRequired,
|
134
177
|
config: PropTypes.shape({
|
135
178
|
options: PropTypes.arrayOf(PropTypes.shape({
|
136
|
-
id: PropTypes.string,
|
137
|
-
label: PropTypes.string,
|
179
|
+
id: PropTypes.string.isRequired,
|
180
|
+
label: PropTypes.string.isRequired,
|
138
181
|
icon: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
|
139
182
|
})),
|
140
|
-
|
183
|
+
component: PropTypes.func,
|
184
|
+
operators: PropTypes.arrayOf(PropTypes.shape({
|
185
|
+
id: PropTypes.string.isRequired,
|
186
|
+
label: PropTypes.string.isRequired
|
187
|
+
}))
|
141
188
|
})
|
142
189
|
}))
|
143
190
|
}).isRequired,
|
@@ -0,0 +1,15 @@
|
|
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<{
|
9
|
+
id: PropTypes.Requireable<number>;
|
10
|
+
label: PropTypes.Requireable<string>;
|
11
|
+
}> | null | undefined)[]>;
|
12
|
+
let className: PropTypes.Requireable<string>;
|
13
|
+
}
|
14
|
+
}
|
15
|
+
import PropTypes from 'prop-types';
|
@@ -0,0 +1,129 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright IBM Corp. 2020, 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
|
+
|
8
|
+
import { toConsumableArray as _toConsumableArray, objectSpread2 as _objectSpread2 } from '../../../_virtual/_rollupPluginBabelHelpers.js';
|
9
|
+
import React__default, { useContext } from 'react';
|
10
|
+
import PropTypes from '../../../node_modules/prop-types/index.js';
|
11
|
+
import { Close } from '@carbon/react/icons';
|
12
|
+
import { Section, Heading } from '@carbon/react';
|
13
|
+
import { ConditionBuilderItem } from '../ConditionBuilderItem/ConditionBuilderItem.js';
|
14
|
+
import { blockClass, translateWithId } from '../ConditionBuilderContext/DataConfigs.js';
|
15
|
+
import { ItemOption } from '../ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js';
|
16
|
+
import { ConditionBuilderContext } from '../ConditionBuilderContext/ConditionBuilderProvider.js';
|
17
|
+
import ConditionBuilderAdd from '../ConditionBuilderAdd/ConditionBuilderAdd.js';
|
18
|
+
import uuidv4 from '../../../global/js/utils/uuidv4.js';
|
19
|
+
import { ConditionBuilderButton } from '../ConditionBuilderButton/ConditionBuilderButton.js';
|
20
|
+
import { checkDuplicateAction, focusThisField } from '../utils/util.js';
|
21
|
+
|
22
|
+
var ConditionBuilderActions = function ConditionBuilderActions(_ref) {
|
23
|
+
var actions = _ref.actions,
|
24
|
+
className = _ref.className;
|
25
|
+
var _useContext = useContext(ConditionBuilderContext),
|
26
|
+
actionState = _useContext.actionState,
|
27
|
+
setActionState = _useContext.setActionState;
|
28
|
+
var addActionHandler = function addActionHandler() {
|
29
|
+
var action = {
|
30
|
+
id: uuidv4(),
|
31
|
+
label: undefined,
|
32
|
+
popoverToOpen: 'actionField'
|
33
|
+
};
|
34
|
+
setActionState([].concat(_toConsumableArray(actionState), [action]));
|
35
|
+
};
|
36
|
+
var onchangeHandler = function onchangeHandler(evt, selectedId, actionIndex, currentAction) {
|
37
|
+
var action = actions.find(function (action) {
|
38
|
+
return action.id === selectedId;
|
39
|
+
}); //fetch the selected action from the input action array
|
40
|
+
|
41
|
+
//if the action is duplicate, that action is added with a new id, else the same action is used.
|
42
|
+
// same actions can be added multiple times
|
43
|
+
var newAction = checkDuplicateAction(actionState, selectedId, currentAction.id) ? _objectSpread2(_objectSpread2({}, action), {}, {
|
44
|
+
id: uuidv4()
|
45
|
+
}) : action;
|
46
|
+
setActionState([].concat(_toConsumableArray(actionState.slice(0, actionIndex)), [newAction], _toConsumableArray(actionState.slice(actionIndex + 1))));
|
47
|
+
focusThisField(evt);
|
48
|
+
};
|
49
|
+
var onRemove = function onRemove(selectedId) {
|
50
|
+
setActionState(actionState.filter(function (action) {
|
51
|
+
return action.id !== selectedId;
|
52
|
+
}));
|
53
|
+
};
|
54
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
55
|
+
className: "".concat(className)
|
56
|
+
}, /*#__PURE__*/React__default.createElement(Section, {
|
57
|
+
className: "".concat(blockClass, "__heading"),
|
58
|
+
level: 4
|
59
|
+
}, /*#__PURE__*/React__default.createElement(Heading, null, translateWithId('actions'))), /*#__PURE__*/React__default.createElement("div", {
|
60
|
+
className: "".concat(blockClass, "__condition-wrapper")
|
61
|
+
}, actionState === null || actionState === void 0 ? void 0 : actionState.map(function (action, index) {
|
62
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
63
|
+
key: action.id,
|
64
|
+
"aria-hidden": true,
|
65
|
+
className: "".concat(blockClass, "__condition-block conditionBlockWrapper ").concat(blockClass, "__gap ").concat(blockClass, "__gap-bottom ")
|
66
|
+
}, /*#__PURE__*/React__default.createElement(ConditionBuilderItem, {
|
67
|
+
className: "".concat(blockClass, "__statement-button"),
|
68
|
+
popOverClassName: "".concat(blockClass, "__gap"),
|
69
|
+
label: index === 0 ? translateWithId('then') : translateWithId('and')
|
70
|
+
}), /*#__PURE__*/React__default.createElement(ConditionBuilderItem, {
|
71
|
+
label: action.label,
|
72
|
+
title: translateWithId('actions'),
|
73
|
+
popOverClassName: "".concat(blockClass, "__gap"),
|
74
|
+
condition: action,
|
75
|
+
"data-name": "actionField"
|
76
|
+
}, /*#__PURE__*/React__default.createElement(ItemOption, {
|
77
|
+
conditionState: {
|
78
|
+
value: action.label
|
79
|
+
},
|
80
|
+
onChange: function onChange(selectedId, evt) {
|
81
|
+
return onchangeHandler(evt, selectedId, index, action);
|
82
|
+
},
|
83
|
+
config: {
|
84
|
+
options: actions
|
85
|
+
}
|
86
|
+
})), /*#__PURE__*/React__default.createElement("span", {
|
87
|
+
role: "gridcell",
|
88
|
+
"aria-label": translateWithId('remove_action')
|
89
|
+
}, /*#__PURE__*/React__default.createElement(ConditionBuilderButton, {
|
90
|
+
hideLabel: true,
|
91
|
+
label: translateWithId('remove_action'),
|
92
|
+
onClick: function onClick() {
|
93
|
+
return onRemove(action.id);
|
94
|
+
}
|
95
|
+
// onMouseEnter={handleShowDeletionPreview}
|
96
|
+
// onMouseLeave={handleHideDeletionPreview}
|
97
|
+
// onFocus={handleShowDeletionPreview}
|
98
|
+
// onBlur={handleHideDeletionPreview}
|
99
|
+
,
|
100
|
+
renderIcon: Close,
|
101
|
+
className: "".concat(blockClass, "__close-condition"),
|
102
|
+
"data-name": "closeCondition"
|
103
|
+
})), actionState.length === index + 1 && /*#__PURE__*/React__default.createElement(ConditionBuilderAdd, {
|
104
|
+
onClick: addActionHandler,
|
105
|
+
className: "".concat(blockClass, "__gap ").concat(blockClass, "__gap-left"),
|
106
|
+
buttonLabel: translateWithId('add_action')
|
107
|
+
}));
|
108
|
+
}), actionState.length === 0 && /*#__PURE__*/React__default.createElement(ConditionBuilderAdd, {
|
109
|
+
onClick: addActionHandler,
|
110
|
+
className: "".concat(blockClass, "__gap ").concat(blockClass, "__gap-left"),
|
111
|
+
buttonLabel: translateWithId('add_action')
|
112
|
+
})));
|
113
|
+
};
|
114
|
+
var ConditionBuilderActions$1 = ConditionBuilderActions;
|
115
|
+
ConditionBuilderActions.propTypes = {
|
116
|
+
/**
|
117
|
+
* optional array of object that give the list of actions.
|
118
|
+
*/
|
119
|
+
actions: PropTypes.arrayOf(PropTypes.shape({
|
120
|
+
id: PropTypes.number,
|
121
|
+
label: PropTypes.string
|
122
|
+
})),
|
123
|
+
/**
|
124
|
+
* Provide an optional class to be applied to the containing node.
|
125
|
+
*/
|
126
|
+
className: PropTypes.string
|
127
|
+
};
|
128
|
+
|
129
|
+
export { ConditionBuilderActions$1 as default };
|
@@ -5,8 +5,9 @@
|
|
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
|
+
import { slicedToArray as _slicedToArray, extends as _extends, defineProperty as _defineProperty } from '../../../_virtual/_rollupPluginBabelHelpers.js';
|
9
9
|
import React__default, { useState } from 'react';
|
10
|
+
import cx from 'classnames';
|
10
11
|
import { AddAlt, TextNewLine } from '@carbon/react/icons';
|
11
12
|
import { ConditionBuilderButton } from '../ConditionBuilderButton/ConditionBuilderButton.js';
|
12
13
|
import PropTypes from '../../../node_modules/prop-types/index.js';
|
@@ -73,13 +74,14 @@ var ConditionBuilderAdd = function ConditionBuilderAdd(_ref) {
|
|
73
74
|
"data-name": "addButton",
|
74
75
|
label: buttonLabel !== null && buttonLabel !== void 0 ? buttonLabel : translateWithId('add-condition'),
|
75
76
|
wrapperProps: wrapperProps
|
76
|
-
})),
|
77
|
+
})), enableSubGroup && /*#__PURE__*/React__default.createElement(ConditionBuilderButton, _extends({
|
77
78
|
renderIcon: TextNewLine,
|
78
79
|
onClick: addConditionSubGroupHandler,
|
79
|
-
className: "".concat(blockClass, "
|
80
|
+
className: cx("".concat(blockClass, "__add_condition_group ").concat(blockClass, "__gap-left")),
|
80
81
|
hideLabel: true,
|
81
82
|
label: translateWithId('add-condition'),
|
82
|
-
wrapperProps: wrapperProps
|
83
|
+
wrapperProps: wrapperProps,
|
84
|
+
wrapperClassName: cx("".concat(blockClass, "__add_condition_group-wrapper"), _defineProperty({}, "".concat(blockClass, "__add_condition_group-wrapper--show"), isAddSubgroup))
|
83
85
|
}, previewHandlersForSubgroup())));
|
84
86
|
};
|
85
87
|
var ConditionBuilderAdd$1 = ConditionBuilderAdd;
|
@@ -1,4 +1,4 @@
|
|
1
|
-
export function ConditionBuilderButton({ className, label, hideLabel, tooltipAlign, renderIcon: Icon, onClick, showToolTip, wrapperProps, onBlur, onFocus, onMouseEnter, onMouseLeave, }: {
|
1
|
+
export function ConditionBuilderButton({ className, label, hideLabel, tooltipAlign, renderIcon: Icon, onClick, showToolTip, wrapperProps, onBlur, onFocus, onMouseEnter, onMouseLeave, isInvalid, wrapperClassName, }: {
|
2
2
|
className: any;
|
3
3
|
label: any;
|
4
4
|
hideLabel: any;
|
@@ -11,11 +11,14 @@ export function ConditionBuilderButton({ className, label, hideLabel, tooltipAli
|
|
11
11
|
onFocus: any;
|
12
12
|
onMouseEnter: any;
|
13
13
|
onMouseLeave: any;
|
14
|
+
isInvalid: any;
|
15
|
+
wrapperClassName: any;
|
14
16
|
}): import("react/jsx-runtime").JSX.Element;
|
15
17
|
export namespace ConditionBuilderButton {
|
16
18
|
namespace propTypes {
|
17
19
|
let className: PropTypes.Requireable<string>;
|
18
20
|
let hideLabel: PropTypes.Requireable<boolean>;
|
21
|
+
let isInvalid: PropTypes.Requireable<boolean>;
|
19
22
|
let label: PropTypes.Requireable<string>;
|
20
23
|
let onBlur: PropTypes.Requireable<(...args: any[]) => any>;
|
21
24
|
let onClick: PropTypes.Requireable<(...args: any[]) => any>;
|
@@ -25,6 +28,7 @@ export namespace ConditionBuilderButton {
|
|
25
28
|
let renderIcon: PropTypes.Requireable<object>;
|
26
29
|
let showToolTip: PropTypes.Requireable<boolean>;
|
27
30
|
let tooltipAlign: PropTypes.Requireable<string>;
|
31
|
+
let wrapperClassName: PropTypes.Requireable<string>;
|
28
32
|
let wrapperProps: PropTypes.Requireable<object>;
|
29
33
|
}
|
30
34
|
}
|
@@ -11,7 +11,9 @@ import cx from 'classnames';
|
|
11
11
|
import PropTypes from '../../../node_modules/prop-types/index.js';
|
12
12
|
import { Tooltip } from '@carbon/react';
|
13
13
|
import { blockClass } from '../ConditionBuilderContext/DataConfigs.js';
|
14
|
+
import { WarningAltFilled } from '@carbon/react/icons';
|
14
15
|
|
16
|
+
var _WarningAltFilled;
|
15
17
|
var ConditionBuilderButton = function ConditionBuilderButton(_ref) {
|
16
18
|
var _Icon, _span;
|
17
19
|
var className = _ref.className,
|
@@ -25,24 +27,26 @@ var ConditionBuilderButton = function ConditionBuilderButton(_ref) {
|
|
25
27
|
onBlur = _ref.onBlur,
|
26
28
|
onFocus = _ref.onFocus,
|
27
29
|
onMouseEnter = _ref.onMouseEnter,
|
28
|
-
onMouseLeave = _ref.onMouseLeave
|
30
|
+
onMouseLeave = _ref.onMouseLeave,
|
31
|
+
isInvalid = _ref.isInvalid,
|
32
|
+
wrapperClassName = _ref.wrapperClassName;
|
29
33
|
var Button = function Button() {
|
30
34
|
return /*#__PURE__*/React__default.createElement("button", {
|
31
35
|
// role={'gridcell'}
|
32
36
|
tabIndex: -1,
|
33
|
-
className: cx([className, "".concat(blockClass, "__button"), _defineProperty({}, "".concat(blockClass, "__text-ellipsis"), showToolTip && !hideLabel)]),
|
37
|
+
className: cx([className, "".concat(blockClass, "__button"), _defineProperty({}, "".concat(blockClass, "__text-ellipsis"), showToolTip && !hideLabel && !isInvalid), _defineProperty({}, "".concat(blockClass, "__invalid-input"), isInvalid)]),
|
34
38
|
type: "button",
|
35
39
|
onClick: onClick,
|
36
40
|
onBlur: onBlur,
|
37
41
|
onFocus: onFocus,
|
38
42
|
onMouseEnter: onMouseEnter,
|
39
43
|
onMouseLeave: onMouseLeave
|
40
|
-
}, Icon && (_Icon || (_Icon = /*#__PURE__*/React__default.createElement(Icon, null))), !hideLabel && (_span || (_span = /*#__PURE__*/React__default.createElement("span", null, label))));
|
44
|
+
}, Icon && (_Icon || (_Icon = /*#__PURE__*/React__default.createElement(Icon, null))), !hideLabel && (_span || (_span = /*#__PURE__*/React__default.createElement("span", null, label))), isInvalid && (_WarningAltFilled || (_WarningAltFilled = /*#__PURE__*/React__default.createElement(WarningAltFilled, null))));
|
41
45
|
};
|
42
46
|
return hideLabel || showToolTip ? /*#__PURE__*/React__default.createElement(Tooltip, _extends({
|
43
47
|
label: label,
|
44
48
|
align: tooltipAlign,
|
45
|
-
className: "".concat(
|
49
|
+
className: "".concat(wrapperClassName)
|
46
50
|
}, wrapperProps), Button()) : /*#__PURE__*/React__default.createElement(React__default.Fragment, null, Button());
|
47
51
|
};
|
48
52
|
ConditionBuilderButton.propTypes = {
|
@@ -54,6 +58,10 @@ ConditionBuilderButton.propTypes = {
|
|
54
58
|
* decides if label and tooltip to be hidden
|
55
59
|
*/
|
56
60
|
hideLabel: PropTypes.bool,
|
61
|
+
/**
|
62
|
+
* boolean to know the updated value in not valid
|
63
|
+
*/
|
64
|
+
isInvalid: PropTypes.bool,
|
57
65
|
/**
|
58
66
|
* label of the button
|
59
67
|
*/
|
@@ -83,6 +91,10 @@ ConditionBuilderButton.propTypes = {
|
|
83
91
|
* tooltip position
|
84
92
|
*/
|
85
93
|
tooltipAlign: PropTypes.string,
|
94
|
+
/**
|
95
|
+
* classname applies to the wrapper of popover
|
96
|
+
*/
|
97
|
+
wrapperClassName: PropTypes.string,
|
86
98
|
/**
|
87
99
|
* optional props for tree grid to add role and aria-label to wrapper span
|
88
100
|
*/
|
@@ -8,7 +8,7 @@
|
|
8
8
|
import { objectWithoutProperties as _objectWithoutProperties, extends as _extends } from '../../../_virtual/_rollupPluginBabelHelpers.js';
|
9
9
|
import React__default, { useContext, useCallback } from 'react';
|
10
10
|
import { ConditionBuilderItem } from '../ConditionBuilderItem/ConditionBuilderItem.js';
|
11
|
-
import {
|
11
|
+
import { ItemOption } from '../ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js';
|
12
12
|
import { blockClass, translateWithId, connectorConfig } from '../ConditionBuilderContext/DataConfigs.js';
|
13
13
|
import PropTypes from '../../../node_modules/prop-types/index.js';
|
14
14
|
import { focusThisField } from '../utils/util.js';
|
@@ -57,7 +57,7 @@ var ConditionConnector = function ConditionConnector(_ref) {
|
|
57
57
|
}, rest, {
|
58
58
|
popOverClassName: className,
|
59
59
|
className: "".concat(blockClass, "__connector-button ")
|
60
|
-
}), /*#__PURE__*/React__default.createElement(
|
60
|
+
}), /*#__PURE__*/React__default.createElement(ItemOption, {
|
61
61
|
config: {
|
62
62
|
options: connectorConfig
|
63
63
|
},
|
@@ -8,7 +8,7 @@
|
|
8
8
|
import React__default, { useContext } from 'react';
|
9
9
|
import { ConditionBuilderItem } from '../ConditionBuilderItem/ConditionBuilderItem.js';
|
10
10
|
import { blockClass, translateWithId, connectorConfig } from '../ConditionBuilderContext/DataConfigs.js';
|
11
|
-
import {
|
11
|
+
import { ItemOption } from '../ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js';
|
12
12
|
import { focusThisField } from '../utils/util.js';
|
13
13
|
import { ConditionBuilderContext } from '../ConditionBuilderContext/ConditionBuilderProvider.js';
|
14
14
|
|
@@ -26,7 +26,7 @@ var GroupConnector = function GroupConnector() {
|
|
26
26
|
"data-name": "connectorField",
|
27
27
|
popOverClassName: "".concat(blockClass, "__gap"),
|
28
28
|
className: "".concat(blockClass, "__statement-button")
|
29
|
-
}, /*#__PURE__*/React__default.createElement(
|
29
|
+
}, /*#__PURE__*/React__default.createElement(ItemOption, {
|
30
30
|
conditionState: {
|
31
31
|
value: rootState.operator,
|
32
32
|
label: translateWithId('condition')
|
@@ -1,30 +1,28 @@
|
|
1
1
|
export default ConditionBuilderContent;
|
2
|
-
declare function ConditionBuilderContent({ startConditionLabel, conditionBuilderRef, getConditionState, initialState, }: {
|
2
|
+
declare function ConditionBuilderContent({ startConditionLabel, conditionBuilderRef, getConditionState, getActionsState, initialState, actions, }: {
|
3
3
|
startConditionLabel: any;
|
4
4
|
conditionBuilderRef: any;
|
5
5
|
getConditionState: any;
|
6
|
+
getActionsState: any;
|
6
7
|
initialState: any;
|
8
|
+
actions: any;
|
7
9
|
}): import("react/jsx-runtime").JSX.Element;
|
8
10
|
declare namespace ConditionBuilderContent {
|
9
11
|
namespace propTypes {
|
10
12
|
let actions: PropTypes.Requireable<(PropTypes.InferProps<{
|
11
|
-
id: PropTypes.
|
12
|
-
label: PropTypes.
|
13
|
+
id: PropTypes.Validator<NonNullable<NonNullable<string | number | null | undefined>>>;
|
14
|
+
label: PropTypes.Validator<string>;
|
13
15
|
}> | null | undefined)[]>;
|
14
16
|
let conditionBuilderRef: PropTypes.Requireable<object>;
|
15
17
|
let getActionsState: PropTypes.Requireable<(...args: any[]) => any>;
|
16
18
|
let getConditionState: PropTypes.Validator<(...args: any[]) => any>;
|
17
19
|
let initialState: PropTypes.Requireable<PropTypes.InferProps<{
|
18
20
|
groups: PropTypes.Requireable<(PropTypes.InferProps<{
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
conditions: PropTypes.Requireable<(PropTypes.InferProps<{
|
23
|
-
property: PropTypes.Requireable<string>;
|
24
|
-
operator: PropTypes.Requireable<string>;
|
25
|
-
value: PropTypes.Requireable<string>;
|
26
|
-
}> | null | undefined)[]>;
|
21
|
+
groupOperator: PropTypes.Validator<string>;
|
22
|
+
statement: PropTypes.Validator<string>;
|
23
|
+
conditions: PropTypes.Requireable<(object | null | undefined)[]>;
|
27
24
|
}> | null | undefined)[]>;
|
25
|
+
operator: PropTypes.Requireable<string>;
|
28
26
|
}>>;
|
29
27
|
let startConditionLabel: PropTypes.Validator<string>;
|
30
28
|
}
|