@carbon/ibm-products 2.48.0 → 2.49.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/css/index-full-carbon.css +29 -14
  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 +11 -2
  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 +29 -14
  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 +29 -14
  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/components/APIKeyModal/APIKeyModal.types.d.ts +1 -1
  18. package/es/components/Card/Card.js +4 -2
  19. package/es/components/ConditionBuilder/ConditionBlock/ConditionBlock.d.ts +100 -24
  20. package/es/components/ConditionBuilder/ConditionBlock/ConditionBlock.js +30 -27
  21. package/es/components/ConditionBuilder/ConditionBuilder.d.ts +9 -2
  22. package/es/components/ConditionBuilder/ConditionBuilder.js +13 -9
  23. package/es/components/ConditionBuilder/ConditionBuilder.types.d.ts +151 -0
  24. package/es/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.d.ts +26 -12
  25. package/es/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.js +7 -7
  26. package/es/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.d.ts +62 -27
  27. package/es/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.js +2 -3
  28. package/es/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.d.ts +86 -37
  29. package/es/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js +2 -2
  30. package/es/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.d.ts +29 -14
  31. package/es/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.js +10 -9
  32. package/es/components/ConditionBuilder/ConditionBuilderConnector/GroupConnector.js +4 -1
  33. package/es/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.d.ts +40 -20
  34. package/es/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js +40 -37
  35. package/es/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.d.ts +10 -49
  36. package/es/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.js +22 -31
  37. package/es/components/ConditionBuilder/ConditionBuilderContext/translationObject.d.ts +6 -0
  38. package/es/components/ConditionBuilder/ConditionBuilderContext/translationObject.js +7 -1
  39. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.d.ts +81 -31
  40. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +14 -8
  41. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.d.ts +27 -12
  42. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.js +2 -3
  43. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.d.ts +30 -12
  44. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js +12 -7
  45. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.d.ts +35 -12
  46. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js +16 -9
  47. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.d.ts +32 -12
  48. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.js +4 -4
  49. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.d.ts +35 -14
  50. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.js +5 -6
  51. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.d.ts +25 -10
  52. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.js +1 -1
  53. package/es/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.d.ts +44 -17
  54. package/es/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js +50 -40
  55. package/es/components/ConditionBuilder/ConditionPreview/ConditionPreview.d.ts +30 -13
  56. package/es/components/ConditionBuilder/ConditionPreview/ConditionPreview.js +2 -3
  57. package/es/components/ConditionBuilder/utils/handleKeyboardEvents.js +9 -10
  58. package/es/components/ConditionBuilder/utils/useDataConfigs.d.ts +18 -0
  59. package/es/components/ConditionBuilder/utils/useDataConfigs.js +120 -0
  60. package/es/components/ConditionBuilder/utils/useTranslations.d.ts +1 -1
  61. package/es/components/ConditionBuilder/utils/useTranslations.js +4 -1
  62. package/es/components/ConditionBuilder/utils/util.d.ts +12 -0
  63. package/es/components/ConditionBuilder/utils/util.js +48 -2
  64. package/es/components/CreateFullPage/CreateFullPageStep.d.ts +2 -2
  65. package/es/components/CreateFullPage/index.d.ts +1 -0
  66. package/es/components/CreateTearsheet/CreateTearsheet.js +3 -4
  67. package/es/components/DataSpreadsheet/DataSpreadsheet.js +8 -1
  68. package/es/components/Datagrid/Datagrid/DatagridToolbar.js +8 -3
  69. package/es/components/Datagrid/Datagrid/DatagridVirtualBody.js +20 -11
  70. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +7 -2
  71. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +12 -7
  72. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +18 -16
  73. package/es/components/Datagrid/types/index.d.ts +1 -0
  74. package/es/components/Datagrid/useActionsColumn.js +1 -4
  75. package/es/components/Datagrid/useFiltering.d.ts +1 -0
  76. package/es/components/Datagrid/useFiltering.js +14 -3
  77. package/es/components/EditInPlace/EditInPlace.js +7 -5
  78. package/es/components/NotificationsPanel/NotificationsPanel.d.ts +2 -0
  79. package/es/components/NotificationsPanel/NotificationsPanel.js +75 -5
  80. package/es/components/TagOverflow/TagOverflow.d.ts +1 -0
  81. package/es/components/TagOverflow/TagOverflow.js +8 -2
  82. package/es/components/TagOverflow/TagOverflowPopover.d.ts +1 -0
  83. package/es/components/TagOverflow/TagOverflowPopover.js +7 -1
  84. package/es/components/TagSet/TagSetOverflow.js +1 -1
  85. package/es/components/Tearsheet/Tearsheet.d.ts +2 -2
  86. package/es/components/Tearsheet/TearsheetShell.js +7 -3
  87. package/es/components/Toolbar/ToolbarButton.d.ts +12 -1
  88. package/es/components/Toolbar/ToolbarButton.js +16 -8
  89. package/es/global/js/hooks/useFocus.d.ts +1 -1
  90. package/es/global/js/hooks/useFocus.js +40 -24
  91. package/es/global/js/utils/keyboardNavigation.d.ts +27 -0
  92. package/es/global/js/utils/keyboardNavigation.js +37 -0
  93. package/es/global/js/utils/wrapFocus.d.ts +25 -0
  94. package/es/global/js/utils/wrapFocus.js +68 -0
  95. package/lib/components/APIKeyModal/APIKeyModal.types.d.ts +1 -1
  96. package/lib/components/Card/Card.js +3 -1
  97. package/lib/components/ConditionBuilder/ConditionBlock/ConditionBlock.d.ts +100 -24
  98. package/lib/components/ConditionBuilder/ConditionBlock/ConditionBlock.js +36 -33
  99. package/lib/components/ConditionBuilder/ConditionBuilder.d.ts +9 -2
  100. package/lib/components/ConditionBuilder/ConditionBuilder.js +15 -11
  101. package/lib/components/ConditionBuilder/ConditionBuilder.types.d.ts +151 -0
  102. package/lib/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.d.ts +26 -12
  103. package/lib/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.js +15 -15
  104. package/lib/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.d.ts +62 -27
  105. package/lib/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.js +7 -8
  106. package/lib/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.d.ts +86 -37
  107. package/lib/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js +4 -4
  108. package/lib/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.d.ts +29 -14
  109. package/lib/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.js +11 -10
  110. package/lib/components/ConditionBuilder/ConditionBuilderConnector/GroupConnector.js +8 -5
  111. package/lib/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.d.ts +40 -20
  112. package/lib/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js +47 -44
  113. package/lib/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.d.ts +10 -49
  114. package/lib/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.js +22 -31
  115. package/lib/components/ConditionBuilder/ConditionBuilderContext/translationObject.d.ts +6 -0
  116. package/lib/components/ConditionBuilder/ConditionBuilderContext/translationObject.js +7 -1
  117. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.d.ts +81 -31
  118. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +18 -12
  119. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.d.ts +27 -12
  120. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.js +3 -4
  121. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.d.ts +30 -12
  122. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js +13 -8
  123. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.d.ts +35 -12
  124. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js +22 -15
  125. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.d.ts +32 -12
  126. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.js +15 -15
  127. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.d.ts +35 -14
  128. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.js +5 -6
  129. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.d.ts +25 -10
  130. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.js +2 -2
  131. package/lib/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.d.ts +44 -17
  132. package/lib/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js +60 -50
  133. package/lib/components/ConditionBuilder/ConditionPreview/ConditionPreview.d.ts +30 -13
  134. package/lib/components/ConditionBuilder/ConditionPreview/ConditionPreview.js +18 -19
  135. package/lib/components/ConditionBuilder/utils/handleKeyboardEvents.js +12 -13
  136. package/lib/components/ConditionBuilder/utils/useDataConfigs.d.ts +18 -0
  137. package/lib/components/ConditionBuilder/utils/useDataConfigs.js +124 -0
  138. package/lib/components/ConditionBuilder/utils/useTranslations.d.ts +1 -1
  139. package/lib/components/ConditionBuilder/utils/useTranslations.js +4 -1
  140. package/lib/components/ConditionBuilder/utils/util.d.ts +12 -0
  141. package/lib/components/ConditionBuilder/utils/util.js +53 -3
  142. package/lib/components/CreateFullPage/CreateFullPageStep.d.ts +2 -2
  143. package/lib/components/CreateFullPage/index.d.ts +1 -0
  144. package/lib/components/CreateTearsheet/CreateTearsheet.js +3 -4
  145. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +8 -1
  146. package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +8 -3
  147. package/lib/components/Datagrid/Datagrid/DatagridVirtualBody.js +19 -10
  148. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +6 -1
  149. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +11 -6
  150. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +18 -16
  151. package/lib/components/Datagrid/types/index.d.ts +1 -0
  152. package/lib/components/Datagrid/useActionsColumn.js +1 -4
  153. package/lib/components/Datagrid/useFiltering.d.ts +1 -0
  154. package/lib/components/Datagrid/useFiltering.js +13 -1
  155. package/lib/components/EditInPlace/EditInPlace.js +7 -5
  156. package/lib/components/NotificationsPanel/NotificationsPanel.d.ts +2 -0
  157. package/lib/components/NotificationsPanel/NotificationsPanel.js +74 -4
  158. package/lib/components/TagOverflow/TagOverflow.d.ts +1 -0
  159. package/lib/components/TagOverflow/TagOverflow.js +8 -2
  160. package/lib/components/TagOverflow/TagOverflowPopover.d.ts +1 -0
  161. package/lib/components/TagOverflow/TagOverflowPopover.js +7 -1
  162. package/lib/components/TagSet/TagSetOverflow.js +1 -1
  163. package/lib/components/Tearsheet/Tearsheet.d.ts +2 -2
  164. package/lib/components/Tearsheet/TearsheetShell.js +6 -2
  165. package/lib/components/Toolbar/ToolbarButton.d.ts +12 -1
  166. package/lib/components/Toolbar/ToolbarButton.js +15 -6
  167. package/lib/global/js/hooks/useFocus.d.ts +1 -1
  168. package/lib/global/js/hooks/useFocus.js +40 -24
  169. package/lib/global/js/utils/keyboardNavigation.d.ts +27 -0
  170. package/lib/global/js/utils/keyboardNavigation.js +43 -0
  171. package/lib/global/js/utils/wrapFocus.d.ts +25 -0
  172. package/lib/global/js/utils/wrapFocus.js +73 -0
  173. package/package.json +4 -4
  174. package/scss/components/ConditionBuilder/_condition-builder.scss +1 -1
  175. package/scss/components/ConditionBuilder/styles/_conditionBuilderItem.scss +33 -22
  176. package/scss/components/Datagrid/styles/_datagrid.scss +7 -0
  177. package/scss/components/Datagrid/styles/_useActionsColumn.scss +4 -0
  178. package/scss/components/EditInPlace/_edit-in-place.scss +2 -2
  179. package/telemetry.yml +15 -6
  180. package/es/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.d.ts +0 -28
  181. package/es/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.js +0 -123
  182. package/lib/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.d.ts +0 -28
  183. package/lib/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.js +0 -131
@@ -1,9 +1,14 @@
1
1
  export namespace translationsObject {
2
2
  let ifText: string;
3
+ let unlessText: string;
3
4
  let excl_if: string;
4
5
  let and: string;
5
6
  let or: string;
6
7
  let is: string;
8
+ let ifAll: string;
9
+ let ifAny: string;
10
+ let unlessAll: string;
11
+ let unlessAny: string;
7
12
  let greater: string;
8
13
  let greaterEqual: string;
9
14
  let lower: string;
@@ -42,4 +47,5 @@ export namespace translationsObject {
42
47
  let addPropertyText: string;
43
48
  let addOperatorText: string;
44
49
  let addValueText: string;
50
+ let conditionBuilderHierarchicalText: string;
45
51
  }
@@ -11,10 +11,15 @@ Object.defineProperty(exports, '__esModule', { value: true });
11
11
 
12
12
  var translationsObject = {
13
13
  ifText: 'if',
14
+ unlessText: 'unless',
14
15
  excl_if: 'excl.if',
15
16
  and: 'and',
16
17
  or: 'or',
17
18
  is: 'is',
19
+ ifAll: 'if all',
20
+ ifAny: 'if any',
21
+ unlessAll: 'unless all',
22
+ unlessAny: 'unless any',
18
23
  greater: 'is greater than',
19
24
  greaterEqual: 'is greater than or equal to',
20
25
  lower: 'is lower than',
@@ -52,7 +57,8 @@ var translationsObject = {
52
57
  conditionHeadingText: 'Condition',
53
58
  addPropertyText: 'Add property',
54
59
  addOperatorText: 'Add operator',
55
- addValueText: 'Add value'
60
+ addValueText: 'Add value',
61
+ conditionBuilderHierarchicalText: 'Condition Builder Hierarchical'
56
62
  };
57
63
 
58
64
  exports.translationsObject = translationsObject;
@@ -1,32 +1,82 @@
1
- export function ConditionBuilderItem({ children, className, label, renderIcon, title, type, showToolTip, condition, popOverClassName, config, renderChildren, onChange, ...rest }: {
2
- [x: string]: any;
3
- children: any;
4
- className: any;
5
- label: any;
6
- renderIcon: any;
7
- title: any;
8
- type: any;
9
- showToolTip: any;
10
- condition: any;
11
- popOverClassName: any;
12
- config: any;
13
- renderChildren: any;
14
- onChange: any;
15
- }): import("react/jsx-runtime").JSX.Element;
16
- export namespace ConditionBuilderItem {
17
- namespace propTypes {
18
- let children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
19
- let className: PropTypes.Requireable<string>;
20
- let condition: PropTypes.Requireable<object>;
21
- let config: PropTypes.Requireable<object>;
22
- let label: PropTypes.Requireable<NonNullable<string | object | null | undefined>>;
23
- let onChange: PropTypes.Requireable<(...args: any[]) => any>;
24
- let popOverClassName: PropTypes.Requireable<string>;
25
- let renderChildren: PropTypes.Requireable<(...args: any[]) => any>;
26
- let renderIcon: PropTypes.Requireable<object>;
27
- let showToolTip: PropTypes.Requireable<boolean>;
28
- let title: PropTypes.Requireable<string>;
29
- let type: PropTypes.Requireable<string>;
30
- }
31
- }
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, { PropsWithChildren, ReactNode, RefObject } from 'react';
32
8
  import PropTypes from 'prop-types';
9
+ import { CarbonIconType } from '@carbon/react/icons';
10
+ import { Condition, PropertyConfig, Action, Option } from '../ConditionBuilder.types';
11
+ interface ConditionBuilderItemProps extends PropsWithChildren {
12
+ className?: string;
13
+ label?: string | Option | Option[];
14
+ renderIcon?: CarbonIconType;
15
+ title?: string;
16
+ showToolTip?: boolean;
17
+ popOverClassName?: string;
18
+ type?: string;
19
+ condition?: Action & Condition;
20
+ config?: PropertyConfig;
21
+ renderChildren?: (ref: RefObject<HTMLDivElement>) => ReactNode;
22
+ onChange?: (val: string) => void;
23
+ tabIndex?: number;
24
+ onMouseEnter?: (e: React.MouseEvent<HTMLButtonElement>) => void;
25
+ onMouseLeave?: (e: React.MouseEvent<HTMLButtonElement>) => void;
26
+ onFocus?: React.FocusEventHandler<HTMLButtonElement>;
27
+ onBlur?: React.FocusEventHandler<HTMLButtonElement>;
28
+ }
29
+ export declare const ConditionBuilderItem: {
30
+ ({ children, className, label, renderIcon, title, type, showToolTip, condition, popOverClassName, config, renderChildren, onChange, ...rest }: ConditionBuilderItemProps): import("react/jsx-runtime").JSX.Element;
31
+ propTypes: {
32
+ /**
33
+ * provide the contents of the popover
34
+ */
35
+ children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
36
+ /**
37
+ * Provide an optional class to be applied to the containing node.
38
+ */
39
+ className: PropTypes.Requireable<string>;
40
+ /**
41
+ * current condition state object
42
+ */
43
+ condition: PropTypes.Requireable<object>;
44
+ /**
45
+ * this is the config object again the current property from inputConfig
46
+ */
47
+ config: PropTypes.Requireable<object>;
48
+ /**
49
+ * text to be displayed in the field
50
+ */
51
+ label: PropTypes.Requireable<NonNullable<string | object | null | undefined>>;
52
+ /**
53
+ * callback to update the current condition of the state tree
54
+ */
55
+ onChange: PropTypes.Requireable<(...args: any[]) => any>;
56
+ /**
57
+ * class name for popover
58
+ */
59
+ popOverClassName: PropTypes.Requireable<string>;
60
+ /**
61
+ * callback prop that returns the jsx for children
62
+ */
63
+ renderChildren: PropTypes.Requireable<(...args: any[]) => any>;
64
+ /**
65
+ * Optional prop to allow overriding the icon rendering.
66
+ */
67
+ renderIcon: PropTypes.Requireable<object>;
68
+ /**
69
+ * show tool tip
70
+ */
71
+ showToolTip: PropTypes.Requireable<boolean>;
72
+ /**
73
+ * title of the popover
74
+ */
75
+ title: PropTypes.Requireable<string>;
76
+ /**
77
+ * input type
78
+ */
79
+ type: PropTypes.Requireable<string>;
80
+ };
81
+ };
82
+ export {};
@@ -14,11 +14,11 @@ var React = require('react');
14
14
  var react = require('@carbon/react');
15
15
  var index = require('../../../node_modules/prop-types/index.js');
16
16
  var icons = require('@carbon/react/icons');
17
- var DataConfigs = require('../ConditionBuilderContext/DataConfigs.js');
18
17
  var ConditionBuilderButton = require('../ConditionBuilderButton/ConditionBuilderButton.js');
19
18
  var useTranslations = require('../utils/useTranslations.js');
20
19
  var ConditionBuilderProvider = require('../ConditionBuilderContext/ConditionBuilderProvider.js');
21
20
  var handleKeyboardEvents = require('../utils/handleKeyboardEvents.js');
21
+ var util = require('../utils/util.js');
22
22
 
23
23
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
24
24
 
@@ -44,7 +44,13 @@ var ConditionBuilderItem = function ConditionBuilderItem(_ref) {
44
44
  _useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
45
45
  open = _useState2[0],
46
46
  setOpen = _useState2[1];
47
- var _useTranslations = useTranslations.useTranslations(['invalidText', 'addConditionText', 'addPropertyText', 'addOperatorText', 'addValueText', label]),
47
+ var statementIdMap = {
48
+ ifAll: 'if',
49
+ ifAny: 'if',
50
+ unlessAll: 'unless',
51
+ unlessAny: 'unless'
52
+ };
53
+ var _useTranslations = useTranslations.useTranslations(['invalidText', 'addConditionText', 'addPropertyText', 'addOperatorText', 'addValueText', label], statementIdMap),
48
54
  _useTranslations2 = _rollupPluginBabelHelpers.slicedToArray(_useTranslations, 6),
49
55
  invalidText = _useTranslations2[0],
50
56
  addConditionText = _useTranslations2[1],
@@ -64,7 +70,7 @@ var ConditionBuilderItem = function ConditionBuilderItem(_ref) {
64
70
  isInvalid: true
65
71
  };
66
72
  }
67
- var propertyId = rest['data-name'] == 'valueField' && type ? DataConfigs.valueRenderers[type](label, config) : labelText;
73
+ var propertyId = rest['data-name'] == 'valueField' && type ? util.getValue[type](label, config) : labelText;
68
74
  return {
69
75
  isInvalid: false,
70
76
  propertyLabel: propertyId
@@ -84,7 +90,7 @@ var ConditionBuilderItem = function ConditionBuilderItem(_ref) {
84
90
  if (condition.popoverToOpen && currentField !== condition.popoverToOpen) {
85
91
  // close the previous popover
86
92
  closePopover();
87
- } else if (currentField == 'valueField' && type == 'option' && condition.operator !== 'oneOf') {
93
+ } else if (currentField == 'valueField' && type == 'option' && (condition === null || condition === void 0 ? void 0 : condition.operator) !== 'oneOf') {
88
94
  //close the current popover if the field is valueField and is a single select dropdown. For all other inputs ,popover need to be open on value changes.
89
95
  closePopover();
90
96
  }
@@ -102,7 +108,8 @@ var ConditionBuilderItem = function ConditionBuilderItem(_ref) {
102
108
  React.useEffect(function () {
103
109
  //this will focus the first input field in the popover
104
110
  if (open && popoverRef.current) {
105
- var firstFocusableElement = popoverRef.current.querySelector('input,textarea');
111
+ var _popoverRef$current;
112
+ var firstFocusableElement = popoverRef === null || popoverRef === void 0 || (_popoverRef$current = popoverRef.current) === null || _popoverRef$current === void 0 ? void 0 : _popoverRef$current.querySelector('input,textarea');
106
113
  if (firstFocusableElement) {
107
114
  setTimeout(function () {
108
115
  return firstFocusableElement.focus();
@@ -153,7 +160,7 @@ var ConditionBuilderItem = function ConditionBuilderItem(_ref) {
153
160
  open: open,
154
161
  isTabTip: true,
155
162
  role: "gridcell",
156
- className: "".concat(popOverClassName, " ").concat(DataConfigs.blockClass, "__popover"),
163
+ className: "".concat(popOverClassName, " ").concat(util.blockClass, "__popover"),
157
164
  ref: popoverRef,
158
165
  onRequestClose: closePopover
159
166
  }, /*#__PURE__*/React__default["default"].createElement(ConditionBuilderButton.ConditionBuilderButton, _rollupPluginBabelHelpers["extends"]({
@@ -163,19 +170,18 @@ var ConditionBuilderItem = function ConditionBuilderItem(_ref) {
163
170
  className: className,
164
171
  "aria-haspopup": true,
165
172
  "aria-expanded": open,
166
- renderIcon: renderIcon ? renderIcon : label == undefined ? icons.Add : null,
173
+ renderIcon: renderIcon ? renderIcon : label == undefined ? icons.Add : undefined,
167
174
  showToolTip: showToolTip,
168
- isInvalid: isInvalid,
169
- condition: condition
175
+ isInvalid: isInvalid
170
176
  }, rest)), open && /*#__PURE__*/React__default["default"].createElement(react.PopoverContent, {
171
- className: "".concat(DataConfigs.blockClass, "__popover-content-wrapper"),
177
+ className: "".concat(util.blockClass, "__popover-content-wrapper"),
172
178
  role: "dialog",
173
179
  "aria-label": title,
174
180
  onKeyDown: handleKeyDownHandler
175
181
  }, /*#__PURE__*/React__default["default"].createElement(react.Layer, null, /*#__PURE__*/React__default["default"].createElement("h1", {
176
- className: "".concat(DataConfigs.blockClass, "__item__title")
182
+ className: "".concat(util.blockClass, "__item__title")
177
183
  }, title), /*#__PURE__*/React__default["default"].createElement("div", {
178
- className: "".concat(DataConfigs.blockClass, "__popover-content")
184
+ className: "".concat(util.blockClass, "__popover-content")
179
185
  }, renderChildren ? renderChildren(popoverRef) : children))));
180
186
  };
181
187
  ConditionBuilderItem.propTypes = {
@@ -1,13 +1,28 @@
1
- export function ConditionBuilderItemDate({ conditionState, onChange, parentRef, }: {
2
- conditionState: any;
3
- onChange: any;
4
- parentRef: any;
5
- }): import("react/jsx-runtime").JSX.Element;
6
- export namespace ConditionBuilderItemDate {
7
- namespace propTypes {
8
- let conditionState: PropTypes.Requireable<object>;
9
- let onChange: PropTypes.Requireable<(...args: any[]) => any>;
10
- let parentRef: PropTypes.Requireable<object>;
11
- }
12
- }
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
+ */
13
7
  import PropTypes from 'prop-types';
8
+ export declare const ConditionBuilderItemDate: {
9
+ ({ conditionState, onChange, parentRef, }: {
10
+ conditionState: any;
11
+ onChange: any;
12
+ parentRef: any;
13
+ }): import("react/jsx-runtime").JSX.Element;
14
+ propTypes: {
15
+ /**
16
+ * current condition object
17
+ */
18
+ conditionState: PropTypes.Requireable<object>;
19
+ /**
20
+ * callback to update state oin date change
21
+ */
22
+ onChange: PropTypes.Requireable<(...args: any[]) => any>;
23
+ /**
24
+ * reference to the popover node
25
+ */
26
+ parentRef: PropTypes.Requireable<object>;
27
+ };
28
+ };
@@ -12,20 +12,19 @@ Object.defineProperty(exports, '__esModule', { value: true });
12
12
  var _rollupPluginBabelHelpers = require('../../../../_virtual/_rollupPluginBabelHelpers.js');
13
13
  var React = require('react');
14
14
  var react = require('@carbon/react');
15
- var settings = require('../../../../settings.js');
16
15
  var index = require('../../../../node_modules/prop-types/index.js');
17
16
  var useTranslations = require('../../utils/useTranslations.js');
17
+ var util = require('../../utils/util.js');
18
18
 
19
19
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
20
20
 
21
21
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
22
22
 
23
- var blockClass = "".concat(settings.pkg.prefix, "--condition-builder");
24
23
  var ConditionBuilderItemDate = function ConditionBuilderItemDate(_ref) {
25
24
  var conditionState = _ref.conditionState,
26
25
  onChange = _ref.onChange,
27
26
  parentRef = _ref.parentRef;
28
- var DatePickerInputRef = React.useRef();
27
+ var DatePickerInputRef = React.useRef(null);
29
28
  var _useTranslations = useTranslations.useTranslations(['startText', 'endText']),
30
29
  _useTranslations2 = _rollupPluginBabelHelpers.slicedToArray(_useTranslations, 2),
31
30
  startText = _useTranslations2[0],
@@ -35,7 +34,7 @@ var ConditionBuilderItemDate = function ConditionBuilderItemDate(_ref) {
35
34
  onChange(selectedDate && selectedDate.length > 0 ? selectedDate : 'INVALID');
36
35
  };
37
36
  return /*#__PURE__*/React__default["default"].createElement("div", {
38
- className: "".concat(blockClass, "__item-date ")
37
+ className: "".concat(util.blockClass, "__item-date ")
39
38
  }, datePickerType == 'single' && /*#__PURE__*/React__default["default"].createElement(react.DatePicker, {
40
39
  ref: DatePickerInputRef,
41
40
  dateFormat: "d/m/Y",
@@ -1,13 +1,31 @@
1
- export function ConditionBuilderItemNumber({ conditionState, config, onChange, }: {
2
- conditionState: any;
3
- config: any;
4
- onChange: any;
5
- }): import("react/jsx-runtime").JSX.Element;
6
- export namespace ConditionBuilderItemNumber {
7
- namespace propTypes {
8
- let conditionState: PropTypes.Requireable<object>;
9
- let config: PropTypes.Requireable<object>;
10
- let onChange: PropTypes.Requireable<(...args: any[]) => any>;
11
- }
12
- }
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
+ */
13
7
  import PropTypes from 'prop-types';
8
+ import { Condition, PropertyConfigNumber } from '../../ConditionBuilder.types';
9
+ interface ConditionBuilderItemNumberProps {
10
+ conditionState: Condition;
11
+ config: PropertyConfigNumber['config'];
12
+ onChange: (value: string) => void;
13
+ }
14
+ export declare const ConditionBuilderItemNumber: {
15
+ ({ conditionState, config, onChange, }: ConditionBuilderItemNumberProps): import("react/jsx-runtime").JSX.Element;
16
+ propTypes: {
17
+ /**
18
+ * current condition object
19
+ */
20
+ conditionState: PropTypes.Requireable<object>;
21
+ /**
22
+ * current config object that this property is part of
23
+ */
24
+ config: PropTypes.Requireable<object>;
25
+ /**
26
+ * callback to update state oin date change
27
+ */
28
+ onChange: PropTypes.Requireable<(...args: any[]) => any>;
29
+ };
30
+ };
31
+ export {};
@@ -13,8 +13,8 @@ var _rollupPluginBabelHelpers = require('../../../../_virtual/_rollupPluginBabel
13
13
  var React = require('react');
14
14
  var react = require('@carbon/react');
15
15
  var index = require('../../../../node_modules/prop-types/index.js');
16
- var DataConfigs = require('../../ConditionBuilderContext/DataConfigs.js');
17
16
  var useTranslations = require('../../utils/useTranslations.js');
17
+ var util = require('../../utils/util.js');
18
18
 
19
19
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
20
20
 
@@ -38,25 +38,30 @@ var ConditionBuilderItemNumber = function ConditionBuilderItemNumber(_ref) {
38
38
  }
39
39
  };
40
40
  var checkIfValid = function checkIfValid(value) {
41
- if (value > config.max || value < config.min) {
41
+ if (config.max !== undefined && config.min === undefined && value > config.max) {
42
+ return false;
43
+ }
44
+ if (config.min !== undefined && config.max === undefined && value < config.min) {
45
+ return false;
46
+ }
47
+ if (config.max !== undefined && config.min !== undefined && (value > config.max || value < config.min)) {
42
48
  return false;
43
49
  }
44
50
  return true;
45
51
  };
46
52
  var getDefaultValue = function getDefaultValue() {
47
- var _conditionState$value, _conditionState$value2;
48
- return (_conditionState$value = (_conditionState$value2 = conditionState.value) === null || _conditionState$value2 === void 0 || (_conditionState$value2 = _conditionState$value2.split(' ')) === null || _conditionState$value2 === void 0 ? void 0 : _conditionState$value2[0]) !== null && _conditionState$value !== void 0 ? _conditionState$value : '';
53
+ var _split$, _conditionState$value;
54
+ return (_split$ = (_conditionState$value = conditionState.value) === null || _conditionState$value === void 0 || (_conditionState$value = _conditionState$value.split(' ')) === null || _conditionState$value === void 0 ? void 0 : _conditionState$value[0]) !== null && _split$ !== void 0 ? _split$ : '';
49
55
  };
50
56
  return /*#__PURE__*/React__default["default"].createElement("div", {
51
- className: "".concat(DataConfigs.blockClass, "__item-number")
52
- }, /*#__PURE__*/React__default["default"].createElement(react.NumberInput, _rollupPluginBabelHelpers["extends"]({
57
+ className: "".concat(util.blockClass, "__item-number")
58
+ }, /*#__PURE__*/React__default["default"].createElement(react.NumberInput, _rollupPluginBabelHelpers["extends"]({}, config, {
53
59
  label: conditionState.property,
54
60
  hideLabel: true,
55
61
  id: (_conditionState$prope = conditionState.property) === null || _conditionState$prope === void 0 ? void 0 : _conditionState$prope.replace(/\s/g, ''),
56
62
  invalidText: invalidNumberWarnText,
57
63
  allowEmpty: true,
58
- onChange: onChangeHandler
59
- }, config, {
64
+ onChange: onChangeHandler,
60
65
  defaultValue: getDefaultValue()
61
66
  })));
62
67
  };
@@ -1,13 +1,36 @@
1
- export function ItemOption({ conditionState, config, onChange }: {
2
- conditionState?: {} | undefined;
3
- config?: {} | undefined;
4
- onChange: any;
5
- }): import("react/jsx-runtime").JSX.Element | undefined;
6
- export namespace ItemOption {
7
- namespace propTypes {
8
- let conditionState: PropTypes.Requireable<object>;
9
- let config: PropTypes.Requireable<object>;
10
- let onChange: PropTypes.Requireable<(...args: any[]) => any>;
11
- }
12
- }
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
+ */
13
7
  import PropTypes from 'prop-types';
8
+ import { PropertyConfigOption } from '../../ConditionBuilder.types';
9
+ interface ItemOptionProps {
10
+ conditionState: {
11
+ label?: string;
12
+ value?: string;
13
+ };
14
+ config: PropertyConfigOption['config'] & {
15
+ isStatement?: boolean;
16
+ };
17
+ onChange: (value: string, e: Event) => void;
18
+ }
19
+ export declare const ItemOption: {
20
+ ({ conditionState, config, onChange, }: ItemOptionProps): import("react/jsx-runtime").JSX.Element | undefined;
21
+ propTypes: {
22
+ /**
23
+ * current condition object
24
+ */
25
+ conditionState: PropTypes.Requireable<object>;
26
+ /**
27
+ * current config object that this property is part of
28
+ */
29
+ config: PropTypes.Requireable<object>;
30
+ /**
31
+ * callback to update state oin date change
32
+ */
33
+ onChange: PropTypes.Requireable<(...args: any[]) => any>;
34
+ };
35
+ };
36
+ export {};
@@ -15,8 +15,8 @@ var react = require('@carbon/react');
15
15
  var icons = require('@carbon/react/icons');
16
16
  var index = require('../../../../node_modules/prop-types/index.js');
17
17
  var ConditionBuilderProvider = require('../../ConditionBuilderContext/ConditionBuilderProvider.js');
18
- var DataConfigs = require('../../ConditionBuilderContext/DataConfigs.js');
19
18
  var useTranslations = require('../../utils/useTranslations.js');
19
+ var util = require('../../utils/util.js');
20
20
 
21
21
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
22
22
 
@@ -30,7 +30,7 @@ var ItemOption = function ItemOption(_ref) {
30
30
  onChange = _ref.onChange;
31
31
  var _useContext = React.useContext(ConditionBuilderProvider.ConditionBuilderContext),
32
32
  popOverSearchThreshold = _useContext.popOverSearchThreshold;
33
- var contentRef = React.useRef();
33
+ var contentRef = React.useRef(null);
34
34
  var _useTranslations = useTranslations.useTranslations(['propertyText', 'clearSearchText']),
35
35
  _useTranslations2 = _rollupPluginBabelHelpers.slicedToArray(_useTranslations, 2),
36
36
  propertyText = _useTranslations2[0],
@@ -41,14 +41,16 @@ var ItemOption = function ItemOption(_ref) {
41
41
  searchValue = _useState2[0],
42
42
  setSearchValue = _useState2[1];
43
43
  var selection = conditionState.value;
44
- var filteredItems = allOptions === null || allOptions === void 0 ? void 0 : allOptions.filter(function (opt) {
45
- return opt.label.toLowerCase().includes(searchValue.toLowerCase());
46
- });
44
+ var filteredItems = searchValue ? allOptions === null || allOptions === void 0 ? void 0 : allOptions.filter(function (opt) {
45
+ var _opt$label;
46
+ return (_opt$label = opt.label) === null || _opt$label === void 0 ? void 0 : _opt$label.toLowerCase().includes(searchValue.toLowerCase());
47
+ }) : allOptions;
47
48
  React.useEffect(function () {
48
49
  //this will focus the first input field in the popover
49
50
 
50
51
  if (contentRef.current) {
51
- var firstFocusableElement = contentRef.current.querySelector('input, button,li');
52
+ var _contentRef$current;
53
+ var firstFocusableElement = (_contentRef$current = contentRef.current) === null || _contentRef$current === void 0 ? void 0 : _contentRef$current.querySelector('input, button,li');
52
54
  if (firstFocusableElement) {
53
55
  firstFocusableElement.focus();
54
56
  }
@@ -62,16 +64,21 @@ var ItemOption = function ItemOption(_ref) {
62
64
  setSearchValue(value);
63
65
  };
64
66
  var getAriaLabel = function getAriaLabel() {
65
- return conditionState.label ? conditionState.label : conditionState.property ? conditionState.property : propertyText;
67
+ return conditionState.label ? conditionState.label : propertyText;
68
+ };
69
+ var getStatementContent = function getStatementContent(option) {
70
+ return /*#__PURE__*/React__default["default"].createElement("div", {
71
+ className: "".concat(util.blockClass, "__statement_wrapper")
72
+ }, /*#__PURE__*/React__default["default"].createElement("div", null, option.text1, " (", option.connector, ")"), /*#__PURE__*/React__default["default"].createElement("div", null, option.text2));
66
73
  };
67
74
  if (!allOptions) {
68
75
  return;
69
76
  }
70
77
  return /*#__PURE__*/React__default["default"].createElement("div", {
71
- className: "".concat(DataConfigs.blockClass, "__item-option"),
78
+ className: "".concat(util.blockClass, "__item-option"),
72
79
  ref: contentRef
73
- }, allOptions.length > popOverSearchThreshold && /*#__PURE__*/React__default["default"].createElement("div", {
74
- className: "".concat(DataConfigs.blockClass, "__item-option__search")
80
+ }, popOverSearchThreshold && allOptions.length > popOverSearchThreshold && /*#__PURE__*/React__default["default"].createElement("div", {
81
+ className: "".concat(util.blockClass, "__item-option__search")
75
82
  }, /*#__PURE__*/React__default["default"].createElement(react.Search, {
76
83
  size: "sm",
77
84
  labelText: clearSearchText,
@@ -88,7 +95,7 @@ var ItemOption = function ItemOption(_ref) {
88
95
  key: option.id,
89
96
  role: "option",
90
97
  "aria-selected": isSelected,
91
- className: "".concat(DataConfigs.blockClass, "__item-option__option"),
98
+ className: "".concat(util.blockClass, "__item-option__option"),
92
99
  onKeyUp: function onKeyUp() {
93
100
  return false;
94
101
  },
@@ -96,11 +103,11 @@ var ItemOption = function ItemOption(_ref) {
96
103
  return onClickHandler(evt, option);
97
104
  }
98
105
  }, /*#__PURE__*/React__default["default"].createElement("div", {
99
- className: "".concat(DataConfigs.blockClass, "__item-option__option-content")
106
+ className: "".concat(util.blockClass, "__item-option__option-content")
100
107
  }, /*#__PURE__*/React__default["default"].createElement("span", {
101
- className: "".concat(DataConfigs.blockClass, "__item-option__option-label")
102
- }, Icon && /*#__PURE__*/React__default["default"].createElement(Icon, null), option.label), isSelected && /*#__PURE__*/React__default["default"].createElement(icons.Checkmark, {
103
- className: "".concat(DataConfigs.blockClass, "__checkmark")
108
+ className: "".concat(util.blockClass, "__item-option__option-label")
109
+ }, Icon && /*#__PURE__*/React__default["default"].createElement(Icon, null), config.isStatement ? getStatementContent(option) : option.label), isSelected && /*#__PURE__*/React__default["default"].createElement(icons.Checkmark, {
110
+ className: "".concat(util.blockClass, "__checkmark")
104
111
  })));
105
112
  })));
106
113
  };
@@ -1,13 +1,33 @@
1
- export function ItemOptionForValueField({ conditionState, config, onChange, }: {
2
- conditionState?: {} | undefined;
3
- config?: {} | undefined;
4
- onChange: any;
5
- }): import("react/jsx-runtime").JSX.Element;
6
- export namespace ItemOptionForValueField {
7
- namespace propTypes {
8
- let conditionState: PropTypes.Requireable<object>;
9
- let config: PropTypes.Requireable<object>;
10
- let onChange: PropTypes.Requireable<(...args: any[]) => any>;
11
- }
12
- }
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
+ */
13
7
  import PropTypes from 'prop-types';
8
+ import { Condition, PropertyConfigOption } from '../../ConditionBuilder.types';
9
+ interface ItemOptionForValueFieldProps {
10
+ conditionState: Condition & {
11
+ label?: string;
12
+ };
13
+ config: PropertyConfigOption['config'];
14
+ onChange: (value: any, e?: Event) => void;
15
+ }
16
+ export declare const ItemOptionForValueField: {
17
+ ({ conditionState, config, onChange, }: ItemOptionForValueFieldProps): import("react/jsx-runtime").JSX.Element;
18
+ propTypes: {
19
+ /**
20
+ * current condition object
21
+ */
22
+ conditionState: PropTypes.Requireable<object>;
23
+ /**
24
+ * current config object that this property is part of
25
+ */
26
+ config: PropTypes.Requireable<object>;
27
+ /**
28
+ * callback to update state oin date change
29
+ */
30
+ onChange: PropTypes.Requireable<(...args: any[]) => any>;
31
+ };
32
+ };
33
+ export {};