@carbon/ibm-products 2.36.0 → 2.37.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (173) hide show
  1. package/css/index-full-carbon.css +5404 -5117
  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-released-only.css +4 -4
  6. package/css/index-without-carbon-released-only.css.map +1 -1
  7. package/css/index-without-carbon-released-only.min.css +1 -1
  8. package/css/index-without-carbon-released-only.min.css.map +1 -1
  9. package/css/index-without-carbon.css +820 -61
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +1 -1
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +329 -6
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +1 -1
  16. package/css/index.min.css.map +1 -1
  17. package/es/_virtual/_rollupPluginBabelHelpers.js +9 -10
  18. package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.d.ts +3 -1
  19. package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +8 -2
  20. package/es/components/ConditionBuilder/ConditionBlock/ConditionBlock.d.ts +21 -0
  21. package/es/components/ConditionBuilder/ConditionBlock/ConditionBlock.js +261 -0
  22. package/es/components/ConditionBuilder/ConditionBuilder.js +45 -16
  23. package/es/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.d.ts +12 -0
  24. package/es/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.js +40 -0
  25. package/es/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.d.ts +22 -0
  26. package/es/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js +74 -0
  27. package/es/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.d.ts +18 -1
  28. package/es/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js +90 -42
  29. package/es/components/ConditionBuilder/ConditionBuilderContext/{DataTreeContext.d.ts → ConditionBuilderProvider.d.ts} +5 -2
  30. package/es/components/ConditionBuilder/ConditionBuilderContext/{DataTreeContext.js → ConditionBuilderProvider.js} +27 -8
  31. package/es/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.d.ts +22 -0
  32. package/es/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.js +112 -0
  33. package/es/components/ConditionBuilder/ConditionBuilderContext/translationObject.d.ts +31 -0
  34. package/es/components/ConditionBuilder/ConditionBuilderContext/translationObject.js +40 -0
  35. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.d.ts +28 -0
  36. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +151 -0
  37. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.d.ts +11 -0
  38. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.js +59 -0
  39. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.d.ts +13 -0
  40. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js +52 -0
  41. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ConditionBuilderItemOption.d.ts +13 -0
  42. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ConditionBuilderItemOption.js +162 -0
  43. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.d.ts +11 -0
  44. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.js +40 -0
  45. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.d.ts +11 -0
  46. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.js +82 -0
  47. package/es/components/ConditionBuilder/ConditionConnector/ConditionConnector.d.ts +15 -0
  48. package/es/components/ConditionBuilder/ConditionConnector/ConditionConnector.js +85 -0
  49. package/es/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.d.ts +24 -0
  50. package/es/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js +145 -0
  51. package/es/components/ConditionBuilder/utils/util.d.ts +4 -0
  52. package/es/components/ConditionBuilder/utils/util.js +16 -0
  53. package/es/components/CreateTearsheet/CreateTearsheet.d.ts +106 -4
  54. package/es/components/CreateTearsheet/CreateTearsheet.js +12 -32
  55. package/es/components/Datagrid/useParentDimensions.js +1 -1
  56. package/es/components/EditUpdateCards/EditUpdateCards.d.ts +104 -2
  57. package/es/components/EditUpdateCards/EditUpdateCards.js +3 -0
  58. package/es/components/EmptyStates/NotificationsEmptyState/NotificationsEmptyState.d.ts +61 -2
  59. package/es/components/EmptyStates/NotificationsEmptyState/NotificationsEmptyState.js +1 -3
  60. package/es/components/ExpressiveCard/ExpressiveCard.d.ts +97 -2
  61. package/es/components/ExpressiveCard/ExpressiveCard.js +4 -0
  62. package/es/components/InlineTip/InlineTipButton.d.ts +21 -2
  63. package/es/components/InterstitialScreen/InterstitialScreen.d.ts +100 -2
  64. package/es/components/InterstitialScreen/InterstitialScreen.js +25 -14
  65. package/es/components/Nav/NavItem.js +1 -1
  66. package/es/components/NotificationsPanel/NotificationsPanel.js +5 -6
  67. package/es/components/PageHeader/PageHeader.js +12 -3
  68. package/es/components/SidePanel/SidePanel.js +1 -1
  69. package/es/components/SimpleHeader/SimpleHeader.d.ts +1 -5
  70. package/es/components/SimpleHeader/SimpleHeader.js +2 -4
  71. package/es/components/Tearsheet/TearsheetNarrow.d.ts +4 -13
  72. package/es/components/Tearsheet/TearsheetShell.d.ts +119 -10
  73. package/es/components/Tearsheet/TearsheetShell.js +18 -8
  74. package/es/components/WebTerminal/WebTerminal.d.ts +46 -2
  75. package/es/components/WebTerminal/WebTerminal.js +2 -2
  76. package/es/global/js/hooks/usePrefersReducedMotion.d.ts +2 -0
  77. package/es/global/js/hooks/usePrefersReducedMotion.js +28 -0
  78. package/es/global/js/utils/Wrap.d.ts +31 -2
  79. package/es/global/js/utils/Wrap.js +7 -9
  80. package/es/global/js/utils/getNodeTextContent.d.ts +1 -1
  81. package/es/global/js/utils/getNodeTextContent.js +1 -1
  82. package/es/global/js/utils/window.d.ts +2 -0
  83. package/es/global/js/utils/window.js +12 -0
  84. package/es/node_modules/@carbon/icons-react/es/generated/bucket-9.js +2780 -0
  85. package/lib/_virtual/_rollupPluginBabelHelpers.js +9 -10
  86. package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.d.ts +3 -1
  87. package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +8 -2
  88. package/lib/components/ConditionBuilder/ConditionBlock/ConditionBlock.d.ts +21 -0
  89. package/lib/components/ConditionBuilder/ConditionBlock/ConditionBlock.js +270 -0
  90. package/lib/components/ConditionBuilder/ConditionBuilder.js +46 -17
  91. package/lib/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.d.ts +12 -0
  92. package/lib/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.js +48 -0
  93. package/lib/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.d.ts +22 -0
  94. package/lib/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js +83 -0
  95. package/lib/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.d.ts +18 -1
  96. package/lib/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js +90 -42
  97. package/lib/components/ConditionBuilder/ConditionBuilderContext/{DataTreeContext.d.ts → ConditionBuilderProvider.d.ts} +5 -2
  98. package/lib/components/ConditionBuilder/ConditionBuilderContext/{DataTreeContext.js → ConditionBuilderProvider.js} +27 -8
  99. package/lib/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.d.ts +22 -0
  100. package/lib/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.js +121 -0
  101. package/lib/components/ConditionBuilder/ConditionBuilderContext/translationObject.d.ts +31 -0
  102. package/lib/components/ConditionBuilder/ConditionBuilderContext/translationObject.js +44 -0
  103. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.d.ts +28 -0
  104. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +159 -0
  105. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.d.ts +11 -0
  106. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.js +67 -0
  107. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.d.ts +13 -0
  108. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js +60 -0
  109. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ConditionBuilderItemOption.d.ts +13 -0
  110. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ConditionBuilderItemOption.js +170 -0
  111. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.d.ts +11 -0
  112. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.js +48 -0
  113. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.d.ts +11 -0
  114. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.js +90 -0
  115. package/lib/components/ConditionBuilder/ConditionConnector/ConditionConnector.d.ts +15 -0
  116. package/lib/components/ConditionBuilder/ConditionConnector/ConditionConnector.js +93 -0
  117. package/lib/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.d.ts +24 -0
  118. package/lib/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js +153 -0
  119. package/lib/components/ConditionBuilder/utils/util.d.ts +4 -0
  120. package/lib/components/ConditionBuilder/utils/util.js +20 -0
  121. package/lib/components/CreateTearsheet/CreateTearsheet.d.ts +106 -4
  122. package/lib/components/CreateTearsheet/CreateTearsheet.js +12 -32
  123. package/lib/components/Datagrid/useParentDimensions.js +1 -1
  124. package/lib/components/EditUpdateCards/EditUpdateCards.d.ts +104 -2
  125. package/lib/components/EditUpdateCards/EditUpdateCards.js +3 -0
  126. package/lib/components/EmptyStates/NotificationsEmptyState/NotificationsEmptyState.d.ts +61 -2
  127. package/lib/components/EmptyStates/NotificationsEmptyState/NotificationsEmptyState.js +1 -3
  128. package/lib/components/ExpressiveCard/ExpressiveCard.d.ts +97 -2
  129. package/lib/components/ExpressiveCard/ExpressiveCard.js +4 -0
  130. package/lib/components/InlineTip/InlineTipButton.d.ts +21 -2
  131. package/lib/components/InterstitialScreen/InterstitialScreen.d.ts +100 -2
  132. package/lib/components/InterstitialScreen/InterstitialScreen.js +24 -13
  133. package/lib/components/Nav/NavItem.js +2 -2
  134. package/lib/components/NotificationsPanel/NotificationsPanel.js +5 -6
  135. package/lib/components/PageHeader/PageHeader.js +11 -2
  136. package/lib/components/SidePanel/SidePanel.js +1 -1
  137. package/lib/components/SimpleHeader/SimpleHeader.d.ts +1 -5
  138. package/lib/components/SimpleHeader/SimpleHeader.js +2 -4
  139. package/lib/components/Tearsheet/TearsheetNarrow.d.ts +4 -13
  140. package/lib/components/Tearsheet/TearsheetShell.d.ts +119 -10
  141. package/lib/components/Tearsheet/TearsheetShell.js +16 -6
  142. package/lib/components/WebTerminal/WebTerminal.d.ts +46 -2
  143. package/lib/components/WebTerminal/WebTerminal.js +2 -2
  144. package/lib/global/js/hooks/usePrefersReducedMotion.d.ts +2 -0
  145. package/lib/global/js/hooks/usePrefersReducedMotion.js +32 -0
  146. package/lib/global/js/utils/Wrap.d.ts +31 -2
  147. package/lib/global/js/utils/Wrap.js +7 -9
  148. package/lib/global/js/utils/getNodeTextContent.d.ts +1 -1
  149. package/lib/global/js/utils/getNodeTextContent.js +1 -1
  150. package/lib/global/js/utils/window.d.ts +2 -0
  151. package/lib/global/js/utils/window.js +16 -0
  152. package/lib/node_modules/@carbon/icons-react/es/generated/bucket-9.js +2912 -0
  153. package/package.json +4 -4
  154. package/scss/components/CoachmarkOverlayElements/_coachmark-overlay-elements.scss +1 -1
  155. package/scss/components/ConditionBuilder/_condition-builder.scss +26 -0
  156. package/scss/components/ConditionBuilder/styles/_conditionBuilderCondition.scss +46 -0
  157. package/scss/components/ConditionBuilder/styles/_conditionBuilderItem.scss +194 -0
  158. package/scss/components/ConditionBuilder/styles/_index.scss +2 -0
  159. package/scss/components/Guidebanner/_guidebanner.scss +3 -0
  160. package/scss/components/InterstitialScreen/_interstitial-screen.scss +1 -6
  161. package/scss/components/Tearsheet/_tearsheet.scss +3 -1
  162. package/es/components/ConditionBuilder/assets/sampleInput.d.ts +0 -58
  163. package/es/global/js/utils/keyboardNavigation.d.ts +0 -27
  164. package/es/global/js/utils/keyboardNavigation.js +0 -33
  165. package/es/global/js/utils/wrapFocus.d.ts +0 -25
  166. package/es/global/js/utils/wrapFocus.js +0 -68
  167. package/es/node_modules/@carbon/icons-react/es/generated/bucket-8.js +0 -3004
  168. package/lib/components/ConditionBuilder/assets/sampleInput.d.ts +0 -58
  169. package/lib/global/js/utils/keyboardNavigation.d.ts +0 -27
  170. package/lib/global/js/utils/keyboardNavigation.js +0 -39
  171. package/lib/global/js/utils/wrapFocus.d.ts +0 -25
  172. package/lib/global/js/utils/wrapFocus.js +0 -73
  173. package/lib/node_modules/@carbon/icons-react/es/generated/bucket-8.js +0 -3136
@@ -18,7 +18,7 @@ import '../../global/js/utils/props-helper.js';
18
18
  import { TooltipTrigger } from '../TooltipTrigger/TooltipTrigger.js';
19
19
 
20
20
  var _TooltipTrigger;
21
- var _excluded = ["breadcrumbs", "className", "maxVisible", "noTrailingSlash", "overflowAriaLabel"],
21
+ var _excluded = ["breadcrumbs", "className", "maxVisible", "noTrailingSlash", "overflowAriaLabel", "overflowTooltipAlign"],
22
22
  _excluded2 = ["label", "key", "title", "id"],
23
23
  _excluded3 = ["className", "key", "label", "title"];
24
24
 
@@ -38,6 +38,7 @@ var BreadcrumbWithOverflow = function BreadcrumbWithOverflow(_ref) {
38
38
  maxVisible = _ref.maxVisible,
39
39
  noTrailingSlash = _ref.noTrailingSlash,
40
40
  overflowAriaLabel = _ref.overflowAriaLabel,
41
+ overflowTooltipAlign = _ref.overflowTooltipAlign,
41
42
  other = _objectWithoutProperties(_ref, _excluded);
42
43
  var carbonPrefix = usePrefix();
43
44
  var _useState = useState(3),
@@ -62,6 +63,7 @@ var BreadcrumbWithOverflow = function BreadcrumbWithOverflow(_ref) {
62
63
  return /*#__PURE__*/React__default.createElement(BreadcrumbItem, {
63
64
  key: "breadcrumb-overflow-".concat(internalId.current)
64
65
  }, /*#__PURE__*/React__default.createElement(OverflowMenu, {
66
+ align: overflowTooltipAlign,
65
67
  "aria-label": overflowAriaLabel,
66
68
  iconDescription: overflowAriaLabel // also needs setting to avoid a11y "Accessible name does not match or contain the visible label text"
67
69
  ,
@@ -319,7 +321,11 @@ BreadcrumbWithOverflow.propTypes = {
319
321
  overflowAriaLabel: PropTypes.string.isRequired.if(function (_ref6) {
320
322
  var breadcrumbs = _ref6.breadcrumbs;
321
323
  return breadcrumbs.length > 1;
322
- })
324
+ }),
325
+ /**
326
+ * overflowTooltipAlign: align tooltip position
327
+ */
328
+ overflowTooltipAlign: Tooltip.propTypes.align
323
329
  };
324
330
  BreadcrumbWithOverflow.displayName = componentName;
325
331
 
@@ -0,0 +1,21 @@
1
+ export default ConditionBlock;
2
+ /**
3
+ * This component build each block of condition consisting of property, operator value and close button.
4
+ */
5
+ declare function ConditionBlock(props: any): import("react/jsx-runtime").JSX.Element;
6
+ declare namespace ConditionBlock {
7
+ namespace propTypes {
8
+ let addConditionHandler: PropTypes.Requireable<(...args: any[]) => any>;
9
+ let aria: PropTypes.Requireable<object>;
10
+ let conditionIndex: PropTypes.Requireable<number>;
11
+ let conjunction: PropTypes.Requireable<string>;
12
+ let group: PropTypes.Requireable<object>;
13
+ let isStatement: PropTypes.Requireable<boolean>;
14
+ let onChange: PropTypes.Requireable<(...args: any[]) => any>;
15
+ let onConnectorOperatorChange: PropTypes.Requireable<(...args: any[]) => any>;
16
+ let onRemove: PropTypes.Requireable<(...args: any[]) => any>;
17
+ let onStatementChange: PropTypes.Requireable<(...args: any[]) => any>;
18
+ let state: PropTypes.Requireable<object>;
19
+ }
20
+ }
21
+ import PropTypes from 'prop-types';
@@ -0,0 +1,261 @@
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 { slicedToArray as _slicedToArray, defineProperty as _defineProperty, objectSpread2 as _objectSpread2 } from '../../../_virtual/_rollupPluginBabelHelpers.js';
9
+ import React__default, { useContext, useState } from 'react';
10
+ import { Close } from '@carbon/react/icons';
11
+ import { ConditionBuilderItem } from '../ConditionBuilderItem/ConditionBuilderItem.js';
12
+ import PropTypes from '../../../node_modules/prop-types/index.js';
13
+ import { blockClass, translateWithId, statementConfig, operatorConfig } from '../ConditionBuilderContext/DataConfigs.js';
14
+ import { ConditionBuilderItemOption } from '../ConditionBuilderItem/ConditionBuilderItemOption/ConditionBuilderItemOption.js';
15
+ import cx from 'classnames';
16
+ import ConditionConnector from '../ConditionConnector/ConditionConnector.js';
17
+ import { ConditionBuilderItemNumber } from '../ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js';
18
+ import { ConditionBuilderItemText } from '../ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.js';
19
+ import { ConditionBuilderItemDate } from '../ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.js';
20
+ import { ConditionBuilderContext } from '../ConditionBuilderContext/ConditionBuilderProvider.js';
21
+ import { ConditionBuilderButton } from '../ConditionBuilderButton/ConditionBuilderButton.js';
22
+ import { focusThisField } from '../utils/util.js';
23
+ import { ConditionBuilderItemTime } from '../ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.js';
24
+ import ConditionBuilderAdd from '../ConditionBuilderAdd/ConditionBuilderAdd.js';
25
+
26
+ /**
27
+ * This component build each block of condition consisting of property, operator value and close button.
28
+ */
29
+
30
+ var ConditionBlock = function ConditionBlock(props) {
31
+ var _props$state = props.state,
32
+ property = _props$state.property,
33
+ value = _props$state.value,
34
+ operator = _props$state.operator;
35
+ var onRemove = props.onRemove,
36
+ onChange = props.onChange,
37
+ state = props.state,
38
+ conjunction = props.conjunction,
39
+ onConnectorOperatorChange = props.onConnectorOperatorChange,
40
+ isStatement = props.isStatement,
41
+ group = props.group,
42
+ onStatementChange = props.onStatementChange,
43
+ addConditionHandler = props.addConditionHandler,
44
+ conditionIndex = props.conditionIndex;
45
+ var _useContext = useContext(ConditionBuilderContext),
46
+ inputConfig = _useContext.inputConfig;
47
+ var itemComponents = {
48
+ option: ConditionBuilderItemOption,
49
+ text: ConditionBuilderItemText,
50
+ number: ConditionBuilderItemNumber,
51
+ date: ConditionBuilderItemDate,
52
+ time: ConditionBuilderItemTime
53
+ };
54
+ var _useState = useState(false),
55
+ _useState2 = _slicedToArray(_useState, 2),
56
+ showDeletionPreview = _useState2[0],
57
+ setShowDeletionPreview = _useState2[1];
58
+
59
+ //filtering the current property to access its properties and config options
60
+ var getCurrentConfig = function getCurrentConfig(property) {
61
+ var _inputConfig$properti, _inputConfig$properti2;
62
+ return (_inputConfig$properti = (_inputConfig$properti2 = inputConfig.properties) === null || _inputConfig$properti2 === void 0 ? void 0 : _inputConfig$properti2.filter(function (eachProperty) {
63
+ var _eachProperty$label;
64
+ return ((_eachProperty$label = eachProperty.label) === null || _eachProperty$label === void 0 ? void 0 : _eachProperty$label.toUpperCase()) == (property === null || property === void 0 ? void 0 : property.toUpperCase());
65
+ })[0]) !== null && _inputConfig$properti !== void 0 ? _inputConfig$properti : {};
66
+ };
67
+ var isLastCondition = function isLastCondition(conditionIndex, conditionArr) {
68
+ return conditionIndex + 1 >= conditionArr.length || conditionArr.length - 1 != conditionIndex && conditionArr[conditionIndex + 1].conditions;
69
+ };
70
+ var _getCurrentConfig = getCurrentConfig(property),
71
+ icon = _getCurrentConfig.icon,
72
+ type = _getCurrentConfig.type,
73
+ config = _getCurrentConfig.config,
74
+ label = _getCurrentConfig.label;
75
+ var ItemComponent = property ? itemComponents[type] : null;
76
+ var onStatementChangeHandler = function onStatementChangeHandler(v, e) {
77
+ focusThisField(e);
78
+ onStatementChange(v);
79
+ };
80
+ var onConnectorOperatorChangeHandler = function onConnectorOperatorChangeHandler(op) {
81
+ onConnectorOperatorChange(op);
82
+ };
83
+ var onPropertyChangeHandler = function onPropertyChangeHandler(newProperty) {
84
+ onChange(_objectSpread2(_objectSpread2({}, state), {}, {
85
+ property: newProperty,
86
+ operator: undefined,
87
+ value: '',
88
+ popoverToOpen: 'operatorField'
89
+ }));
90
+ };
91
+ var onOperatorChangeHandler = function onOperatorChangeHandler(newOperator) {
92
+ onChange(_objectSpread2(_objectSpread2({}, state), {}, {
93
+ operator: newOperator,
94
+ value: undefined,
95
+ popoverToOpen: 'valueField'
96
+ }));
97
+ };
98
+ var onValueChangeHandler = function onValueChangeHandler(newValue) {
99
+ onChange(_objectSpread2(_objectSpread2({}, state), {}, {
100
+ value: newValue,
101
+ popoverToOpen: ''
102
+ }));
103
+ };
104
+ var handleShowDeletionPreview = function handleShowDeletionPreview() {
105
+ setShowDeletionPreview(true);
106
+ };
107
+ var handleHideDeletionPreview = function handleHideDeletionPreview() {
108
+ setShowDeletionPreview(false);
109
+ };
110
+ var getOperators = function getOperators() {
111
+ return operatorConfig.filter(function (operator) {
112
+ return operator.type.indexOf(type) != -1 || operator.type == 'all';
113
+ });
114
+ };
115
+ return /*#__PURE__*/React__default.createElement("div", {
116
+ className: cx("".concat(blockClass, "__condition-block conditionBlockWrapper ").concat(blockClass, "__gap ").concat(blockClass, "__gap-bottom"), _defineProperty({}, "".concat(blockClass, "__condition-builder-condition__deletion-preview"), showDeletionPreview)),
117
+ key: conditionIndex,
118
+ role: "row",
119
+ "aria-label": translateWithId('condition_row'),
120
+ tabIndex: -1
121
+ }, isStatement && /*#__PURE__*/React__default.createElement(ConditionBuilderItem
122
+ // open={false}
123
+ , {
124
+ label: group.statement,
125
+ title: translateWithId('condition'),
126
+ "data-name": "connectorField",
127
+ popOverClassName: "".concat(blockClass, "__gap"),
128
+ className: "".concat(blockClass, "__statement-button")
129
+ }, /*#__PURE__*/React__default.createElement(ConditionBuilderItemOption, {
130
+ conditionState: {
131
+ value: group.statement,
132
+ label: translateWithId('condition')
133
+ },
134
+ onChange: onStatementChangeHandler,
135
+ config: {
136
+ options: statementConfig
137
+ }
138
+ })), conjunction && /*#__PURE__*/React__default.createElement(ConditionConnector, {
139
+ className: "".concat(blockClass, "__gap"),
140
+ operator: conjunction,
141
+ onChange: onConnectorOperatorChangeHandler
142
+ }), /*#__PURE__*/React__default.createElement(ConditionBuilderItem, {
143
+ label: label,
144
+ title: translateWithId('property'),
145
+ renderIcon: icon !== null && icon !== void 0 ? icon : null,
146
+ className: "".concat(blockClass, "__property-field"),
147
+ "data-name": "propertyField",
148
+ state: state,
149
+ type: type
150
+ }, /*#__PURE__*/React__default.createElement(ConditionBuilderItemOption, {
151
+ conditionState: {
152
+ value: property,
153
+ label: translateWithId('property')
154
+ },
155
+ onChange: onPropertyChangeHandler,
156
+ config: {
157
+ options: inputConfig.properties
158
+ }
159
+ })), property && /*#__PURE__*/React__default.createElement(ConditionBuilderItem, {
160
+ label: operator,
161
+ title: translateWithId('operator'),
162
+ "data-name": "operatorField",
163
+ state: state,
164
+ type: type
165
+ }, /*#__PURE__*/React__default.createElement(ConditionBuilderItemOption, {
166
+ config: {
167
+ options: getOperators()
168
+ },
169
+ conditionState: {
170
+ value: operator,
171
+ label: translateWithId('operator')
172
+ },
173
+ onChange: onOperatorChangeHandler
174
+ })), property && operator && /*#__PURE__*/React__default.createElement(ConditionBuilderItem, {
175
+ label: value,
176
+ type: type,
177
+ title: label,
178
+ showToolTip: true,
179
+ "data-name": "valueField",
180
+ state: state,
181
+ config: config
182
+ }, /*#__PURE__*/React__default.createElement(ItemComponent, {
183
+ conditionState: {
184
+ property: property,
185
+ operator: operator,
186
+ value: value
187
+ },
188
+ onChange: onValueChangeHandler,
189
+ config: config
190
+ })), /*#__PURE__*/React__default.createElement("span", {
191
+ role: "gridcell",
192
+ "aria-label": translateWithId('remove_condition')
193
+ }, /*#__PURE__*/React__default.createElement(ConditionBuilderButton, {
194
+ hideLabel: true,
195
+ label: translateWithId('remove_condition'),
196
+ onClick: onRemove,
197
+ onMouseEnter: handleShowDeletionPreview,
198
+ onMouseLeave: handleHideDeletionPreview,
199
+ onFocus: handleShowDeletionPreview,
200
+ onBlur: handleHideDeletionPreview,
201
+ renderIcon: Close,
202
+ className: "".concat(blockClass, "__close-condition"),
203
+ "data-name": "closeCondition"
204
+ })), isLastCondition(conditionIndex, group.conditions) && /*#__PURE__*/React__default.createElement(ConditionBuilderAdd, {
205
+ onClick: function onClick() {
206
+ addConditionHandler(conditionIndex);
207
+ }
208
+ //addConditionSubGroupHandler={()=>{addConditionSubGroupHandler(conditionIndex)}}
209
+ ,
210
+ className: "".concat(blockClass, "__gap ").concat(blockClass, "__gap-left")
211
+ }));
212
+ };
213
+ var ConditionBlock$1 = ConditionBlock;
214
+ ConditionBlock.propTypes = {
215
+ /**
216
+ * callback to add a new condition
217
+ */
218
+ addConditionHandler: PropTypes.func,
219
+ /**
220
+ * object hold aria attributes
221
+ */
222
+ aria: PropTypes.object,
223
+ /**
224
+ * index of the current condition
225
+ */
226
+ conditionIndex: PropTypes.number,
227
+ /**
228
+ * string that decides to show the condition connector
229
+ */
230
+ conjunction: PropTypes.string,
231
+ /**
232
+ * object that hold the current group object where is condition is part of
233
+ */
234
+ group: PropTypes.object,
235
+ /**
236
+ * boolean that decides to show the statement(if/ excl.if)
237
+ */
238
+ isStatement: PropTypes.bool,
239
+ /**
240
+ * callback to update the current condition of the state tree
241
+ */
242
+ onChange: PropTypes.func,
243
+ /**
244
+ * callback to handle the connector(and/or) change
245
+ */
246
+ onConnectorOperatorChange: PropTypes.func,
247
+ /**
248
+ * callback for Remove a condition
249
+ */
250
+ onRemove: PropTypes.func,
251
+ /**
252
+ * callback to handle the statement(if/ excl.if) change
253
+ */
254
+ onStatementChange: PropTypes.func,
255
+ /**
256
+ * object that hold the current condition
257
+ */
258
+ state: PropTypes.object
259
+ };
260
+
261
+ export { ConditionBlock$1 as default };
@@ -6,22 +6,21 @@
6
6
  */
7
7
 
8
8
  import { objectWithoutProperties as _objectWithoutProperties, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
9
- import React__default from 'react';
9
+ import React__default, { useRef } from 'react';
10
10
  import { VStack } from '@carbon/react';
11
11
  import PropTypes from '../../node_modules/prop-types/index.js';
12
12
  import cx from 'classnames';
13
13
  import { getDevtoolsProps } from '../../global/js/utils/devtools.js';
14
- import { pkg } from '../../settings.js';
15
14
  import ConditionBuilderContent from './ConditionBuilderContent/ConditionBuilderContent.js';
16
- import { ConditionBuilderProvider } from './ConditionBuilderContext/DataTreeContext.js';
15
+ import { ConditionBuilderProvider } from './ConditionBuilderContext/ConditionBuilderProvider.js';
16
+ import { pkg } from '../../settings.js';
17
+ import { blockClass } from './ConditionBuilderContext/DataConfigs.js';
17
18
 
18
- var _excluded = ["className", "inputConfig", "startConditionLabel", "popOverSearchThreshold"];
19
+ var _excluded = ["className", "inputConfig", "startConditionLabel", "popOverSearchThreshold", "getOptions", "initialState", "getConditionState", "variant"];
19
20
 
20
21
  // Carbon and package components we use.
21
22
  /* TODO: @import(s) of carbon components and other package components. */
22
23
 
23
- // The block part of our conventional BEM class names (blockClass__E--M).
24
- var blockClass = "".concat(pkg.prefix, "--condition-builder");
25
24
  var componentName = 'ConditionBuilder';
26
25
 
27
26
  // NOTE: the component SCSS is not imported here: it is rolled up separately.
@@ -49,10 +48,18 @@ var ConditionBuilder = /*#__PURE__*/React__default.forwardRef(function (_ref, re
49
48
  inputConfig = _ref.inputConfig,
50
49
  startConditionLabel = _ref.startConditionLabel,
51
50
  popOverSearchThreshold = _ref.popOverSearchThreshold,
51
+ getOptions = _ref.getOptions,
52
+ initialState = _ref.initialState,
53
+ getConditionState = _ref.getConditionState,
54
+ variant = _ref.variant,
52
55
  rest = _objectWithoutProperties(_ref, _excluded);
56
+ var localRef = useRef();
57
+ var conditionBuilderRef = ref || localRef;
53
58
  return /*#__PURE__*/React__default.createElement(ConditionBuilderProvider, {
54
59
  inputConfig: inputConfig,
55
- popOverSearchThreshold: popOverSearchThreshold
60
+ popOverSearchThreshold: popOverSearchThreshold,
61
+ getOptions: getOptions,
62
+ variant: variant
56
63
  }, /*#__PURE__*/React__default.createElement("div", _extends({}, rest, {
57
64
  className: cx(blockClass,
58
65
  // Apply the block class to the main HTML element
@@ -63,10 +70,15 @@ var ConditionBuilder = /*#__PURE__*/React__default.forwardRef(function (_ref, re
63
70
  // switched classes dependant on props or state
64
71
  // example: [`${blockClass}__here-if-small`]: size === 'sm',
65
72
  }),
66
- ref: ref,
67
- role: "main"
68
- }, getDevtoolsProps(componentName)), /*#__PURE__*/React__default.createElement(VStack, null, /*#__PURE__*/React__default.createElement(ConditionBuilderContent, {
69
- startConditionLabel: startConditionLabel
73
+ role: "main",
74
+ ref: conditionBuilderRef
75
+ }, getDevtoolsProps(componentName)), /*#__PURE__*/React__default.createElement(VStack, {
76
+ className: "".concat(blockClass, "__").concat(variant)
77
+ }, /*#__PURE__*/React__default.createElement(ConditionBuilderContent, {
78
+ startConditionLabel: startConditionLabel,
79
+ conditionBuilderRef: conditionBuilderRef,
80
+ getConditionState: getConditionState,
81
+ initialState: initialState
70
82
  }))));
71
83
  });
72
84
 
@@ -90,6 +102,20 @@ ConditionBuilder.propTypes = {
90
102
  * Provide an optional class to be applied to the containing node.
91
103
  */
92
104
  className: PropTypes.string,
105
+ getConditionState: PropTypes.func.isRequired,
106
+ getOptions: PropTypes.func,
107
+ initialState: PropTypes.shape({
108
+ groups: PropTypes.arrayOf(PropTypes.shape({
109
+ groupSeparateOperator: PropTypes.string,
110
+ groupOperator: PropTypes.string,
111
+ statement: PropTypes.string,
112
+ conditions: PropTypes.arrayOf(PropTypes.shape({
113
+ property: PropTypes.string,
114
+ operator: PropTypes.string,
115
+ value: PropTypes.string
116
+ }))
117
+ }))
118
+ }),
93
119
  /**
94
120
  * This is a mandatory prop that defines the input to the condition builder.
95
121
 
@@ -98,13 +124,13 @@ ConditionBuilder.propTypes = {
98
124
  properties: PropTypes.arrayOf(PropTypes.shape({
99
125
  id: PropTypes.string,
100
126
  label: PropTypes.string,
101
- icon: PropTypes.func,
102
- type: PropTypes.oneOf(['text', 'number', 'date', 'option']),
127
+ icon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
128
+ type: PropTypes.oneOf(['text', 'number', 'date', 'option', 'time']),
103
129
  config: PropTypes.shape({
104
130
  options: PropTypes.arrayOf(PropTypes.shape({
105
131
  id: PropTypes.string,
106
132
  label: PropTypes.string,
107
- icon: PropTypes.func
133
+ icon: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
108
134
  })),
109
135
  includeSearch: PropTypes.bool
110
136
  })
@@ -117,9 +143,12 @@ ConditionBuilder.propTypes = {
117
143
  /**
118
144
  * Provide a label to the button that starts condition builder
119
145
  */
120
- startConditionLabel: PropTypes.string.isRequired
121
-
146
+ startConditionLabel: PropTypes.string.isRequired,
122
147
  /* TODO: add types and DocGen for all props. */
148
+ /**
149
+ * Provide the condition builder variant: sentence/ tree
150
+ */
151
+ variant: PropTypes.string.isRequired
123
152
  };
124
153
 
125
154
  export { ConditionBuilder };
@@ -0,0 +1,12 @@
1
+ export default ConditionBuilderAdd;
2
+ declare function ConditionBuilderAdd({ className, onClick }: {
3
+ className: any;
4
+ onClick: any;
5
+ }): import("react/jsx-runtime").JSX.Element;
6
+ declare namespace ConditionBuilderAdd {
7
+ namespace propTypes {
8
+ let className: PropTypes.Requireable<string>;
9
+ let onClick: PropTypes.Requireable<(...args: any[]) => any>;
10
+ }
11
+ }
12
+ import PropTypes from 'prop-types';
@@ -0,0 +1,40 @@
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 React__default from 'react';
9
+ import { AddAlt } from '@carbon/react/icons';
10
+ import { ConditionBuilderButton } from '../ConditionBuilderButton/ConditionBuilderButton.js';
11
+ import PropTypes from '../../../node_modules/prop-types/index.js';
12
+ import { blockClass, translateWithId } from '../ConditionBuilderContext/DataConfigs.js';
13
+
14
+ var ConditionBuilderAdd = function ConditionBuilderAdd(_ref) {
15
+ var className = _ref.className,
16
+ onClick = _ref.onClick;
17
+ return /*#__PURE__*/React__default.createElement("div", {
18
+ className: className
19
+ }, /*#__PURE__*/React__default.createElement(ConditionBuilderButton, {
20
+ renderIcon: AddAlt,
21
+ onClick: onClick,
22
+ className: "".concat(blockClass, "__add-button"),
23
+ hideLabel: true,
24
+ label: translateWithId('add-condition'),
25
+ role: "gridcell"
26
+ }));
27
+ };
28
+ var ConditionBuilderAdd$1 = ConditionBuilderAdd;
29
+ ConditionBuilderAdd.propTypes = {
30
+ /**
31
+ * Provide an optional class to be applied to the containing node.
32
+ */
33
+ className: PropTypes.string,
34
+ /**
35
+ * callback triggered on click of add button
36
+ */
37
+ onClick: PropTypes.func
38
+ };
39
+
40
+ export { ConditionBuilderAdd$1 as default };
@@ -0,0 +1,22 @@
1
+ export function ConditionBuilderButton({ className, label, hideLabel, tooltipAlign, renderIcon: Icon, onClick, showToolTip, ...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
+ }): import("react/jsx-runtime").JSX.Element;
11
+ export namespace ConditionBuilderButton {
12
+ namespace propTypes {
13
+ let className: PropTypes.Requireable<string>;
14
+ let hideLabel: PropTypes.Requireable<boolean>;
15
+ let label: PropTypes.Requireable<string>;
16
+ let onClick: PropTypes.Requireable<(...args: any[]) => any>;
17
+ let renderIcon: PropTypes.Requireable<object>;
18
+ let showToolTip: PropTypes.Requireable<boolean>;
19
+ let tooltipAlign: PropTypes.Requireable<string>;
20
+ }
21
+ }
22
+ import PropTypes from 'prop-types';
@@ -0,0 +1,74 @@
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 { objectWithoutProperties as _objectWithoutProperties, extends as _extends, defineProperty as _defineProperty } from '../../../_virtual/_rollupPluginBabelHelpers.js';
9
+ import React__default from 'react';
10
+ import cx from 'classnames';
11
+ import PropTypes from '../../../node_modules/prop-types/index.js';
12
+ import { Tooltip } from '@carbon/react';
13
+ import { blockClass } from '../ConditionBuilderContext/DataConfigs.js';
14
+
15
+ var _excluded = ["className", "label", "hideLabel", "tooltipAlign", "renderIcon", "onClick", "showToolTip"];
16
+ var ConditionBuilderButton = function ConditionBuilderButton(_ref) {
17
+ var _Icon;
18
+ var className = _ref.className,
19
+ label = _ref.label,
20
+ hideLabel = _ref.hideLabel,
21
+ tooltipAlign = _ref.tooltipAlign,
22
+ Icon = _ref.renderIcon,
23
+ onClick = _ref.onClick,
24
+ showToolTip = _ref.showToolTip,
25
+ rest = _objectWithoutProperties(_ref, _excluded);
26
+ var Button = function Button() {
27
+ return /*#__PURE__*/React__default.createElement("button", _extends({}, rest, {
28
+ // role={'gridcell'}
29
+ tabIndex: -1,
30
+ className: cx([className, "".concat(blockClass, "__condition-builder-button"), _defineProperty({}, "".concat(blockClass, "__text-ellipsis"), showToolTip && !hideLabel)]),
31
+ type: "button",
32
+ onClick: onClick
33
+ }), Icon && (_Icon || (_Icon = /*#__PURE__*/React__default.createElement(Icon, null))), !hideLabel && label);
34
+ };
35
+ return hideLabel || showToolTip ? /*#__PURE__*/React__default.createElement(Tooltip, _extends({
36
+ label: label,
37
+ align: tooltipAlign,
38
+ className: "".concat(blockClass, "__con-tooltip")
39
+ }, rest.wrapperProps), Button()) : /*#__PURE__*/React__default.createElement(React__default.Fragment, null, Button());
40
+ };
41
+ ConditionBuilderButton.propTypes = {
42
+ /**
43
+ * Provide an optional class to be applied to the containing node.
44
+ */
45
+ className: PropTypes.string,
46
+ /**
47
+ * decides if label and tooltip to be hidden
48
+ */
49
+ hideLabel: PropTypes.bool,
50
+ /**
51
+ * label of the button
52
+ */
53
+ label: PropTypes.string,
54
+ /**
55
+ * callback triggered on click of add button
56
+ */
57
+ onClick: PropTypes.func,
58
+ /**
59
+ * Optional prop to allow overriding the icon rendering.
60
+ */
61
+ renderIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
62
+ /**
63
+ */
64
+ /**
65
+ *decides if tooltip to be shown
66
+ */
67
+ showToolTip: PropTypes.bool,
68
+ /**
69
+ * tooltip position
70
+ */
71
+ tooltipAlign: PropTypes.string
72
+ };
73
+
74
+ export { ConditionBuilderButton };
@@ -1,9 +1,26 @@
1
1
  export default ConditionBuilderContent;
2
- declare function ConditionBuilderContent({ startConditionLabel }: {
2
+ declare function ConditionBuilderContent({ startConditionLabel, conditionBuilderRef, getConditionState, initialState, }: {
3
3
  startConditionLabel: any;
4
+ conditionBuilderRef: any;
5
+ getConditionState: any;
6
+ initialState: any;
4
7
  }): import("react/jsx-runtime").JSX.Element;
5
8
  declare namespace ConditionBuilderContent {
6
9
  namespace propTypes {
10
+ let conditionBuilderRef: PropTypes.Requireable<object>;
11
+ let getConditionState: PropTypes.Validator<(...args: any[]) => any>;
12
+ let initialState: PropTypes.Requireable<PropTypes.InferProps<{
13
+ groups: PropTypes.Requireable<(PropTypes.InferProps<{
14
+ groupSeparateOperator: PropTypes.Requireable<string>;
15
+ groupOperator: PropTypes.Requireable<string>;
16
+ statement: PropTypes.Requireable<string>;
17
+ conditions: PropTypes.Requireable<(PropTypes.InferProps<{
18
+ property: PropTypes.Requireable<string>;
19
+ operator: PropTypes.Requireable<string>;
20
+ value: PropTypes.Requireable<string>;
21
+ }> | null | undefined)[]>;
22
+ }> | null | undefined)[]>;
23
+ }>>;
7
24
  let startConditionLabel: PropTypes.Validator<string>;
8
25
  }
9
26
  }