@carbon/ibm-products 2.36.0-alpha.27 → 2.37.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 (186) 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/Carousel/Carousel.d.ts +46 -2
  21. package/es/components/Carousel/Carousel.js +36 -21
  22. package/es/components/Carousel/CarouselItem.d.ts +19 -2
  23. package/es/components/Carousel/CarouselItem.js +0 -1
  24. package/es/components/ConditionBuilder/ConditionBlock/ConditionBlock.d.ts +21 -0
  25. package/es/components/ConditionBuilder/ConditionBlock/ConditionBlock.js +261 -0
  26. package/es/components/ConditionBuilder/ConditionBuilder.js +45 -16
  27. package/es/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.d.ts +12 -0
  28. package/es/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.js +40 -0
  29. package/es/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.d.ts +22 -0
  30. package/es/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js +74 -0
  31. package/es/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.d.ts +18 -1
  32. package/es/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js +90 -42
  33. package/es/components/ConditionBuilder/ConditionBuilderContext/{DataTreeContext.d.ts → ConditionBuilderProvider.d.ts} +5 -2
  34. package/es/components/ConditionBuilder/ConditionBuilderContext/{DataTreeContext.js → ConditionBuilderProvider.js} +27 -8
  35. package/es/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.d.ts +22 -0
  36. package/es/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.js +112 -0
  37. package/es/components/ConditionBuilder/ConditionBuilderContext/translationObject.d.ts +31 -0
  38. package/es/components/ConditionBuilder/ConditionBuilderContext/translationObject.js +40 -0
  39. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.d.ts +28 -0
  40. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +151 -0
  41. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.d.ts +11 -0
  42. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.js +59 -0
  43. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.d.ts +13 -0
  44. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js +52 -0
  45. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ConditionBuilderItemOption.d.ts +13 -0
  46. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ConditionBuilderItemOption.js +162 -0
  47. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.d.ts +11 -0
  48. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.js +40 -0
  49. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.d.ts +11 -0
  50. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.js +82 -0
  51. package/es/components/ConditionBuilder/ConditionConnector/ConditionConnector.d.ts +15 -0
  52. package/es/components/ConditionBuilder/ConditionConnector/ConditionConnector.js +85 -0
  53. package/es/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.d.ts +24 -0
  54. package/es/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js +145 -0
  55. package/es/components/ConditionBuilder/utils/util.d.ts +4 -0
  56. package/es/components/ConditionBuilder/utils/util.js +16 -0
  57. package/es/components/CreateTearsheet/CreateTearsheet.d.ts +106 -4
  58. package/es/components/CreateTearsheet/CreateTearsheet.js +12 -32
  59. package/es/components/Datagrid/useParentDimensions.js +1 -1
  60. package/es/components/EditUpdateCards/EditUpdateCards.d.ts +104 -2
  61. package/es/components/EditUpdateCards/EditUpdateCards.js +3 -0
  62. package/es/components/EmptyStates/NotificationsEmptyState/NotificationsEmptyState.d.ts +61 -2
  63. package/es/components/EmptyStates/NotificationsEmptyState/NotificationsEmptyState.js +1 -3
  64. package/es/components/ExpressiveCard/ExpressiveCard.d.ts +97 -2
  65. package/es/components/ExpressiveCard/ExpressiveCard.js +4 -0
  66. package/es/components/InlineTip/InlineTipButton.d.ts +21 -2
  67. package/es/components/InterstitialScreen/InterstitialScreen.d.ts +100 -2
  68. package/es/components/InterstitialScreen/InterstitialScreen.js +25 -14
  69. package/es/components/Nav/NavItem.js +1 -1
  70. package/es/components/NotificationsPanel/NotificationsPanel.js +5 -6
  71. package/es/components/PageHeader/PageHeader.js +12 -3
  72. package/es/components/SidePanel/SidePanel.js +1 -1
  73. package/es/components/SimpleHeader/SimpleHeader.d.ts +1 -5
  74. package/es/components/SimpleHeader/SimpleHeader.js +2 -4
  75. package/es/components/Tearsheet/TearsheetNarrow.d.ts +4 -13
  76. package/es/components/Tearsheet/TearsheetShell.d.ts +119 -10
  77. package/es/components/Tearsheet/TearsheetShell.js +18 -8
  78. package/es/components/UserProfileImage/UserProfileImage.d.ts +66 -2
  79. package/es/components/UserProfileImage/UserProfileImage.js +5 -3
  80. package/es/components/WebTerminal/WebTerminal.d.ts +46 -2
  81. package/es/components/WebTerminal/WebTerminal.js +2 -2
  82. package/es/global/js/hooks/usePrefersReducedMotion.d.ts +2 -0
  83. package/es/global/js/hooks/usePrefersReducedMotion.js +28 -0
  84. package/es/global/js/utils/Wrap.d.ts +31 -2
  85. package/es/global/js/utils/Wrap.js +7 -9
  86. package/es/global/js/utils/getNodeTextContent.d.ts +1 -1
  87. package/es/global/js/utils/getNodeTextContent.js +1 -1
  88. package/es/global/js/utils/window.d.ts +2 -0
  89. package/es/global/js/utils/window.js +12 -0
  90. package/es/node_modules/@carbon/icons-react/es/generated/bucket-9.js +2780 -0
  91. package/lib/_virtual/_rollupPluginBabelHelpers.js +9 -10
  92. package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.d.ts +3 -1
  93. package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +8 -2
  94. package/lib/components/Carousel/Carousel.d.ts +46 -2
  95. package/lib/components/Carousel/Carousel.js +35 -20
  96. package/lib/components/Carousel/CarouselItem.d.ts +19 -2
  97. package/lib/components/Carousel/CarouselItem.js +0 -1
  98. package/lib/components/ConditionBuilder/ConditionBlock/ConditionBlock.d.ts +21 -0
  99. package/lib/components/ConditionBuilder/ConditionBlock/ConditionBlock.js +270 -0
  100. package/lib/components/ConditionBuilder/ConditionBuilder.js +46 -17
  101. package/lib/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.d.ts +12 -0
  102. package/lib/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.js +48 -0
  103. package/lib/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.d.ts +22 -0
  104. package/lib/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js +83 -0
  105. package/lib/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.d.ts +18 -1
  106. package/lib/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js +90 -42
  107. package/lib/components/ConditionBuilder/ConditionBuilderContext/{DataTreeContext.d.ts → ConditionBuilderProvider.d.ts} +5 -2
  108. package/lib/components/ConditionBuilder/ConditionBuilderContext/{DataTreeContext.js → ConditionBuilderProvider.js} +27 -8
  109. package/lib/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.d.ts +22 -0
  110. package/lib/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.js +121 -0
  111. package/lib/components/ConditionBuilder/ConditionBuilderContext/translationObject.d.ts +31 -0
  112. package/lib/components/ConditionBuilder/ConditionBuilderContext/translationObject.js +44 -0
  113. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.d.ts +28 -0
  114. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +159 -0
  115. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.d.ts +11 -0
  116. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.js +67 -0
  117. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.d.ts +13 -0
  118. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js +60 -0
  119. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ConditionBuilderItemOption.d.ts +13 -0
  120. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ConditionBuilderItemOption.js +170 -0
  121. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.d.ts +11 -0
  122. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.js +48 -0
  123. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.d.ts +11 -0
  124. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.js +90 -0
  125. package/lib/components/ConditionBuilder/ConditionConnector/ConditionConnector.d.ts +15 -0
  126. package/lib/components/ConditionBuilder/ConditionConnector/ConditionConnector.js +93 -0
  127. package/lib/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.d.ts +24 -0
  128. package/lib/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js +153 -0
  129. package/lib/components/ConditionBuilder/utils/util.d.ts +4 -0
  130. package/lib/components/ConditionBuilder/utils/util.js +20 -0
  131. package/lib/components/CreateTearsheet/CreateTearsheet.d.ts +106 -4
  132. package/lib/components/CreateTearsheet/CreateTearsheet.js +12 -32
  133. package/lib/components/Datagrid/useParentDimensions.js +1 -1
  134. package/lib/components/EditUpdateCards/EditUpdateCards.d.ts +104 -2
  135. package/lib/components/EditUpdateCards/EditUpdateCards.js +3 -0
  136. package/lib/components/EmptyStates/NotificationsEmptyState/NotificationsEmptyState.d.ts +61 -2
  137. package/lib/components/EmptyStates/NotificationsEmptyState/NotificationsEmptyState.js +1 -3
  138. package/lib/components/ExpressiveCard/ExpressiveCard.d.ts +97 -2
  139. package/lib/components/ExpressiveCard/ExpressiveCard.js +4 -0
  140. package/lib/components/InlineTip/InlineTipButton.d.ts +21 -2
  141. package/lib/components/InterstitialScreen/InterstitialScreen.d.ts +100 -2
  142. package/lib/components/InterstitialScreen/InterstitialScreen.js +24 -13
  143. package/lib/components/Nav/NavItem.js +2 -2
  144. package/lib/components/NotificationsPanel/NotificationsPanel.js +5 -6
  145. package/lib/components/PageHeader/PageHeader.js +11 -2
  146. package/lib/components/SidePanel/SidePanel.js +1 -1
  147. package/lib/components/SimpleHeader/SimpleHeader.d.ts +1 -5
  148. package/lib/components/SimpleHeader/SimpleHeader.js +2 -4
  149. package/lib/components/Tearsheet/TearsheetNarrow.d.ts +4 -13
  150. package/lib/components/Tearsheet/TearsheetShell.d.ts +119 -10
  151. package/lib/components/Tearsheet/TearsheetShell.js +16 -6
  152. package/lib/components/UserProfileImage/UserProfileImage.d.ts +66 -2
  153. package/lib/components/UserProfileImage/UserProfileImage.js +5 -3
  154. package/lib/components/WebTerminal/WebTerminal.d.ts +46 -2
  155. package/lib/components/WebTerminal/WebTerminal.js +2 -2
  156. package/lib/global/js/hooks/usePrefersReducedMotion.d.ts +2 -0
  157. package/lib/global/js/hooks/usePrefersReducedMotion.js +32 -0
  158. package/lib/global/js/utils/Wrap.d.ts +31 -2
  159. package/lib/global/js/utils/Wrap.js +7 -9
  160. package/lib/global/js/utils/getNodeTextContent.d.ts +1 -1
  161. package/lib/global/js/utils/getNodeTextContent.js +1 -1
  162. package/lib/global/js/utils/window.d.ts +2 -0
  163. package/lib/global/js/utils/window.js +16 -0
  164. package/lib/node_modules/@carbon/icons-react/es/generated/bucket-9.js +2912 -0
  165. package/package.json +5 -5
  166. package/scss/components/CoachmarkOverlayElements/_coachmark-overlay-elements.scss +1 -1
  167. package/scss/components/ConditionBuilder/_condition-builder.scss +26 -0
  168. package/scss/components/ConditionBuilder/styles/_conditionBuilderCondition.scss +46 -0
  169. package/scss/components/ConditionBuilder/styles/_conditionBuilderItem.scss +194 -0
  170. package/scss/components/ConditionBuilder/styles/_index.scss +2 -0
  171. package/scss/components/Guidebanner/_guidebanner.scss +3 -0
  172. package/scss/components/InterstitialScreen/_interstitial-screen.scss +1 -6
  173. package/scss/components/Tearsheet/_tearsheet.scss +3 -1
  174. package/telemetry.yml +3 -0
  175. package/es/components/ConditionBuilder/assets/sampleInput.d.ts +0 -58
  176. package/es/global/js/utils/keyboardNavigation.d.ts +0 -27
  177. package/es/global/js/utils/keyboardNavigation.js +0 -33
  178. package/es/global/js/utils/wrapFocus.d.ts +0 -25
  179. package/es/global/js/utils/wrapFocus.js +0 -68
  180. package/es/node_modules/@carbon/icons-react/es/generated/bucket-8.js +0 -3004
  181. package/lib/components/ConditionBuilder/assets/sampleInput.d.ts +0 -58
  182. package/lib/global/js/utils/keyboardNavigation.d.ts +0 -27
  183. package/lib/global/js/utils/keyboardNavigation.js +0 -39
  184. package/lib/global/js/utils/wrapFocus.d.ts +0 -25
  185. package/lib/global/js/utils/wrapFocus.js +0 -73
  186. package/lib/node_modules/@carbon/icons-react/es/generated/bucket-8.js +0 -3136
@@ -0,0 +1,112 @@
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 { pkg } from '../../../settings.js';
9
+ import { translationsObject } from './translationObject.js';
10
+
11
+ var statementConfig = [{
12
+ label: 'if',
13
+ id: 'if'
14
+ }, {
15
+ label: 'excl.if',
16
+ id: 'excl.if'
17
+ }];
18
+ var connectorConfig = [{
19
+ label: 'and',
20
+ id: 'and'
21
+ }, {
22
+ label: 'or',
23
+ id: 'or'
24
+ }];
25
+ //op types : option, text, number, date,
26
+ var operatorConfig = [{
27
+ label: 'is',
28
+ id: 'is',
29
+ type: 'all'
30
+ }, {
31
+ label: 'is greater than',
32
+ id: 'greater',
33
+ type: 'number'
34
+ }, {
35
+ label: 'is greater than or equal to',
36
+ id: 'greater-equal',
37
+ type: 'number'
38
+ }, {
39
+ label: 'is lower than',
40
+ id: 'lower',
41
+ type: 'number'
42
+ }, {
43
+ label: 'is lower than or equal to',
44
+ id: 'lower-equal',
45
+ type: 'number'
46
+ }, {
47
+ label: 'starts with',
48
+ id: 'starts-with',
49
+ type: 'text'
50
+ }, {
51
+ label: 'ends with',
52
+ id: 'ends-with',
53
+ type: 'text'
54
+ }, {
55
+ label: 'contains',
56
+ id: 'contains',
57
+ type: 'text'
58
+ }, {
59
+ label: 'is one of',
60
+ id: 'one-of',
61
+ type: 'option'
62
+ }, {
63
+ label: 'is before',
64
+ id: 'before',
65
+ type: 'date,time'
66
+ }, {
67
+ label: 'is after',
68
+ id: 'after',
69
+ type: 'date,time'
70
+ }, {
71
+ label: 'is between',
72
+ id: 'between',
73
+ type: 'date'
74
+ }];
75
+ // The block part of our conventional BEM class names (blockClass__E--M).
76
+ var blockClass = "".concat(pkg.prefix, "--condition-builder");
77
+ var formatDate = function formatDate(date) {
78
+ var day = String(date.getDate()).padStart(2, '0');
79
+ var month = String(date.getMonth() + 1).padStart(2, '0');
80
+ var year = date.getFullYear();
81
+ return "".concat(day, "/").concat(month, "/").concat(year);
82
+ };
83
+ var translationsObjectCurrent = translationsObject['en']; // TO DO: need to discuss if language is to be passed as prop
84
+ var translateWithId = function translateWithId(key) {
85
+ var _translationsObjectCu;
86
+ return (_translationsObjectCu = translationsObjectCurrent[key]) !== null && _translationsObjectCu !== void 0 ? _translationsObjectCu : key;
87
+ };
88
+ var valueRenderers = {
89
+ text: function text(val) {
90
+ return val;
91
+ },
92
+ time: function time(val) {
93
+ return val;
94
+ },
95
+ number: function number(val, config) {
96
+ return config.unit && val ? "".concat(val, " ").concat(config.unit) : val;
97
+ },
98
+ option: function option(value) {
99
+ return Array.isArray(value) ? value.join(', ') : value;
100
+ },
101
+ date: function date(value) {
102
+ if (Array.isArray(value) && value.length > 1) {
103
+ var start = value !== null && value !== void 0 && value[0] ? formatDate(new Date(value[0])) : '';
104
+ var end = value !== null && value !== void 0 && value[1] ? formatDate(new Date(value[1])) : '';
105
+ return "".concat(start, " To ").concat(end);
106
+ } else {
107
+ return value && new Date(value) ? formatDate(new Date(value)) : value;
108
+ }
109
+ }
110
+ };
111
+
112
+ export { blockClass, connectorConfig, operatorConfig, statementConfig, translateWithId, valueRenderers };
@@ -0,0 +1,31 @@
1
+ export namespace translationsObject {
2
+ let en: {
3
+ if: string;
4
+ 'excl-if': string;
5
+ and: string;
6
+ or: string;
7
+ is: string;
8
+ greater: string;
9
+ 'greater-equal': string;
10
+ lower: string;
11
+ 'lower-equal': string;
12
+ 'starts-with': string;
13
+ 'ends-with': string;
14
+ contains: string;
15
+ 'one-of': string;
16
+ before: string;
17
+ after: string;
18
+ between: string;
19
+ 'add-condition': string;
20
+ condition: string;
21
+ property: string;
22
+ operator: string;
23
+ connector: string;
24
+ condition_row: string;
25
+ remove_condition: string;
26
+ add_condition_row: string;
27
+ start: string;
28
+ end: string;
29
+ clear_search: string;
30
+ };
31
+ }
@@ -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
+ var translationsObject = {
9
+ en: {
10
+ if: 'if',
11
+ 'excl-if': 'excl.if',
12
+ and: 'and',
13
+ or: 'or',
14
+ is: 'is',
15
+ greater: 'is greater than',
16
+ 'greater-equal': 'is greater than or equal to',
17
+ lower: 'is lower than',
18
+ 'lower-equal': 'is lower than or equal to',
19
+ 'starts-with': 'starts with',
20
+ 'ends-with': 'ends with',
21
+ contains: 'contains',
22
+ 'one-of': 'is one of',
23
+ before: 'is before',
24
+ after: 'is after',
25
+ between: 'is between',
26
+ 'add-condition': 'Add Condition',
27
+ condition: 'Condition',
28
+ property: 'Property',
29
+ operator: 'Operator',
30
+ connector: 'Connector',
31
+ condition_row: 'Condition row',
32
+ remove_condition: 'Remove condition',
33
+ add_condition_row: 'Add condition row',
34
+ start: 'Start',
35
+ end: 'End',
36
+ clear_search: 'Clear search input'
37
+ }
38
+ };
39
+
40
+ export { translationsObject };
@@ -0,0 +1,28 @@
1
+ export function ConditionBuilderItem({ children, className, label, renderIcon, title, type, showToolTip, state, popOverClassName, config, ...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
+ state: any;
11
+ popOverClassName: any;
12
+ config: any;
13
+ }): import("react/jsx-runtime").JSX.Element;
14
+ export namespace ConditionBuilderItem {
15
+ namespace propTypes {
16
+ let children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
17
+ let className: PropTypes.Requireable<string>;
18
+ let config: PropTypes.Requireable<object>;
19
+ let label: PropTypes.Requireable<NonNullable<string | any[] | null | undefined>>;
20
+ let popOverClassName: PropTypes.Requireable<string>;
21
+ let renderIcon: PropTypes.Requireable<object>;
22
+ let showToolTip: PropTypes.Requireable<boolean>;
23
+ let state: PropTypes.Requireable<object>;
24
+ let title: PropTypes.Requireable<string>;
25
+ let type: PropTypes.Requireable<string>;
26
+ }
27
+ }
28
+ import PropTypes from 'prop-types';
@@ -0,0 +1,151 @@
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, slicedToArray as _slicedToArray, extends as _extends } from '../../../_virtual/_rollupPluginBabelHelpers.js';
9
+ import React__default, { useRef, useState, useEffect } from 'react';
10
+ import { Popover, PopoverContent, Layer } from '@carbon/react';
11
+ import PropTypes from '../../../node_modules/prop-types/index.js';
12
+ import { Add } from '@carbon/react/icons';
13
+ import { valueRenderers, translateWithId, blockClass } from '../ConditionBuilderContext/DataConfigs.js';
14
+ import { ConditionBuilderButton } from '../ConditionBuilderButton/ConditionBuilderButton.js';
15
+
16
+ var _excluded = ["children", "className", "label", "renderIcon", "title", "type", "showToolTip", "state", "popOverClassName", "config"];
17
+ var ConditionBuilderItem = function ConditionBuilderItem(_ref) {
18
+ var children = _ref.children,
19
+ className = _ref.className,
20
+ label = _ref.label,
21
+ renderIcon = _ref.renderIcon,
22
+ title = _ref.title,
23
+ type = _ref.type,
24
+ showToolTip = _ref.showToolTip,
25
+ state = _ref.state,
26
+ popOverClassName = _ref.popOverClassName,
27
+ config = _ref.config,
28
+ rest = _objectWithoutProperties(_ref, _excluded);
29
+ var contentRef = useRef(null);
30
+ var _useState = useState(label),
31
+ _useState2 = _slicedToArray(_useState, 2),
32
+ propertyLabel = _useState2[0],
33
+ setPropertyLabel = _useState2[1];
34
+ var _useState3 = useState(false),
35
+ _useState4 = _slicedToArray(_useState3, 2),
36
+ open = _useState4[0],
37
+ setOpen = _useState4[1];
38
+ useEffect(function () {
39
+ var propertyId = rest['data-name'] == 'valueField' && type ? valueRenderers[type](label, config) : label;
40
+ setPropertyLabel(translateWithId(propertyId));
41
+ // eslint-disable-next-line react-hooks/exhaustive-deps
42
+ }, [label]);
43
+ useEffect(function () {
44
+ /**
45
+ * rest['data-name'] holds the current field name
46
+ * popoverToOpen hold the next popover to be opened if required
47
+ */
48
+ if (state) {
49
+ var currentField = rest['data-name'];
50
+ //if any condition is changed, state prop is triggered
51
+ if (state.popoverToOpen && currentField !== state.popoverToOpen) {
52
+ // close the previous popover
53
+ setOpen(false);
54
+ } else if (currentField == 'valueField' && type == 'option' && state.operator !== 'one-of') {
55
+ //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.
56
+ setOpen(false);
57
+ }
58
+ if (state.popoverToOpen == currentField) {
59
+ //current popover need to be opened
60
+ setOpen(true);
61
+ }
62
+ } else {
63
+ // when we change any statement(if/ excl.if) which is not part of condition state, label change is triggered.
64
+ //close popOver when statement is changed.
65
+ setOpen(false);
66
+ }
67
+ // eslint-disable-next-line react-hooks/exhaustive-deps
68
+ }, [state, label]);
69
+ useEffect(function () {
70
+ //this will focus the first input field in the popover
71
+ if (open && contentRef.current) {
72
+ var firstFocusableElement = contentRef.current.querySelector('input, button,li');
73
+ if (firstFocusableElement) {
74
+ firstFocusableElement.focus();
75
+ }
76
+ }
77
+ }, [contentRef, open]);
78
+ return /*#__PURE__*/React__default.createElement(Popover, {
79
+ open: open,
80
+ isTabTip: true,
81
+ role: "gridcell",
82
+ className: popOverClassName,
83
+ onRequestClose: function onRequestClose() {
84
+ setOpen(false);
85
+ }
86
+ }, /*#__PURE__*/React__default.createElement(ConditionBuilderButton, _extends({
87
+ label: propertyLabel !== null && propertyLabel !== void 0 ? propertyLabel : translateWithId('add-condition'),
88
+ hideLabel: !label ? true : false,
89
+ onClick: function onClick() {
90
+ setOpen(!open);
91
+ },
92
+ className: className,
93
+ "aria-haspopup": true,
94
+ "aria-expanded": open,
95
+ renderIcon: renderIcon ? renderIcon : label == undefined ? Add : null,
96
+ showToolTip: showToolTip
97
+ }, rest)), /*#__PURE__*/React__default.createElement(PopoverContent, {
98
+ className: "".concat(blockClass, "__condition-builder-item__content"),
99
+ role: "dialog",
100
+ "aria-label": "".concat(title)
101
+ }, /*#__PURE__*/React__default.createElement(Layer, null, /*#__PURE__*/React__default.createElement("h1", {
102
+ className: "".concat(blockClass, "__condition-builder-item__title")
103
+ }, title), /*#__PURE__*/React__default.createElement("div", {
104
+ ref: contentRef
105
+ }, open && children))));
106
+ };
107
+ ConditionBuilderItem.propTypes = {
108
+ /**
109
+ * provide the contents of the popover
110
+ */
111
+ children: PropTypes.node,
112
+ /**
113
+ * Provide an optional class to be applied to the containing node.
114
+ */
115
+ className: PropTypes.string,
116
+ /**
117
+ * this is the config object again the current property from inputConfig
118
+ */
119
+
120
+ config: PropTypes.object,
121
+ /**
122
+ * text to be displayed in the field
123
+ */
124
+ label: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),
125
+ /**
126
+ * class name for popover
127
+ */
128
+ popOverClassName: PropTypes.string,
129
+ /**
130
+ * Optional prop to allow overriding the icon rendering.
131
+ */
132
+ renderIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
133
+ /**
134
+ * show tool tip
135
+ */
136
+ showToolTip: PropTypes.bool,
137
+ /**
138
+ * current condition state object
139
+ */
140
+ state: PropTypes.object,
141
+ /**
142
+ * title of the popover
143
+ */
144
+ title: PropTypes.string,
145
+ /**
146
+ * input type
147
+ */
148
+ type: PropTypes.string
149
+ };
150
+
151
+ export { ConditionBuilderItem };
@@ -0,0 +1,11 @@
1
+ export function ConditionBuilderItemDate({ conditionState, onChange }: {
2
+ conditionState: any;
3
+ onChange: any;
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ export namespace ConditionBuilderItemDate {
6
+ namespace propTypes {
7
+ let conditionState: PropTypes.Requireable<object>;
8
+ let onChange: PropTypes.Requireable<(...args: any[]) => any>;
9
+ }
10
+ }
11
+ import PropTypes from 'prop-types';
@@ -0,0 +1,59 @@
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, { useRef } from 'react';
9
+ import { DatePicker, DatePickerInput } from '@carbon/react';
10
+ import { pkg } from '../../../../settings.js';
11
+ import PropTypes from '../../../../node_modules/prop-types/index.js';
12
+ import { translateWithId } from '../../ConditionBuilderContext/DataConfigs.js';
13
+
14
+ var blockClass = "".concat(pkg.prefix, "--condition-builder");
15
+ var ConditionBuilderItemDate = function ConditionBuilderItemDate(_ref) {
16
+ var conditionState = _ref.conditionState,
17
+ onChange = _ref.onChange;
18
+ var DatePickerInputRef = useRef();
19
+ var datePickerType = conditionState.operator == 'between' ? 'range' : 'single';
20
+ return /*#__PURE__*/React__default.createElement("div", {
21
+ className: "".concat(blockClass, "__condition-builder-item-date ")
22
+ }, datePickerType == 'single' && /*#__PURE__*/React__default.createElement(DatePicker, {
23
+ ref: DatePickerInputRef,
24
+ dateFormat: "d/m/Y",
25
+ datePickerType: "single",
26
+ onClose: onChange,
27
+ value: conditionState.value
28
+ }, /*#__PURE__*/React__default.createElement(DatePickerInput, {
29
+ id: "datePicker",
30
+ placeholder: "dd/mm/yyyy",
31
+ labelText: conditionState.property
32
+ })), datePickerType == 'range' && /*#__PURE__*/React__default.createElement(DatePicker, {
33
+ ref: DatePickerInputRef,
34
+ dateFormat: "d/m/Y",
35
+ datePickerType: datePickerType,
36
+ onClose: onChange,
37
+ value: conditionState.value
38
+ }, /*#__PURE__*/React__default.createElement(DatePickerInput, {
39
+ id: "datePickerStart",
40
+ placeholder: "dd/mm/yyyy",
41
+ labelText: translateWithId('start')
42
+ }), /*#__PURE__*/React__default.createElement(DatePickerInput, {
43
+ id: "datePickerEnd",
44
+ placeholder: "dd/mm/yyyy",
45
+ labelText: translateWithId('end')
46
+ })));
47
+ };
48
+ ConditionBuilderItemDate.propTypes = {
49
+ /**
50
+ * current condition object
51
+ */
52
+ conditionState: PropTypes.object,
53
+ /**
54
+ * callback to update state oin date change
55
+ */
56
+ onChange: PropTypes.func
57
+ };
58
+
59
+ export { ConditionBuilderItemDate };
@@ -0,0 +1,13 @@
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
+ }
13
+ import PropTypes from 'prop-types';
@@ -0,0 +1,52 @@
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 { NumberInput } from '@carbon/react';
10
+ import { pkg } from '../../../../settings.js';
11
+ import PropTypes from '../../../../node_modules/prop-types/index.js';
12
+
13
+ var blockClass = "".concat(pkg.prefix, "--condition-builder");
14
+ var ConditionBuilderItemNumber = function ConditionBuilderItemNumber(_ref) {
15
+ var _conditionState$prope;
16
+ var conditionState = _ref.conditionState,
17
+ config = _ref.config,
18
+ onChange = _ref.onChange;
19
+ var onChangeHandler = function onChangeHandler(e, _ref2) {
20
+ var value = _ref2.value;
21
+ onChange(value + '');
22
+ };
23
+ return /*#__PURE__*/React__default.createElement("div", {
24
+ className: "".concat(blockClass, "__condition-builder-item-number")
25
+ }, /*#__PURE__*/React__default.createElement(NumberInput, {
26
+ label: conditionState.property,
27
+ hideLabel: true,
28
+ id: (_conditionState$prope = conditionState.property) === null || _conditionState$prope === void 0 ? void 0 : _conditionState$prope.replace(/\s/g, ''),
29
+ value: conditionState.value ? conditionState.value.split(' ')[0] : conditionState.value,
30
+ min: config.min,
31
+ max: config.max,
32
+ step: config.step,
33
+ allowEmpty: true,
34
+ onChange: onChangeHandler
35
+ }));
36
+ };
37
+ ConditionBuilderItemNumber.propTypes = {
38
+ /**
39
+ * current condition object
40
+ */
41
+ conditionState: PropTypes.object,
42
+ /**
43
+ * current config object that this property is part of
44
+ */
45
+ config: PropTypes.object,
46
+ /**
47
+ * callback to update state oin date change
48
+ */
49
+ onChange: PropTypes.func
50
+ };
51
+
52
+ export { ConditionBuilderItemNumber };
@@ -0,0 +1,13 @@
1
+ export function ConditionBuilderItemOption({ conditionState, config, onChange, }: {
2
+ conditionState?: {} | undefined;
3
+ config?: {} | undefined;
4
+ onChange: any;
5
+ }): import("react/jsx-runtime").JSX.Element;
6
+ export namespace ConditionBuilderItemOption {
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
+ }
13
+ import PropTypes from 'prop-types';
@@ -0,0 +1,162 @@
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, toConsumableArray as _toConsumableArray, asyncToGenerator as _asyncToGenerator, regeneratorRuntime as _regeneratorRuntime } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
9
+ import React__default, { useContext, useState, useEffect } from 'react';
10
+ import { Search, Button, SelectSkeleton } from '@carbon/react';
11
+ import { CheckboxCheckedFilled, Checkbox, Checkmark } from '@carbon/react/icons';
12
+ import PropTypes from '../../../../node_modules/prop-types/index.js';
13
+ import { ConditionBuilderContext } from '../../ConditionBuilderContext/ConditionBuilderProvider.js';
14
+ import { blockClass, translateWithId } from '../../ConditionBuilderContext/DataConfigs.js';
15
+
16
+ var _CheckboxCheckedFille, _Checkbox, _SelectSkeleton;
17
+ var ConditionBuilderItemOption = function ConditionBuilderItemOption(_ref) {
18
+ var _ref$conditionState = _ref.conditionState,
19
+ conditionState = _ref$conditionState === void 0 ? {} : _ref$conditionState,
20
+ _ref$config = _ref.config,
21
+ config = _ref$config === void 0 ? {} : _ref$config,
22
+ onChange = _ref.onChange;
23
+ var multiSelectable = conditionState.operator === 'one-of';
24
+ var _useContext = useContext(ConditionBuilderContext),
25
+ popOverSearchThreshold = _useContext.popOverSearchThreshold,
26
+ getOptions = _useContext.getOptions;
27
+ var _useState = useState(config.options),
28
+ _useState2 = _slicedToArray(_useState, 2),
29
+ allOptions = _useState2[0],
30
+ setAllOptions = _useState2[1];
31
+ var _useState3 = useState(config.options),
32
+ _useState4 = _slicedToArray(_useState3, 2),
33
+ filteredItems = _useState4[0],
34
+ setFilteredItems = _useState4[1];
35
+ var selection = Array.isArray(conditionState.value) ? conditionState.value : conditionState.value !== undefined ? [conditionState.value] : [];
36
+ useEffect(function () {
37
+ if (!allOptions && getOptions) {
38
+ var fetchData = /*#__PURE__*/function () {
39
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
40
+ var response;
41
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
42
+ while (1) switch (_context.prev = _context.next) {
43
+ case 0:
44
+ _context.next = 2;
45
+ return getOptions(conditionState);
46
+ case 2:
47
+ response = _context.sent;
48
+ if ((response === null || response === void 0 ? void 0 : response.length) > 0 && Object.keys(response[0]).includes('label') && Object.keys(response[0]).includes('id')) {
49
+ setAllOptions(response);
50
+ setFilteredItems(response);
51
+ }
52
+ case 4:
53
+ case "end":
54
+ return _context.stop();
55
+ }
56
+ }, _callee);
57
+ }));
58
+ return function fetchData() {
59
+ return _ref2.apply(this, arguments);
60
+ };
61
+ }();
62
+ fetchData(); // Call the async method
63
+ }
64
+ // eslint-disable-next-line react-hooks/exhaustive-deps
65
+ }, []);
66
+ var handleSelectAll = function handleSelectAll(e) {
67
+ if (e.currentTarget.dataset.selectedAll == 'false') {
68
+ onChange(undefined);
69
+ } else {
70
+ onChange(allOptions.map(function (op) {
71
+ return op.id;
72
+ }));
73
+ }
74
+ };
75
+ var onSearchChangeHandler = function onSearchChangeHandler(e) {
76
+ var value = e.target.value;
77
+ var _filteredItems = allOptions.filter(function (opt) {
78
+ return opt.label.toLowerCase().includes(value.toLowerCase());
79
+ });
80
+ setFilteredItems(_filteredItems);
81
+ };
82
+ var onClickHandler = function onClickHandler(e, option, isSelected) {
83
+ if (multiSelectable) {
84
+ if (isSelected) {
85
+ var items = selection.filter(function (v) {
86
+ return v !== option.id;
87
+ });
88
+ onChange(items.length > 0 ? items : undefined, e);
89
+ } else {
90
+ onChange([].concat(_toConsumableArray(selection), [option.id]), e);
91
+ }
92
+ } else {
93
+ onChange(option.id, e);
94
+ }
95
+ };
96
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, allOptions && /*#__PURE__*/React__default.createElement("div", {
97
+ className: "".concat(blockClass, "__condition-builder-item-option")
98
+ }, (config.includeSearch || allOptions.length > popOverSearchThreshold) && /*#__PURE__*/React__default.createElement("div", {
99
+ className: "".concat(blockClass, "__condition-builder-item-option__search")
100
+ }, /*#__PURE__*/React__default.createElement(Search, {
101
+ size: "sm",
102
+ labelText: translateWithId('clear_search'),
103
+ closeButtonLabelText: translateWithId('clear_search'),
104
+ onChange: onSearchChangeHandler
105
+ })), multiSelectable && /*#__PURE__*/React__default.createElement("div", {
106
+ className: "".concat(blockClass, "__multiselectSelectionStatusContainer")
107
+ }, /*#__PURE__*/React__default.createElement("h4", null, /*#__PURE__*/React__default.createElement("label", null, selection.length, "/", allOptions.length, " Selected")), /*#__PURE__*/React__default.createElement(Button, {
108
+ kind: 'ghost',
109
+ size: 'sm',
110
+ "data-selected-all": "".concat(selection.length == 0 ? true : false),
111
+ onClick: handleSelectAll,
112
+ className: "".concat(blockClass, "__selectAll-button")
113
+ }, selection.length == 0 ? 'Select all' : 'Deselect all')), /*#__PURE__*/React__default.createElement("ul", {
114
+ "aria-label": conditionState.label ? conditionState.label : conditionState.property ? conditionState.property : translateWithId('property'),
115
+ role: "listbox",
116
+ "data-multi-select": multiSelectable
117
+ }, filteredItems === null || filteredItems === void 0 ? void 0 : filteredItems.map(function (option) {
118
+ var isSelected = selection.includes(option.id);
119
+ var Icon = option.icon;
120
+ return /*#__PURE__*/React__default.createElement("li", {
121
+ tabIndex: 0,
122
+ key: option.id,
123
+ role: "option",
124
+ "aria-selected": isSelected,
125
+ className: "".concat(blockClass, "__condition-builder-item-option__option"),
126
+ onKeyUp: function onKeyUp() {
127
+ return false;
128
+ },
129
+ onClick: function onClick(e) {
130
+ return onClickHandler(e, option, isSelected);
131
+ }
132
+ }, /*#__PURE__*/React__default.createElement("div", {
133
+ className: "".concat(blockClass, "__condition-builder-item-option__option-content")
134
+ }, multiSelectable ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("span", {
135
+ className: "".concat(blockClass, "__option-check-box")
136
+ }, isSelected ? _CheckboxCheckedFille || (_CheckboxCheckedFille = /*#__PURE__*/React__default.createElement(CheckboxCheckedFilled, null)) : _Checkbox || (_Checkbox = /*#__PURE__*/React__default.createElement(Checkbox, null))), /*#__PURE__*/React__default.createElement("span", {
137
+ className: "".concat(blockClass, "__condition-builder-item-option__option-label")
138
+ }, option.label), Icon && /*#__PURE__*/React__default.createElement("span", {
139
+ className: "".concat(blockClass, "__option-icon")
140
+ }, /*#__PURE__*/React__default.createElement(Icon, null))) : /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("span", {
141
+ className: "".concat(blockClass, "__condition-builder-item-option__option-label")
142
+ }, Icon && /*#__PURE__*/React__default.createElement(Icon, null), option.label), isSelected && /*#__PURE__*/React__default.createElement(Checkmark, {
143
+ className: "".concat(blockClass, "__condition-builder-checkmark")
144
+ }))));
145
+ }))), !allOptions && (_SelectSkeleton || (_SelectSkeleton = /*#__PURE__*/React__default.createElement(SelectSkeleton, null))));
146
+ };
147
+ ConditionBuilderItemOption.propTypes = {
148
+ /**
149
+ * current condition object
150
+ */
151
+ conditionState: PropTypes.object,
152
+ /**
153
+ * current config object that this property is part of
154
+ */
155
+ config: PropTypes.object,
156
+ /**
157
+ * callback to update state oin date change
158
+ */
159
+ onChange: PropTypes.func
160
+ };
161
+
162
+ export { ConditionBuilderItemOption };