@carbon/ibm-products 1.11.2 → 1.14.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 (238) hide show
  1. package/README.md +0 -3
  2. package/css/components/Datagrid/styles/addons/CustomizeColumnsModal.css +47 -0
  3. package/css/components/Datagrid/styles/addons/CustomizeColumnsModal.css.map +1 -0
  4. package/css/components/Datagrid/styles/addons/RowSizeDropdown.css +20 -0
  5. package/css/components/Datagrid/styles/addons/RowSizeDropdown.css.map +1 -0
  6. package/css/components/Datagrid/styles/datagrid.css +264 -0
  7. package/css/components/Datagrid/styles/datagrid.css.map +1 -0
  8. package/css/components/Datagrid/styles/index.css +509 -0
  9. package/css/components/Datagrid/styles/index.css.map +1 -0
  10. package/css/components/Datagrid/styles/useActionsColumn.css +23 -0
  11. package/css/components/Datagrid/styles/useActionsColumn.css.map +1 -0
  12. package/css/components/Datagrid/styles/useColumnRightAlign.css +28 -0
  13. package/css/components/Datagrid/styles/useColumnRightAlign.css.map +1 -0
  14. package/css/components/Datagrid/styles/useNestedRows.css +15 -0
  15. package/css/components/Datagrid/styles/useNestedRows.css.map +1 -0
  16. package/css/components/Datagrid/styles/useNestedTable.css +25 -0
  17. package/css/components/Datagrid/styles/useNestedTable.css.map +1 -0
  18. package/css/components/Datagrid/styles/useSelectAllToggle.css +28 -0
  19. package/css/components/Datagrid/styles/useSelectAllToggle.css.map +1 -0
  20. package/css/components/Datagrid/styles/useSortableColumns.css +50 -0
  21. package/css/components/Datagrid/styles/useSortableColumns.css.map +1 -0
  22. package/css/components/Datagrid/styles/useStickyColumn.css +35 -0
  23. package/css/components/Datagrid/styles/useStickyColumn.css.map +1 -0
  24. package/css/index-full-carbon.css +2019 -376
  25. package/css/index-full-carbon.css.map +1 -1
  26. package/css/index-full-carbon.min.css +6 -6
  27. package/css/index-full-carbon.min.css.map +1 -1
  28. package/css/index-without-carbon-released-only.css +18 -6
  29. package/css/index-without-carbon-released-only.css.map +1 -1
  30. package/css/index-without-carbon-released-only.min.css +2 -2
  31. package/css/index-without-carbon-released-only.min.css.map +1 -1
  32. package/css/index-without-carbon.css +679 -19
  33. package/css/index-without-carbon.css.map +1 -1
  34. package/css/index-without-carbon.min.css +5 -5
  35. package/css/index-without-carbon.min.css.map +1 -1
  36. package/css/index.css +679 -19
  37. package/css/index.css.map +1 -1
  38. package/css/index.min.css +6 -6
  39. package/css/index.min.css.map +1 -1
  40. package/es/components/ActionBar/ActionBar.js +3 -1
  41. package/es/components/ActionBar/ActionBarOverflowItems.js +5 -3
  42. package/es/components/AddSelect/AddSelect.js +133 -30
  43. package/es/components/AddSelect/AddSelectColumn.js +0 -1
  44. package/es/components/AddSelect/AddSelectFilter.js +129 -0
  45. package/es/components/AddSelect/AddSelectList.js +59 -13
  46. package/es/components/AddSelect/AddSelectSidebar.js +15 -5
  47. package/es/components/AddSelect/add-select-utils.js +30 -0
  48. package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +2 -0
  49. package/es/components/DataSpreadsheet/DataSpreadsheet.js +262 -164
  50. package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +191 -51
  51. package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +65 -13
  52. package/es/components/DataSpreadsheet/hooks/index.js +10 -0
  53. package/es/components/DataSpreadsheet/hooks/useMultipleKeyTracking.js +111 -0
  54. package/es/components/DataSpreadsheet/hooks/useResetSpreadsheetFocus.js +2 -4
  55. package/es/components/DataSpreadsheet/hooks/useSpreadsheetOutsideClick.js +6 -6
  56. package/es/components/DataSpreadsheet/utils/handleHeaderCellSelection.js +3 -1
  57. package/es/components/DataSpreadsheet/utils/handleMultipleKeys.js +80 -6
  58. package/es/components/Datagrid/Datagrid/Datagrid.js +70 -0
  59. package/es/components/Datagrid/Datagrid/DatagridBody.js +36 -0
  60. package/es/components/Datagrid/Datagrid/DatagridEmptyBody.js +19 -0
  61. package/es/components/Datagrid/Datagrid/DatagridExpandedRow.js +26 -0
  62. package/es/components/Datagrid/Datagrid/DatagridHead.js +31 -0
  63. package/es/components/Datagrid/Datagrid/DatagridHeaderRow.js +57 -0
  64. package/es/components/Datagrid/Datagrid/DatagridRefBody.js +37 -0
  65. package/es/components/Datagrid/Datagrid/DatagridRow.js +50 -0
  66. package/es/components/Datagrid/Datagrid/DatagridSelectAll.js +50 -0
  67. package/es/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +122 -0
  68. package/es/components/Datagrid/Datagrid/DatagridSimpleBody.js +36 -0
  69. package/es/components/Datagrid/Datagrid/DatagridToolbar.js +22 -0
  70. package/es/components/Datagrid/Datagrid/DatagridVirtualBody.js +87 -0
  71. package/es/components/Datagrid/Datagrid/DraggableElement.js +188 -0
  72. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Actions.js +78 -0
  73. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/ButtonWrapper.js +51 -0
  74. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +140 -0
  75. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsModal.js +157 -0
  76. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/ModalWrapper.js +62 -0
  77. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/common.js +13 -0
  78. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/index.js +9 -0
  79. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +62 -0
  80. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +139 -0
  81. package/es/components/Datagrid/Datagrid/addons/RowSize/index.js +8 -0
  82. package/es/components/Datagrid/Datagrid/index.js +8 -0
  83. package/es/components/Datagrid/Datagrid.stories/CustomizeColumnStory.js +6 -0
  84. package/es/components/Datagrid/Datagrid.stories/LeftPanelStory.js +6 -0
  85. package/es/components/Datagrid/Datagrid.stories/RowSizeDropdownStory.js +6 -0
  86. package/es/components/Datagrid/Datagrid.stories/SelectAllWithToggleStory.js +6 -0
  87. package/es/components/Datagrid/Datagrid.stories/StickyActionsColumnStory.js +92 -0
  88. package/es/components/Datagrid/Datagrid.stories/common.js +199 -0
  89. package/es/components/Datagrid/Datagrid.stories/index.js +5 -0
  90. package/es/components/Datagrid/common-column-ids.js +8 -0
  91. package/es/components/Datagrid/index.js +22 -0
  92. package/es/components/Datagrid/useActionsColumn.js +86 -0
  93. package/es/components/Datagrid/useColumnRightAlign.js +52 -0
  94. package/es/components/Datagrid/useCustomizeColumns.js +45 -0
  95. package/es/components/Datagrid/useDatagrid.js +44 -0
  96. package/es/components/Datagrid/useDefaultStringRenderer.js +48 -0
  97. package/es/components/Datagrid/useDisableSelectRows.js +84 -0
  98. package/es/components/Datagrid/useExpandedRow.js +52 -0
  99. package/es/components/Datagrid/useFlexResize.js +51 -0
  100. package/es/components/Datagrid/useFloatingScroll.js +88 -0
  101. package/es/components/Datagrid/useInfiniteScroll.js +54 -0
  102. package/es/components/Datagrid/useNestedRows.js +53 -0
  103. package/es/components/Datagrid/useOnRowClick.js +37 -0
  104. package/es/components/Datagrid/useParentDimensions.js +65 -0
  105. package/es/components/Datagrid/useResizeTable.js +40 -0
  106. package/es/components/Datagrid/useRowExpander.js +34 -0
  107. package/es/components/Datagrid/useRowIsMouseOver.js +61 -0
  108. package/es/components/Datagrid/useRowRenderer.js +30 -0
  109. package/es/components/Datagrid/useRowSize.js +56 -0
  110. package/es/components/Datagrid/useSelectAllToggle.js +74 -0
  111. package/es/components/Datagrid/useSelectRows.js +107 -0
  112. package/es/components/Datagrid/useSkeletonRows.js +32 -0
  113. package/es/components/Datagrid/useSortableColumns.js +110 -0
  114. package/es/components/Datagrid/useStickyColumn.js +183 -0
  115. package/es/components/HTTPErrors/assets/HTTPErrorSvg403.js +2 -3
  116. package/es/components/HTTPErrors/assets/HTTPErrorSvg404.js +2 -3
  117. package/es/components/HTTPErrors/assets/HTTPErrorSvgOther.js +2 -3
  118. package/es/components/ImportModal/ImportModal.js +2 -2
  119. package/es/components/TagSet/TagSet.js +12 -3
  120. package/es/components/UserProfileImage/UserProfileImage.js +38 -10
  121. package/es/components/index.js +2 -1
  122. package/es/global/js/package-settings.js +2 -1
  123. package/lib/components/ActionBar/ActionBar.js +3 -1
  124. package/lib/components/ActionBar/ActionBarOverflowItems.js +5 -3
  125. package/lib/components/AddSelect/AddSelect.js +132 -28
  126. package/lib/components/AddSelect/AddSelectColumn.js +0 -1
  127. package/lib/components/AddSelect/AddSelectFilter.js +147 -0
  128. package/lib/components/AddSelect/AddSelectList.js +61 -12
  129. package/lib/components/AddSelect/AddSelectSidebar.js +15 -11
  130. package/lib/components/AddSelect/add-select-utils.js +35 -2
  131. package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +2 -0
  132. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +267 -168
  133. package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +191 -57
  134. package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +67 -18
  135. package/lib/components/DataSpreadsheet/hooks/index.js +37 -0
  136. package/lib/components/DataSpreadsheet/hooks/useMultipleKeyTracking.js +123 -0
  137. package/lib/components/DataSpreadsheet/hooks/useResetSpreadsheetFocus.js +2 -4
  138. package/lib/components/DataSpreadsheet/hooks/useSpreadsheetOutsideClick.js +6 -5
  139. package/lib/components/DataSpreadsheet/utils/handleHeaderCellSelection.js +3 -1
  140. package/lib/components/DataSpreadsheet/utils/handleMultipleKeys.js +83 -7
  141. package/lib/components/Datagrid/Datagrid/Datagrid.js +86 -0
  142. package/lib/components/Datagrid/Datagrid/DatagridBody.js +50 -0
  143. package/lib/components/Datagrid/Datagrid/DatagridEmptyBody.js +31 -0
  144. package/lib/components/Datagrid/Datagrid/DatagridExpandedRow.js +38 -0
  145. package/lib/components/Datagrid/Datagrid/DatagridHead.js +43 -0
  146. package/lib/components/Datagrid/Datagrid/DatagridHeaderRow.js +73 -0
  147. package/lib/components/Datagrid/Datagrid/DatagridRefBody.js +44 -0
  148. package/lib/components/Datagrid/Datagrid/DatagridRow.js +56 -0
  149. package/lib/components/Datagrid/Datagrid/DatagridSelectAll.js +55 -0
  150. package/lib/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +139 -0
  151. package/lib/components/Datagrid/Datagrid/DatagridSimpleBody.js +44 -0
  152. package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +35 -0
  153. package/lib/components/Datagrid/Datagrid/DatagridVirtualBody.js +101 -0
  154. package/lib/components/Datagrid/Datagrid/DraggableElement.js +210 -0
  155. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Actions.js +92 -0
  156. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/ButtonWrapper.js +65 -0
  157. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +166 -0
  158. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsModal.js +173 -0
  159. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/ModalWrapper.js +73 -0
  160. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/common.js +25 -0
  161. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/index.js +23 -0
  162. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +80 -0
  163. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +160 -0
  164. package/lib/components/Datagrid/Datagrid/addons/RowSize/index.js +15 -0
  165. package/lib/components/Datagrid/Datagrid/index.js +15 -0
  166. package/lib/components/Datagrid/Datagrid.stories/CustomizeColumnStory.js +13 -0
  167. package/lib/components/Datagrid/Datagrid.stories/LeftPanelStory.js +13 -0
  168. package/lib/components/Datagrid/Datagrid.stories/RowSizeDropdownStory.js +13 -0
  169. package/lib/components/Datagrid/Datagrid.stories/SelectAllWithToggleStory.js +13 -0
  170. package/lib/components/Datagrid/Datagrid.stories/StickyActionsColumnStory.js +112 -0
  171. package/lib/components/Datagrid/Datagrid.stories/common.js +215 -0
  172. package/lib/components/Datagrid/Datagrid.stories/index.js +47 -0
  173. package/lib/components/Datagrid/common-column-ids.js +16 -0
  174. package/lib/components/Datagrid/index.js +127 -0
  175. package/lib/components/Datagrid/useActionsColumn.js +94 -0
  176. package/lib/components/Datagrid/useColumnRightAlign.js +59 -0
  177. package/lib/components/Datagrid/useCustomizeColumns.js +55 -0
  178. package/lib/components/Datagrid/useDatagrid.js +58 -0
  179. package/lib/components/Datagrid/useDefaultStringRenderer.js +54 -0
  180. package/lib/components/Datagrid/useDisableSelectRows.js +92 -0
  181. package/lib/components/Datagrid/useExpandedRow.js +58 -0
  182. package/lib/components/Datagrid/useFlexResize.js +61 -0
  183. package/lib/components/Datagrid/useFloatingScroll.js +101 -0
  184. package/lib/components/Datagrid/useInfiniteScroll.js +67 -0
  185. package/lib/components/Datagrid/useNestedRows.js +65 -0
  186. package/lib/components/Datagrid/useOnRowClick.js +45 -0
  187. package/lib/components/Datagrid/useParentDimensions.js +75 -0
  188. package/lib/components/Datagrid/useResizeTable.js +48 -0
  189. package/lib/components/Datagrid/useRowExpander.js +45 -0
  190. package/lib/components/Datagrid/useRowIsMouseOver.js +66 -0
  191. package/lib/components/Datagrid/useRowRenderer.js +40 -0
  192. package/lib/components/Datagrid/useRowSize.js +67 -0
  193. package/lib/components/Datagrid/useSelectAllToggle.js +88 -0
  194. package/lib/components/Datagrid/useSelectRows.js +119 -0
  195. package/lib/components/Datagrid/useSkeletonRows.js +42 -0
  196. package/lib/components/Datagrid/useSortableColumns.js +117 -0
  197. package/lib/components/Datagrid/useStickyColumn.js +190 -0
  198. package/lib/components/HTTPErrors/assets/HTTPErrorSvg403.js +2 -3
  199. package/lib/components/HTTPErrors/assets/HTTPErrorSvg404.js +2 -3
  200. package/lib/components/HTTPErrors/assets/HTTPErrorSvgOther.js +2 -3
  201. package/lib/components/ImportModal/ImportModal.js +1 -1
  202. package/lib/components/TagSet/TagSet.js +12 -3
  203. package/lib/components/UserProfileImage/UserProfileImage.js +38 -10
  204. package/lib/components/index.js +9 -1
  205. package/lib/global/js/package-settings.js +2 -1
  206. package/package.json +19 -15
  207. package/scss/components/AboutModal/_about-modal.scss +2 -2
  208. package/scss/components/ActionSet/_action-set.scss +3 -1
  209. package/scss/components/AddSelect/_add-select.scss +87 -3
  210. package/scss/components/CreateModal/_create-modal.scss +7 -5
  211. package/scss/components/CreateModal/_storybook-styles.scss +8 -7
  212. package/scss/components/DataSpreadsheet/_data-spreadsheet.scss +70 -10
  213. package/scss/components/Datagrid/_datagrid.scss +66 -0
  214. package/scss/components/Datagrid/_index.scss +8 -0
  215. package/scss/components/Datagrid/_storybook-styles.scss +26 -0
  216. package/scss/components/Datagrid/styles/_variables.scss +9 -0
  217. package/scss/components/Datagrid/styles/addons/CustomizeColumnsModal.scss +48 -0
  218. package/scss/components/Datagrid/styles/addons/RowSizeDropdown.scss +23 -0
  219. package/scss/components/Datagrid/styles/datagrid.scss +318 -0
  220. package/scss/components/Datagrid/styles/index.scss +17 -0
  221. package/scss/components/Datagrid/styles/useActionsColumn.scss +24 -0
  222. package/scss/components/Datagrid/styles/useColumnRightAlign.scss +29 -0
  223. package/scss/components/Datagrid/styles/useNestedRows.scss +17 -0
  224. package/scss/components/Datagrid/styles/useNestedTable.scss +28 -0
  225. package/scss/components/Datagrid/styles/useSelectAllToggle.scss +28 -0
  226. package/scss/components/Datagrid/styles/useSortableColumns.scss +55 -0
  227. package/scss/components/Datagrid/styles/useStickyColumn.scss +38 -0
  228. package/scss/components/ExportModal/_export-modal.scss +3 -3
  229. package/scss/components/HTTPErrors/_http-errors.scss +16 -16
  230. package/scss/components/InlineEdit/_inline-edit.scss +0 -1
  231. package/scss/components/ModifiedTabs/_modified-tabs.scss +0 -10
  232. package/scss/components/NotificationsPanel/_notifications-panel.scss +3 -3
  233. package/scss/components/OptionsTile/_options-tile.scss +0 -1
  234. package/scss/components/PageHeader/_page-header.scss +4 -0
  235. package/scss/components/RemoveModal/_remove-modal.scss +3 -3
  236. package/scss/components/TagSet/_tag-set.scss +2 -1
  237. package/scss/components/Tearsheet/_tearsheet.scss +5 -2
  238. package/scss/components/_index.scss +1 -0
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- var _excluded = ["backgroundColor", "className", "kind", "initials", "image", "imageDescription", "size", "theme", "tooltipText"];
3
+ var _excluded = ["backgroundColor", "className", "kind", "icon", "initials", "image", "imageDescription", "size", "theme", "tooltipText"];
4
4
 
5
5
  /**
6
6
  * Copyright IBM Corp. 2021, 2021
@@ -31,6 +31,7 @@ export var UserProfileImage = /*#__PURE__*/React.forwardRef(function (_ref, ref)
31
31
  var backgroundColor = _ref.backgroundColor,
32
32
  className = _ref.className,
33
33
  kind = _ref.kind,
34
+ icon = _ref.icon,
34
35
  initials = _ref.initials,
35
36
  image = _ref.image,
36
37
  imageDescription = _ref.imageDescription,
@@ -62,18 +63,40 @@ export var UserProfileImage = /*#__PURE__*/React.forwardRef(function (_ref, ref)
62
63
  return initials.match(/(^\S\S?|\b\S)?/g).join('').match(/(^\S|\S$)?/g).join('').toUpperCase();
63
64
  };
64
65
 
65
- var FillItem = image ? function () {
66
- return /*#__PURE__*/React.createElement("img", {
67
- alt: imageDescription,
68
- src: image,
69
- className: "".concat(blockClass, "__photo ").concat(blockClass, "__photo--").concat(size)
70
- });
71
- } : initials ? formatInitials : kind && size && icons[kind][size];
66
+ var getFillItem = function getFillItem() {
67
+ if (image) {
68
+ return function () {
69
+ return /*#__PURE__*/React.createElement("img", {
70
+ alt: imageDescription,
71
+ src: image,
72
+ className: "".concat(blockClass, "__photo ").concat(blockClass, "__photo--").concat(size)
73
+ });
74
+ };
75
+ }
76
+
77
+ if (initials) {
78
+ return formatInitials;
79
+ }
80
+
81
+ if (kind && size) {
82
+ return icons[kind][size];
83
+ }
84
+
85
+ return icon;
86
+ }; // if user doesn't provide a color just generate a random one
87
+
88
+
89
+ var getRandomColor = function getRandomColor() {
90
+ var colors = ['light-cyan', 'dark-cyan', 'light-gray', 'dark-gray', 'light-green', 'dark-green', 'light-magenta', 'dark-magenta', 'light-purple', 'dark-purple', 'light-teal', 'dark-teal'];
91
+ return colors[Math.floor(Math.random() * colors.length)];
92
+ };
93
+
94
+ var FillItem = getFillItem();
72
95
 
73
96
  var renderUserProfileImage = function renderUserProfileImage() {
74
97
  return /*#__PURE__*/React.createElement("div", _extends({}, rest, {
75
98
  ref: ref,
76
- className: cx([blockClass, className, "".concat(blockClass, "--").concat(size), "".concat(blockClass, "--").concat(theme), "".concat(blockClass, "--").concat(backgroundColor)])
99
+ className: cx([blockClass, className, "".concat(blockClass, "--").concat(size), "".concat(blockClass, "--").concat(theme), "".concat(blockClass, "--").concat(backgroundColor || getRandomColor())])
77
100
  }, getDevtoolsProps(componentName)), /*#__PURE__*/React.createElement(FillItem, null));
78
101
  };
79
102
 
@@ -97,6 +120,11 @@ UserProfileImage.propTypes = {
97
120
  */
98
121
  className: PropTypes.string,
99
122
 
123
+ /**
124
+ * Provide a custom icon to use if you need to use an icon other than the included ones
125
+ */
126
+ icon: PropTypes.object,
127
+
100
128
  /**
101
129
  * When passing the image prop, supply a full path to the image to be displayed.
102
130
  */
@@ -107,7 +135,7 @@ UserProfileImage.propTypes = {
107
135
  */
108
136
  imageDescription: PropTypes.string.isRequired.if(function (_ref2) {
109
137
  var image = _ref2.image;
110
- return image;
138
+ return !!image;
111
139
  }),
112
140
 
113
141
  /**
@@ -36,4 +36,5 @@ export { WebTerminal } from './WebTerminal';
36
36
  export { EditSidePanel } from './EditSidePanel';
37
37
  export { OptionsTile } from './OptionsTile';
38
38
  export { InlineEdit } from './InlineEdit';
39
- export { DataSpreadsheet } from './DataSpreadsheet';
39
+ export { DataSpreadsheet } from './DataSpreadsheet';
40
+ export { Datagrid } from './Datagrid';
@@ -63,7 +63,8 @@ var defaults = {
63
63
  EditSidePanel: false,
64
64
  CancelableTextEdit: false,
65
65
  InlineEdit: false,
66
- DataSpreadsheet: false
66
+ DataSpreadsheet: false,
67
+ Datagrid: false
67
68
  /* new component flags here - comment used by generate CLI */
68
69
 
69
70
  },
@@ -93,6 +93,8 @@ var ActionBar = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
93
93
  className: "".concat(blockClass, "__hidden-sizing-items"),
94
94
  "aria-hidden": true,
95
95
  ref: sizingRef
96
+ }, /*#__PURE__*/_react.default.createElement("span", {
97
+ "aria-hidden": false
96
98
  }, /*#__PURE__*/_react.default.createElement(_ActionBarOverflowItems.ActionBarOverflowItems, {
97
99
  className: "".concat(blockClass, "__hidden-sizing-item"),
98
100
  overflowAriaLabel: "hidden sizing overflow items",
@@ -108,7 +110,7 @@ var ActionBar = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
108
110
  key: "hidden-item-".concat(key),
109
111
  className: "".concat(blockClass, "__hidden-sizing-item")
110
112
  }));
111
- })));
113
+ }))));
112
114
  }, [actions]); // creates displayed items based on actions, displayCount and alignment
113
115
 
114
116
  (0, _react.useEffect)(function () {
@@ -49,8 +49,10 @@ var ActionBarOverflowItems = function ActionBarOverflowItems(_ref) {
49
49
  className: (0, _classnames.default)(blockClass, className),
50
50
  direction: "bottom",
51
51
  flipped: true,
52
+ iconDescription: overflowAriaLabel // also needs setting to avoid a11y "Accessible name does not match or contain the visible label text"
53
+ ,
52
54
  menuOptionsClass: (0, _classnames.default)("".concat(blockClass, "__options"), menuOptionsClass)
53
- }, _react.default.Children.map(overflowItems, function (item) {
55
+ }, _react.default.Children.map(overflowItems, function (item, index) {
54
56
  // This uses a copy of a menu item option
55
57
  // NOTE: Cannot use a real Tooltip icon below as it uses a <button /> the
56
58
  // div equivalent below is based on Carbon 10.25.0
@@ -58,10 +60,10 @@ var ActionBarOverflowItems = function ActionBarOverflowItems(_ref) {
58
60
  className: "".concat(blockClass, "__item"),
59
61
  itemText: /*#__PURE__*/_react.default.createElement("div", {
60
62
  className: "".concat(blockClass, "__item-content"),
61
- "aria-describedby": "".concat(internalId, "--item-label")
63
+ "aria-describedby": "".concat(internalId.current, "-").concat(index, "--item-label")
62
64
  }, /*#__PURE__*/_react.default.createElement("span", {
63
65
  className: "".concat(blockClass, "__item-label"),
64
- id: "".concat(internalId, "--item-label")
66
+ id: "".concat(internalId.current, "-").concat(index, "--item-label")
65
67
  }, item.props.iconDescription), /*#__PURE__*/_react.default.createElement(item.props.renderIcon, null))
66
68
  });
67
69
  }));
@@ -41,7 +41,9 @@ var _AddSelectColumn = require("./AddSelectColumn");
41
41
 
42
42
  var _addSelectUtils = require("./add-select-utils");
43
43
 
44
- var _excluded = ["className", "columnInputPlaceholder", "description", "influencerTitle", "inputPlaceholder", "items", "itemsLabel", "multi", "noResultsDescription", "noResultsTitle", "noSelectionDescription", "noSelectionTitle", "onClose", "onCloseButtonText", "onSearchFilter", "onSubmit", "onSubmitButtonText", "open", "removeIconDescription", "textInputLabel", "title"];
44
+ var _AddSelectFilter = require("./AddSelectFilter");
45
+
46
+ var _excluded = ["className", "columnInputPlaceholder", "description", "globalFilters", "globalFiltersIconDescription", "globalFiltersPlaceholderText", "globalFiltersPrimaryButtonText", "globalFiltersSecondaryButtonText", "influencerTitle", "inputPlaceholder", "items", "itemsLabel", "multi", "noResultsDescription", "noResultsTitle", "noSelectionDescription", "noSelectionTitle", "onClose", "onCloseButtonText", "onSearchFilter", "onSubmit", "onSubmitButtonText", "open", "removeIconDescription", "searchResultsLabel", "textInputLabel", "title"];
45
47
 
46
48
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
47
49
 
@@ -54,6 +56,11 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
54
56
  var className = _ref.className,
55
57
  columnInputPlaceholder = _ref.columnInputPlaceholder,
56
58
  description = _ref.description,
59
+ globalFilters = _ref.globalFilters,
60
+ globalFiltersIconDescription = _ref.globalFiltersIconDescription,
61
+ globalFiltersPlaceholderText = _ref.globalFiltersPlaceholderText,
62
+ globalFiltersPrimaryButtonText = _ref.globalFiltersPrimaryButtonText,
63
+ globalFiltersSecondaryButtonText = _ref.globalFiltersSecondaryButtonText,
57
64
  influencerTitle = _ref.influencerTitle,
58
65
  inputPlaceholder = _ref.inputPlaceholder,
59
66
  items = _ref.items,
@@ -70,6 +77,7 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
70
77
  onSubmitButtonText = _ref.onSubmitButtonText,
71
78
  open = _ref.open,
72
79
  removeIconDescription = _ref.removeIconDescription,
80
+ searchResultsLabel = _ref.searchResultsLabel,
73
81
  textInputLabel = _ref.textInputLabel,
74
82
  title = _ref.title,
75
83
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
@@ -107,21 +115,42 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
107
115
 
108
116
  var _useState13 = (0, _react.useState)([]),
109
117
  _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
110
- sidebarItems = _useState14[0],
111
- setSidebarItems = _useState14[1];
118
+ flatItems = _useState14[0],
119
+ setFlatItems = _useState14[1];
120
+
121
+ var _useState15 = (0, _react.useState)([]),
122
+ _useState16 = (0, _slicedToArray2.default)(_useState15, 2),
123
+ globalFilterOpts = _useState16[0],
124
+ setGlobalFilterOpts = _useState16[1];
125
+
126
+ var _useState17 = (0, _react.useState)({}),
127
+ _useState18 = (0, _slicedToArray2.default)(_useState17, 2),
128
+ appliedGlobalFilters = _useState18[0],
129
+ setAppliedGlobalFilters = _useState18[1];
112
130
 
113
131
  (0, _react.useEffect)(function () {
114
- var entries = items.entries;
115
- setSidebarItems((0, _addSelectUtils.flatten)(entries)); // multi select with nested data needs to be normalized
116
-
117
- if (multi && entries.find(function (entry) {
118
- return entry.children;
119
- })) {
120
- var newItems = (0, _addSelectUtils.normalize)(items);
121
- setNormalizedItems(newItems);
122
- setUsedNormalizedItems(true);
132
+ var entries = items.entries; // flatItems is just a single array of all entries including children
133
+
134
+ var flattenedItems = (0, _addSelectUtils.flatten)(entries);
135
+
136
+ if (multi) {
137
+ if (globalFilters !== null && globalFilters !== void 0 && globalFilters.length) {
138
+ var globalFilterValues = (0, _addSelectUtils.getGlobalFilterValues)(globalFilters, flattenedItems);
139
+ setGlobalFilterOpts(globalFilterValues);
140
+ } // multi select with nested data needs to be normalized
141
+
142
+
143
+ if (entries.find(function (entry) {
144
+ return entry.children;
145
+ })) {
146
+ var newItems = (0, _addSelectUtils.normalize)(items);
147
+ setNormalizedItems(newItems);
148
+ setUsedNormalizedItems(true);
149
+ }
123
150
  }
124
- }, [items, multi]); // used to generate columns of results for multi select with hierarchy
151
+
152
+ setFlatItems(flattenedItems);
153
+ }, [items, multi, globalFilters]); // used to generate columns of results for multi select with hierarchy
125
154
 
126
155
  var getPages = function getPages() {
127
156
  var pages = [];
@@ -191,10 +220,32 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
191
220
  return item.title.toLowerCase().includes(searchTerm);
192
221
  });
193
222
  return results;
223
+ };
224
+
225
+ var getDisplayItems = function getDisplayItems() {
226
+ if (useNormalizedItems) {
227
+ // when global search or filter is in use the results are not in column format
228
+ var filters = Object.keys(appliedGlobalFilters);
229
+
230
+ if (searchTerm || filters.length) {
231
+ var results = flatItems.filter(function (item) {
232
+ return item.title.toLowerCase().includes(searchTerm);
233
+ }).filter(function (item) {
234
+ return filters.every(function (filter) {
235
+ return item[filter] === appliedGlobalFilters[filter];
236
+ });
237
+ });
238
+ return results;
239
+ }
240
+
241
+ return getPages();
242
+ }
243
+
244
+ return getFilteredItems();
194
245
  }; // only multi select with hierarchy requires the the normalized items
195
246
 
196
247
 
197
- var itemsToDisplay = useNormalizedItems ? getPages() : getFilteredItems();
248
+ var itemsToDisplay = getDisplayItems();
198
249
  var commonListProps = {
199
250
  multi: multi,
200
251
  multiSelection: multiSelection,
@@ -205,8 +256,12 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
205
256
  singleSelection: singleSelection
206
257
  }; // handlers
207
258
 
208
- var handleSearch = function handleSearch(e) {
209
- setSearchTerm(e.target.value);
259
+ var handleSearch = function handleSearch(term) {
260
+ setSearchTerm(term);
261
+ };
262
+
263
+ var handleFilter = function handleFilter(filters) {
264
+ setAppliedGlobalFilters(filters);
210
265
  };
211
266
 
212
267
  var submitHandler = function submitHandler() {
@@ -231,35 +286,69 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
231
286
  };
232
287
  var sidebarProps = {
233
288
  influencerTitle: influencerTitle,
234
- items: sidebarItems,
289
+ items: flatItems,
235
290
  multiSelection: multiSelection,
236
291
  noSelectionDescription: noSelectionDescription,
237
292
  noSelectionTitle: noSelectionTitle,
238
293
  removeIconDescription: removeIconDescription,
239
294
  setMultiSelection: setMultiSelection
240
295
  };
241
- var classNames = (0, _classnames.default)(className, blockClass, (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__single"), !multi), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__multi"), multi), _cx)); // main content
296
+ var classNames = (0, _classnames.default)(className, blockClass, (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__single"), !multi), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__multi"), multi), _cx));
297
+
298
+ var setShowBreadsCrumbs = function setShowBreadsCrumbs() {
299
+ if (searchTerm) {
300
+ return false;
301
+ }
302
+
303
+ if (path.length) {
304
+ return true;
305
+ }
306
+
307
+ return false;
308
+ };
309
+
310
+ var setShowTags = function setShowTags() {
311
+ if (searchTerm) {
312
+ return true;
313
+ }
314
+
315
+ if (useNormalizedItems) {
316
+ return false;
317
+ }
318
+
319
+ return true;
320
+ };
321
+
322
+ var showBreadsCrumbs = setShowBreadsCrumbs();
323
+ var showTags = setShowTags();
324
+ var globalFiltersApplied = Object.keys(appliedGlobalFilters).length > 0; // main content
242
325
 
243
326
  var body = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
244
327
  className: "".concat(blockClass, "__header")
245
- }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.TextInput, {
246
- id: "temp-id",
247
- labelText: textInputLabel,
248
- placeholder: inputPlaceholder,
249
- value: searchTerm,
250
- onChange: handleSearch
328
+ }, /*#__PURE__*/_react.default.createElement(_AddSelectFilter.AddSelectFilter, {
329
+ textInputLabel: textInputLabel,
330
+ inputPlaceholder: inputPlaceholder,
331
+ searchTerm: searchTerm,
332
+ handleSearch: handleSearch,
333
+ multi: multi,
334
+ filterOpts: globalFilterOpts,
335
+ handleFilter: handleFilter,
336
+ primaryButtonText: globalFiltersPrimaryButtonText,
337
+ secondaryButtonText: globalFiltersSecondaryButtonText,
338
+ placeholder: globalFiltersPlaceholderText,
339
+ iconDescription: globalFiltersIconDescription
251
340
  }), /*#__PURE__*/_react.default.createElement("div", {
252
341
  className: "".concat(blockClass, "__tag-container")
253
- }, path.length ? /*#__PURE__*/_react.default.createElement(_AddSelectBreadcrumbs.AddSelectBreadcrumbs, {
342
+ }, showBreadsCrumbs ? /*#__PURE__*/_react.default.createElement(_AddSelectBreadcrumbs.AddSelectBreadcrumbs, {
254
343
  itemsLabel: itemsLabel,
255
344
  path: path,
256
345
  setPath: setPath
257
346
  }) : /*#__PURE__*/_react.default.createElement("p", {
258
347
  className: "".concat(blockClass, "__tag-container-label")
259
- }, itemsLabel), !useNormalizedItems && /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Tag, {
348
+ }, searchTerm ? searchResultsLabel : itemsLabel), showTags && /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Tag, {
260
349
  type: "gray",
261
350
  size: "sm"
262
- }, itemsToDisplay.length))), useNormalizedItems ? /*#__PURE__*/_react.default.createElement("div", {
351
+ }, itemsToDisplay.length))), useNormalizedItems && !searchTerm && !globalFiltersApplied ? /*#__PURE__*/_react.default.createElement("div", {
263
352
  className: "".concat(blockClass, "__columns")
264
353
  }, itemsToDisplay.map(function (page, idx) {
265
354
  var _path;
@@ -271,7 +360,8 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
271
360
  columnInputPlaceholder: columnInputPlaceholder
272
361
  }));
273
362
  })) : /*#__PURE__*/_react.default.createElement("div", null, itemsToDisplay.length > 0 ? /*#__PURE__*/_react.default.createElement(_AddSelectList.AddSelectList, (0, _extends2.default)({}, commonListProps, {
274
- filteredItems: itemsToDisplay
363
+ filteredItems: itemsToDisplay,
364
+ modifiers: items === null || items === void 0 ? void 0 : items.modifiers
275
365
  })) : /*#__PURE__*/_react.default.createElement("div", {
276
366
  className: "".concat(blockClass, "__body")
277
367
  }, /*#__PURE__*/_react.default.createElement(_NoDataEmptyState.NoDataEmptyState, {
@@ -292,9 +382,22 @@ AddSelect.propTypes = {
292
382
  className: _propTypes.default.string,
293
383
  columnInputPlaceholder: _propTypes.default.string,
294
384
  description: _propTypes.default.string,
385
+ globalFilters: _propTypes.default.arrayOf(_propTypes.default.shape({
386
+ id: _propTypes.default.string,
387
+ label: _propTypes.default.string
388
+ })),
389
+ globalFiltersIconDescription: _propTypes.default.string,
390
+ globalFiltersPlaceholderText: _propTypes.default.string,
391
+ globalFiltersPrimaryButtonText: _propTypes.default.string,
392
+ globalFiltersSecondaryButtonText: _propTypes.default.string,
295
393
  influencerTitle: _propTypes.default.string,
296
394
  inputPlaceholder: _propTypes.default.string,
297
395
  items: _propTypes.default.shape({
396
+ modifiers: _propTypes.default.shape({
397
+ label: _propTypes.default.string,
398
+ options: _propTypes.default.array,
399
+ property: _propTypes.default.string
400
+ }),
298
401
  sortBy: _propTypes.default.array,
299
402
  filterBy: _propTypes.default.array,
300
403
  entries: _propTypes.default.arrayOf(_propTypes.default.shape({
@@ -317,6 +420,7 @@ AddSelect.propTypes = {
317
420
  onSubmitButtonText: _propTypes.default.string,
318
421
  open: _propTypes.default.bool,
319
422
  removeIconDescription: _propTypes.default.string,
423
+ searchResultsLabel: _propTypes.default.string,
320
424
  textInputLabel: _propTypes.default.string,
321
425
  title: _propTypes.default.string
322
426
  };
@@ -238,7 +238,6 @@ var AddSelectColumn = function AddSelectColumn(_ref) {
238
238
  size: "sm"
239
239
  }, colItems.length))
240
240
  })), /*#__PURE__*/_react.default.createElement(_AddSelectList.AddSelectList, (0, _extends2.default)({}, props, {
241
- inColumn: true,
242
241
  filteredItems: colItems,
243
242
  setMultiSelection: setMultiSelection,
244
243
  multiSelection: multiSelection
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.AddSelectFilter = void 0;
11
+
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
16
+ var _react = _interopRequireWildcard(require("react"));
17
+
18
+ var _carbonComponentsReact = require("carbon-components-react");
19
+
20
+ var _propTypes = _interopRequireDefault(require("prop-types"));
21
+
22
+ var _iconsReact = require("@carbon/icons-react");
23
+
24
+ var _settings = require("../../settings");
25
+
26
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
+
28
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
+
30
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
31
+
32
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
33
+
34
+ var componentName = 'AddSelectFilter';
35
+
36
+ var AddSelectFilter = function AddSelectFilter(_ref) {
37
+ var filterOpts = _ref.filterOpts,
38
+ handleFilter = _ref.handleFilter,
39
+ handleSearch = _ref.handleSearch,
40
+ iconDescription = _ref.iconDescription,
41
+ inputPlaceholder = _ref.inputPlaceholder,
42
+ multi = _ref.multi,
43
+ placeholder = _ref.placeholder,
44
+ primaryButtonText = _ref.primaryButtonText,
45
+ searchTerm = _ref.searchTerm,
46
+ secondaryButtonText = _ref.secondaryButtonText,
47
+ textInputLabel = _ref.textInputLabel;
48
+
49
+ var _useState = (0, _react.useState)({}),
50
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
51
+ filters = _useState2[0],
52
+ setFilters = _useState2[1];
53
+
54
+ var _useState3 = (0, _react.useState)(false),
55
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
56
+ open = _useState4[0],
57
+ setOpen = _useState4[1];
58
+
59
+ var blockClass = "".concat(_settings.pkg.prefix, "--add-select__global-filter");
60
+
61
+ var searchHandler = function searchHandler(e) {
62
+ handleSearch(e.target.value);
63
+ };
64
+
65
+ var onchangeHandler = function onchangeHandler(_ref2, id) {
66
+ var selectedItem = _ref2.selectedItem;
67
+ setFilters(_objectSpread(_objectSpread({}, filters), {}, (0, _defineProperty2.default)({}, id, selectedItem)));
68
+ };
69
+
70
+ var applyFilters = function applyFilters() {
71
+ handleFilter(filters);
72
+ };
73
+
74
+ var resetFilters = function resetFilters() {
75
+ setFilters({});
76
+ };
77
+
78
+ var getSelectedItem = function getSelectedItem(id) {
79
+ return filters[id] || '';
80
+ };
81
+
82
+ var showFilter = multi && (filterOpts === null || filterOpts === void 0 ? void 0 : filterOpts.length) > 0;
83
+ return /*#__PURE__*/_react.default.createElement("div", {
84
+ className: "".concat(blockClass, "-search")
85
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.TextInput, {
86
+ id: "temp-id",
87
+ labelText: textInputLabel,
88
+ placeholder: inputPlaceholder,
89
+ value: searchTerm,
90
+ onChange: searchHandler
91
+ }), showFilter && /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
92
+ renderIcon: _iconsReact.Filter16,
93
+ hasIconOnly: true,
94
+ kind: "ghost",
95
+ onClick: function onClick() {
96
+ return setOpen(!open);
97
+ },
98
+ iconDescription: iconDescription,
99
+ className: "".concat(blockClass, "-toggle"),
100
+ size: "md"
101
+ }), open && /*#__PURE__*/_react.default.createElement("div", {
102
+ className: "".concat(blockClass)
103
+ }, /*#__PURE__*/_react.default.createElement("div", {
104
+ className: "".concat(blockClass, "-content")
105
+ }, /*#__PURE__*/_react.default.createElement("p", null, "Filters"), /*#__PURE__*/_react.default.createElement("div", {
106
+ className: "".concat(blockClass, "-opts")
107
+ }, filterOpts.map(function (filterOpts) {
108
+ return /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Dropdown, {
109
+ id: filterOpts.id,
110
+ key: filterOpts.id,
111
+ titleText: filterOpts.label,
112
+ items: filterOpts.opts,
113
+ light: true,
114
+ onChange: function onChange(value) {
115
+ return onchangeHandler(value, filterOpts.id);
116
+ },
117
+ selectedItem: getSelectedItem(filterOpts.id),
118
+ label: placeholder
119
+ });
120
+ }))), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.ButtonSet, {
121
+ className: "".concat(blockClass, "-button-set")
122
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
123
+ kind: "secondary",
124
+ onClick: resetFilters,
125
+ className: "".concat(blockClass, "-button")
126
+ }, secondaryButtonText), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
127
+ kind: "primary",
128
+ onClick: applyFilters,
129
+ className: "".concat(blockClass, "-button")
130
+ }, primaryButtonText))));
131
+ };
132
+
133
+ exports.AddSelectFilter = AddSelectFilter;
134
+ AddSelectFilter.propTypes = {
135
+ filterOpts: _propTypes.default.array,
136
+ handleFilter: _propTypes.default.func,
137
+ handleSearch: _propTypes.default.func,
138
+ iconDescription: _propTypes.default.string,
139
+ inputPlaceholder: _propTypes.default.string,
140
+ multi: _propTypes.default.bool,
141
+ placeholder: _propTypes.default.string,
142
+ primaryButtonText: _propTypes.default.string,
143
+ searchTerm: _propTypes.default.string,
144
+ secondaryButtonText: _propTypes.default.string,
145
+ textInputLabel: _propTypes.default.string
146
+ };
147
+ AddSelectFilter.displayName = componentName;