@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
@@ -165,7 +165,7 @@ function _regeneratorRuntime() {
165
165
  function makeInvokeMethod(e, r, n) {
166
166
  var o = h;
167
167
  return function (i, a) {
168
- if (o === f) throw new Error("Generator is already running");
168
+ if (o === f) throw Error("Generator is already running");
169
169
  if (o === s) {
170
170
  if ("throw" === i) throw a;
171
171
  return {
@@ -307,7 +307,7 @@ function _regeneratorRuntime() {
307
307
  } else if (c) {
308
308
  if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
309
309
  } else {
310
- if (!u) throw new Error("try statement without catch or finally");
310
+ if (!u) throw Error("try statement without catch or finally");
311
311
  if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
312
312
  }
313
313
  }
@@ -347,7 +347,7 @@ function _regeneratorRuntime() {
347
347
  return o;
348
348
  }
349
349
  }
350
- throw new Error("illegal catch attempt");
350
+ throw Error("illegal catch attempt");
351
351
  },
352
352
  delegateYield: function (e, r, n) {
353
353
  return this.delegate = {
@@ -370,7 +370,7 @@ function _toPrimitive(t, r) {
370
370
  }
371
371
  function _toPropertyKey(t) {
372
372
  var i = _toPrimitive(t, "string");
373
- return "symbol" == typeof i ? i : String(i);
373
+ return "symbol" == typeof i ? i : i + "";
374
374
  }
375
375
  function _typeof(o) {
376
376
  "@babel/helpers - typeof";
@@ -445,12 +445,11 @@ function _objectDestructuringEmpty(obj) {
445
445
  function _objectWithoutPropertiesLoose(source, excluded) {
446
446
  if (source == null) return {};
447
447
  var target = {};
448
- var sourceKeys = Object.keys(source);
449
- var key, i;
450
- for (i = 0; i < sourceKeys.length; i++) {
451
- key = sourceKeys[i];
452
- if (excluded.indexOf(key) >= 0) continue;
453
- target[key] = source[key];
448
+ for (var key in source) {
449
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
450
+ if (excluded.indexOf(key) >= 0) continue;
451
+ target[key] = source[key];
452
+ }
454
453
  }
455
454
  return target;
456
455
  }
@@ -1,10 +1,11 @@
1
- export function BreadcrumbWithOverflow({ breadcrumbs, className, maxVisible, noTrailingSlash, overflowAriaLabel, ...other }: {
1
+ export function BreadcrumbWithOverflow({ breadcrumbs, className, maxVisible, noTrailingSlash, overflowAriaLabel, overflowTooltipAlign, ...other }: {
2
2
  [x: string]: any;
3
3
  breadcrumbs: any;
4
4
  className: any;
5
5
  maxVisible: any;
6
6
  noTrailingSlash: any;
7
7
  overflowAriaLabel: any;
8
+ overflowTooltipAlign: any;
8
9
  }): import("react/jsx-runtime").JSX.Element;
9
10
  export namespace BreadcrumbWithOverflow {
10
11
  export namespace propTypes {
@@ -34,6 +35,7 @@ export namespace BreadcrumbWithOverflow {
34
35
  let maxVisible: PropTypes.Requireable<number>;
35
36
  let noTrailingSlash: PropTypes.Requireable<boolean>;
36
37
  let overflowAriaLabel: any;
38
+ let overflowTooltipAlign: any;
37
39
  }
38
40
  export { componentName as displayName };
39
41
  }
@@ -27,7 +27,7 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
27
27
  var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
28
28
 
29
29
  var _TooltipTrigger;
30
- var _excluded = ["breadcrumbs", "className", "maxVisible", "noTrailingSlash", "overflowAriaLabel"],
30
+ var _excluded = ["breadcrumbs", "className", "maxVisible", "noTrailingSlash", "overflowAriaLabel", "overflowTooltipAlign"],
31
31
  _excluded2 = ["label", "key", "title", "id"],
32
32
  _excluded3 = ["className", "key", "label", "title"];
33
33
 
@@ -47,6 +47,7 @@ exports.BreadcrumbWithOverflow = function BreadcrumbWithOverflow(_ref) {
47
47
  maxVisible = _ref.maxVisible,
48
48
  noTrailingSlash = _ref.noTrailingSlash,
49
49
  overflowAriaLabel = _ref.overflowAriaLabel,
50
+ overflowTooltipAlign = _ref.overflowTooltipAlign,
50
51
  other = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
51
52
  var carbonPrefix = react.usePrefix();
52
53
  var _useState = React.useState(3),
@@ -71,6 +72,7 @@ exports.BreadcrumbWithOverflow = function BreadcrumbWithOverflow(_ref) {
71
72
  return /*#__PURE__*/React__default["default"].createElement(react.BreadcrumbItem, {
72
73
  key: "breadcrumb-overflow-".concat(internalId.current)
73
74
  }, /*#__PURE__*/React__default["default"].createElement(react.OverflowMenu, {
75
+ align: overflowTooltipAlign,
74
76
  "aria-label": overflowAriaLabel,
75
77
  iconDescription: overflowAriaLabel // also needs setting to avoid a11y "Accessible name does not match or contain the visible label text"
76
78
  ,
@@ -328,6 +330,10 @@ exports.BreadcrumbWithOverflow.propTypes = {
328
330
  overflowAriaLabel: index["default"].string.isRequired.if(function (_ref6) {
329
331
  var breadcrumbs = _ref6.breadcrumbs;
330
332
  return breadcrumbs.length > 1;
331
- })
333
+ }),
334
+ /**
335
+ * overflowTooltipAlign: align tooltip position
336
+ */
337
+ overflowTooltipAlign: react.Tooltip.propTypes.align
332
338
  };
333
339
  exports.BreadcrumbWithOverflow.displayName = componentName;
@@ -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,270 @@
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
+ 'use strict';
9
+
10
+ Object.defineProperty(exports, '__esModule', { value: true });
11
+
12
+ var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
13
+ var React = require('react');
14
+ var icons = require('@carbon/react/icons');
15
+ var ConditionBuilderItem = require('../ConditionBuilderItem/ConditionBuilderItem.js');
16
+ var index = require('../../../node_modules/prop-types/index.js');
17
+ var DataConfigs = require('../ConditionBuilderContext/DataConfigs.js');
18
+ var ConditionBuilderItemOption = require('../ConditionBuilderItem/ConditionBuilderItemOption/ConditionBuilderItemOption.js');
19
+ var cx = require('classnames');
20
+ var ConditionConnector = require('../ConditionConnector/ConditionConnector.js');
21
+ var ConditionBuilderItemNumber = require('../ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js');
22
+ var ConditionBuilderItemText = require('../ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.js');
23
+ var ConditionBuilderItemDate = require('../ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.js');
24
+ var ConditionBuilderProvider = require('../ConditionBuilderContext/ConditionBuilderProvider.js');
25
+ var ConditionBuilderButton = require('../ConditionBuilderButton/ConditionBuilderButton.js');
26
+ var util = require('../utils/util.js');
27
+ var ConditionBuilderItemTime = require('../ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.js');
28
+ var ConditionBuilderAdd = require('../ConditionBuilderAdd/ConditionBuilderAdd.js');
29
+
30
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
31
+
32
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
33
+ var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
34
+
35
+ /**
36
+ * This component build each block of condition consisting of property, operator value and close button.
37
+ */
38
+
39
+ var ConditionBlock = function ConditionBlock(props) {
40
+ var _props$state = props.state,
41
+ property = _props$state.property,
42
+ value = _props$state.value,
43
+ operator = _props$state.operator;
44
+ var onRemove = props.onRemove,
45
+ onChange = props.onChange,
46
+ state = props.state,
47
+ conjunction = props.conjunction,
48
+ onConnectorOperatorChange = props.onConnectorOperatorChange,
49
+ isStatement = props.isStatement,
50
+ group = props.group,
51
+ onStatementChange = props.onStatementChange,
52
+ addConditionHandler = props.addConditionHandler,
53
+ conditionIndex = props.conditionIndex;
54
+ var _useContext = React.useContext(ConditionBuilderProvider.ConditionBuilderContext),
55
+ inputConfig = _useContext.inputConfig;
56
+ var itemComponents = {
57
+ option: ConditionBuilderItemOption.ConditionBuilderItemOption,
58
+ text: ConditionBuilderItemText.ConditionBuilderItemText,
59
+ number: ConditionBuilderItemNumber.ConditionBuilderItemNumber,
60
+ date: ConditionBuilderItemDate.ConditionBuilderItemDate,
61
+ time: ConditionBuilderItemTime.ConditionBuilderItemTime
62
+ };
63
+ var _useState = React.useState(false),
64
+ _useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
65
+ showDeletionPreview = _useState2[0],
66
+ setShowDeletionPreview = _useState2[1];
67
+
68
+ //filtering the current property to access its properties and config options
69
+ var getCurrentConfig = function getCurrentConfig(property) {
70
+ var _inputConfig$properti, _inputConfig$properti2;
71
+ return (_inputConfig$properti = (_inputConfig$properti2 = inputConfig.properties) === null || _inputConfig$properti2 === void 0 ? void 0 : _inputConfig$properti2.filter(function (eachProperty) {
72
+ var _eachProperty$label;
73
+ return ((_eachProperty$label = eachProperty.label) === null || _eachProperty$label === void 0 ? void 0 : _eachProperty$label.toUpperCase()) == (property === null || property === void 0 ? void 0 : property.toUpperCase());
74
+ })[0]) !== null && _inputConfig$properti !== void 0 ? _inputConfig$properti : {};
75
+ };
76
+ var isLastCondition = function isLastCondition(conditionIndex, conditionArr) {
77
+ return conditionIndex + 1 >= conditionArr.length || conditionArr.length - 1 != conditionIndex && conditionArr[conditionIndex + 1].conditions;
78
+ };
79
+ var _getCurrentConfig = getCurrentConfig(property),
80
+ icon = _getCurrentConfig.icon,
81
+ type = _getCurrentConfig.type,
82
+ config = _getCurrentConfig.config,
83
+ label = _getCurrentConfig.label;
84
+ var ItemComponent = property ? itemComponents[type] : null;
85
+ var onStatementChangeHandler = function onStatementChangeHandler(v, e) {
86
+ util.focusThisField(e);
87
+ onStatementChange(v);
88
+ };
89
+ var onConnectorOperatorChangeHandler = function onConnectorOperatorChangeHandler(op) {
90
+ onConnectorOperatorChange(op);
91
+ };
92
+ var onPropertyChangeHandler = function onPropertyChangeHandler(newProperty) {
93
+ onChange(_rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, state), {}, {
94
+ property: newProperty,
95
+ operator: undefined,
96
+ value: '',
97
+ popoverToOpen: 'operatorField'
98
+ }));
99
+ };
100
+ var onOperatorChangeHandler = function onOperatorChangeHandler(newOperator) {
101
+ onChange(_rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, state), {}, {
102
+ operator: newOperator,
103
+ value: undefined,
104
+ popoverToOpen: 'valueField'
105
+ }));
106
+ };
107
+ var onValueChangeHandler = function onValueChangeHandler(newValue) {
108
+ onChange(_rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, state), {}, {
109
+ value: newValue,
110
+ popoverToOpen: ''
111
+ }));
112
+ };
113
+ var handleShowDeletionPreview = function handleShowDeletionPreview() {
114
+ setShowDeletionPreview(true);
115
+ };
116
+ var handleHideDeletionPreview = function handleHideDeletionPreview() {
117
+ setShowDeletionPreview(false);
118
+ };
119
+ var getOperators = function getOperators() {
120
+ return DataConfigs.operatorConfig.filter(function (operator) {
121
+ return operator.type.indexOf(type) != -1 || operator.type == 'all';
122
+ });
123
+ };
124
+ return /*#__PURE__*/React__default["default"].createElement("div", {
125
+ className: cx__default["default"]("".concat(DataConfigs.blockClass, "__condition-block conditionBlockWrapper ").concat(DataConfigs.blockClass, "__gap ").concat(DataConfigs.blockClass, "__gap-bottom"), _rollupPluginBabelHelpers.defineProperty({}, "".concat(DataConfigs.blockClass, "__condition-builder-condition__deletion-preview"), showDeletionPreview)),
126
+ key: conditionIndex,
127
+ role: "row",
128
+ "aria-label": DataConfigs.translateWithId('condition_row'),
129
+ tabIndex: -1
130
+ }, isStatement && /*#__PURE__*/React__default["default"].createElement(ConditionBuilderItem.ConditionBuilderItem
131
+ // open={false}
132
+ , {
133
+ label: group.statement,
134
+ title: DataConfigs.translateWithId('condition'),
135
+ "data-name": "connectorField",
136
+ popOverClassName: "".concat(DataConfigs.blockClass, "__gap"),
137
+ className: "".concat(DataConfigs.blockClass, "__statement-button")
138
+ }, /*#__PURE__*/React__default["default"].createElement(ConditionBuilderItemOption.ConditionBuilderItemOption, {
139
+ conditionState: {
140
+ value: group.statement,
141
+ label: DataConfigs.translateWithId('condition')
142
+ },
143
+ onChange: onStatementChangeHandler,
144
+ config: {
145
+ options: DataConfigs.statementConfig
146
+ }
147
+ })), conjunction && /*#__PURE__*/React__default["default"].createElement(ConditionConnector["default"], {
148
+ className: "".concat(DataConfigs.blockClass, "__gap"),
149
+ operator: conjunction,
150
+ onChange: onConnectorOperatorChangeHandler
151
+ }), /*#__PURE__*/React__default["default"].createElement(ConditionBuilderItem.ConditionBuilderItem, {
152
+ label: label,
153
+ title: DataConfigs.translateWithId('property'),
154
+ renderIcon: icon !== null && icon !== void 0 ? icon : null,
155
+ className: "".concat(DataConfigs.blockClass, "__property-field"),
156
+ "data-name": "propertyField",
157
+ state: state,
158
+ type: type
159
+ }, /*#__PURE__*/React__default["default"].createElement(ConditionBuilderItemOption.ConditionBuilderItemOption, {
160
+ conditionState: {
161
+ value: property,
162
+ label: DataConfigs.translateWithId('property')
163
+ },
164
+ onChange: onPropertyChangeHandler,
165
+ config: {
166
+ options: inputConfig.properties
167
+ }
168
+ })), property && /*#__PURE__*/React__default["default"].createElement(ConditionBuilderItem.ConditionBuilderItem, {
169
+ label: operator,
170
+ title: DataConfigs.translateWithId('operator'),
171
+ "data-name": "operatorField",
172
+ state: state,
173
+ type: type
174
+ }, /*#__PURE__*/React__default["default"].createElement(ConditionBuilderItemOption.ConditionBuilderItemOption, {
175
+ config: {
176
+ options: getOperators()
177
+ },
178
+ conditionState: {
179
+ value: operator,
180
+ label: DataConfigs.translateWithId('operator')
181
+ },
182
+ onChange: onOperatorChangeHandler
183
+ })), property && operator && /*#__PURE__*/React__default["default"].createElement(ConditionBuilderItem.ConditionBuilderItem, {
184
+ label: value,
185
+ type: type,
186
+ title: label,
187
+ showToolTip: true,
188
+ "data-name": "valueField",
189
+ state: state,
190
+ config: config
191
+ }, /*#__PURE__*/React__default["default"].createElement(ItemComponent, {
192
+ conditionState: {
193
+ property: property,
194
+ operator: operator,
195
+ value: value
196
+ },
197
+ onChange: onValueChangeHandler,
198
+ config: config
199
+ })), /*#__PURE__*/React__default["default"].createElement("span", {
200
+ role: "gridcell",
201
+ "aria-label": DataConfigs.translateWithId('remove_condition')
202
+ }, /*#__PURE__*/React__default["default"].createElement(ConditionBuilderButton.ConditionBuilderButton, {
203
+ hideLabel: true,
204
+ label: DataConfigs.translateWithId('remove_condition'),
205
+ onClick: onRemove,
206
+ onMouseEnter: handleShowDeletionPreview,
207
+ onMouseLeave: handleHideDeletionPreview,
208
+ onFocus: handleShowDeletionPreview,
209
+ onBlur: handleHideDeletionPreview,
210
+ renderIcon: icons.Close,
211
+ className: "".concat(DataConfigs.blockClass, "__close-condition"),
212
+ "data-name": "closeCondition"
213
+ })), isLastCondition(conditionIndex, group.conditions) && /*#__PURE__*/React__default["default"].createElement(ConditionBuilderAdd["default"], {
214
+ onClick: function onClick() {
215
+ addConditionHandler(conditionIndex);
216
+ }
217
+ //addConditionSubGroupHandler={()=>{addConditionSubGroupHandler(conditionIndex)}}
218
+ ,
219
+ className: "".concat(DataConfigs.blockClass, "__gap ").concat(DataConfigs.blockClass, "__gap-left")
220
+ }));
221
+ };
222
+ var ConditionBlock$1 = ConditionBlock;
223
+ ConditionBlock.propTypes = {
224
+ /**
225
+ * callback to add a new condition
226
+ */
227
+ addConditionHandler: index["default"].func,
228
+ /**
229
+ * object hold aria attributes
230
+ */
231
+ aria: index["default"].object,
232
+ /**
233
+ * index of the current condition
234
+ */
235
+ conditionIndex: index["default"].number,
236
+ /**
237
+ * string that decides to show the condition connector
238
+ */
239
+ conjunction: index["default"].string,
240
+ /**
241
+ * object that hold the current group object where is condition is part of
242
+ */
243
+ group: index["default"].object,
244
+ /**
245
+ * boolean that decides to show the statement(if/ excl.if)
246
+ */
247
+ isStatement: index["default"].bool,
248
+ /**
249
+ * callback to update the current condition of the state tree
250
+ */
251
+ onChange: index["default"].func,
252
+ /**
253
+ * callback to handle the connector(and/or) change
254
+ */
255
+ onConnectorOperatorChange: index["default"].func,
256
+ /**
257
+ * callback for Remove a condition
258
+ */
259
+ onRemove: index["default"].func,
260
+ /**
261
+ * callback to handle the statement(if/ excl.if) change
262
+ */
263
+ onStatementChange: index["default"].func,
264
+ /**
265
+ * object that hold the current condition
266
+ */
267
+ state: index["default"].object
268
+ };
269
+
270
+ exports["default"] = ConditionBlock$1;
@@ -15,22 +15,21 @@ var react = require('@carbon/react');
15
15
  var index = require('../../node_modules/prop-types/index.js');
16
16
  var cx = require('classnames');
17
17
  var devtools = require('../../global/js/utils/devtools.js');
18
- var settings = require('../../settings.js');
19
18
  var ConditionBuilderContent = require('./ConditionBuilderContent/ConditionBuilderContent.js');
20
- var DataTreeContext = require('./ConditionBuilderContext/DataTreeContext.js');
19
+ var ConditionBuilderProvider = require('./ConditionBuilderContext/ConditionBuilderProvider.js');
20
+ var settings = require('../../settings.js');
21
+ var DataConfigs = require('./ConditionBuilderContext/DataConfigs.js');
21
22
 
22
23
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
23
24
 
24
25
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
25
26
  var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
26
27
 
27
- var _excluded = ["className", "inputConfig", "startConditionLabel", "popOverSearchThreshold"];
28
+ var _excluded = ["className", "inputConfig", "startConditionLabel", "popOverSearchThreshold", "getOptions", "initialState", "getConditionState", "variant"];
28
29
 
29
30
  // Carbon and package components we use.
30
31
  /* TODO: @import(s) of carbon components and other package components. */
31
32
 
32
- // The block part of our conventional BEM class names (blockClass__E--M).
33
- var blockClass = "".concat(settings.pkg.prefix, "--condition-builder");
34
33
  var componentName = 'ConditionBuilder';
35
34
 
36
35
  // NOTE: the component SCSS is not imported here: it is rolled up separately.
@@ -58,12 +57,20 @@ exports.ConditionBuilder = /*#__PURE__*/React__default["default"].forwardRef(fun
58
57
  inputConfig = _ref.inputConfig,
59
58
  startConditionLabel = _ref.startConditionLabel,
60
59
  popOverSearchThreshold = _ref.popOverSearchThreshold,
60
+ getOptions = _ref.getOptions,
61
+ initialState = _ref.initialState,
62
+ getConditionState = _ref.getConditionState,
63
+ variant = _ref.variant,
61
64
  rest = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
62
- return /*#__PURE__*/React__default["default"].createElement(DataTreeContext.ConditionBuilderProvider, {
65
+ var localRef = React.useRef();
66
+ var conditionBuilderRef = ref || localRef;
67
+ return /*#__PURE__*/React__default["default"].createElement(ConditionBuilderProvider.ConditionBuilderProvider, {
63
68
  inputConfig: inputConfig,
64
- popOverSearchThreshold: popOverSearchThreshold
69
+ popOverSearchThreshold: popOverSearchThreshold,
70
+ getOptions: getOptions,
71
+ variant: variant
65
72
  }, /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({}, rest, {
66
- className: cx__default["default"](blockClass,
73
+ className: cx__default["default"](DataConfigs.blockClass,
67
74
  // Apply the block class to the main HTML element
68
75
  className,
69
76
  // Apply any supplied class names to the main HTML element.
@@ -72,10 +79,15 @@ exports.ConditionBuilder = /*#__PURE__*/React__default["default"].forwardRef(fun
72
79
  // switched classes dependant on props or state
73
80
  // example: [`${blockClass}__here-if-small`]: size === 'sm',
74
81
  }),
75
- ref: ref,
76
- role: "main"
77
- }, devtools.getDevtoolsProps(componentName)), /*#__PURE__*/React__default["default"].createElement(react.VStack, null, /*#__PURE__*/React__default["default"].createElement(ConditionBuilderContent["default"], {
78
- startConditionLabel: startConditionLabel
82
+ role: "main",
83
+ ref: conditionBuilderRef
84
+ }, devtools.getDevtoolsProps(componentName)), /*#__PURE__*/React__default["default"].createElement(react.VStack, {
85
+ className: "".concat(DataConfigs.blockClass, "__").concat(variant)
86
+ }, /*#__PURE__*/React__default["default"].createElement(ConditionBuilderContent["default"], {
87
+ startConditionLabel: startConditionLabel,
88
+ conditionBuilderRef: conditionBuilderRef,
89
+ getConditionState: getConditionState,
90
+ initialState: initialState
79
91
  }))));
80
92
  });
81
93
 
@@ -99,6 +111,20 @@ exports.ConditionBuilder.propTypes = {
99
111
  * Provide an optional class to be applied to the containing node.
100
112
  */
101
113
  className: index["default"].string,
114
+ getConditionState: index["default"].func.isRequired,
115
+ getOptions: index["default"].func,
116
+ initialState: index["default"].shape({
117
+ groups: index["default"].arrayOf(index["default"].shape({
118
+ groupSeparateOperator: index["default"].string,
119
+ groupOperator: index["default"].string,
120
+ statement: index["default"].string,
121
+ conditions: index["default"].arrayOf(index["default"].shape({
122
+ property: index["default"].string,
123
+ operator: index["default"].string,
124
+ value: index["default"].string
125
+ }))
126
+ }))
127
+ }),
102
128
  /**
103
129
  * This is a mandatory prop that defines the input to the condition builder.
104
130
 
@@ -107,13 +133,13 @@ exports.ConditionBuilder.propTypes = {
107
133
  properties: index["default"].arrayOf(index["default"].shape({
108
134
  id: index["default"].string,
109
135
  label: index["default"].string,
110
- icon: index["default"].func,
111
- type: index["default"].oneOf(['text', 'number', 'date', 'option']),
136
+ icon: index["default"].oneOfType([index["default"].func, index["default"].object]),
137
+ type: index["default"].oneOf(['text', 'number', 'date', 'option', 'time']),
112
138
  config: index["default"].shape({
113
139
  options: index["default"].arrayOf(index["default"].shape({
114
140
  id: index["default"].string,
115
141
  label: index["default"].string,
116
- icon: index["default"].func
142
+ icon: index["default"].oneOfType([index["default"].func, index["default"].object])
117
143
  })),
118
144
  includeSearch: index["default"].bool
119
145
  })
@@ -126,7 +152,10 @@ exports.ConditionBuilder.propTypes = {
126
152
  /**
127
153
  * Provide a label to the button that starts condition builder
128
154
  */
129
- startConditionLabel: index["default"].string.isRequired
130
-
155
+ startConditionLabel: index["default"].string.isRequired,
131
156
  /* TODO: add types and DocGen for all props. */
157
+ /**
158
+ * Provide the condition builder variant: sentence/ tree
159
+ */
160
+ variant: index["default"].string.isRequired
132
161
  };
@@ -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,48 @@
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
+ 'use strict';
9
+
10
+ Object.defineProperty(exports, '__esModule', { value: true });
11
+
12
+ var React = require('react');
13
+ var icons = require('@carbon/react/icons');
14
+ var ConditionBuilderButton = require('../ConditionBuilderButton/ConditionBuilderButton.js');
15
+ var index = require('../../../node_modules/prop-types/index.js');
16
+ var DataConfigs = require('../ConditionBuilderContext/DataConfigs.js');
17
+
18
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
19
+
20
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
21
+
22
+ var ConditionBuilderAdd = function ConditionBuilderAdd(_ref) {
23
+ var className = _ref.className,
24
+ onClick = _ref.onClick;
25
+ return /*#__PURE__*/React__default["default"].createElement("div", {
26
+ className: className
27
+ }, /*#__PURE__*/React__default["default"].createElement(ConditionBuilderButton.ConditionBuilderButton, {
28
+ renderIcon: icons.AddAlt,
29
+ onClick: onClick,
30
+ className: "".concat(DataConfigs.blockClass, "__add-button"),
31
+ hideLabel: true,
32
+ label: DataConfigs.translateWithId('add-condition'),
33
+ role: "gridcell"
34
+ }));
35
+ };
36
+ var ConditionBuilderAdd$1 = ConditionBuilderAdd;
37
+ ConditionBuilderAdd.propTypes = {
38
+ /**
39
+ * Provide an optional class to be applied to the containing node.
40
+ */
41
+ className: index["default"].string,
42
+ /**
43
+ * callback triggered on click of add button
44
+ */
45
+ onClick: index["default"].func
46
+ };
47
+
48
+ exports["default"] = ConditionBuilderAdd$1;
@@ -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';