@carbon/ibm-products 2.2.0 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (225) hide show
  1. package/css/index-full-carbon.css +965 -434
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +4 -4
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon-released-only.css +354 -155
  6. package/css/index-without-carbon-released-only.css.map +1 -1
  7. package/css/index-without-carbon-released-only.min.css +2 -2
  8. package/css/index-without-carbon-released-only.min.css.map +1 -1
  9. package/css/index-without-carbon.css +600 -236
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +4 -4
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +516 -293
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +4 -4
  16. package/css/index.min.css.map +1 -1
  17. package/es/components/APIKeyModal/APIKeyModal.docs-page.js +26 -0
  18. package/es/components/AboutModal/AboutModal.docs-page.js +21 -0
  19. package/es/components/AboutModal/AboutModal.js +2 -4
  20. package/es/components/ActionBar/ActionBar.js +2 -6
  21. package/es/components/AddSelect/AddSelectFormControl.js +6 -6
  22. package/es/components/AddSelect/AddSelectRow.js +15 -5
  23. package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +5 -6
  24. package/es/components/ButtonMenu/ButtonMenu.js +4 -4
  25. package/es/components/ButtonSetWithOverflow/ButtonSetWithOverflow.js +3 -9
  26. package/es/components/Cascade/Cascade.docs-page.js +22 -0
  27. package/es/components/Cascade/Cascade.js +11 -1
  28. package/es/components/CreateFullPage/CreateFullPage.docs-page.js +39 -0
  29. package/es/components/CreateFullPage/CreateFullPage.js +13 -0
  30. package/es/components/CreateModal/CreateModal.docs-page.js +24 -0
  31. package/es/components/CreateModal/CreateModal.js +7 -0
  32. package/es/components/CreateSidePanel/CreateSidePanel.docs-page.js +18 -0
  33. package/es/components/CreateSidePanel/CreateSidePanel.js +1 -1
  34. package/es/components/CreateTearsheet/CreateTearsheet.docs-page.js +29 -0
  35. package/es/components/DataSpreadsheet/DataSpreadsheet.js +3 -3
  36. package/es/components/Datagrid/Datagrid/DatagridContent.js +1 -1
  37. package/es/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +3 -3
  38. package/es/components/Datagrid/Datagrid/DatagridToolbar.js +25 -10
  39. package/es/components/Datagrid/Datagrid/DatagridVirtualBody.js +1 -3
  40. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/TearsheetWrapper.js +1 -1
  41. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +39 -47
  42. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +20 -24
  43. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/index.js +2 -2
  44. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilterContext.js +13 -0
  45. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +44 -15
  46. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +16 -30
  47. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +2 -2
  48. package/es/components/Datagrid/index.js +2 -1
  49. package/es/components/Datagrid/useActionsColumn.js +10 -7
  50. package/es/components/Datagrid/useCustomizeColumns.js +9 -7
  51. package/es/components/Datagrid/useExpandedRow.js +11 -7
  52. package/es/components/Datagrid/useFiltering.js +12 -8
  53. package/es/components/Datagrid/useInlineEdit.js +3 -0
  54. package/es/components/Datagrid/useNestedRows.js +10 -6
  55. package/es/components/Datagrid/useStickyColumn.js +10 -3
  56. package/es/components/Datagrid/utils/DatagridActions.js +12 -20
  57. package/es/components/EditFullPage/EditFullPage.docs-page.js +39 -0
  58. package/es/components/EditFullPage/EditFullPage.js +2 -1
  59. package/es/components/EditSidePanel/EditSidePanel.js +1 -1
  60. package/es/components/EditTearsheet/EditTearsheet.docs-page.js +25 -0
  61. package/es/components/EditTearsheet/EditTearsheet.js +4 -0
  62. package/es/components/EditTearsheetNarrow/EditTearsheetNarrow.js +1 -1
  63. package/es/components/EditUpdateCards/EditUpdateCards.js +3 -2
  64. package/es/components/EmptyStates/EmptyState.js +4 -0
  65. package/es/components/EmptyStates/ErrorEmptyState/ErrorEmptyState.js +4 -0
  66. package/es/components/EmptyStates/NoDataEmptyState/NoDataEmptyState.js +4 -0
  67. package/es/components/EmptyStates/NoTagsEmptyState/NoTagsEmptyState.js +4 -0
  68. package/es/components/EmptyStates/NotFoundEmptyState/NotFoundEmptyState.js +4 -0
  69. package/es/components/EmptyStates/NotificationsEmptyState/NotificationsEmptyState.js +4 -0
  70. package/es/components/EmptyStates/UnauthorizedEmptyState/UnauthorizedEmptyState.js +4 -0
  71. package/es/components/ExampleComponent/ExampleComponent.docs-page.js +22 -0
  72. package/es/components/ExportModal/ExportModal.js +4 -0
  73. package/es/components/HTTPErrors/HTTPError403/HTTPError403.js +6 -0
  74. package/es/components/HTTPErrors/HTTPError404/HTTPError404.js +6 -0
  75. package/es/components/HTTPErrors/HTTPErrorOther/HTTPErrorOther.js +6 -0
  76. package/es/components/ImportModal/ImportModal.docs-page.js +18 -0
  77. package/es/components/ImportModal/ImportModal.js +13 -6
  78. package/es/components/MultiAddSelect/MultiAddSelect.docs-page.js +17 -0
  79. package/es/components/MultiAddSelect/MultiAddSelect.js +4 -0
  80. package/es/components/NotificationsPanel/preview-components/UnreadNotificationBell.js +2 -17
  81. package/es/components/PageHeader/PageHeader.js +2 -6
  82. package/es/components/PageHeader/PageHeaderUtils.js +2 -2
  83. package/es/components/RemoveModal/RemoveModal.docs-page.js +18 -0
  84. package/es/components/RemoveModal/RemoveModal.js +6 -0
  85. package/es/components/SidePanel/SidePanel.js +1 -3
  86. package/es/components/SingleAddSelect/SingleAddSelect.docs-page.js +15 -0
  87. package/es/components/SingleAddSelect/SingleAddSelect.js +4 -0
  88. package/es/components/StatusIcon/StatusIcon.docs-page.js +17 -0
  89. package/es/components/StatusIcon/StatusIcon.js +10 -0
  90. package/es/components/TagSet/TagSet.js +4 -7
  91. package/es/components/Tearsheet/TearsheetShell.js +11 -6
  92. package/es/components/Toolbar/Toolbar.docs-page.js +14 -0
  93. package/es/components/UserProfileImage/UserProfileImage.docs-page.js +17 -0
  94. package/es/components/UserProfileImage/UserProfileImage.js +14 -3
  95. package/es/components/WebTerminal/WebTerminal.docs-page.js +52 -0
  96. package/es/components/WebTerminal/WebTerminal.js +4 -0
  97. package/es/components/index.js +1 -1
  98. package/es/global/js/hooks/useCreateComponentStepChange.js +16 -15
  99. package/es/global/js/hooks/useResizeObserver.js +14 -28
  100. package/es/global/js/package-settings.js +14 -1
  101. package/es/global/js/utils/StoryDocsPage.js +218 -0
  102. package/es/global/js/utils/story-helper.js +108 -6
  103. package/lib/components/APIKeyModal/APIKeyModal.docs-page.js +37 -0
  104. package/lib/components/AboutModal/AboutModal.docs-page.js +32 -0
  105. package/lib/components/AboutModal/AboutModal.js +2 -4
  106. package/lib/components/ActionBar/ActionBar.js +2 -6
  107. package/lib/components/AddSelect/AddSelectFormControl.js +6 -6
  108. package/lib/components/AddSelect/AddSelectRow.js +15 -5
  109. package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +5 -6
  110. package/lib/components/ButtonMenu/ButtonMenu.js +4 -4
  111. package/lib/components/ButtonSetWithOverflow/ButtonSetWithOverflow.js +3 -9
  112. package/lib/components/Cascade/Cascade.docs-page.js +33 -0
  113. package/lib/components/Cascade/Cascade.js +11 -1
  114. package/lib/components/CreateFullPage/CreateFullPage.docs-page.js +50 -0
  115. package/lib/components/CreateFullPage/CreateFullPage.js +13 -0
  116. package/lib/components/CreateModal/CreateModal.docs-page.js +35 -0
  117. package/lib/components/CreateModal/CreateModal.js +7 -0
  118. package/lib/components/CreateSidePanel/CreateSidePanel.docs-page.js +29 -0
  119. package/lib/components/CreateSidePanel/CreateSidePanel.js +1 -1
  120. package/lib/components/CreateTearsheet/CreateTearsheet.docs-page.js +40 -0
  121. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +3 -3
  122. package/lib/components/Datagrid/Datagrid/DatagridContent.js +1 -1
  123. package/lib/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +3 -3
  124. package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +25 -10
  125. package/lib/components/Datagrid/Datagrid/DatagridVirtualBody.js +1 -3
  126. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/TearsheetWrapper.js +1 -1
  127. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +37 -45
  128. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +20 -24
  129. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/index.js +6 -6
  130. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilterContext.js +20 -0
  131. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +42 -13
  132. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +16 -30
  133. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +2 -2
  134. package/lib/components/Datagrid/index.js +8 -1
  135. package/lib/components/Datagrid/useActionsColumn.js +12 -7
  136. package/lib/components/Datagrid/useCustomizeColumns.js +10 -8
  137. package/lib/components/Datagrid/useExpandedRow.js +9 -6
  138. package/lib/components/Datagrid/useFiltering.js +10 -7
  139. package/lib/components/Datagrid/useInlineEdit.js +3 -0
  140. package/lib/components/Datagrid/useNestedRows.js +9 -6
  141. package/lib/components/Datagrid/useStickyColumn.js +10 -3
  142. package/lib/components/Datagrid/utils/DatagridActions.js +49 -57
  143. package/lib/components/EditFullPage/EditFullPage.docs-page.js +50 -0
  144. package/lib/components/EditFullPage/EditFullPage.js +2 -1
  145. package/lib/components/EditSidePanel/EditSidePanel.js +1 -1
  146. package/lib/components/EditTearsheet/EditTearsheet.docs-page.js +36 -0
  147. package/lib/components/EditTearsheet/EditTearsheet.js +4 -0
  148. package/lib/components/EditTearsheetNarrow/EditTearsheetNarrow.js +1 -1
  149. package/lib/components/EditUpdateCards/EditUpdateCards.js +3 -2
  150. package/lib/components/EmptyStates/EmptyState.js +4 -0
  151. package/lib/components/EmptyStates/ErrorEmptyState/ErrorEmptyState.js +4 -0
  152. package/lib/components/EmptyStates/NoDataEmptyState/NoDataEmptyState.js +4 -0
  153. package/lib/components/EmptyStates/NoTagsEmptyState/NoTagsEmptyState.js +4 -0
  154. package/lib/components/EmptyStates/NotFoundEmptyState/NotFoundEmptyState.js +4 -0
  155. package/lib/components/EmptyStates/NotificationsEmptyState/NotificationsEmptyState.js +4 -0
  156. package/lib/components/EmptyStates/UnauthorizedEmptyState/UnauthorizedEmptyState.js +4 -0
  157. package/lib/components/ExampleComponent/ExampleComponent.docs-page.js +33 -0
  158. package/lib/components/ExportModal/ExportModal.js +4 -0
  159. package/lib/components/HTTPErrors/HTTPError403/HTTPError403.js +6 -0
  160. package/lib/components/HTTPErrors/HTTPError404/HTTPError404.js +6 -0
  161. package/lib/components/HTTPErrors/HTTPErrorOther/HTTPErrorOther.js +6 -0
  162. package/lib/components/ImportModal/ImportModal.docs-page.js +26 -0
  163. package/lib/components/ImportModal/ImportModal.js +13 -6
  164. package/lib/components/MultiAddSelect/MultiAddSelect.docs-page.js +25 -0
  165. package/lib/components/MultiAddSelect/MultiAddSelect.js +4 -0
  166. package/lib/components/NotificationsPanel/preview-components/UnreadNotificationBell.js +2 -17
  167. package/lib/components/PageHeader/PageHeader.js +2 -6
  168. package/lib/components/PageHeader/PageHeaderUtils.js +2 -2
  169. package/lib/components/RemoveModal/RemoveModal.docs-page.js +26 -0
  170. package/lib/components/RemoveModal/RemoveModal.js +6 -0
  171. package/lib/components/SidePanel/SidePanel.js +1 -3
  172. package/lib/components/SingleAddSelect/SingleAddSelect.docs-page.js +23 -0
  173. package/lib/components/SingleAddSelect/SingleAddSelect.js +4 -0
  174. package/lib/components/StatusIcon/StatusIcon.docs-page.js +28 -0
  175. package/lib/components/StatusIcon/StatusIcon.js +10 -0
  176. package/lib/components/TagSet/TagSet.js +4 -7
  177. package/lib/components/Tearsheet/TearsheetShell.js +11 -6
  178. package/lib/components/Toolbar/Toolbar.docs-page.js +25 -0
  179. package/lib/components/UserProfileImage/UserProfileImage.docs-page.js +28 -0
  180. package/lib/components/UserProfileImage/UserProfileImage.js +14 -3
  181. package/lib/components/WebTerminal/WebTerminal.docs-page.js +63 -0
  182. package/lib/components/WebTerminal/WebTerminal.js +4 -0
  183. package/lib/components/index.js +6 -0
  184. package/lib/global/js/hooks/useCreateComponentStepChange.js +16 -15
  185. package/lib/global/js/hooks/useResizeObserver.js +13 -27
  186. package/lib/global/js/package-settings.js +14 -1
  187. package/lib/global/js/utils/StoryDocsPage.js +225 -0
  188. package/lib/global/js/utils/story-helper.js +115 -7
  189. package/package.json +4 -4
  190. package/scss/components/AddSelect/_add-select.scss +10 -6
  191. package/scss/components/BreadcrumbWithOverflow/_breadcrumb-with-overflow.scss +0 -1
  192. package/scss/components/ButtonMenu/_button-menu.scss +32 -1
  193. package/scss/components/Cascade/_storybook-styles.scss +3 -2
  194. package/scss/components/CreateFullPage/_create-full-page.scss +3 -3
  195. package/scss/components/CreateModal/_create-modal.scss +3 -3
  196. package/scss/components/CreateSidePanel/_create-side-panel.scss +4 -4
  197. package/scss/components/CreateTearsheet/_create-tearsheet.scss +2 -2
  198. package/scss/components/CreateTearsheet/_storybook-styles.scss +1 -1
  199. package/scss/components/CreateTearsheetNarrow/_create-tearsheet-narrow.scss +2 -2
  200. package/scss/components/DataSpreadsheet/_data-spreadsheet.scss +5 -5
  201. package/scss/components/DataSpreadsheet/_storybook-styles.scss +6 -0
  202. package/scss/components/Datagrid/_datagrid.scss +4 -2
  203. package/scss/components/Datagrid/_storybook-styles.scss +18 -4
  204. package/scss/components/Datagrid/styles/_datagrid.scss +26 -13
  205. package/scss/components/Datagrid/styles/addons/_FilterFlyout.scss +7 -0
  206. package/scss/components/Datagrid/styles/addons/_FilterPanel.scss +4 -0
  207. package/scss/components/EditSidePanel/_edit-side-panel.scss +2 -2
  208. package/scss/components/EditTearsheet/_edit-tearsheet.scss +2 -2
  209. package/scss/components/EditTearsheet/_storybook-styles.scss +1 -1
  210. package/scss/components/ImportModal/_import-modal.scss +1 -1
  211. package/scss/components/NotificationsPanel/_notifications-panel.scss +3 -3
  212. package/scss/components/NotificationsPanel/_storybook-styles.scss +10 -2
  213. package/scss/components/OptionsTile/_storybook-styles.scss +1 -1
  214. package/scss/components/PageHeader/_page-header.scss +4 -5
  215. package/scss/components/PageHeader/_storybook-styles.scss +24 -14
  216. package/scss/components/Saving/_saving.scss +1 -1
  217. package/scss/components/SidePanel/_side-panel.scss +3 -5
  218. package/scss/components/TagSet/_tag-set.scss +1 -1
  219. package/scss/components/Tearsheet/_tearsheet.scss +9 -8
  220. package/scss/components/UserProfileImage/_user-profile-image.scss +2 -2
  221. package/scss/components/WebTerminal/_storybook-styles.scss +11 -1
  222. package/scss/global/styles/_display-box.scss +1 -0
  223. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useInitialStateFromFilters.js +0 -21
  224. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useInitialStateFromFilters.js +0 -30
  225. package/scss/components/HTTPErrors/_storybook-styles.scss +0 -6
@@ -56,11 +56,8 @@ var FilterPanel = function FilterPanel(_ref) {
56
56
  searchLabelText = _ref$searchLabelText === void 0 ? 'Filter search' : _ref$searchLabelText,
57
57
  _ref$searchPlaceholde = _ref.searchPlaceholder,
58
58
  searchPlaceholder = _ref$searchPlaceholde === void 0 ? 'Find filters' : _ref$searchPlaceholde,
59
- _ref$initialFilters = _ref.initialFilters,
60
- initialFilters = _ref$initialFilters === void 0 ? [] : _ref$initialFilters;
61
- // Save the initial filters we only need the filters once
62
- var initialFiltersRef = useRef(initialFilters);
63
-
59
+ _ref$reactTableFilter = _ref.reactTableFiltersState,
60
+ reactTableFiltersState = _ref$reactTableFilter === void 0 ? [] : _ref$reactTableFilter;
64
61
  /** State */
65
62
  var _useState = useState(false),
66
63
  _useState2 = _slicedToArray(_useState, 2),
@@ -71,15 +68,17 @@ var FilterPanel = function FilterPanel(_ref) {
71
68
  filters: filterSections,
72
69
  setAllFilters: setAllFilters,
73
70
  variation: PANEL,
74
- initialFilters: initialFiltersRef.current
71
+ reactTableFiltersState: reactTableFiltersState,
72
+ onCancel: onCancel
75
73
  }),
76
74
  filtersState = _useFilters.filtersState,
77
75
  prevFiltersObjectArrayRef = _useFilters.prevFiltersObjectArrayRef,
78
76
  prevFiltersRef = _useFilters.prevFiltersRef,
79
- revertToPreviousFilters = _useFilters.revertToPreviousFilters,
77
+ cancel = _useFilters.cancel,
80
78
  reset = _useFilters.reset,
81
79
  renderFilter = _useFilters.renderFilter,
82
- filtersObjectArray = _useFilters.filtersObjectArray;
80
+ filtersObjectArray = _useFilters.filtersObjectArray,
81
+ lastAppliedFilters = _useFilters.lastAppliedFilters;
83
82
 
84
83
  /** Refs */
85
84
  var filterPanelRef = useRef();
@@ -109,14 +108,8 @@ var FilterPanel = function FilterPanel(_ref) {
109
108
 
110
109
  /** Methods */
111
110
  var closePanel = function closePanel() {
112
- return setPanelOpen(false);
113
- };
114
- var cancel = function cancel() {
115
- // Reverting to previous filters only applies when using batch actions
116
- if (updateMethod === BATCH) {
117
- revertToPreviousFilters();
118
- onCancel();
119
- }
111
+ cancel();
112
+ setPanelOpen(false);
120
113
  };
121
114
  var apply = function apply() {
122
115
  setAllFilters(filtersObjectArray);
@@ -128,6 +121,9 @@ var FilterPanel = function FilterPanel(_ref) {
128
121
  // updates the ref so next time the flyout opens we have records of the previous filters
129
122
  prevFiltersRef.current = JSON.stringify(filtersState);
130
123
  prevFiltersObjectArrayRef.current = JSON.stringify(filtersObjectArray);
124
+
125
+ // Update the last applied filters
126
+ lastAppliedFilters.current = JSON.stringify(filtersObjectArray);
131
127
  };
132
128
  var renderActionSet = function renderActionSet() {
133
129
  return showActionSet && /*#__PURE__*/React.createElement(MotionActionSet, {
@@ -244,20 +240,20 @@ FilterPanel.propTypes = {
244
240
  closeIconDescription: PropTypes.string,
245
241
  filterPanelMinHeight: PropTypes.number,
246
242
  filterSections: PropTypes.array,
247
- /**
248
- * Filters that should be applied on load
249
- */
250
- initialFilters: PropTypes.arrayOf(PropTypes.shape({
251
- id: PropTypes.string.isRequired,
252
- type: PropTypes.string.isRequired,
253
- value: PropTypes.any.isRequired
254
- })),
255
243
  onApply: PropTypes.func,
256
244
  onCancel: PropTypes.func,
257
245
  onPanelClose: PropTypes.func,
258
246
  onPanelOpen: PropTypes.func,
259
247
  open: PropTypes.bool,
260
248
  primaryActionLabel: PropTypes.string,
249
+ /**
250
+ * Filters from react table's state
251
+ */
252
+ reactTableFiltersState: PropTypes.arrayOf(PropTypes.shape({
253
+ id: PropTypes.string.isRequired,
254
+ type: PropTypes.string.isRequired,
255
+ value: PropTypes.any.isRequired
256
+ })),
261
257
  searchLabelText: PropTypes.string,
262
258
  searchPlaceholder: PropTypes.string,
263
259
  secondaryActionLabel: PropTypes.string,
@@ -5,7 +5,7 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- export { default as useInitialStateFromFilters } from './useInitialStateFromFilters';
9
8
  export { default as useSubscribeToEventEmitter } from './useSubscribeToEventEmitter';
10
9
  export { default as useFilters } from './useFilters';
11
- export { default as useShouldDisableButtons } from './useShouldDisableButtons';
10
+ export { default as useShouldDisableButtons } from './useShouldDisableButtons';
11
+ export { default as useFilterContext } from './useFilterContext';
@@ -0,0 +1,13 @@
1
+ import { FilterContext } from '../FilterProvider';
2
+ import { useContext } from 'react';
3
+ var useFilterContext = function useFilterContext() {
4
+ // get the context
5
+ var context = useContext(FilterContext);
6
+
7
+ // if `undefined`, throw an error
8
+ if (context === undefined) {
9
+ throw new Error('useFilterContext was used outside of its Provider');
10
+ }
11
+ return context;
12
+ };
13
+ export default useFilterContext;
@@ -11,10 +11,9 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
11
11
  * US Government Users Restricted Rights - Use, duplication or disclosure
12
12
  * restricted by GSA ADP Schedule Contract with IBM Corp.
13
13
  */
14
- import React, { useState, useRef } from 'react';
14
+ import React, { useState, useRef, useEffect } from 'react';
15
15
  import { Checkbox, DatePicker, DatePickerInput, Dropdown, FormGroup, NumberInput, RadioButton, RadioButtonGroup, Layer } from '@carbon/react';
16
- import { INSTANT, DATE, CHECKBOX, NUMBER, RADIO, DROPDOWN, PANEL } from '../constants';
17
- import useInitialStateFromFilters from './useInitialStateFromFilters';
16
+ import { INSTANT, BATCH, DATE, CHECKBOX, NUMBER, RADIO, DROPDOWN, PANEL } from '../constants';
18
17
  import { getInitialStateFromFilters } from '../utils';
19
18
  var useFilters = function useFilters(_ref) {
20
19
  var updateMethod = _ref.updateMethod,
@@ -22,19 +21,22 @@ var useFilters = function useFilters(_ref) {
22
21
  filters = _ref$filters === void 0 ? [] : _ref$filters,
23
22
  setAllFilters = _ref.setAllFilters,
24
23
  variation = _ref.variation,
25
- initialFilters = _ref.initialFilters;
24
+ reactTableFiltersState = _ref.reactTableFiltersState,
25
+ _ref$onCancel = _ref.onCancel,
26
+ onCancel = _ref$onCancel === void 0 ? function () {} : _ref$onCancel;
26
27
  /** State */
27
- var _useInitialStateFromF = useInitialStateFromFilters(filters, variation, initialFilters),
28
- _useInitialStateFromF2 = _slicedToArray(_useInitialStateFromF, 2),
29
- filtersState = _useInitialStateFromF2[0],
30
- setFiltersState = _useInitialStateFromF2[1];
31
- var _useState = useState(initialFilters),
28
+ var _useState = useState(getInitialStateFromFilters(filters, variation, reactTableFiltersState)),
32
29
  _useState2 = _slicedToArray(_useState, 2),
33
- filtersObjectArray = _useState2[0],
34
- setFiltersObjectArray = _useState2[1];
30
+ filtersState = _useState2[0],
31
+ setFiltersState = _useState2[1];
32
+ var _useState3 = useState(reactTableFiltersState),
33
+ _useState4 = _slicedToArray(_useState3, 2),
34
+ filtersObjectArray = _useState4[0],
35
+ setFiltersObjectArray = _useState4[1];
35
36
 
36
37
  // When using batch actions we have to store the filters to then apply them later
37
38
  var prevFiltersRef = useRef(JSON.stringify(filtersState));
39
+ var lastAppliedFilters = useRef(JSON.stringify(reactTableFiltersState));
38
40
  var prevFiltersObjectArrayRef = useRef(JSON.stringify(filtersObjectArray));
39
41
 
40
42
  /** Methods */
@@ -43,6 +45,7 @@ var useFilters = function useFilters(_ref) {
43
45
  var revertToPreviousFilters = function revertToPreviousFilters() {
44
46
  setFiltersState(JSON.parse(prevFiltersRef.current));
45
47
  setFiltersObjectArray(JSON.parse(prevFiltersObjectArrayRef.current));
48
+ setAllFilters(JSON.parse(lastAppliedFilters.current));
46
49
  };
47
50
  var reset = function reset() {
48
51
  // When we reset we want the "initialFilters" to be an empty array
@@ -154,8 +157,11 @@ var useFilters = function useFilters(_ref) {
154
157
  var type = _ref3.type,
155
158
  column = _ref3.column,
156
159
  components = _ref3.props;
157
- var isPanel = variation === PANEL;
158
160
  var filter;
161
+ var isPanel = variation === PANEL;
162
+ if (!type) {
163
+ return console.error("type: ".concat(type, "; does not exist as a type of filter."));
164
+ }
159
165
  switch (type) {
160
166
  case DATE:
161
167
  filter = /*#__PURE__*/React.createElement(DatePicker, _extends({}, components.DatePicker, {
@@ -281,10 +287,31 @@ var useFilters = function useFilters(_ref) {
281
287
  break;
282
288
  }
283
289
  if (isPanel) {
284
- return /*#__PURE__*/React.createElement(Layer, null, filter);
290
+ return /*#__PURE__*/React.createElement(Layer, {
291
+ key: column
292
+ }, filter);
285
293
  }
286
- return filter;
294
+ return /*#__PURE__*/React.createElement(React.Fragment, {
295
+ key: column
296
+ }, filter);
287
297
  };
298
+ var cancel = function cancel() {
299
+ // Reverting to previous filters only applies when using batch actions
300
+ if (updateMethod === BATCH) {
301
+ revertToPreviousFilters();
302
+ onCancel();
303
+ }
304
+ };
305
+
306
+ /** The purpose of this function is to sync any changes in react-tables state.filters array and reflect
307
+ those new filter changes in the panel/flyout state. The external change is triggered if setAllFilters is called outside of the Datagrid */
308
+ useEffect(function updateStateAndFiltersToReflectExternalFilterChanges() {
309
+ var newFiltersState = getInitialStateFromFilters(filters, variation, reactTableFiltersState);
310
+ setFiltersState(newFiltersState);
311
+ prevFiltersRef.current = JSON.stringify(newFiltersState);
312
+ prevFiltersObjectArrayRef.current = JSON.stringify(reactTableFiltersState);
313
+ setFiltersObjectArray(reactTableFiltersState);
314
+ }, [filters, reactTableFiltersState, variation]);
288
315
  return {
289
316
  filtersState: filtersState,
290
317
  setFiltersState: setFiltersState,
@@ -293,7 +320,9 @@ var useFilters = function useFilters(_ref) {
293
320
  revertToPreviousFilters: revertToPreviousFilters,
294
321
  reset: reset,
295
322
  renderFilter: renderFilter,
296
- filtersObjectArray: filtersObjectArray
323
+ filtersObjectArray: filtersObjectArray,
324
+ lastAppliedFilters: lastAppliedFilters,
325
+ cancel: cancel
297
326
  };
298
327
  };
299
328
  export default useFilters;
@@ -5,7 +5,7 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
5
5
  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; }
6
6
  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) { _defineProperty(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; }
7
7
  /**
8
- * Copyright IBM Corp. 2022, 2022
8
+ * Copyright IBM Corp. 2022, 2023
9
9
  *
10
10
  * This source code is licensed under the Apache-2.0 license found in the
11
11
  * LICENSE file in the root directory of this source tree.
@@ -31,7 +31,8 @@ export var InlineEditCell = function InlineEditCell(_ref) {
31
31
  placeholder = _ref$placeholder === void 0 ? '' : _ref$placeholder,
32
32
  tabIndex = _ref.tabIndex,
33
33
  value = _ref.value,
34
- nonEditCell = _ref.nonEditCell,
34
+ _ref$nonEditCell = _ref.nonEditCell,
35
+ nonEditCell = _ref$nonEditCell === void 0 ? false : _ref$nonEditCell,
35
36
  totalInlineEditColumns = _ref.totalInlineEditColumns,
36
37
  type = _ref.type;
37
38
  var columnId = cell.column.id;
@@ -72,6 +73,9 @@ export var InlineEditCell = function InlineEditCell(_ref) {
72
73
  var dropdownRef = useRef();
73
74
  var datePickerRef = useRef();
74
75
  var outerButtonElement = useRef();
76
+ var rowSize = instance.rowSize,
77
+ onDataUpdate = instance.onDataUpdate;
78
+ var saveCellData;
75
79
  useEffect(function () {
76
80
  setInitialValue(value);
77
81
  var columnId = cell.column.id;
@@ -145,8 +149,6 @@ export var InlineEditCell = function InlineEditCell(_ref) {
145
149
  }, 1);
146
150
  }
147
151
  };
148
- var rowSize = instance.rowSize,
149
- onDataUpdate = instance.onDataUpdate;
150
152
 
151
153
  // Auto focus text input when entering edit mode
152
154
  useEffect(function () {
@@ -160,14 +162,9 @@ export var InlineEditCell = function InlineEditCell(_ref) {
160
162
  }
161
163
  }, [inEditMode, type]);
162
164
 
163
- // Initialize cellValue from value prop
164
- useEffect(function () {
165
- setCellValue(value);
166
- }, [value]);
167
-
168
165
  // Saves the new cell data, onDataUpdate is a required function to be
169
166
  // passed to useDatagrid when using useInlineEdit
170
- var saveCellData = useCallback(function (newValue) {
167
+ saveCellData = useCallback(function (newValue) {
171
168
  var columnId = cell.column.id;
172
169
  var rowIndex = cell.row.index;
173
170
  onDataUpdate(function (prev) {
@@ -179,6 +176,11 @@ export var InlineEditCell = function InlineEditCell(_ref) {
179
176
  });
180
177
  });
181
178
  }, [cell, onDataUpdate]);
179
+
180
+ // Initialize cellValue from value prop
181
+ useEffect(function () {
182
+ setCellValue(value);
183
+ }, [value]);
182
184
  var sendFocusBackToGrid = function sendFocusBackToGrid() {
183
185
  // Allows the onKeyDown listener to go back to the entire grid area
184
186
  var inlineEditArea = document.querySelector("#".concat(instance.tableId, " .").concat(blockClass, "__table-with-inline-edit"));
@@ -307,32 +309,16 @@ export var InlineEditCell = function InlineEditCell(_ref) {
307
309
  };
308
310
  var setRenderIcon = function setRenderIcon() {
309
311
  if (type === 'text') {
310
- return function (props) {
311
- return /*#__PURE__*/React.createElement(Edit, _extends({
312
- size: 16
313
- }, props));
314
- };
312
+ return Edit;
315
313
  }
316
314
  if (type === 'number') {
317
- return function (props) {
318
- return /*#__PURE__*/React.createElement(CaretSort, _extends({
319
- size: 16
320
- }, props));
321
- };
315
+ return CaretSort;
322
316
  }
323
317
  if (type === 'selection') {
324
- return function (props) {
325
- return /*#__PURE__*/React.createElement(ChevronDown, _extends({
326
- size: 16
327
- }, props));
328
- };
318
+ return ChevronDown;
329
319
  }
330
320
  if (type === 'date') {
331
- return function (props) {
332
- return /*#__PURE__*/React.createElement(Calendar, _extends({
333
- size: 16
334
- }, props));
335
- };
321
+ return Calendar;
336
322
  }
337
323
  };
338
324
  var renderDateCell = function renderDateCell() {
@@ -2,7 +2,7 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  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; }
3
3
  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) { _defineProperty(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; }
4
4
  /**
5
- * Copyright IBM Corp. 2022, 2022
5
+ * Copyright IBM Corp. 2022, 2023
6
6
  *
7
7
  * This source code is licensed under the Apache-2.0 license found in the
8
8
  * LICENSE file in the root directory of this source tree.
@@ -86,7 +86,7 @@ export var handleGridKeyPress = function handleGridKeyPress(_ref) {
86
86
  if (['End', 'Home', 'ArrowLeft', 'ArrowUp', 'ArrowRight', 'ArrowDown'].indexOf(key) > -1 && !isEditing && keysPressedList.length < 2) {
87
87
  event.preventDefault();
88
88
  }
89
- var isDisabledCell = !!focusedCell.getAttribute('data-disabled');
89
+ var isDisabledCell = focusedCell.getAttribute('data-disabled') === 'false' ? false : true;
90
90
  var sharedUpdateParams = {
91
91
  oldId: activeCellId,
92
92
  instance: instance
@@ -25,4 +25,5 @@ export { default as useColumnOrder } from './useColumnOrder';
25
25
  export { default as useInlineEdit } from './useInlineEdit';
26
26
  export { default as useEditableCell } from './useEditableCell';
27
27
  export { default as useFiltering } from './useFiltering';
28
- export { getAutoSizedColumnWidth } from './utils/getAutoSizedColumnWidth';
28
+ export { getAutoSizedColumnWidth } from './utils/getAutoSizedColumnWidth';
29
+ export { useFilterContext } from './Datagrid/addons/Filtering/hooks';
@@ -5,19 +5,22 @@ var _excluded = ["id", "itemText", "onClick", "icon", "shouldHideMenuItem"],
5
5
  _excluded2 = ["id", "onClick", "shouldHideMenuItem", "shouldDisableMenuItem", "disabled"];
6
6
  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; }
7
7
  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) { _defineProperty(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; }
8
- /*
9
- * Licensed Materials - Property of IBM
10
- * 5724-Q36
11
- * (c) Copyright IBM Corp. 2021
12
- * US Government Users Restricted Rights - Use, duplication or disclosure
13
- * restricted by GSA ADP Schedule Contract with IBM Corp.
8
+ /**
9
+ * Copyright IBM Corp. 2021, 2023
10
+ *
11
+ * This source code is licensed under the Apache-2.0 license found in the
12
+ * LICENSE file in the root directory of this source tree.
14
13
  */
15
- import React from 'react';
14
+
15
+ import React, { useEffect } from 'react';
16
16
  import cx from 'classnames';
17
17
  import { IconSkeleton, OverflowMenu, OverflowMenuItem } from '@carbon/react';
18
18
  import { pkg } from '../../settings';
19
19
  var blockClass = "".concat(pkg.prefix, "--datagrid");
20
20
  var useActionsColumn = function useActionsColumn(hooks) {
21
+ useEffect(function () {
22
+ pkg.checkReportFeatureEnabled('Datagrid.useActionsColumn');
23
+ }, []);
21
24
  var useAttachActionsOnInstance = function useAttachActionsOnInstance(instance) {
22
25
  var rowActions = instance.rowActions,
23
26
  isFetching = instance.isFetching,
@@ -3,18 +3,20 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
3
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
4
  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; }
5
5
  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) { _defineProperty(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; }
6
- // @flow
7
- /*
8
- * Licensed Materials - Property of IBM
9
- * 5724-Q36
10
- * (c) Copyright IBM Corp. 2021
11
- * US Government Users Restricted Rights - Use, duplication or disclosure
12
- * restricted by GSA ADP Schedule Contract with IBM Corp.
6
+ /**
7
+ * Copyright IBM Corp. 2021, 2023
8
+ *
9
+ * This source code is licensed under the Apache-2.0 license found in the
10
+ * LICENSE file in the root directory of this source tree.
13
11
  */
14
12
 
15
13
  import * as React from 'react';
14
+ import { pkg } from '../../settings';
16
15
  import { CustomizeColumnsTearsheetWrapper, ToggleButtonWrapper } from './Datagrid/addons/CustomizeColumns';
17
16
  var useCustomizeColumns = function useCustomizeColumns(hooks) {
17
+ React.useEffect(function () {
18
+ pkg.checkReportFeatureEnabled('Datagrid.useCustomizeColumns');
19
+ }, []);
18
20
  var _React$useState = React.useState(false),
19
21
  _React$useState2 = _slicedToArray(_React$useState, 2),
20
22
  isTearsheetOpen = _React$useState2[0],
@@ -2,17 +2,21 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
3
  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; }
4
4
  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) { _defineProperty(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; }
5
- /*
6
- * Licensed Materials - Property of IBM
7
- * 5724-Q36
8
- * (c) Copyright IBM Corp. 2020
9
- * US Government Users Restricted Rights - Use, duplication or disclosure
10
- * restricted by GSA ADP Schedule Contract with IBM Corp.
5
+ /**
6
+ * Copyright IBM Corp. 2020, 2023
7
+ *
8
+ * This source code is licensed under the Apache-2.0 license found in the
9
+ * LICENSE file in the root directory of this source tree.
11
10
  */
12
- import { useState } from 'react';
11
+
12
+ import { useEffect, useState } from 'react';
13
+ import { pkg } from '../../settings';
13
14
  import DatagridExpandedRow from './Datagrid/DatagridExpandedRow';
14
15
  import useRowExpander from './useRowExpander';
15
16
  var useExpandedRow = function useExpandedRow(hooks) {
17
+ useEffect(function () {
18
+ pkg.checkReportFeatureEnabled('Datagrid.useExpandedRow');
19
+ }, []);
16
20
  useRowExpander(hooks);
17
21
  var useInstance = function useInstance(instance) {
18
22
  var rows = instance.rows,
@@ -2,17 +2,21 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
3
  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; }
4
4
  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) { _defineProperty(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; }
5
- /*
6
- * Licensed Materials - Property of IBM
7
- * 5724-Q36
8
- * (c) Copyright IBM Corp. 2023
9
- * US Government Users Restricted Rights - Use, duplication or disclosure
10
- * restricted by GSA ADP Schedule Contract with IBM Corp.
5
+ /**
6
+ * Copyright IBM Corp. 2022, 2023
7
+ *
8
+ * This source code is licensed under the Apache-2.0 license found in the
9
+ * LICENSE file in the root directory of this source tree.
11
10
  */
12
- import { useMemo } from 'react';
11
+
12
+ import { useMemo, useEffect } from 'react';
13
+ import { pkg } from '../../settings';
13
14
  import { FilterFlyout } from './Datagrid/addons/Filtering';
14
15
  import { BATCH } from './Datagrid/addons/Filtering/constants';
15
16
  var useFiltering = function useFiltering(hooks) {
17
+ useEffect(function () {
18
+ pkg.checkReportFeatureEnabled('Datagrid.useFiltering');
19
+ }, []);
16
20
  var filterTypes = useMemo(function () {
17
21
  return {
18
22
  date: function date(rows, id, _ref) {
@@ -70,7 +74,7 @@ var useFiltering = function useFiltering(hooks) {
70
74
  variation: 'flyout',
71
75
  updateMethod: BATCH,
72
76
  panelIconDescription: 'Open filter panel',
73
- initialFilters: state.filters
77
+ reactTableFiltersState: state.filters
74
78
  };
75
79
  var getFilterFlyoutProps = function getFilterFlyoutProps() {
76
80
  return _objectSpread(_objectSpread(_objectSpread({}, defaultProps), filterProps), {}, {
@@ -16,6 +16,9 @@ var useInlineEdit = function useInlineEdit(hooks, usingEditableCell) {
16
16
  if (!usingEditableCell) {
17
17
  pkg.checkReportFeatureEnabled('Datagrid.useInlineEdit');
18
18
  }
19
+ if (usingEditableCell) {
20
+ pkg.checkReportFeatureEnabled('Datagrid.useEditableCell');
21
+ }
19
22
  }, [usingEditableCell]);
20
23
  var addInlineEdit = function addInlineEdit(props, _ref) {
21
24
  var _cell$column, _cell$column$inlineEd, _instance$columns$fil;
@@ -1,16 +1,20 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- /*
3
- * Licensed Materials - Property of IBM
4
- * 5724-Q36
5
- * (c) Copyright IBM Corp. 2020
6
- * US Government Users Restricted Rights - Use, duplication or disclosure
7
- * restricted by GSA ADP Schedule Contract with IBM Corp.
2
+ /**
3
+ * Copyright IBM Corp. 2020, 2023
4
+ *
5
+ * This source code is licensed under the Apache-2.0 license found in the
6
+ * LICENSE file in the root directory of this source tree.
8
7
  */
8
+
9
+ import { useEffect } from 'react';
9
10
  import { pkg } from '../../settings';
10
11
  import cx from 'classnames';
11
12
  import useNestedRowExpander from './useNestedRowExpander';
12
13
  var blockClass = "".concat(pkg.prefix, "--datagrid");
13
14
  var useNestedRows = function useNestedRows(hooks) {
15
+ useEffect(function () {
16
+ pkg.checkReportFeatureEnabled('Datagrid.useNestedRows');
17
+ }, []);
14
18
  useNestedRowExpander(hooks);
15
19
  var marginLeft = 24;
16
20
  var getRowProps = function getRowProps(props, _ref) {
@@ -21,10 +21,13 @@ var OFFSET_SCROLL_CLASS = "".concat(styleClassPrefix, "-offset-scroll");
21
21
  var useStickyColumn = function useStickyColumn(hooks) {
22
22
  var tableBodyRef = useRef();
23
23
  var stickyHeaderCellRef = useRef();
24
- var _useState = useState(window.innerWidth),
24
+ var _useState = useState(null),
25
25
  _useState2 = _slicedToArray(_useState, 2),
26
26
  windowSize = _useState2[0],
27
27
  setWindowSize = _useState2[1];
28
+ useEffect(function () {
29
+ setWindowSize(window.innerWidth);
30
+ }, []);
28
31
  useLayoutEffect(function () {
29
32
  function updateSize() {
30
33
  setWindowSize(window.innerWidth);
@@ -53,9 +56,13 @@ var useStickyColumn = function useStickyColumn(hooks) {
53
56
  headerCellElement.classList.add(OFFSET_SCROLL_CLASS);
54
57
  }
55
58
  var boundListener = debounce(onBodyResize.bind(null, tableBodyElement, headerCellElement), 250);
56
- window.addEventListener('resize', boundListener);
59
+ if (typeof window !== 'undefined') {
60
+ window.addEventListener('resize', boundListener);
61
+ }
57
62
  return function () {
58
- window.removeEventListener('resize', boundListener);
63
+ if (typeof window !== 'undefined') {
64
+ window.removeEventListener('resize', boundListener);
65
+ }
59
66
  };
60
67
  }, [instance.rows, instance.isFetching]);
61
68
  useEffect(function () {
@@ -1,5 +1,4 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
- import _extends from "@babel/runtime/helpers/extends";
3
2
  /**
4
3
  * Copyright IBM Corp. 2020, 2022
5
4
  *
@@ -7,17 +6,17 @@ import _extends from "@babel/runtime/helpers/extends";
7
6
  * LICENSE file in the root directory of this source tree.
8
7
  */
9
8
 
10
- import React, { useLayoutEffect, useState, useContext } from 'react';
11
- import { TableToolbarContent, TableToolbarSearch, Button, OverflowMenu, OverflowMenuItem, ComposedModal, ModalBody, ModalHeader, ModalFooter, Dropdown } from '@carbon/react';
12
- import { Download, Add, Restart, ChevronDown, Filter } from '@carbon/react/icons';
9
+ import { Add, ChevronDown, Download, Filter, Restart } from '@carbon/react/icons';
10
+ import { Button, ComposedModal, Dropdown, IconButton, ModalBody, ModalFooter, ModalHeader, OverflowMenu, OverflowMenuItem, TableToolbarContent, TableToolbarSearch } from '@carbon/react';
11
+ import { ButtonMenu, ButtonMenuItem } from '../../ButtonMenu';
12
+ import React, { useLayoutEffect, useState } from 'react';
13
13
  import { action } from '@storybook/addon-actions';
14
14
  import { pkg } from '../../../settings';
15
- import { ButtonMenu, ButtonMenuItem } from '../../ButtonMenu';
16
- import { FilterContext } from '../Datagrid/addons/Filtering';
15
+ import { useFilterContext } from '../Datagrid/addons/Filtering/hooks';
17
16
  var blockClass = "".concat(pkg.prefix, "--datagrid");
18
17
  export var DatagridActions = function DatagridActions(datagridState) {
19
- var _useContext = useContext(FilterContext),
20
- setPanelOpen = _useContext.setPanelOpen;
18
+ var _useFilterContext = useFilterContext(),
19
+ setPanelOpen = _useFilterContext.setPanelOpen;
21
20
  var selectedFlatRows = datagridState.selectedFlatRows,
22
21
  setGlobalFilter = datagridState.setGlobalFilter,
23
22
  CustomizeColumnsButton = datagridState.CustomizeColumnsButton,
@@ -45,25 +44,18 @@ export var DatagridActions = function DatagridActions(datagridState) {
45
44
  return (filterProps === null || filterProps === void 0 ? void 0 : filterProps.variation) === 'flyout' && /*#__PURE__*/React.createElement(FilterFlyout, getFilterFlyoutProps());
46
45
  };
47
46
  var renderFilterPanelButton = function renderFilterPanelButton() {
48
- return (filterProps === null || filterProps === void 0 ? void 0 : filterProps.variation) === 'panel' && /*#__PURE__*/React.createElement(Button, {
47
+ return (filterProps === null || filterProps === void 0 ? void 0 : filterProps.variation) === 'panel' && /*#__PURE__*/React.createElement(IconButton, {
49
48
  kind: "ghost",
50
- hasIconOnly: true,
51
- tooltipPosition: "bottom",
52
- renderIcon: function renderIcon(props) {
53
- return /*#__PURE__*/React.createElement(Filter, _extends({
54
- size: 16
55
- }, props));
56
- },
57
- iconDescription: filterProps.panelIconDescription,
49
+ align: "bottom",
50
+ label: filterProps.panelIconDescription,
58
51
  className: "".concat(blockClass, "-filter-panel-open-button"),
59
52
  onClick: function onClick() {
60
53
  return setPanelOpen(function (open) {
61
54
  return !open;
62
55
  });
63
56
  },
64
- disabled: data.length === 0,
65
- tooltipAlignment: "start"
66
- });
57
+ disabled: data.length === 0
58
+ }, /*#__PURE__*/React.createElement(Filter, null));
67
59
  };
68
60
  var _useState = useState(false),
69
61
  _useState2 = _slicedToArray(_useState, 2),