@carbon/ibm-products 2.43.2-canary.9 → 2.44.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/css/index-full-carbon.css +34 -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 +34 -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 +34 -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 +7 -4
- package/es/components/Datagrid/Datagrid/Datagrid.js +2 -1
- package/es/components/Datagrid/Datagrid/DatagridContent.js +1 -1
- package/es/components/Datagrid/Datagrid/DatagridHeaderRow.js +11 -1
- package/es/components/Datagrid/Datagrid/DatagridRow.js +13 -2
- package/es/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +6 -1
- package/es/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +6 -1
- package/es/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.d.ts +3 -1
- package/es/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.js +6 -3
- package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.d.ts +1 -1
- package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +21 -16
- 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.js +12 -2
- package/es/components/Datagrid/useNestedRows.js +32 -13
- 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 +7 -4
- package/lib/components/Datagrid/Datagrid/Datagrid.js +2 -1
- package/lib/components/Datagrid/Datagrid/DatagridContent.js +1 -1
- package/lib/components/Datagrid/Datagrid/DatagridHeaderRow.js +11 -1
- package/lib/components/Datagrid/Datagrid/DatagridRow.js +13 -2
- package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +6 -1
- package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +6 -1
- package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.d.ts +3 -1
- package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.js +6 -3
- package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.d.ts +1 -1
- package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +21 -16
- 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.js +12 -2
- package/lib/components/Datagrid/useNestedRows.js +32 -13
- 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 +5 -5
- package/scss/components/ConditionBuilder/styles/_conditionBuilderCondition.scss +9 -1
- package/scss/components/ConditionBuilder/styles/_conditionBuilderItem.scss +26 -1
- 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 +8 -3
- 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
|
}
|