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

Sign up to get free protection for your applications and to get access to all the features.
Files changed (90) hide show
  1. package/css/index-full-carbon.css +4 -6
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +1 -1
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon.css +4 -6
  6. package/css/index-without-carbon.css.map +1 -1
  7. package/css/index-without-carbon.min.css +1 -1
  8. package/css/index-without-carbon.min.css.map +1 -1
  9. package/css/index.css +4 -6
  10. package/css/index.css.map +1 -1
  11. package/css/index.min.css +1 -1
  12. package/css/index.min.css.map +1 -1
  13. package/es/components/Card/Card.js +4 -2
  14. package/es/components/ConditionBuilder/ConditionBlock/ConditionBlock.d.ts +100 -24
  15. package/es/components/ConditionBuilder/ConditionBlock/ConditionBlock.js +19 -20
  16. package/es/components/ConditionBuilder/ConditionBuilder.d.ts +9 -2
  17. package/es/components/ConditionBuilder/ConditionBuilder.js +9 -6
  18. package/es/components/ConditionBuilder/ConditionBuilder.types.d.ts +150 -0
  19. package/es/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.d.ts +26 -12
  20. package/es/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.js +6 -6
  21. package/es/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.d.ts +62 -27
  22. package/es/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.js +1 -2
  23. package/es/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.d.ts +84 -37
  24. package/es/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js +1 -1
  25. package/es/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.d.ts +29 -14
  26. package/es/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.js +5 -6
  27. package/es/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.d.ts +40 -20
  28. package/es/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js +32 -30
  29. package/es/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.d.ts +10 -49
  30. package/es/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.js +20 -29
  31. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.d.ts +81 -31
  32. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +5 -5
  33. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.d.ts +27 -12
  34. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.js +1 -1
  35. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.d.ts +30 -12
  36. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js +11 -6
  37. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.d.ts +33 -12
  38. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js +5 -4
  39. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.d.ts +32 -12
  40. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.js +3 -3
  41. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.d.ts +35 -14
  42. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.js +4 -4
  43. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.d.ts +25 -10
  44. package/es/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.d.ts +44 -17
  45. package/es/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js +39 -32
  46. package/es/components/ConditionBuilder/ConditionPreview/ConditionPreview.d.ts +30 -13
  47. package/es/components/ConditionBuilder/ConditionPreview/ConditionPreview.js +1 -2
  48. package/es/components/ConditionBuilder/utils/handleKeyboardEvents.js +1 -1
  49. package/es/components/Datagrid/useFiltering.d.ts +1 -0
  50. package/es/components/Datagrid/useFiltering.js +14 -3
  51. package/lib/components/Card/Card.js +3 -1
  52. package/lib/components/ConditionBuilder/ConditionBlock/ConditionBlock.d.ts +100 -24
  53. package/lib/components/ConditionBuilder/ConditionBlock/ConditionBlock.js +19 -20
  54. package/lib/components/ConditionBuilder/ConditionBuilder.d.ts +9 -2
  55. package/lib/components/ConditionBuilder/ConditionBuilder.js +9 -6
  56. package/lib/components/ConditionBuilder/ConditionBuilder.types.d.ts +150 -0
  57. package/lib/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.d.ts +26 -12
  58. package/lib/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.js +6 -6
  59. package/lib/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.d.ts +62 -27
  60. package/lib/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.js +1 -2
  61. package/lib/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.d.ts +84 -37
  62. package/lib/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js +1 -1
  63. package/lib/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.d.ts +29 -14
  64. package/lib/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.js +5 -6
  65. package/lib/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.d.ts +40 -20
  66. package/lib/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js +32 -30
  67. package/lib/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.d.ts +10 -49
  68. package/lib/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.js +20 -29
  69. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.d.ts +81 -31
  70. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +5 -5
  71. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.d.ts +27 -12
  72. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.js +1 -1
  73. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.d.ts +30 -12
  74. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js +11 -6
  75. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.d.ts +33 -12
  76. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js +5 -4
  77. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.d.ts +32 -12
  78. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.js +3 -3
  79. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.d.ts +35 -14
  80. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.js +4 -4
  81. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.d.ts +25 -10
  82. package/lib/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.d.ts +44 -17
  83. package/lib/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js +39 -32
  84. package/lib/components/ConditionBuilder/ConditionPreview/ConditionPreview.d.ts +30 -13
  85. package/lib/components/ConditionBuilder/ConditionPreview/ConditionPreview.js +1 -2
  86. package/lib/components/ConditionBuilder/utils/handleKeyboardEvents.js +1 -1
  87. package/lib/components/Datagrid/useFiltering.d.ts +1 -0
  88. package/lib/components/Datagrid/useFiltering.js +13 -1
  89. package/package.json +3 -3
  90. package/scss/components/ConditionBuilder/styles/_conditionBuilderItem.scss +21 -19
@@ -1,38 +1,85 @@
1
- export function ConditionBuilderButton({ className, label, hideLabel, tooltipAlign, renderIcon: Icon, onClick, showToolTip, wrapperProps, onBlur, onFocus, onMouseEnter, onMouseLeave, isInvalid, wrapperClassName, tabIndex, ...rest }: {
2
- [x: string]: any;
3
- className: any;
4
- label: any;
5
- hideLabel: any;
6
- tooltipAlign: any;
7
- renderIcon: any;
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 != undefined ? tabIndex : -1,
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
- export default ConditionConnector;
2
- declare function ConditionConnector({ operator, className, onChange, ...rest }: {
3
- [x: string]: any;
4
- operator: any;
5
- className: any;
6
- onChange: any;
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$1 as default };
97
+ export { ConditionConnector as default };
@@ -1,28 +1,48 @@
1
- export default ConditionBuilderContent;
2
- declare function ConditionBuilderContent({ startConditionLabel, getConditionState, getActionsState, initialState, actions, }: {
3
- startConditionLabel: any;
4
- getConditionState: any;
5
- getActionsState: any;
6
- initialState: any;
7
- actions: any;
8
- }): import("react/jsx-runtime").JSX.Element;
9
- declare namespace ConditionBuilderContent {
10
- namespace propTypes {
11
- let actions: PropTypes.Requireable<(PropTypes.InferProps<{
1
+ /**
2
+ * Copyright IBM Corp. 2024
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import PropTypes from 'prop-types';
8
+ import { Action, 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
- let getActionsState: PropTypes.Requireable<(...args: any[]) => any>;
16
- let getConditionState: PropTypes.Validator<(...args: any[]) => any>;
17
- let initialState: PropTypes.Requireable<PropTypes.InferProps<{
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.Validator<string>;
20
- statement: PropTypes.Validator<string>;
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
- let startConditionLabel: PropTypes.Validator<string>;
26
- }
27
- }
28
- import PropTypes from 'prop-types';
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$groups3;
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
- setRootState(_objectSpread2(_objectSpread2({}, rootState), {}, {
79
- groups: rootState.groups.filter(function (group) {
80
- return groupId !== group.id;
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
- var groups = [].concat(_toConsumableArray(rootState.groups.slice(0, groupIndex)), [updatedGroup], _toConsumableArray(rootState.groups.slice(groupIndex + 1)));
90
- setRootState(_objectSpread2(_objectSpread2({}, rootState), {}, {
91
- groups: groups
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$groups2;
115
- var groupLength = (_rootState$groups$len = rootState === null || rootState === void 0 || (_rootState$groups2 = rootState.groups) === null || _rootState$groups2 === void 0 ? void 0 : _rootState$groups2.length) !== null && _rootState$groups$len !== void 0 ? _rootState$groups$len : 0;
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$groups3 = rootState.groups) === null || _rootState$groups3 === void 0 ? void 0 : _rootState$groups3.map(function (eachGroup, groupIndex) {
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.isRequired,
210
- statement: PropTypes.string.isRequired,
211
+ groupOperator: PropTypes.string,
212
+ statement: PropTypes.string,
211
213
  conditions: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.shape({
212
- property: PropTypes.string.isRequired,
213
- operator: PropTypes.string.isRequired,
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$1 as default };
232
+ export { ConditionBuilderContent as default };
@@ -1,50 +1,11 @@
1
- export namespace emptyState {
2
- let operator: string;
3
- let groups: {
4
- groupOperator: string;
5
- statement: string;
6
- id: any;
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 PropTypes from 'prop-types';
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
- // const rootReducer=(state,action)=>{
31
- // switch(action.type){
32
- // case 'update':
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,