@carbon/ibm-products 2.43.2-canary.146 → 2.43.2-canary.149
Sign up to get free protection for your applications and to get access to all the features.
- 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/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/package.json +3 -3
- package/scss/components/ConditionBuilder/styles/_conditionBuilderItem.scss +21 -19
@@ -1,38 +1,85 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
onClick: any;
|
9
|
-
showToolTip: any;
|
10
|
-
wrapperProps: any;
|
11
|
-
onBlur: any;
|
12
|
-
onFocus: any;
|
13
|
-
onMouseEnter: any;
|
14
|
-
onMouseLeave: any;
|
15
|
-
isInvalid: any;
|
16
|
-
wrapperClassName: any;
|
17
|
-
tabIndex: any;
|
18
|
-
}): import("react/jsx-runtime").JSX.Element;
|
19
|
-
export namespace ConditionBuilderButton {
|
20
|
-
namespace propTypes {
|
21
|
-
let className: PropTypes.Requireable<string>;
|
22
|
-
let hideLabel: PropTypes.Requireable<boolean>;
|
23
|
-
let isInvalid: PropTypes.Requireable<boolean>;
|
24
|
-
let label: PropTypes.Requireable<string>;
|
25
|
-
let onBlur: PropTypes.Requireable<(...args: any[]) => any>;
|
26
|
-
let onClick: PropTypes.Requireable<(...args: any[]) => any>;
|
27
|
-
let onFocus: PropTypes.Requireable<(...args: any[]) => any>;
|
28
|
-
let onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>;
|
29
|
-
let onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
|
30
|
-
let renderIcon: PropTypes.Requireable<object>;
|
31
|
-
let showToolTip: PropTypes.Requireable<boolean>;
|
32
|
-
let tabIndex: PropTypes.Requireable<number>;
|
33
|
-
let tooltipAlign: PropTypes.Requireable<string>;
|
34
|
-
let wrapperClassName: PropTypes.Requireable<string>;
|
35
|
-
let wrapperProps: PropTypes.Requireable<object>;
|
36
|
-
}
|
37
|
-
}
|
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';
|
38
8
|
import PropTypes from 'prop-types';
|
9
|
+
import { CarbonIconType } from '@carbon/react/icons';
|
10
|
+
interface ConditionBuilderButtonProps {
|
11
|
+
className?: string;
|
12
|
+
label: string;
|
13
|
+
hideLabel?: boolean;
|
14
|
+
tooltipAlign?: string;
|
15
|
+
renderIcon?: CarbonIconType;
|
16
|
+
onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;
|
17
|
+
onBlur?: React.FocusEventHandler<HTMLButtonElement>;
|
18
|
+
onFocus?: React.FocusEventHandler<HTMLButtonElement>;
|
19
|
+
onMouseEnter?: (e: React.MouseEvent<HTMLButtonElement>) => void;
|
20
|
+
onMouseLeave?: (e: React.MouseEvent<HTMLButtonElement>) => void;
|
21
|
+
showToolTip?: boolean;
|
22
|
+
wrapperProps?: object;
|
23
|
+
isInvalid?: boolean;
|
24
|
+
wrapperClassName?: string;
|
25
|
+
tabIndex?: number;
|
26
|
+
}
|
27
|
+
export declare const ConditionBuilderButton: {
|
28
|
+
({ className, label, hideLabel, tooltipAlign, renderIcon: Icon, onClick, showToolTip, wrapperProps, onBlur, onFocus, onMouseEnter, onMouseLeave, isInvalid, wrapperClassName, tabIndex, ...rest }: ConditionBuilderButtonProps): import("react/jsx-runtime").JSX.Element;
|
29
|
+
propTypes: {
|
30
|
+
/**
|
31
|
+
* Provide an optional class to be applied to the containing node.
|
32
|
+
*/
|
33
|
+
className: PropTypes.Requireable<string>;
|
34
|
+
/**
|
35
|
+
* decides if label and tooltip to be hidden
|
36
|
+
*/
|
37
|
+
hideLabel: PropTypes.Requireable<boolean>;
|
38
|
+
/**
|
39
|
+
* boolean to know the updated value in not valid
|
40
|
+
*/
|
41
|
+
isInvalid: PropTypes.Requireable<boolean>;
|
42
|
+
/**
|
43
|
+
* label of the button
|
44
|
+
*/
|
45
|
+
label: PropTypes.Requireable<string>;
|
46
|
+
/**
|
47
|
+
* mouse events callbacks
|
48
|
+
*/
|
49
|
+
onBlur: PropTypes.Requireable<(...args: any[]) => any>;
|
50
|
+
/**
|
51
|
+
* callback triggered on click of add button
|
52
|
+
*/
|
53
|
+
onClick: PropTypes.Requireable<(...args: any[]) => any>;
|
54
|
+
onFocus: PropTypes.Requireable<(...args: any[]) => any>;
|
55
|
+
onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>;
|
56
|
+
onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
|
57
|
+
/**
|
58
|
+
* Optional prop to allow overriding the icon rendering.
|
59
|
+
*/
|
60
|
+
renderIcon: PropTypes.Requireable<object>;
|
61
|
+
/**
|
62
|
+
*/
|
63
|
+
/**
|
64
|
+
*decides if tooltip to be shown
|
65
|
+
*/
|
66
|
+
showToolTip: PropTypes.Requireable<boolean>;
|
67
|
+
/**
|
68
|
+
* Tab index
|
69
|
+
*/
|
70
|
+
tabIndex: PropTypes.Requireable<number>;
|
71
|
+
/**
|
72
|
+
* tooltip position
|
73
|
+
*/
|
74
|
+
tooltipAlign: PropTypes.Requireable<string>;
|
75
|
+
/**
|
76
|
+
* classname applies to the wrapper of popover
|
77
|
+
*/
|
78
|
+
wrapperClassName: PropTypes.Requireable<string>;
|
79
|
+
/**
|
80
|
+
* optional props for tree grid to add role and aria-label to wrapper span
|
81
|
+
*/
|
82
|
+
wrapperProps: PropTypes.Requireable<object>;
|
83
|
+
};
|
84
|
+
};
|
85
|
+
export {};
|
@@ -38,7 +38,7 @@ var ConditionBuilderButton = function ConditionBuilderButton(_ref) {
|
|
38
38
|
var _rest$dataName;
|
39
39
|
var dataName = (_rest$dataName = rest['data-name']) !== null && _rest$dataName !== void 0 ? _rest$dataName : '';
|
40
40
|
return /*#__PURE__*/React__default.createElement("button", _extends({
|
41
|
-
tabIndex: tabIndex
|
41
|
+
tabIndex: tabIndex !== undefined ? tabIndex : -1,
|
42
42
|
className: cx([className, "".concat(blockClass, "__button"), _defineProperty({}, "".concat(blockClass, "__text-ellipsis"), showToolTip && !hideLabel && !isInvalid), _defineProperty({}, "".concat(blockClass, "__invalid-input"), isInvalid)]),
|
43
43
|
type: "button",
|
44
44
|
onClick: onClick,
|
@@ -1,15 +1,30 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
}): import("react/jsx-runtime").JSX.Element;
|
8
|
-
declare namespace ConditionConnector {
|
9
|
-
namespace propTypes {
|
10
|
-
let className: PropTypes.Requireable<string>;
|
11
|
-
let onChange: PropTypes.Requireable<(...args: any[]) => any>;
|
12
|
-
let operator: PropTypes.Requireable<string>;
|
13
|
-
}
|
14
|
-
}
|
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
|
+
*/
|
15
7
|
import PropTypes from 'prop-types';
|
8
|
+
interface ConditionConnectorProps {
|
9
|
+
operator: string;
|
10
|
+
className: string;
|
11
|
+
onChange?: (op: string) => void;
|
12
|
+
}
|
13
|
+
declare const ConditionConnector: {
|
14
|
+
({ operator, className, onChange, ...rest }: ConditionConnectorProps): import("react/jsx-runtime").JSX.Element;
|
15
|
+
propTypes: {
|
16
|
+
/**
|
17
|
+
* Provide an optional class to be applied to the containing node.
|
18
|
+
*/
|
19
|
+
className: PropTypes.Requireable<string>;
|
20
|
+
/**
|
21
|
+
* callback to update the current condition of the state tree
|
22
|
+
*/
|
23
|
+
onChange: PropTypes.Requireable<(...args: any[]) => any>;
|
24
|
+
/**
|
25
|
+
* string that defines the connector operator (and/or)
|
26
|
+
*/
|
27
|
+
operator: PropTypes.Requireable<string>;
|
28
|
+
};
|
29
|
+
};
|
30
|
+
export default ConditionConnector;
|
@@ -36,15 +36,15 @@ var ConditionConnector = function ConditionConnector(_ref) {
|
|
36
36
|
}
|
37
37
|
}, []);
|
38
38
|
var activeConnectorHandler = function activeConnectorHandler(evt) {
|
39
|
-
var parentGroup = evt.currentTarget.closest('.eachGroup');
|
39
|
+
var parentGroup = evt === null || evt === void 0 ? void 0 : evt.currentTarget.closest('.eachGroup');
|
40
40
|
handleConnectorHover(parentGroup, true);
|
41
41
|
};
|
42
42
|
var inActiveConnectorHandler = function inActiveConnectorHandler(evt) {
|
43
|
-
var parentGroup = evt.currentTarget.closest('.eachGroup');
|
43
|
+
var parentGroup = evt === null || evt === void 0 ? void 0 : evt.currentTarget.closest('.eachGroup');
|
44
44
|
handleConnectorHover(parentGroup, false);
|
45
45
|
};
|
46
46
|
var onChangeHandler = function onChangeHandler(op, evt) {
|
47
|
-
onChange(op);
|
47
|
+
onChange === null || onChange === void 0 || onChange(op);
|
48
48
|
focusThisField(evt, conditionBuilderRef);
|
49
49
|
};
|
50
50
|
return variant == 'tree' ? /*#__PURE__*/React__default.createElement("span", {
|
@@ -64,7 +64,7 @@ var ConditionConnector = function ConditionConnector(_ref) {
|
|
64
64
|
onBlur: inActiveConnectorHandler
|
65
65
|
}, rest, {
|
66
66
|
popOverClassName: className,
|
67
|
-
className: "".concat(blockClass, "__connector-button
|
67
|
+
className: "".concat(blockClass, "__connector-button")
|
68
68
|
}), /*#__PURE__*/React__default.createElement(ItemOption, {
|
69
69
|
config: {
|
70
70
|
options: connectorConfig
|
@@ -79,7 +79,6 @@ var ConditionConnector = function ConditionConnector(_ref) {
|
|
79
79
|
// </div>
|
80
80
|
;
|
81
81
|
};
|
82
|
-
var ConditionConnector$1 = ConditionConnector;
|
83
82
|
ConditionConnector.propTypes = {
|
84
83
|
/**
|
85
84
|
* Provide an optional class to be applied to the containing node.
|
@@ -95,4 +94,4 @@ ConditionConnector.propTypes = {
|
|
95
94
|
operator: PropTypes.string
|
96
95
|
};
|
97
96
|
|
98
|
-
export { ConditionConnector
|
97
|
+
export { ConditionConnector as default };
|
@@ -1,28 +1,48 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
}
|
9
|
-
|
10
|
-
|
11
|
-
|
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, ConditionBuilderState } from '../ConditionBuilder.types';
|
9
|
+
interface ConditionBuilderContentProps {
|
10
|
+
startConditionLabel: string;
|
11
|
+
getConditionState: (state: ConditionBuilderState) => void;
|
12
|
+
getActionsState?: (state: Action[]) => void;
|
13
|
+
initialState?: ConditionBuilderState;
|
14
|
+
actions?: Action[];
|
15
|
+
}
|
16
|
+
declare const ConditionBuilderContent: {
|
17
|
+
({ startConditionLabel, getConditionState, getActionsState, initialState, actions, }: ConditionBuilderContentProps): import("react/jsx-runtime").JSX.Element;
|
18
|
+
propTypes: {
|
19
|
+
/**
|
20
|
+
* optional array of object that give the list of actions.
|
21
|
+
*/
|
22
|
+
actions: PropTypes.Requireable<(PropTypes.InferProps<{
|
12
23
|
id: PropTypes.Validator<NonNullable<NonNullable<string | number | null | undefined>>>;
|
13
24
|
label: PropTypes.Validator<string>;
|
14
25
|
}> | null | undefined)[]>;
|
15
|
-
|
16
|
-
|
17
|
-
|
26
|
+
/**
|
27
|
+
* callback functions that will provide the updated action state back.
|
28
|
+
*/
|
29
|
+
getActionsState: PropTypes.Requireable<(...args: any[]) => any>;
|
30
|
+
/**
|
31
|
+
* This is a callback function that returns the updated state
|
32
|
+
*/
|
33
|
+
getConditionState: PropTypes.Validator<(...args: any[]) => any>;
|
34
|
+
/**
|
35
|
+
* Optional prop if the condition building need to start from a predefined initial state
|
36
|
+
*/
|
37
|
+
initialState: PropTypes.Requireable<PropTypes.InferProps<{
|
18
38
|
groups: PropTypes.Requireable<(PropTypes.InferProps<{
|
19
|
-
groupOperator: PropTypes.
|
20
|
-
statement: PropTypes.
|
39
|
+
groupOperator: PropTypes.Requireable<string>;
|
40
|
+
statement: PropTypes.Requireable<string>;
|
21
41
|
conditions: PropTypes.Requireable<(object | null | undefined)[]>;
|
22
42
|
}> | null | undefined)[]>;
|
23
43
|
operator: PropTypes.Requireable<string>;
|
24
44
|
}>>;
|
25
|
-
|
26
|
-
}
|
27
|
-
}
|
28
|
-
|
45
|
+
startConditionLabel: PropTypes.Validator<string>;
|
46
|
+
};
|
47
|
+
};
|
48
|
+
export default ConditionBuilderContent;
|
@@ -22,7 +22,7 @@ import { useTranslations } from '../utils/useTranslations.js';
|
|
22
22
|
|
23
23
|
var _GroupConnector;
|
24
24
|
var ConditionBuilderContent = function ConditionBuilderContent(_ref) {
|
25
|
-
var _rootState$
|
25
|
+
var _rootState$groups4;
|
26
26
|
var startConditionLabel = _ref.startConditionLabel,
|
27
27
|
getConditionState = _ref.getConditionState,
|
28
28
|
getActionsState = _ref.getActionsState,
|
@@ -59,26 +59,27 @@ var ConditionBuilderContent = function ConditionBuilderContent(_ref) {
|
|
59
59
|
setIsConditionBuilderActive(false);
|
60
60
|
}
|
61
61
|
if (getConditionState) {
|
62
|
-
getConditionState(rootState);
|
62
|
+
getConditionState(rootState !== null && rootState !== void 0 ? rootState : {});
|
63
63
|
}
|
64
64
|
|
65
65
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
66
66
|
}, [rootState]);
|
67
67
|
useEffect(function () {
|
68
|
-
getActionsState === null || getActionsState === void 0 || getActionsState(actionState);
|
68
|
+
getActionsState === null || getActionsState === void 0 || getActionsState(actionState !== null && actionState !== void 0 ? actionState : []);
|
69
69
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
70
70
|
}, [actionState]);
|
71
71
|
var onStartConditionBuilder = function onStartConditionBuilder() {
|
72
72
|
//when add condition button is clicked.
|
73
73
|
setIsConditionBuilderActive(true);
|
74
|
-
setRootState(initialState !== null && initialState !== void 0 ? initialState : emptyState); //here we can set an empty skeleton object for an empty condition builder,
|
74
|
+
setRootState === null || setRootState === void 0 || setRootState(initialState !== null && initialState !== void 0 ? initialState : emptyState); //here we can set an empty skeleton object for an empty condition builder,
|
75
75
|
//or we can even pre-populate some existing builder and continue editing
|
76
76
|
};
|
77
77
|
var _onRemove = useCallback(function (groupId) {
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
78
|
+
var _rootState$groups2;
|
79
|
+
setRootState === null || setRootState === void 0 || setRootState(_objectSpread2(_objectSpread2({}, rootState), {}, {
|
80
|
+
groups: rootState ? rootState === null || rootState === void 0 || (_rootState$groups2 = rootState.groups) === null || _rootState$groups2 === void 0 ? void 0 : _rootState$groups2.filter(function (group) {
|
81
|
+
return groupId !== (group === null || group === void 0 ? void 0 : group.id);
|
82
|
+
}) : []
|
82
83
|
}));
|
83
84
|
}, [setRootState, rootState]);
|
84
85
|
var onChangeHandler = function onChangeHandler(updatedGroup, groupIndex) {
|
@@ -86,17 +87,18 @@ var ConditionBuilderContent = function ConditionBuilderContent(_ref) {
|
|
86
87
|
* This method is triggered from inner components. This will be called every time when any change is to be updated in the rootState.
|
87
88
|
* This gets the updated group as argument.
|
88
89
|
*/
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
90
|
+
if (rootState && rootState.groups) {
|
91
|
+
var groups = [].concat(_toConsumableArray(rootState.groups ? rootState.groups.slice(0, groupIndex) : []), [updatedGroup], _toConsumableArray(rootState.groups ? rootState.groups.slice(groupIndex + 1) : []));
|
92
|
+
setRootState === null || setRootState === void 0 || setRootState(_objectSpread2(_objectSpread2({}, rootState), {}, {
|
93
|
+
groups: groups
|
94
|
+
}));
|
95
|
+
}
|
93
96
|
};
|
94
97
|
var addConditionGroupHandler = function addConditionGroupHandler() {
|
95
98
|
var newGroup = {
|
96
|
-
groupOperator: 'and',
|
97
|
-
//'and|or',
|
98
99
|
statement: 'if',
|
99
100
|
// 'if|exclude if',
|
101
|
+
groupOperator: 'and',
|
100
102
|
id: uuidv4(),
|
101
103
|
conditions: [{
|
102
104
|
property: undefined,
|
@@ -106,13 +108,13 @@ var ConditionBuilderContent = function ConditionBuilderContent(_ref) {
|
|
106
108
|
id: uuidv4()
|
107
109
|
}]
|
108
110
|
};
|
109
|
-
setRootState(_objectSpread2(_objectSpread2({}, rootState), {}, {
|
110
|
-
groups: [].concat(_toConsumableArray(rootState.groups), [newGroup])
|
111
|
+
setRootState === null || setRootState === void 0 || setRootState(_objectSpread2(_objectSpread2({}, rootState), {}, {
|
112
|
+
groups: rootState && rootState.groups ? [].concat(_toConsumableArray(rootState.groups), [newGroup]) : [newGroup]
|
111
113
|
}));
|
112
114
|
};
|
113
115
|
var getColorIndex = function getColorIndex() {
|
114
|
-
var _rootState$groups$len, _rootState$
|
115
|
-
var groupLength = (_rootState$groups$len = rootState === null || rootState === void 0 || (_rootState$
|
116
|
+
var _rootState$groups$len, _rootState$groups3;
|
117
|
+
var groupLength = (_rootState$groups$len = rootState === null || rootState === void 0 || (_rootState$groups3 = rootState.groups) === null || _rootState$groups3 === void 0 ? void 0 : _rootState$groups3.length) !== null && _rootState$groups$len !== void 0 ? _rootState$groups$len : 0;
|
116
118
|
return groupLength % 5;
|
117
119
|
};
|
118
120
|
if (!isConditionBuilderActive) {
|
@@ -134,7 +136,8 @@ var ConditionBuilderContent = function ConditionBuilderContent(_ref) {
|
|
134
136
|
className: "".concat(blockClass, "__content-container"),
|
135
137
|
role: "treegrid",
|
136
138
|
"aria-label": "condition builder tree"
|
137
|
-
}, rootState && (rootState === null || rootState === void 0 || (_rootState$
|
139
|
+
}, rootState && (rootState === null || rootState === void 0 || (_rootState$groups4 = rootState.groups) === null || _rootState$groups4 === void 0 ? void 0 : _rootState$groups4.map(function (eachGroup, groupIndex) {
|
140
|
+
var _ref2;
|
138
141
|
return /*#__PURE__*/React__default.createElement("div", {
|
139
142
|
key: eachGroup.id,
|
140
143
|
className: "".concat(blockClass, "__group-wrapper")
|
@@ -143,7 +146,7 @@ var ConditionBuilderContent = function ConditionBuilderContent(_ref) {
|
|
143
146
|
aria: {
|
144
147
|
level: 1,
|
145
148
|
posinset: groupIndex * 2 + 1,
|
146
|
-
setsize: rootState.groups.length * 2
|
149
|
+
setsize: (_ref2 = rootState.groups && rootState.groups.length * 2) !== null && _ref2 !== void 0 ? _ref2 : 0
|
147
150
|
},
|
148
151
|
group: eachGroup,
|
149
152
|
onRemove: function onRemove() {
|
@@ -152,7 +155,7 @@ var ConditionBuilderContent = function ConditionBuilderContent(_ref) {
|
|
152
155
|
onChange: function onChange(updatedGroup) {
|
153
156
|
onChangeHandler(updatedGroup, groupIndex);
|
154
157
|
}
|
155
|
-
}), groupIndex < rootState.groups.length - 1 && (_GroupConnector || (_GroupConnector = /*#__PURE__*/React__default.createElement(GroupConnector, null))));
|
158
|
+
}), rootState.groups && groupIndex < rootState.groups.length - 1 && (_GroupConnector || (_GroupConnector = /*#__PURE__*/React__default.createElement(GroupConnector, null))));
|
156
159
|
})), variant == 'tree' && /*#__PURE__*/React__default.createElement("div", {
|
157
160
|
role: "row",
|
158
161
|
tabIndex: -1,
|
@@ -176,15 +179,14 @@ var ConditionBuilderContent = function ConditionBuilderContent(_ref) {
|
|
176
179
|
previewType: "newGroup",
|
177
180
|
colorIndex: getColorIndex(),
|
178
181
|
group: {
|
179
|
-
groupOperator: rootState.operator
|
182
|
+
groupOperator: rootState === null || rootState === void 0 ? void 0 : rootState.operator,
|
183
|
+
id: uuidv4()
|
180
184
|
}
|
181
185
|
})), actions && /*#__PURE__*/React__default.createElement(ConditionBuilderActions, {
|
182
186
|
actions: actions,
|
183
|
-
className: "".concat(blockClass, "__actions-container")
|
184
|
-
variant: variant
|
187
|
+
className: "".concat(blockClass, "__actions-container")
|
185
188
|
}));
|
186
189
|
};
|
187
|
-
var ConditionBuilderContent$1 = ConditionBuilderContent;
|
188
190
|
ConditionBuilderContent.propTypes = {
|
189
191
|
/**
|
190
192
|
* optional array of object that give the list of actions.
|
@@ -206,11 +208,11 @@ ConditionBuilderContent.propTypes = {
|
|
206
208
|
*/
|
207
209
|
initialState: PropTypes.shape({
|
208
210
|
groups: PropTypes.arrayOf(PropTypes.shape({
|
209
|
-
groupOperator: PropTypes.string
|
210
|
-
statement: PropTypes.string
|
211
|
+
groupOperator: PropTypes.string,
|
212
|
+
statement: PropTypes.string,
|
211
213
|
conditions: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.shape({
|
212
|
-
property: PropTypes.string
|
213
|
-
operator: PropTypes.string
|
214
|
+
property: PropTypes.string,
|
215
|
+
operator: PropTypes.string,
|
214
216
|
value: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.shape({
|
215
217
|
id: PropTypes.string,
|
216
218
|
label: PropTypes.string
|
@@ -227,4 +229,4 @@ ConditionBuilderContent.propTypes = {
|
|
227
229
|
startConditionLabel: PropTypes.string.isRequired
|
228
230
|
};
|
229
231
|
|
230
|
-
export { ConditionBuilderContent
|
232
|
+
export { ConditionBuilderContent as default };
|
package/es/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.d.ts
CHANGED
@@ -1,50 +1,11 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
conditions: {
|
8
|
-
property: undefined;
|
9
|
-
operator: string;
|
10
|
-
value: string;
|
11
|
-
popoverToOpen: string;
|
12
|
-
id: any;
|
13
|
-
}[];
|
14
|
-
}[];
|
15
|
-
}
|
16
|
-
export const ConditionBuilderContext: React.Context<any>;
|
17
|
-
export function ConditionBuilderProvider(props: any): import("react/jsx-runtime").JSX.Element;
|
18
|
-
export namespace ConditionBuilderProvider {
|
19
|
-
namespace propTypes {
|
20
|
-
let children: PropTypes.Validator<NonNullable<PropTypes.ReactNodeLike>>;
|
21
|
-
let conditionBuilderRef: PropTypes.Requireable<object>;
|
22
|
-
let getOptions: PropTypes.Requireable<(...args: any[]) => any>;
|
23
|
-
let inputConfig: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
|
24
|
-
properties: PropTypes.Requireable<(PropTypes.InferProps<{
|
25
|
-
id: PropTypes.Validator<string>;
|
26
|
-
label: PropTypes.Validator<string>;
|
27
|
-
icon: PropTypes.Requireable<object>;
|
28
|
-
type: PropTypes.Validator<string>;
|
29
|
-
config: PropTypes.Requireable<PropTypes.InferProps<{
|
30
|
-
options: PropTypes.Requireable<(PropTypes.InferProps<{
|
31
|
-
id: PropTypes.Validator<string>;
|
32
|
-
label: PropTypes.Validator<string>;
|
33
|
-
icon: PropTypes.Requireable<object>;
|
34
|
-
}> | null | undefined)[]>;
|
35
|
-
component: PropTypes.Requireable<(...args: any[]) => any>;
|
36
|
-
operators: PropTypes.Requireable<(PropTypes.InferProps<{
|
37
|
-
id: PropTypes.Validator<string>;
|
38
|
-
label: PropTypes.Validator<string>;
|
39
|
-
}> | null | undefined)[]>;
|
40
|
-
long: PropTypes.Requireable<boolean>;
|
41
|
-
}>>;
|
42
|
-
}> | null | undefined)[]>;
|
43
|
-
}>>>;
|
44
|
-
let popOverSearchThreshold: PropTypes.Validator<number>;
|
45
|
-
let translateWithId: PropTypes.Requireable<(...args: any[]) => any>;
|
46
|
-
let variant: PropTypes.Validator<string>;
|
47
|
-
}
|
48
|
-
}
|
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
|
+
*/
|
49
7
|
import React from 'react';
|
50
|
-
import
|
8
|
+
import { ConditionBuilderContextProps, ConditionBuilderState } from '../ConditionBuilder.types';
|
9
|
+
export declare const emptyState: ConditionBuilderState;
|
10
|
+
export declare const ConditionBuilderContext: React.Context<ConditionBuilderContextProps>;
|
11
|
+
export declare const ConditionBuilderProvider: React.FC<ConditionBuilderContextProps>;
|
@@ -25,23 +25,11 @@ var emptyState = {
|
|
25
25
|
}]
|
26
26
|
}]
|
27
27
|
};
|
28
|
-
var ConditionBuilderContext = /*#__PURE__*/createContext(
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
// ;
|
34
|
-
// return {
|
35
|
-
// ...state,
|
36
|
-
// ...action.payload
|
37
|
-
// }
|
38
|
-
// break;
|
39
|
-
// default:
|
40
|
-
// return state;
|
41
|
-
// }
|
42
|
-
|
43
|
-
// }
|
44
|
-
|
28
|
+
var ConditionBuilderContext = /*#__PURE__*/createContext({
|
29
|
+
rootState: {
|
30
|
+
groups: []
|
31
|
+
}
|
32
|
+
});
|
45
33
|
var ConditionBuilderProvider = function ConditionBuilderProvider(props) {
|
46
34
|
var _useState = useState({
|
47
35
|
groups: []
|
@@ -53,19 +41,20 @@ var ConditionBuilderProvider = function ConditionBuilderProvider(props) {
|
|
53
41
|
_useState4 = _slicedToArray(_useState3, 2),
|
54
42
|
actionState = _useState4[0],
|
55
43
|
setActionState = _useState4[1];
|
44
|
+
var contextValue = {
|
45
|
+
rootState: rootState,
|
46
|
+
setRootState: setRootState,
|
47
|
+
actionState: actionState,
|
48
|
+
setActionState: setActionState,
|
49
|
+
inputConfig: props.inputConfig,
|
50
|
+
popOverSearchThreshold: props.popOverSearchThreshold,
|
51
|
+
getOptions: props.getOptions,
|
52
|
+
variant: props.variant,
|
53
|
+
translateWithId: props.translateWithId,
|
54
|
+
conditionBuilderRef: props.conditionBuilderRef
|
55
|
+
};
|
56
56
|
return /*#__PURE__*/React__default.createElement(ConditionBuilderContext.Provider, {
|
57
|
-
value:
|
58
|
-
rootState: rootState,
|
59
|
-
setRootState: setRootState,
|
60
|
-
actionState: actionState,
|
61
|
-
setActionState: setActionState,
|
62
|
-
inputConfig: props.inputConfig,
|
63
|
-
popOverSearchThreshold: props.popOverSearchThreshold,
|
64
|
-
getOptions: props.getOptions,
|
65
|
-
variant: props.variant,
|
66
|
-
translateWithId: props.translateWithId,
|
67
|
-
conditionBuilderRef: props.conditionBuilderRef
|
68
|
-
}
|
57
|
+
value: contextValue
|
69
58
|
},
|
70
59
|
// eslint-disable-next-line react/prop-types
|
71
60
|
props.children);
|
@@ -78,6 +67,7 @@ ConditionBuilderProvider.propTypes = {
|
|
78
67
|
/**
|
79
68
|
* ref of condition builder
|
80
69
|
*/
|
70
|
+
/**@ts-ignore */
|
81
71
|
conditionBuilderRef: PropTypes.object,
|
82
72
|
/**
|
83
73
|
* This is an optional callback function that will be triggered when options array is not passed in the inputConfig against a property.
|
@@ -93,6 +83,7 @@ ConditionBuilderProvider.propTypes = {
|
|
93
83
|
* This is a mandatory prop that defines the input to the condition builder.
|
94
84
|
|
95
85
|
*/
|
86
|
+
/**@ts-ignore */
|
96
87
|
inputConfig: PropTypes.shape({
|
97
88
|
properties: PropTypes.arrayOf(PropTypes.shape({
|
98
89
|
id: PropTypes.string.isRequired,
|